<?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: Ernestas Kvedaras</title>
    <description>The latest articles on DEV Community by Ernestas Kvedaras (@ekvedaras).</description>
    <link>https://dev.to/ekvedaras</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%2F89585%2F28b7de53-22a2-43a4-b083-dbeb67c5f4b7.jpg</url>
      <title>DEV Community: Ernestas Kvedaras</title>
      <link>https://dev.to/ekvedaras</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ekvedaras"/>
    <language>en</language>
    <item>
      <title>What do I like about Kotlin?</title>
      <dc:creator>Ernestas Kvedaras</dc:creator>
      <pubDate>Mon, 31 May 2021 06:26:19 +0000</pubDate>
      <link>https://dev.to/ekvedaras/what-do-i-like-about-kotlin-3007</link>
      <guid>https://dev.to/ekvedaras/what-do-i-like-about-kotlin-3007</guid>
      <description>&lt;p&gt;This year I've got to learn &lt;a href="https://kotlinlang.org/"&gt;Kotlin&lt;/a&gt; because I wanted to develop a PhpStorm plugin. Kotlin was developed by Jetbrains and is open-sourced. The nice thing about it is that it can be easily mixed with Java and other languages.&lt;/p&gt;

&lt;p&gt;Before I started getting into developing I've watched this &lt;a href="https://www.coursera.org/learn/kotlin-for-java-developers"&gt;Kotlin for Java Developers&lt;/a&gt; course. It was pretty helpful even though I don't work with Java. Plugin development wasn't easy, but there were a few things I've liked about the language itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Collections
&lt;/h2&gt;

&lt;p&gt;Since I primarily work with Laravel (PHP) I was really happy to see a familiar concept of collections. All those nice &lt;code&gt;map&lt;/code&gt;, &lt;code&gt;filter&lt;/code&gt;, &lt;code&gt;distinct&lt;/code&gt;, etc. methods are there. And I used them a lot 🙂&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;numbers&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;listOf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filterNotNull&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;it&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;contains&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filterNotNull&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;filter&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;forEach&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;it&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;
  
  
  Lambdas
&lt;/h2&gt;

&lt;p&gt;As you can see above it has some interesting syntax for &lt;code&gt;map&lt;/code&gt; and &lt;code&gt;filter&lt;/code&gt; for example. Such lambdas will always return the last statement which was something new to me. However, it makes sense and allows for very clean syntax for shorter methods.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;it&lt;/code&gt; points to the current element of iteration. It is possible to change it when needed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="p"&gt;-&amp;gt;&lt;/span&gt;
    &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Everything is an object?
&lt;/h2&gt;

&lt;p&gt;Well, yes and no. Everything can have methods that we can call, but primitives have a special treatment and don't behave like objects (regarding reference). This sometimes allows a very expressive syntax.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="nd"&gt;@JvmStatic&lt;/span&gt;
&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;asPhpClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Project&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nc"&gt;PhpClass&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="nc"&gt;PhpIndex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getInstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;getClassesByFQN&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;firstOrNull&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;In code, you may have places where you have a class fully qualified name and you need to find the class, just do this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;classFQN&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"\App\Models\User"&lt;/span&gt;

&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;class&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;calssFQN&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;asPhpClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// or even&lt;/span&gt;

&lt;span class="s"&gt;"\App\Models\User"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;asPhpClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Add methods to any objects
&lt;/h2&gt;

&lt;p&gt;Because you can add methods to strings, integers, etc., you can also add them to library objects. This may sound daunting at first,  but it is actually very useful. For example, while building &lt;a href="https://plugins.jetbrains.com/plugin/16309-laravel-query"&gt;Laravel Query&lt;/a&gt; plugin, I had to do a lot of checks of classes and methods. Here are a few examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nc"&gt;PhpClass&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;isJoinOrRelation&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nc"&gt;Boolean&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fqn&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="nc"&gt;LaravelClasses&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;JoinClause&lt;/span&gt; &lt;span class="p"&gt;||&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fqn&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="nc"&gt;LaravelClasses&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Relation&lt;/span&gt;

&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nc"&gt;PsiElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;selectsAllColumns&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nc"&gt;Boolean&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;textContains&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;'*'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Overloadable operators
&lt;/h2&gt;

&lt;p&gt;I haven't actually used this one myself but sounds very cool. In kotlin, you can overload operators and describe how 2 objects should be added, subtracted, etc. Here is one of their examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;data class&lt;/span&gt; &lt;span class="nc"&gt;Point&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;operator&lt;/span&gt; &lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nc"&gt;Point&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;unaryMinus&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Point&lt;/span&gt;&lt;span class="p"&gt;(-&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;point&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Point&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(-&lt;/span&gt;&lt;span class="n"&gt;point&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;// prints "Point(x=-10, y=-20)"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, what was mind-blowing initially for me is that things like &lt;code&gt;in&lt;/code&gt;, &lt;code&gt;a[i]&lt;/code&gt;, &lt;code&gt;a(i)&lt;/code&gt; &lt;a href="https://kotlinlang.org/docs/operator-overloading.html#binary-operations"&gt;are also operators&lt;/a&gt;. So a lot of language features are simply operators and added functions.&lt;/p&gt;

&lt;p&gt;This is a very short list, but you get the idea 🙂 There are some more little things to like, I invite you to try it and maybe build some cool plugins for PhpStorm 😅&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>development</category>
      <category>programming</category>
    </item>
    <item>
      <title>Overcome being overwhelmed</title>
      <dc:creator>Ernestas Kvedaras</dc:creator>
      <pubDate>Sun, 16 May 2021 14:16:16 +0000</pubDate>
      <link>https://dev.to/ekvedaras/overcome-being-overwhelmed-pp9</link>
      <guid>https://dev.to/ekvedaras/overcome-being-overwhelmed-pp9</guid>
      <description>&lt;p&gt;From time to time we all may experience being overwhelmed. It doesn't even need to be a burnout. You just feel like you have too much on your plate, not enough time and energy. It could be a big complicated task you are working on or many smaller things you need to do that weighs you down. The mere thinking about it is exhausting. There are ways to overcome this, however.&lt;/p&gt;

&lt;p&gt;The first and the most effective countermeasure is &lt;strong&gt;offloading&lt;/strong&gt; it from your brain. You don't need to worry about it constantly as this is a waste of your mental energy. Simply &lt;strong&gt;write it down&lt;/strong&gt; somewhere visible. Once it is there, your mental resources are freed and can be used to actually get things done.&lt;/p&gt;

&lt;p&gt;Now if you are working on a big task, often you get overwhelmed by many different smaller things you need to do to finish it. I found it very effective to &lt;strong&gt;break that big task into small pieces&lt;/strong&gt; while writing it down. The smaller tasks should not be divisible, so they would not require your memory to be used to remember what still needs to be done. So, the technique is to write down all the steps necessary to complete the bigger tasks and simply do them from top to bottom one by one. If you find that there are more things to do, just add to the list, but finish what you started first.&lt;/p&gt;

&lt;p&gt;This should already be enough to get you going but &lt;strong&gt;don't overwork&lt;/strong&gt;. Rest is very important. No amount of techniques will help if you are simply too tired. Get a good night of sleep, eat well, and have regular breaks. Some find &lt;a href="https://en.wikipedia.org/wiki/Pomodoro_Technique"&gt;the Pomodoro technique&lt;/a&gt; helpful to remain productive throughout the day. However, your body will tell you when it's time for a break, you just need to listen. And when you do, step away completely from what you do to reset. Go outside, talk with your spouse, play with your pet, etc. Usually, this is the time when solutions unexpectedly come to your mind.&lt;/p&gt;

&lt;p&gt;Overcoming being overwhelmed is possible. Offload as much as possible, break it down into smaller manageable pieces, and make sure you are well-rested. Good luck! 🙂&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>time</category>
    </item>
    <item>
      <title>My PhpStorm setup</title>
      <dc:creator>Ernestas Kvedaras</dc:creator>
      <pubDate>Mon, 03 May 2021 14:15:02 +0000</pubDate>
      <link>https://dev.to/ekvedaras/my-phpstorm-setup-527f</link>
      <guid>https://dev.to/ekvedaras/my-phpstorm-setup-527f</guid>
      <description>&lt;p&gt;I work with PHP and I use PhpStorm. Yes - it's paid and beefy IDE. I know others prefer something more lightweight. However, if you manage to tame the power of PhpStorm, simply nothing can match it at the moment.&lt;/p&gt;

&lt;p&gt;Anyway, I'm not here to promote it. I am here simply to share my setup that allows me to be very productive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plugins
&lt;/h2&gt;

&lt;p&gt;Some plugins are a must-have, some are needed only if you are working with a specific stack. There are more plugins I use of course, but these are the main ones.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://plugins.jetbrains.com/plugin/7359-go-to-project"&gt;Go to project&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bmpvc-U7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620028254286/Yb-RfeYbo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bmpvc-U7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620028254286/Yb-RfeYbo.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a must! I simply can't work without this plugin 😀 It allows you to quickly open and switch between projects with a convenient searchable modal instead of going File -&amp;gt; Open Recent.&lt;br&gt;
After installing, don't forget to enable recent projects in Preferences -&amp;gt; Other Settings -&amp;gt; Go To Project Window and bind a shortcut for &lt;code&gt;Go To Project Windows&lt;/code&gt; (I like to use &lt;code&gt;CTRL + ,&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;P.S. Apparently PhpStorm already has a built-in window for this with even more features. &lt;strong&gt;Bind shortcut for &lt;code&gt;Manage Projects...&lt;/code&gt; instead.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://plugins.jetbrains.com/plugin/10059-git-branch-cleaner"&gt;Git Branch Cleaner&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5hGLiKbv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620028705769/4qitnpWcl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5hGLiKbv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620028705769/4qitnpWcl.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Provides an action that can delete old branches that no longer have a remote and are fully merged.&lt;br&gt;
If your workflow includes making a lot of branches this a really nice plugin.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://plugins.jetbrains.com/plugin/13441-laravel-idea"&gt;Laravel Idea&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q3g8-0eO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://plugins.jetbrains.com/files/13441/screenshot_23061.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q3g8-0eO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://plugins.jetbrains.com/files/13441/screenshot_23061.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paid, but an awesome plugin for Laravel developers. It provides a very nice framework integration with a lot of features and is being actively developed. I would say a no-brainer to install. There is a 30-day trial.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://plugins.jetbrains.com/plugin/16309-laravel-query"&gt;Laravel Query&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_fNJ5-Ta--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://user-images.githubusercontent.com/3586184/110513603-b4522000-8106-11eb-9678-985bf286bf4f.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_fNJ5-Ta--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://user-images.githubusercontent.com/3586184/110513603-b4522000-8106-11eb-9678-985bf286bf4f.gif" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This plugin provides database integration for the query and schema builder. This includes table and field autocompletion, navigation, and missing field inspection.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://plugins.jetbrains.com/plugin/9792-key-promoter-x"&gt;Key Promoter X&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This plugin will help you to master the shortcuts. Once you do, you will really pick up the speed.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tips
&lt;/h2&gt;

&lt;p&gt;Some random tips that don't require extra plugins.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://www.jetbrains.com/help/phpstorm/settings-tools-database.html"&gt;Database integration&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is a bit subjective, but I invite you to try. It gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quick database access right there in your editor.&lt;/li&gt;
&lt;li&gt;SQL auto-completion if you need to write plain queries (and for Laravel queries with Laravel Query plugin).&lt;/li&gt;
&lt;li&gt;The best and simplest filtering I've seen in any database tool.&lt;/li&gt;
&lt;li&gt;Ability to set language on columns to enable syntax highlighting (think JSON for example).&lt;/li&gt;
&lt;li&gt;Structure diagrams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And many more. I have to admit I did not fully switch the first or second time I tried it I think. However, I decided to actually try to use it daily and get used to it. I'm not looking back.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://www.jetbrains.com/help/phpstorm/managing-tasks-and-context.html#work-with-tasks"&gt;Task integration&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7fXHnng2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620030273257/AlG4gcZ80.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7fXHnng2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620030273257/AlG4gcZ80.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is again one of those things that I didn't use initially. But once I discovered it can be linked with tools like Jira, GitHub, Trello, etc. I tried them again. In my particular case, we had multi-repo projects.&lt;br&gt;
Switching between tasks also switched branches for all repositories which saved a lot of time for me.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://www.jetbrains.com/help/phpstorm/version-control-integration.html"&gt;VCS integration&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Speaking about git, I don't understand why would anyone would use some additional git app alongside PhpStorm 😀 This is by far the best integration. All in one app, seamless process and the best diff viewer. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B_B-inib--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620030603202/brQbOXrc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B_B-inib--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620030603202/brQbOXrc3.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://www.jetbrains.com/help/phpstorm/using-live-templates.html"&gt;Live templates&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This feature is super cool. You can prepare dynamic snippets of code with variables if needed and apply them in code to avoid constantly typing boilerplate code. You can even define code snippets that wrap selected code with something.&lt;/p&gt;

&lt;p&gt;Usually, I find myself creating project-specific templates (Preferences -&amp;gt; Editor -&amp;gt; Live Templates). However, here is one more generic 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;retry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$TIMES&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$USE&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$SELECTION&lt;/span&gt;&lt;span class="err"&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 can also quickly create live templates by selecting a piece of code and invoking Save as Live Template action or clicking Tools -&amp;gt; Save as Live Template.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.jetbrains.com/help/phpstorm/refactoring-source-code.html"&gt;Refactoring&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is one of the main selling points of PhpStorm - a deep code understanding that allows easy refactoring. Things like extracting variables, methods, classes, moving and renaming things, you name it.&lt;br&gt;
Especially the most used renaming. Never manually rename anything - always use refactoring. It saves so much time and prevents bugs.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.jetbrains.com/help/phpstorm/settings-code-style-php.html"&gt;Code style&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;PhpStorm provides very nice built-in code formatting. Use it. One piece of advice I could give is to agree on a style in your team, export it to the &lt;code&gt;.editorconfig&lt;/code&gt; file and commit it. This way everyone will follow the same style.&lt;/p&gt;

&lt;p&gt;You can even configure to automatically format all your changed lines on commit.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.jetbrains.com/help/phpstorm/running-applications.html"&gt;Run tests&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WDEdgFjQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620041044774/YQZo3jK95.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WDEdgFjQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620041044774/YQZo3jK95.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some people like to have watchers running while writing tests, I like to use PhpStorm. My favorite feature is the ability to run tests based on context. Bind an easy shortcut for it and it will run your tests based on where the cursor is placed. If it is placed inside a test method, it will only run that one test. If placed in the whole test class body it will run all tests in that class. If you select a folder or some specific files it will run tests inside those files. Very convenient.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use specialized search
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TiN0PRWY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620041320902/Q69jkVQ6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TiN0PRWY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1620041320902/Q69jkVQ6b.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A lot of people use the easy double shift triggered search that searches for everything. Why not you would say? Well, because there is too much noise in that search. 99% of the time you know what are you looking for. So, if you are searching for a class, use a dedicated class search with &lt;code&gt;Cmd + O&lt;/code&gt;. For files use &lt;code&gt;Cmd + Shift + O&lt;/code&gt;, for variables, methods, etc. use &lt;code&gt;Cmd + Option + O&lt;/code&gt;. This way you get only the relevant results without noise.&lt;/p&gt;

&lt;h3&gt;
  
  
  Files on the right
&lt;/h3&gt;

&lt;p&gt;If you like a clean look and often hide file view you may like this one. By moving it to the right side (Right Top), you prevent the code from moving left and right when that toolbar is toggled.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cleanup
&lt;/h3&gt;

&lt;p&gt;Help yourself focus and hide the toolbars you don't need. You can toggle most of them in View -&amp;gt; Appearance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keyboard shortcuts
&lt;/h2&gt;

&lt;p&gt;You should of course adapt this to yourself. If you come from vim or other backgrounds, for example, there are predefined keybindings that you should start with. This is just a list of key bindings I always add for my use, so take this as an inspiration. This list also includes some default shortcuts, because I sometimes see people not using them. Key Promoter X plugin should help with that 🙂&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Option + [Up/Down]&lt;/code&gt; - expand and shrink selection based on context&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + D&lt;/code&gt; - duplicate line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + Backspace&lt;/code&gt; - delete line&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Ctrl + G&lt;/code&gt; - select next occurrence (creates multiple cursors)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Option + L&lt;/code&gt; - toggle git integration window&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Option + D&lt;/code&gt; - toggle database integration window&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + K&lt;/code&gt; - open commit window&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + Shift + K&lt;/code&gt; - open push window&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + T&lt;/code&gt; - pull changes from VCS&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Option + B&lt;/code&gt; - open branches box for quick switching and creation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + Shift + T&lt;/code&gt; - switch between class and its test case&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + Option + T&lt;/code&gt; - invoke surround live templates for selected code&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Option + Shift + T&lt;/code&gt; - switch between tasks&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Ctrl + .&lt;/code&gt; - invoike &lt;a href="https://dev.togo-to-projecthttpspluginsjetbrainscomplugin7359-go-to-project"&gt;Go to Project Window&lt;/a&gt; box&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + O&lt;/code&gt; - invoke class search&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + Shift + O&lt;/code&gt; - invoke file search&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + Shift + A&lt;/code&gt; - invoke action search&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + J&lt;/code&gt; - invoke live templates&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + N&lt;/code&gt; - invoke code generation box&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Option + Enter&lt;/code&gt; - invoke intention box for quick fixes and refactorings&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Cmd + Shift + N&lt;/code&gt; - create a &lt;a href="https://www.jetbrains.com/help/phpstorm/scratches.html"&gt;scratch file&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are just starting, I advise you to go to Help -&amp;gt; Keybmap Reference and print it.&lt;/p&gt;

&lt;p&gt;I could expand into each topic in more depth, so let me know if you are interested in any. Happy coding 🙂&lt;/p&gt;

</description>
      <category>phpstorm</category>
      <category>ide</category>
      <category>php</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Growing as a software engineer</title>
      <dc:creator>Ernestas Kvedaras</dc:creator>
      <pubDate>Sun, 25 Apr 2021 19:12:55 +0000</pubDate>
      <link>https://dev.to/ekvedaras/growing-as-a-software-engineer-44lf</link>
      <guid>https://dev.to/ekvedaras/growing-as-a-software-engineer-44lf</guid>
      <description>&lt;p&gt;Do you feel stuck at the current level and can't seem to grow out of a junior role or reach that senior title? Or maybe you feel intimidated by that vast knowledge required of senior engineers? Well, I can tell from experience, knowledge is not everything. Soft skills and your attitude in general, play a big role in advancing your career. I have seen juniors grow very quickly and other developers seemingly plateau in their comfort zone and not growing any further. Here is my personal advice on what to focus on and which qualities to polish in order to improve as a software engineer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep learning
&lt;/h2&gt;

&lt;p&gt;This one is pretty obvious huh? 🤔 However, it is very important. Our industry is moving very fast and if you stay in your comfort zone just working on the same things you will be left behind.&lt;/p&gt;

&lt;p&gt;I'm not saying learn a new language every couple of months. Even though that may open your horizon to new ideas and ways of solving problems. However, keep up to date with the latest developments in your field. Keep track of new tools and ideas floating around.&lt;/p&gt;

&lt;p&gt;Follow the people who are leading the way. Follow those that are sharing ideas, tips, and tutorials. Even though social media is a double-edged sword, I think Twitter is a must-have for developers. There is so much happening there that you may be missing out on.&lt;/p&gt;

&lt;p&gt;Pick a topic that interests you or even better might be useful at work, find learning resources, and become good at it. You don't need to know everything, but keep expanding your skillset bit by bit. However, it is best to choose topics that have immediate value to you or you are genuinely interested in as this will help you stay on track. And don't just watch, practice it 🙂.&lt;/p&gt;

&lt;h2&gt;
  
  
  Care about the product
&lt;/h2&gt;

&lt;p&gt;You don't have to become an expert in every field you are working in. There are people who do that for a living. Your job is to build good solutions. However, building a good solution means first understanding the problem. It is important to understand not only what you are building, but also why. Knowing that may lead to interesting ideas and solutions that you may not have thought about otherwise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Care about customer experience
&lt;/h2&gt;

&lt;p&gt;Again, there are people who have built their whole careers around it. What I mean here is don't be lazy. If you are building a checkbox, please link it with a label 🙂 If your backend action takes longer, show some progress indicator, to let customers know the system is working. Don't rely only on backend validation, give users some early feedback in frontend. In essence, try to use the product yourself and notice the pain points.&lt;/p&gt;

&lt;h2&gt;
  
  
  Care about the code
&lt;/h2&gt;

&lt;p&gt;As there is UX, there is also DX. By focusing on user experience we want to keep our users happy. In the same manner, by caring about developer experience we try to keep developers happy. I am biased as a developer but would say DX is as important as UX.&lt;/p&gt;

&lt;p&gt;Coding is not only a solution to a problem. Coding is also the act of finding the best and creative solution - coding is art. Don't solely focus on making it work. Think about usage as well. Think about code expressiveness. Is it easy to read and comprehend or do you need a notebook to keep track of it?&lt;br&gt;
Is it easily accessible or do you need to do tons of setup every time you want to use it?&lt;/p&gt;

&lt;p&gt;That is why TDD is praised because it forces you to first think about the intended use and only then about implementation. This leads to a better overall design that can stand the tests of time.&lt;/p&gt;

&lt;p&gt;Don't just slap things together. Imagine you will have to support your codebase in 5 years. Care about what you write to make your colleagues and future self happy. Happy developers tend to write better code 🙂&lt;/p&gt;

&lt;h2&gt;
  
  
  Be proactive
&lt;/h2&gt;

&lt;p&gt;If you see something that needs improving, do it. Or at least bring it to attention. If nobody seems to care too much, then do it anyway. Don't just drop everything of course, but find some small chunks of time and work towards making your life easier.&lt;/p&gt;

&lt;p&gt;Now, that doesn't mean work on anything you like 🙂 Your main tasks are still your priority. However, sometimes your experience tells you that addressing certain things will either save from issues later or will increase productivity. Your job is to provide arguments for those changes. Always consider the time required for proposed changes and the value gained from them. Sometimes it is simply not worth it.&lt;/p&gt;

&lt;p&gt;For smaller improvements or fixes, you can always implement them and send a pull request instead of just living with it or complaining only. Your effort will be appreciated.&lt;/p&gt;

&lt;h2&gt;
  
  
  Be respectful
&lt;/h2&gt;

&lt;p&gt;You can't really earn respect if you don't respect others. Keep in mind that not everyone has the same knowledge and experience. Don't judge developers who are earlier in their career. Remember, you were in their place once as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ask
&lt;/h2&gt;

&lt;p&gt;If you are stuck, just ask for help. There is no shame in that. Being able to ask for help is actually a valuable skill. Everyone gets stuck sometimes. Talking with your colleague may be faster than you pushing through on your own. Even if you take into account the time spent by both of you. Even if you are alone now, ask your &lt;a href="https://en.wikipedia.org/wiki/Rubber_duck_debugging"&gt;rubber duck&lt;/a&gt; for help 🙂&lt;/p&gt;

&lt;p&gt;There is always someone who can teach you something. No matter how senior you are, you can learn from others. &lt;/p&gt;

&lt;h2&gt;
  
  
  Help
&lt;/h2&gt;

&lt;p&gt;The same goes the other way around. Don't look down on others. Help them and guide them. Mentoring not only helps juniors but you as well. You learn to teach and put your thoughts into clear and understandable sentences. This way both of you grow and make your team even more awesome.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rest
&lt;/h2&gt;

&lt;p&gt;Don't underestimate the importance of rest. Being tired and overloaded with work can make you miserable. Even small tasks can make you angry. Like you already know - happy developers write better code. Well, angry developers do the exact opposite. And being tired and hungry can make you angry very quickly.&lt;/p&gt;

&lt;p&gt;Have enough hours of sleep, do short breaks. Have fun after work and take care of your work-life balance. Eating well and good night's sleep will help you stay focused and motivated throughout the day. Learning to not bring your work home and keep your mind off it when resting will help you to avoid burnout.&lt;/p&gt;

&lt;p&gt;Sometimes, it seems like you are stuck and even rest does not help. It seems like everything irritates your and rest time just doesn't help as it used to. You might be approaching burnout. However, a very good solution in such situations is exercise. It may sound like the opposite of rest, but it is a rest for your mind and a very effective one. A short workout or a walk can do wonders in refreshing your mind and boosting your mood.&lt;/p&gt;

&lt;p&gt;So, take care of yourself, be respectful and curious. Don't be afraid to ask, but don't hesitate to help either. Keep practicing and learning and one day you will look back and realize that you've come a long way 🙂.&lt;/p&gt;

</description>
      <category>career</category>
      <category>growth</category>
    </item>
    <item>
      <title>Can you find joy in your routine?</title>
      <dc:creator>Ernestas Kvedaras</dc:creator>
      <pubDate>Sun, 18 Apr 2021 13:59:58 +0000</pubDate>
      <link>https://dev.to/ekvedaras/can-you-find-joy-in-your-routine-e76</link>
      <guid>https://dev.to/ekvedaras/can-you-find-joy-in-your-routine-e76</guid>
      <description>&lt;p&gt;We hear a lot about how routine may drive you into depression. How it can make your life miserable, by  making your days all the same, gray and boring. This may be especially relevant for people who work in the office. You get up, get a shower, breakfast, commute and then spend all day next to the same desk just to get back home tired and not wanting to do anything else. This can be even worse these days during COVID as a lot of us spend most of our time at home, thus making it all even more static.&lt;/p&gt;

&lt;p&gt;Well, what if we can turn this around? What if we can harness this routine and actually benefit from it?&lt;br&gt;
Routine can actually put a smile on your face, recharge your battery and make you just a little happier in that moment.&lt;/p&gt;

&lt;p&gt;I'm sure if you ever had an interest in productivity, you've come across a term - morning routine. However, as I alluded earlier it does not necessarily need to take the whole morning. It can also be small moments scattered throughout the day and week. A routine could be you enjoying your favourite cup of coffee or tea at the same time each day. It can be a short walk after or during work to refresh your mind,&lt;br&gt;
an interesting book. Heck, it can even be cooking food.&lt;/p&gt;

&lt;p&gt;The important thing is being mindful. Give your full attention to those small routine things you do. Notice everything about them - every smell, sound, touch and visual. Engage all senses and try to look into that activity with a mindset of a child. Pay attention to all those little details that you skimp through.&lt;/p&gt;

&lt;p&gt;Let's take a simple act of drinking coffee. Feel how the cup radiates heat to your hands. Notice the smell. Does it bring any memories or feelings? Look at the steam coming up from the cup. How does it make you feel? Enjoy the present, the moment, the realization that you are about to drink your favourite beverage. Then take a sip and feel the taste. Feel the temperature and aftertaste. It's a simple activity that many do daily and don't even notice. I personally, really enjoy the feeling that comes with drinking coffee. I usually do it while working and that feeling of extra focus is really nice. If I'm in a meeting however, that feeling goes unnoticed. Therefore, I try to do it when I'm actually coding. And like mentioned before, with each sip I try to notice it and really appreciate it.&lt;/p&gt;

&lt;p&gt;Drinking coffee doesn't sound like a routine you say? Well make it one. Find a time when you enjoy it the most. It works best if you can find time that would be available for that activity the most consistently. Maybe there is something you already do daily. Find it and make it mindful. I for example, drink a glass of water when I wake up. I found it much more interesting when I started paying attention to it. I go to watch the buildings lit by the morning sun. Notice how the light is different then during the day or evening. I listen to the birds. Then drink water and observe how it wakes up my body.&lt;/p&gt;

&lt;p&gt;Your routine day is filled with mundane things you can find joy in. Are you commuting via public transport? Observe the people. Notice how some are sleepy and some are up and happy. What do you think their day is going to be? Maybe you are driving to work? Pay attention to the road of course, but also notice the sky. If it is an early morning or late evening, the sky is usually beautiful. Is it raining? Notice the droplets and how they distort the light when you are waiting at the stop. Are you stuck behind the desk all day? Make a reminder to simply stand up and watch through the window. Maybe walk outside and notice everything around you, feel the sun warming you up.&lt;/p&gt;

&lt;p&gt;Life is beautiful and exciting. All those little things, however repetitive and boring they are, can be the ones that bring you peace and clarity. Find and embrace them. Add new ones if you feel like it. Simply paying attention and giving your mind and body predictable little joyful moments will make your day colorful again.&lt;/p&gt;

</description>
      <category>life</category>
      <category>lifestyle</category>
    </item>
  </channel>
</rss>
