<?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>Forem: Soumik Chakraborty</title>
    <description>The latest articles on Forem by Soumik Chakraborty (@soumikchakrab11).</description>
    <link>https://forem.com/soumikchakrab11</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%2F345204%2Fae7e5a88-a571-4e2a-a14e-8c140e2e1c15.jpg</url>
      <title>Forem: Soumik Chakraborty</title>
      <link>https://forem.com/soumikchakrab11</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/soumikchakrab11"/>
    <language>en</language>
    <item>
      <title>Shifting Linux Filesystem From One SSD To Another</title>
      <dc:creator>Soumik Chakraborty</dc:creator>
      <pubDate>Tue, 08 Aug 2023 10:43:08 +0000</pubDate>
      <link>https://forem.com/soumikchakrab11/shifting-linux-filesystem-from-one-ssd-to-another-1dbl</link>
      <guid>https://forem.com/soumikchakrab11/shifting-linux-filesystem-from-one-ssd-to-another-1dbl</guid>
      <description>&lt;h4&gt;
  
  
  Storyline
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;I use my gaming laptop as a daily driver for streaming and coding since I shifted to a new city. The base storage of the laptop is a 128G ssd in which I have a running archlinux installation with EFI boot partition and Linux filesystem partition. Now I wanted to play games on &lt;a href="https://lutris.net/"&gt;Lutris&lt;/a&gt; but my root partition only being 128G I need more space for more games.&lt;br&gt;
I bought a 500G ssd and an external M.2 to USB adapter so that I can move my installation there.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Execution
&lt;/h4&gt;

&lt;p&gt;First we need to create a similar partition table in the new ssd. Lets say when we connected the ssd using the external M.2 USB adapter its being detected as &lt;strong&gt;/dev/sdc&lt;/strong&gt;. Check the device from the following command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;fdisk &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Lets say our root file system is on device
&lt;/h4&gt;

&lt;p&gt;/dev/nvme0n1, check the partition table against /dev/nvme0n1 by using the same command as above&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;fdisk &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iZLCbHUP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zowxh8vnzbw4culrn00v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iZLCbHUP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zowxh8vnzbw4culrn00v.png" alt="Image description" width="800" height="310"&gt;&lt;/a&gt;&lt;br&gt;
In my case I have two partitions against nvme0n1&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;nvme0n1p1  300M   EFI System&lt;br&gt;
nvme0n1p2  118.9G Linux filesystem&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Now I will try to replicate a similar file system to /dev/sdc
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;fdisk /dev/sdc
&lt;span class="c"&gt;# now press m from help&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--woU7bsZy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4a1hqtfeks60em89ummc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--woU7bsZy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4a1hqtfeks60em89ummc.png" alt="Image description" width="800" height="97"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;press g to create a new gpt partition table&lt;/li&gt;
&lt;li&gt;press n to create the first partition &lt;/li&gt;
&lt;li&gt;press enter to accept the default starting sector &lt;/li&gt;
&lt;li&gt;then enter +300M to create a partition with ending sector allowing a 300MB partition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KQZRnCfx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g15n57wbq6of8dn9p0dh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KQZRnCfx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g15n57wbq6of8dn9p0dh.png" alt="Image description" width="800" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;press t to change the partition type &lt;/li&gt;
&lt;li&gt;press L to list  all existing partition numbers and choose the number listed against the EFI System otherwise the default would be linux filesystem&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P__C_NFk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrbe3pwfjf4hj8rnefh1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P__C_NFk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrbe3pwfjf4hj8rnefh1.png" alt="Image description" width="800" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In my case EFI System is listed against 1 so I enter 1 as input and press enter &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---19gtwan--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ig87i0nvx8ri41irdgru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---19gtwan--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ig87i0nvx8ri41irdgru.png" alt="Image description" width="800" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  After the partitions has been created we can replicate data from one partition to another using dd command
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# copy the EFI System data&lt;/span&gt;
&lt;span class="nb"&gt;sudo dd &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/nvme0n1p1 &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/sdc1

&lt;span class="c"&gt;# copy the linux filesystem data&lt;/span&gt;
&lt;span class="nb"&gt;sudo dd &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/nvme0n1p2 &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/sdc2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Now use we need to resize the dd filesystem of sdc2 to allow the whole ssd space
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;resize2fs /dev/sdc2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  We are not done yet we still need to refresh the boot partition grub settings against the new storage in which we replicated the file system,
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;First create a linux bootable live usb, in my case I am using ubuntu.&lt;/li&gt;
&lt;li&gt;Replace the ssd with the new ssd and bootup the system using the live usb created.&lt;/li&gt;
&lt;li&gt;Now we need to manually mount the partitions before we can update grub &lt;/li&gt;
&lt;li&gt;First we mount the linux file system partition
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# first we mount the linux file system&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;mount /dev/nvme0n1p2 /mnt

&lt;span class="c"&gt;# then we mount the EFI partition&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;mount /dev/nvme0n1p1 /mnt/boot/efi

&lt;span class="c"&gt;# then we bind mount before performing chroot&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;mount &lt;span class="nt"&gt;--bind&lt;/span&gt; /dev /mnt/dev
&lt;span class="nb"&gt;sudo &lt;/span&gt;mount &lt;span class="nt"&gt;--bind&lt;/span&gt; /proc /mnt/proc
&lt;span class="nb"&gt;sudo &lt;/span&gt;mount &lt;span class="nt"&gt;--bind&lt;/span&gt; /sys /mnt/sys

&lt;span class="c"&gt;# now we perform the chroot command&lt;/span&gt;
&lt;span class="nb"&gt;sudo chroot&lt;/span&gt; /mnt

&lt;span class="c"&gt;# now we perform the grub install and grub update commands&lt;/span&gt;
grub-install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Now we are done. Reboot the system and boot from the storage device itself the operating system should boot up fine &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>linux</category>
      <category>archlinux</category>
      <category>ubuntu</category>
      <category>admin</category>
    </item>
    <item>
      <title>How To Agile</title>
      <dc:creator>Soumik Chakraborty</dc:creator>
      <pubDate>Mon, 17 Aug 2020 02:04:24 +0000</pubDate>
      <link>https://forem.com/soumikchakrab11/how-to-agile-4l14</link>
      <guid>https://forem.com/soumikchakrab11/how-to-agile-4l14</guid>
      <description>&lt;h4&gt;
  
  
  Agile development defines a team that shows traits like collaborative efforts, self-organizing, and cross-functionality. There are mainly two frameworks for agile project management &lt;em&gt;KANBAN&lt;/em&gt; and &lt;em&gt;SCRUM&lt;/em&gt;.
&lt;/h4&gt;

&lt;h4&gt;
  
  
  KANBAN
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;This particular framework defines a continuous flow of work to the team thus focusing on efficiency as the team always knows what's the next task to come after the current one is finished.&lt;br&gt;
Visualize it as a set of cards with a predefined set of works to be done and the due process completes a given project. These well-defined cards are atomic tasks. Teams can be divided with a set of cards to be completed.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;ul&gt;
&lt;li&gt;DevOps | Github pipelines, dockers and cloud management&lt;/li&gt;
&lt;li&gt;Backend | Api development, documenting &lt;/li&gt;
&lt;li&gt;Frontend | Boilerplate, Themeing, Component flow mapping&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  KANBAN FLOW
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KcoLTJm1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/e95mtf4ljuojh56g8iy7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KcoLTJm1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/e95mtf4ljuojh56g8iy7.png" alt="Alt Text" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  SCRUM
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;This framework has a given time frame as the sprint window like 1 week or 2 weeks. Given tasks are divided into sets, estimating deliverables in the time frame chosen. Then these sets of work are allotted to teams to be sprinted upon in the given window. At the end of the sprint window, the external (task creator | scrum master) takes the list of work done.&lt;br&gt;
The incomplete tasks/ bugs encountered in the given window is sprinted in the next time frame.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ex: - Let's take the 1st-week window&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DevOps:- sets docker-compose and GitHub workflows&lt;/li&gt;
&lt;li&gt;Backend:- Designs API listing to be ingested and documents&lt;/li&gt;
&lt;li&gt;Frontend :- Sets up bolierplate and themeing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  SCRUM FLOW
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zm74mRvJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/0fwzoh0v1v1v8ivev734.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zm74mRvJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/0fwzoh0v1v1v8ivev734.png" alt="Alt Text" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  PROS
&lt;/h3&gt;

&lt;h4&gt;
  
  
  KANBAN
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;FLEXIBILITY&lt;/strong&gt;:- The team is never overloaded with work as it only advances to the next task once the current ones done. The team is free to choose the order of completion of the tasks allotted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;INCREASED THROUGHPUT&lt;/strong&gt;:- Efficiency is the first priority as the team always knows what to do next and thus doesn't sits idle or involves time on planning or strategies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GOOD COMMUNICATION&lt;/strong&gt;:- The team works in a closely coupled internal structure as it focuses to its own deliverables.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  SCRUM
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;QUICK PLANNING&lt;/strong&gt;:- As the team only needs 1/2 weeks of task set, so planning could be made quickly to get the progress started sooner. While the team's busy with the current set of work the scrum master can plan for the next window.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GREATER COLLABORATION&lt;/strong&gt;:- The interdependence among teams is not an issue as the teams coupled, share a common set of deliverables.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SELF ORGANIZING&lt;/strong&gt;:- As the team is provided with a big set of deliverables so the teams can plan atomic tasks on its own. Thus atomic planning is still in the dev team's hands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAPID IMPROVEMENT&lt;/strong&gt;:- The issues in the current sprinted work can be dealt with in the next sprint. Focusing only on changes assures the robustness of outputs from each window.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  CONS
&lt;/h3&gt;

&lt;h4&gt;
  
  
  KANBAN
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;CAN FALL APART QUICKLY&lt;/strong&gt;:- If a project has a coupling dependency between teams, one team's lag or incompetency causes delivery issues on its end but also creates a domino effect on other teams thus the project falls apart and needs replanning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NEED CONSTANT FLOW OF WORK&lt;/strong&gt;:- As the throughput is high the teams need a constant inflow of work. If it's not attended to, the idle time of the team will increase and thus the project might fall apart.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DEADLINE PREDICTION IS TOUGH&lt;/strong&gt;:- As the teams are free to choose the precedence of work and moves to the next set of work after the previous one has clearance thus the final deadline of the whole project is quite a hassle to predict and might often be impossible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PRIORITY OF WORK IS NOT STATIC&lt;/strong&gt;:- As the team itself sets the precedence, it often differs from the planner's perspective and that leads to issues.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  SCRUM
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;SPRINT REVIEW LEADS TO MORE MEETINGS&lt;/strong&gt;:- Each sprint review takes comparatively more time and involves more meetings than kanban. Thus this leads to eating up more dev time in standups and meets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REQUIRES A LITTLE TIME TO GET IN PREDICTION FLOW&lt;/strong&gt;:- When a new project starts off, timeline prediction takes some initial sprints to be set as the team takes some time to get used to the process flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PROPER WORKLOAD PLANNING&lt;/strong&gt;:- If the task set is not correctly broken down to the team's throughput in a timeframe, each set can take more time to be completed than anticipated thus breaking the flow.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Some softwares to manage agile projects are&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.atlassian.com/software/jira"&gt;Jira&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://trello.com"&gt;Trello&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://monday.com"&gt;Monday&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;wish this helps you follow deadlines better&lt;/em&gt;&lt;/p&gt;

</description>
      <category>agile</category>
      <category>productivity</category>
      <category>management</category>
      <category>deadline</category>
    </item>
  </channel>
</rss>
