<?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: Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</title>
    <description>The latest articles on DEV Community by Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ (@cheav_sovannarith).</description>
    <link>https://dev.to/cheav_sovannarith</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%2F281804%2F80983871-5a5e-4bbd-a4e1-85505de6b424.jpg</url>
      <title>DEV Community: Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</title>
      <link>https://dev.to/cheav_sovannarith</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cheav_sovannarith"/>
    <language>en</language>
    <item>
      <title>Slack vs MS Teams &gt; Message Searching</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Tue, 11 Feb 2020 03:36:19 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/slack-vs-ms-teams-message-searching-5n</link>
      <guid>https://dev.to/cheav_sovannarith/slack-vs-ms-teams-message-searching-5n</guid>
      <description>&lt;h4&gt;
  
  
  Why don’t MS Teams apply &lt;strong&gt;Truncation Search Algorithm?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zLZlI3hS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AT7cVgWttbRTEGUYSlqBUkA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zLZlI3hS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AT7cVgWttbRTEGUYSlqBUkA.png" alt=""&gt;&lt;/a&gt;&lt;a href="https://tryshift.com/blog/apps-hub/microsoft-teams-vs-slack/"&gt;&lt;/a&gt;&lt;a href="https://tryshift.com/blog/apps-hub/microsoft-teams-vs-slack/"&gt;https://tryshift.com/blog/apps-hub/microsoft-teams-vs-slack/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Search
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Both &lt;a href="https://teams.microsoft.com"&gt;MS Teams&lt;/a&gt; and &lt;a href="https://slack.com"&gt;Slack&lt;/a&gt; allows searching through all chat sessions, putting an end to the nightmare of trying to find one comment among thousands. If you’ve opted for the free version of &lt;a href="https://slack.com"&gt;Slack&lt;/a&gt;, however, the search function only applies to the 10,000 most recent messages.&lt;/p&gt;

&lt;p&gt;Microsoft’s WhoBot tool helps with search in &lt;a href="https://teams.microsoft.com"&gt;MS Teams&lt;/a&gt;. This search bot crawls your entire company intranet to surface the data you’re looking for. It also helps you access subject matter experts within your organization so you can find the best person for what you’re looking for.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Anyway Slack allows you to search through 10,000 most recent messages by using &lt;a href="https://libguides.mit.edu/c.php?g=175963&amp;amp;p=1158679"&gt;Truncation Search Algorithm&lt;/a&gt; while &lt;a href="https://teams.microsoft.com"&gt;MS Teams&lt;/a&gt; doesn’t allow this.&lt;/p&gt;

&lt;p&gt;Example : I have a message “ReplySlack” in both Slack and MS Teams.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://slack.com"&gt;&lt;strong&gt;Slack&lt;/strong&gt;&lt;/a&gt; : try searching with “ReplyS*” and found the message.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i7InH0EH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AEHZQSEaoAf4nm37FMsuyRA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i7InH0EH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AEHZQSEaoAf4nm37FMsuyRA.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://teams.microsoft.com"&gt;&lt;strong&gt;MS Teams&lt;/strong&gt;&lt;/a&gt; : try searching with “ReplyS*” and can not found the message.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2mE10Jb4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2ABF1Bt2GYb0jiXjyDUQP8JQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2mE10Jb4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2ABF1Bt2GYb0jiXjyDUQP8JQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apus.libanswers.com/faq/2235"&gt;&lt;strong&gt;What is a wildcard?&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.chanty.com/blog/slack-review/"&gt;&lt;strong&gt;Slack Review: Messaging, Calls, Integrations and Other Features&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;




</description>
      <category>msteams</category>
      <category>slack</category>
      <category>searching</category>
    </item>
    <item>
      <title>ILIKE condition in Oracle SQL</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Tue, 11 Feb 2020 03:32:19 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/ilike-condition-in-oracle-sql-3dm3</link>
      <guid>https://dev.to/cheav_sovannarith/ilike-condition-in-oracle-sql-3dm3</guid>
      <description>&lt;h4&gt;
  
  
  &lt;strong&gt;Using Case Sensitivity (alternative to **ILIKE&lt;/strong&gt;)**
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QIUYQKC4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2Ap8vpe38U5orn79a1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QIUYQKC4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2Ap8vpe38U5orn79a1" alt=""&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@whiterainforest?utm_source=medium&amp;amp;utm_medium=referral"&gt;White.RainForest ∙ 易雨白林.&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  LIKE
&lt;/h3&gt;

&lt;p&gt;The LIKE conditions specify a test involving pattern matching. Whereas the equality operator (=) exactly matches one character value to another, the LIKE conditions match a portion of one character value to another by searching the first value for the pattern specified by the second.&lt;/p&gt;

&lt;p&gt;The following query finds the salaries of all employees with the name ‘SM%’. Oracle interprets ‘SM%’ as a text literal, rather than as a pattern, because it precedes the LIKE keyword:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT salary 
    FROM employees 
    WHERE 'SM%' LIKE last\_name;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ILIKE
&lt;/h3&gt;

&lt;p&gt;There are noILIKEcondition in Oracle SQL, but you still can have alternative way to do it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using Case Sensitivity (alternative to **ILIKE&lt;/strong&gt;)**&lt;/p&gt;

&lt;p&gt;Case is significant in all conditions comparing character expressions that the LIKE condition and the equality (=) operators. You can use the UPPER function to perform a case-insensitive match, as in this condition:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;UPPER(last\_name) LIKE 'SM%'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;REF : &lt;a href="https://docs.oracle.com/cd/B13789_01/server.101/b10759/conditions016.htm"&gt;https://docs.oracle.com/cd/B13789_01/server.101/b10759/conditions016.htm&lt;/a&gt;&lt;/p&gt;




</description>
      <category>ilike</category>
      <category>oracle</category>
      <category>sql</category>
    </item>
    <item>
      <title>How to use pbcopy on Ubuntu</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Fri, 13 Dec 2019 09:51:04 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/how-to-use-pbcopy-on-ubuntu-2899</link>
      <guid>https://dev.to/cheav_sovannarith/how-to-use-pbcopy-on-ubuntu-2899</guid>
      <description>&lt;h4&gt;
  
  
  this command line enables you to copy the standard input from terminal window to your clipboard enabling you to paste it to other applications.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--deFw5lNW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/610/1%2A8lbbN0PQtlWJFVHbBdnqww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--deFw5lNW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/610/1%2A8lbbN0PQtlWJFVHbBdnqww.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;pbcopy on a mac enables you to copy the standard input from terminal window to your clipboard enabling you to paste it to other applications.&lt;/p&gt;

&lt;p&gt;You can replicate pbcopy on ubuntu by utilising a similar tool called xclip which does exactly the same. However its syntax is a little too verbose and I prefer to use OS X pbcopy command.&lt;/p&gt;

&lt;h3&gt;
  
  
  how to configure pbcopy on ubuntu
&lt;/h3&gt;

&lt;p&gt;If you haven’t previously installed xclip simply run the following command in your terminal window:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo apt-get install xclip -y&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Edit your BASH settings file using your favorite text editor.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;nano ~/.bashrc&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then create an alias for &lt;em&gt;pbcopy and pbpaste&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;alias pbcopy=’xclip -selection clipboard’&lt;br&gt;&lt;br&gt;
alias pbpaste=’xclip -selection clipboard -o’&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Close and save the file then just refresh your bash to import your new settings&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;source ~/.bashrc&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Usage
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;pbcopy &amp;lt; /etc/resolv.conf&lt;/p&gt;
&lt;/blockquote&gt;




</description>
      <category>pbcopy</category>
      <category>linux</category>
      <category>programming</category>
      <category>commandline</category>
    </item>
    <item>
      <title>Intro to Webhooks — Discord</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Thu, 12 Dec 2019 08:59:43 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/intro-to-webhooks-discord-plg</link>
      <guid>https://dev.to/cheav_sovannarith/intro-to-webhooks-discord-plg</guid>
      <description>&lt;h3&gt;
  
  
  Intro to Webhooks — Discord
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Webhooks are a low-effort way to post messages to channels in Discord. They do not require a bot user or authentication to use.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tg_I5tAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AnEmx_NAfEwCOqvuO" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tg_I5tAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AnEmx_NAfEwCOqvuO" alt=""&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@corinnekutz?utm_source=medium&amp;amp;utm_medium=referral"&gt;Corinne Kutz&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Discord’s built in Webhooks function as an easy way to get automated messages and data updates sent to a text channel in your server. Think of them as one of those fancy pneumatic tube things you used to love sending money into at a bank and watch disappear, but instead of never seeing your money again, you’re actually sending messages into Discord from another platform.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your Server Settings Webhook tab:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W4WIMYru--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AMdEfnj9v6agLwQS3zeUcKg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W4WIMYru--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AMdEfnj9v6agLwQS3zeUcKg.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click the purple button to create a new webhook!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then you will get a new Webhook with the URL.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How to use Webhook to send message :&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;curl -X POST WEBHOOK_URL -H ‘content-type: application/json’ -d ‘{“content”: “Hello, World!”}’&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  READ MORE
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://discordapp.com/developers/docs/resources/channel#create-message"&gt;Discord Developer Portal - API Docs for Bots and Developers&lt;/a&gt;&lt;/p&gt;




</description>
      <category>bots</category>
      <category>webhooks</category>
      <category>discord</category>
      <category>notifications</category>
    </item>
    <item>
      <title>How to make a meme</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Thu, 21 Nov 2019 05:20:35 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/how-to-make-a-meme-33nk</link>
      <guid>https://dev.to/cheav_sovannarith/how-to-make-a-meme-33nk</guid>
      <description>&lt;h4&gt;
  
  
  go to &lt;a href="https://imgur.com/"&gt;https://imgur.com&lt;/a&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N6Pd6FLJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Av0YXeTb9sPkH--DTAgXi6w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N6Pd6FLJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/720/1%2Av0YXeTb9sPkH--DTAgXi6w.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re on social media, you already know what an internet meme is. Still, for the uninitiated, a meme is a funny picture that goes viral on the web. It comes in various forms, though most of them feature photos or illustrations emblazoned with witty text usually written with caps lock on. But what if you want to make your own meme? There are websites that will allow you to quickly customize your meme from a host of existing ones. All you need to do is to choose a image template, type in your desired text, and share away. However, you can also create a whole new meme from scratch and, fortunately, it’s pretty easy to do.&lt;/p&gt;

&lt;p&gt;Jump to &lt;a href="https://en.wikipedia.org/wiki/Imgur#Meme_Generator"&gt;&lt;strong&gt;Meme&lt;/strong&gt; Generator&lt;/a&gt; — &lt;a href="https://imgur.com"&gt;&lt;strong&gt;Imgur&lt;/strong&gt;&lt;/a&gt; is an American online image sharing community and image host founded by Alan Schaaf in 2009. Contents. 1 History.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aKS445aW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/952/1%2AU5clZULe8ZValu9_c5EfEQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aKS445aW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/952/1%2AU5clZULe8ZValu9_c5EfEQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The fastest and easiest way on the Internet to &lt;strong&gt;create&lt;/strong&gt; your own  &lt;strong&gt;memes&lt;/strong&gt;!&lt;/p&gt;




</description>
      <category>creators</category>
      <category>imgur</category>
      <category>memes</category>
    </item>
    <item>
      <title>A free dummy data generator and API mocking tool — mockaroo</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Wed, 06 Nov 2019 08:13:11 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/a-free-dummy-data-generator-and-api-mocking-tool-mockaroo-be2</link>
      <guid>https://dev.to/cheav_sovannarith/a-free-dummy-data-generator-and-api-mocking-tool-mockaroo-be2</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;A&lt;/strong&gt; free dummy &lt;strong&gt;data&lt;/strong&gt; generator and API mocking tool — mockaroo
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Get dummy data for your testing DB
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SbaCL-He--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/400/0%2AWcsrBM7nExqdslYr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SbaCL-He--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/400/0%2AWcsrBM7nExqdslYr.png" alt=""&gt;&lt;/a&gt;&lt;a href="https://mockaroo.com"&gt;&lt;strong&gt;Mockaroo&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mockaroo.com"&gt;&lt;strong&gt;Mockaroo&lt;/strong&gt;&lt;/a&gt; is website where you can generate the dummy data randomly. &lt;a href="https://mockaroo.com"&gt;&lt;strong&gt;Mockaroo&lt;/strong&gt;&lt;/a&gt; lets you generate up to 1,000 rows of realistic test data in CSV, JSON, SQL, and Excel formats per time. Mockaroo also have pricing plan for the ability of generate more rows per time.&lt;/p&gt;

&lt;p&gt;Because &lt;a href="https://mockaroo.com"&gt;&lt;strong&gt;Mockaroo&lt;/strong&gt;&lt;/a&gt; generate random data, so if you want 10 000 rows of data you just click Download button ten times and it will generate ten files of 10 000 data randomly for you.&lt;/p&gt;




</description>
      <category>dummydata</category>
      <category>mocking</category>
      <category>database</category>
      <category>testing</category>
    </item>
    <item>
      <title>Using Map&lt;String, String&gt; with @PathVariable</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Wed, 30 Oct 2019 10:13:27 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/using-map-string-string-with-pathvariable-1f20</link>
      <guid>https://dev.to/cheav_sovannarith/using-map-string-string-with-pathvariable-1f20</guid>
      <description>&lt;h4&gt;
  
  
  Is that map populated with all path variable names and values?
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l9l_OQNL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AOq6Nenv5vZP1mvKm" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l9l_OQNL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/0%2AOq6Nenv5vZP1mvKm" alt=""&gt;&lt;/a&gt;Photo by &lt;a href="https://unsplash.com/@davidmartinjr?utm_source=medium&amp;amp;utm_medium=referral"&gt;David Martin&lt;/a&gt; on &lt;a href="https://unsplash.com?utm_source=medium&amp;amp;utm_medium=referral"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;@PathVariable&lt;/strong&gt; is a Spring annotation which indicates that a method parameter should be bound to a URI template variable. If the method parameter is Map then the map is populated with all path variable names and values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It has the following optional elements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;name — name of the path variable to bind to&lt;/li&gt;
&lt;li&gt;required — tells whether the path variable is required&lt;/li&gt;
&lt;li&gt;value — alias for name
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@GetMapping(value = "/book/{author}/{title}")
public void process3(@PathVariable Map&amp;lt;String, String&amp;gt; vals) {

   logger.info("{}: {}", vals.get("author"), vals.get("title"));

}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Doc&lt;/strong&gt;  : &lt;a href="http://zetcode.com/spring/pathvariable/"&gt;http://zetcode.com/spring/pathvariable/&lt;/a&gt;&lt;/p&gt;




</description>
      <category>maps</category>
      <category>pathvariable</category>
      <category>java</category>
      <category>springboot</category>
    </item>
    <item>
      <title>Fixing GPG Keys missing public key in Ubuntu, Mint</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Thu, 24 Oct 2019 09:48:17 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/fixing-gpg-keys-missing-public-key-in-ubuntu-mint-47hh</link>
      <guid>https://dev.to/cheav_sovannarith/fixing-gpg-keys-missing-public-key-in-ubuntu-mint-47hh</guid>
      <description>&lt;h4&gt;
  
  
  The following signatures couldn’t be verified because the public key is not available
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fIzcPNNd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/868/1%2AF95D5Cq4ON0Vbpgoeft06w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fIzcPNNd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/868/1%2AF95D5Cq4ON0Vbpgoeft06w.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Err :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;W: GPG error: &lt;a href="http://repository.spotify.com"&gt;http://repository.spotify.com&lt;/a&gt; stable InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 4773BD5E130D1D45&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  SOLUTION
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo apt-key adv — keyserver ha.pool.sks-keyservers.net — recv-keys &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ex :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo apt-key adv — keyserver ha.pool.sks-keyservers.net — recv-keys 4773BD5E130D1D45&lt;/p&gt;
&lt;/blockquote&gt;




</description>
      <category>linux</category>
      <category>linuxmint</category>
      <category>gpg</category>
    </item>
    <item>
      <title>Functional Interfaces In Java</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Thu, 24 Oct 2019 04:25:53 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/functional-interfaces-in-java-3pj6</link>
      <guid>https://dev.to/cheav_sovannarith/functional-interfaces-in-java-3pj6</guid>
      <description>&lt;h4&gt;
  
  
  What to do with it?
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZROh9qCk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/560/0%2AAoisXxTTKc7_Eojd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZROh9qCk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/560/0%2AAoisXxTTKc7_Eojd.jpg" alt=""&gt;&lt;/a&gt;&lt;a href="https://www.journaldev.com/2763/java-8-functional-interfaces"&gt;&lt;/a&gt;&lt;a href="https://www.journaldev.com"&gt;https://www.journaldev.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A functional interface is an interface that contains only one abstract method. They can have only one functionality to exhibit. From Java 8 onwards, &lt;a href="https://www.geeksforgeeks.org/lambda-expressions-java-8/"&gt;lambda expressions&lt;/a&gt; can be used to represent the instance of a functional interface. A functional interface can have any number of default methods. &lt;strong&gt;&lt;em&gt;Runnable&lt;/em&gt;&lt;/strong&gt; , &lt;strong&gt;&lt;em&gt;ActionListener&lt;/em&gt;&lt;/strong&gt; , &lt;strong&gt;&lt;em&gt;Comparable&lt;/em&gt;&lt;/strong&gt; are some of the examples of functional interfaces.&lt;br&gt;&lt;br&gt;
Before Java 8, we had to create anonymous inner class objects or implement these interfaces.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Java 8 onwards, we can assign &lt;a href="https://www.geeksforgeeks.org/lambda-expressions-java-8/"&gt;lambda expression&lt;/a&gt; to its functional interface object like this:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h3&gt;
  
  
  &lt;strong&gt;@FunctionalInterface Annotation&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;@FunctionalInterface&lt;/strong&gt; annotation is used to ensure that the functional interface can’t have more than one abstract method. In case more than one abstract methods are present, the compiler flags an ‘Unexpected &lt;strong&gt;@FunctionalInterface&lt;/strong&gt; annotation’ message. However, it is not mandatory to use this annotation.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;READMORE&lt;/strong&gt;  : &lt;a href="https://www.geeksforgeeks.org/functional-interfaces-java/"&gt;geeksforgeeks&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;@Override&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;public&lt;/strong&gt;  &lt;strong&gt;void&lt;/strong&gt;  run()&lt;/p&gt;

&lt;p&gt;{&lt;/p&gt;

&lt;p&gt;System.out.println("New thread created");&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;}).start();&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;
&lt;/blockquote&gt;




</description>
      <category>java</category>
      <category>functioninterface</category>
      <category>lambdaexpressions</category>
    </item>
    <item>
      <title>Loading Maven dependencies from GitHub</title>
      <dc:creator>Ｃｈｅａｖ Ｓｏｖａｎｎａｒｉｔｈ</dc:creator>
      <pubDate>Fri, 04 Oct 2019 09:08:57 +0000</pubDate>
      <link>https://dev.to/cheav_sovannarith/loading-maven-dependencies-from-github-3666</link>
      <guid>https://dev.to/cheav_sovannarith/loading-maven-dependencies-from-github-3666</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2AHoMkb5M0qinYGc5R" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1024%2F0%2AHoMkb5M0qinYGc5R"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  jitpack.io — github.com
&lt;/h4&gt;

&lt;p&gt;Now you can import a Java library from a GitHub repo using &lt;a href="https://jitpack.io/" rel="noopener noreferrer"&gt;JitPack&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
In your pom.xml:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First Add repository:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;repository&amp;gt;
    &amp;lt;id&amp;gt;jitpack.io&amp;lt;/id&amp;gt;
    &amp;lt;url&amp;gt;https://jitpack.io&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Second Add dependency:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.github.User&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;Repo name&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;Release tag&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Note : for release tag&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before we can use release tag as a version in dependency, we have to create release tag first.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ git tag -a 0.0.1-SNAPSHOT -m "commit message"
$ git push origin --tag


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;*&lt;em&gt;READ MORE *&lt;/em&gt; : &lt;a href="https://git-scm.com/book/en/v2/Git-Basics-Tagging" rel="noopener noreferrer"&gt;https://git-scm.com/book/en/v2/Git-Basics-Tagging&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example : I have a Repository : &lt;a href="https://github.com/sovannarithcheav/artifact-demo.git," rel="noopener noreferrer"&gt;https://github.com/sovannarithcheav/artifact-demo.git,&lt;/a&gt; So the dependency should look like this :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;dependency&amp;gt;
 &amp;lt;groupId&amp;gt;com.github.sovannarithcheav&amp;lt;/groupId&amp;gt;
 &amp;lt;artifactId&amp;gt;artifact-demo&amp;lt;/artifactId&amp;gt;
 &amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;It’s easy, right? 😜&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;READ MORE :&lt;/strong&gt; &lt;a href="https://stackoverflow.com/questions/20161602/loading-maven-dependencies-from-github" rel="noopener noreferrer"&gt;loading-maven-dependencies-from-github&lt;/a&gt;&lt;/p&gt;




</description>
      <category>github</category>
      <category>jitpack</category>
      <category>mavenrepository</category>
    </item>
  </channel>
</rss>
