<?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: Nurbol Alpysbayev</title>
    <description>The latest articles on DEV Community by Nurbol Alpysbayev (@anurbol).</description>
    <link>https://dev.to/anurbol</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%2F92610%2F07f8e0b7-83fd-4bc7-9e41-b29fe23bb52b.jpeg</url>
      <title>DEV Community: Nurbol Alpysbayev</title>
      <link>https://dev.to/anurbol</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anurbol"/>
    <language>en</language>
    <item>
      <title>How to be a productive and happy guy (or team).</title>
      <dc:creator>Nurbol Alpysbayev</dc:creator>
      <pubDate>Fri, 07 Feb 2020 06:47:23 +0000</pubDate>
      <link>https://dev.to/anurbol/how-to-be-a-productive-and-happy-guy-or-team-141</link>
      <guid>https://dev.to/anurbol/how-to-be-a-productive-and-happy-guy-or-team-141</guid>
      <description>&lt;p&gt;After 13 years of development I know exactly what makes &lt;br&gt;
software development a productive, efficient and happy activity.&lt;br&gt;
And that is: keeping number of bugs, regressions and confusion &lt;br&gt;
as low as possible, near zero to be precise.&lt;/p&gt;

&lt;p&gt;I believe, I personally have achieved that. I used to spend about 80% of my time &lt;br&gt;
on fixing bugs, being confused and depressed. Now, whenever I write code,&lt;br&gt;
it works as intended almost immediately. I am also able to write big projects alone.&lt;br&gt;
Of course, my big experience plays a large role, however there is something&lt;br&gt;
that helps me probably even more than my experience. A methodology, which I &lt;br&gt;
have spent a couple of years to think through. I am going to share it with you, and also &lt;br&gt;
I want to share with you the &lt;strong&gt;VSCode&lt;/strong&gt; extension that supports that methodology.&lt;/p&gt;

&lt;p&gt;As a lot of people I used to code in &lt;strong&gt;JS&lt;/strong&gt; and that was fine. Until I started &lt;br&gt;
to work on bigger and bigger projects, and one day I reached the point&lt;br&gt;
 when I no longer wanted to fix all the bugs caused by the&lt;br&gt;
weak type system. That was the time when I switched to TypeScript. &lt;br&gt;
And I was incredibly happy with that. &lt;strong&gt;TypeScript&lt;/strong&gt; kept preventing so many silly errors&lt;br&gt;
that I was able to write even bigger projects. I thought that from that point &lt;br&gt;
I could write projects of any size, because you know, whenever I forgot something&lt;br&gt;&lt;br&gt;
TypeScript would kindly remind me.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V7PvszVd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2.bp.blogspot.com/-6WRyjrQv9fY/Wp3L5kXiGmI/AAAAAAAAHdo/pkM2cNfy-OAX5Rq-2I8TBjq0bm5rdbCawCLcBGAs/s1600/js-to-ts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V7PvszVd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://2.bp.blogspot.com/-6WRyjrQv9fY/Wp3L5kXiGmI/AAAAAAAAHdo/pkM2cNfy-OAX5Rq-2I8TBjq0bm5rdbCawCLcBGAs/s1600/js-to-ts.png" alt="js ts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I started to write my most complex project to time, alone. Everything &lt;br&gt;
was cool, TypeScript kept reminding me about all the types I had. &lt;br&gt;
But soon I started to feel some anxiety and headache. That feeling was familiar to me,&lt;br&gt;
from the times when I tried to comprehend some &lt;strong&gt;spaghetti JS code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But wait, that was my code, and it was written in a typed language, so why &lt;br&gt;
did my head feel so badly? It's hard to believe, but it turned out that &lt;br&gt;
in the middle of the project I started forgetting things like: &lt;br&gt;
what was the project about, why was I writing it at all, what was its purpose, &lt;br&gt;
and what did the code I had already written do on the high-level.&lt;/p&gt;

&lt;p&gt;Those problems were shocking for me, but I had found a simple and intuitive solution &lt;br&gt;
to them - documentation. A lot of it. And it helped. Until the time when &lt;br&gt;
the documentation started to rot. &lt;strong&gt;That was a catastrophe&lt;/strong&gt;. A documentation that &lt;br&gt;
starts to rot does much more harm than no documentation at all. It confuses, it misleads and &lt;br&gt;
it multiplies bugs. &lt;/p&gt;

&lt;p&gt;I've wrote just a few paragraphs, but I am writing about quite long&lt;br&gt;
and miserable periods of my life. I lost faith and confidence that I am able to write &lt;br&gt;
something significant alone, even if I had all those years of experience. &lt;br&gt;
In this depression I started to think what could be done. Is it even possible &lt;br&gt;
to write documentation in such way that it won't rot? &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WuFNGtBz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/images-prod.healthline.com/hlcmsresource/images/topic_centers/2018-10/9329-stages-of-burnout-1296x728-header.jpg%3Fw%3D1155" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WuFNGtBz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/images-prod.healthline.com/hlcmsresource/images/topic_centers/2018-10/9329-stages-of-burnout-1296x728-header.jpg%3Fw%3D1155" alt="burnout"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next few months I had come up with thousands of ideas, I was thinking them through,&lt;br&gt;
filtering, testing them. In the end all of that has crystallyzed in &lt;strong&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=nur-publisher.hypercomments-vscode"&gt;HyperComments&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I haven't sleep tonight, because I wanted to finally fix the most critical bugs, so &lt;br&gt;
this article may be a little raw, chaotic and shallow. That is also the reason why I am &lt;br&gt;
going to only show one examples of usage, but you can follow the link (below) and see much more.&lt;/p&gt;
&lt;h2&gt;
  
  
  "The Plan" Technique
&lt;/h2&gt;

&lt;p&gt;When you have a very complex task, that is tough to plan out entirely in your head, then &lt;br&gt;
write it out as a plan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/*
#Task 1#
#Task 2#
#Task 3#
...
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;While writing this plan out, you will be naturally breaking down the task into smaller ones,&lt;br&gt;
and you'll be getting a more and more detailed image of how the whole system should work.&lt;/p&gt;

&lt;p&gt;When you finally have broken down the big task into smaller ones, and you are confident &lt;br&gt;
that there is no or little obscurity left, you can start making the first task (Task 1).&lt;br&gt;
Just start it with this comment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Task&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;@&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;What's just happened is your plan is now connected with the code implementation.&lt;br&gt;
Now, if you want to get the big picture, you may look at the plan, and whenever you want &lt;br&gt;
to go down the details, you may search &lt;code&gt;@Task 1@&lt;/code&gt; with the help of your code editor.&lt;br&gt;
If you're using VSCode, though, &lt;strong&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=nur-publisher.hypercomments-vscode"&gt;HyperComments&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
could help greatly: just click on a plan item and you'll be automatically navigated&lt;br&gt;
to the implementation code. The extension does more than that! It will also &lt;br&gt;
underline with red color those plan items which do not have corresponding implementation &lt;br&gt;
tags (anchors). So that you won't forget to implement any of the steps!&lt;/p&gt;

&lt;p&gt;Again, that's only one technique of many, I am going to continue writing on this subject, but I really need your feedback! Please support me by liking this article, trying the extension, filing bug reports, any of thus will be greatly appreciated. &lt;/p&gt;

&lt;p&gt;I hope this will help someone!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>vscode</category>
      <category>programming</category>
      <category>documentation</category>
    </item>
    <item>
      <title>+5 to productivity with no effort</title>
      <dc:creator>Nurbol Alpysbayev</dc:creator>
      <pubDate>Sat, 18 Jan 2020 17:14:25 +0000</pubDate>
      <link>https://dev.to/anurbol/5-to-productivity-with-no-effort-2onl</link>
      <guid>https://dev.to/anurbol/5-to-productivity-with-no-effort-2onl</guid>
      <description>&lt;p&gt;This is a very short introductory article to find out if anyone is interested. &lt;/p&gt;

&lt;p&gt;So how many of you feel that comments to code, so called "documentation" sucks? &lt;br&gt;
Do you think it's way too often is unreliable, misleading and confusing? &lt;/p&gt;

&lt;p&gt;Let's talk about why does that happen, and then how can it be fixed with a simple VSCode extension.&lt;/p&gt;

&lt;p&gt;So first, you probably once stumbled upon a code piece like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// This function collides Hadrons.&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;hadron_collider&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="cm"&gt;/* ...whatever... */&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Let's say you're a newbie in this project, and you don't know much. And you don't know what's &lt;code&gt;Hadron&lt;/code&gt;. You're too shy to distract the more experienced teammates so you start searching the codebase. Of course you're not sure if you can find anything in the codebase about it, but if you're lucky enough, you'll find the description of &lt;code&gt;Hadron&lt;/code&gt; somewhere a few thousand lines of code above.&lt;/p&gt;

&lt;p&gt;Now wouldn't it be easier if the word &lt;code&gt;Hadrons&lt;/code&gt; was a link to the definition? A link, like those that you have in the browser, you know? Something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// This function collides #Hadrons.&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;hadron_collider&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="cm"&gt;/* ...whatever... */&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Then you could click on &lt;code&gt;#Hadrons&lt;/code&gt; and go directly to the definition, that would look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* 
@Hadron @Hadrons
In particle physics, a hadron /ˈhædrɒn/ (About this soundlisten) 
(Greek: ἁδρός, hadrós; "stout, thick") is a subatomic composite 
particle made of two or more quarks held together by the strong 
force in a similar way as molecules are held together by the 
electromagnetic force. Most of the mass of ordinary matter comes 
from two hadrons, the proton and the neutron.
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Note the &lt;code&gt;@Hadron&lt;/code&gt; and &lt;code&gt;@Hadrons&lt;/code&gt; which denote the &lt;code&gt;anchor&lt;/code&gt;s for corresponding &lt;code&gt;link&lt;/code&gt;s (&lt;code&gt;#Hadron&lt;/code&gt; and &lt;code&gt;#Hadrons&lt;/code&gt; accordingly).&lt;/p&gt;

&lt;p&gt;So you don't spend time for searching and you don't have to worry if you could find the definition at all. &lt;/p&gt;

&lt;p&gt;Now the good news is, you can do that just now, just download the VSCode Extension called &lt;a href="https://marketplace.visualstudio.com/items?itemName=nur-publisher.hypercomments-vscode&amp;amp;ssr=false#overview"&gt;HyperComments&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is only introduction, I am very curious if someone is interested, and if yes, I am going to write about the advanced usage and stuff.&lt;/p&gt;

&lt;p&gt;Bonus:&lt;br&gt;
the trick above you can do in any language or file format. However, for TypeScript and JavaScript (C++, Rust, Java etc. support is coming) you can also mention any in-language namespaces:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;Hadrons&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Hadron&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;

&lt;span class="c1"&gt;// This function collides #Hadrons&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;Hadron&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

&lt;span class="c1"&gt;// This function collides #Hadron &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now, whenever you refactor, you don't have to guess if the documentation may become obsolete. HyperComments will warn you about that by underlining with red color the old names!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tooling</category>
      <category>typescript</category>
      <category>javascript</category>
    </item>
    <item>
      <title>What is your favorite way to find the hottest packages?</title>
      <dc:creator>Nurbol Alpysbayev</dc:creator>
      <pubDate>Thu, 25 Oct 2018 10:06:33 +0000</pubDate>
      <link>https://dev.to/anurbol/what-is-your-favorite-way-to-find-the-hottest-packages-3lc6</link>
      <guid>https://dev.to/anurbol/what-is-your-favorite-way-to-find-the-hottest-packages-3lc6</guid>
      <description>&lt;p&gt;Hi there!&lt;/p&gt;

&lt;p&gt;Nowadays one of the main skills of a developer is to find right library/package/tool. Otherwise, months or even years of work can be wasted.&lt;/p&gt;

&lt;p&gt;Of course, there are some most obvious ways to find popular/trending stuff:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google (searching subjects you are interested in)&lt;/li&gt;
&lt;li&gt;Github (trending, observing what your followees like)&lt;/li&gt;
&lt;li&gt;Twitter (you should subscribe to industry activists)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However that's well known things. But there have to be other approaches. For instance, there is cool Chrome extension I found few months ago:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/kamranahmedse/githunt"&gt;GitHunt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But maybe there is more?&lt;br&gt;
How do you find the right tools for your work?&lt;/p&gt;

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