<?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: Andres Cespedes Morales</title>
    <description>The latest articles on Forem by Andres Cespedes Morales (@pedes).</description>
    <link>https://forem.com/pedes</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%2F27175%2F8a2d1fd3-4b7e-4d74-a724-e7051a6bf52e.jpeg</url>
      <title>Forem: Andres Cespedes Morales</title>
      <link>https://forem.com/pedes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pedes"/>
    <language>en</language>
    <item>
      <title>Kickstart Your Blog with Astro.js: Introducing the Blog Starter Template 🚀</title>
      <dc:creator>Andres Cespedes Morales</dc:creator>
      <pubDate>Sun, 01 Dec 2024 11:47:05 +0000</pubDate>
      <link>https://forem.com/pedes/kickstart-your-blog-with-astrojs-introducing-the-blog-starter-template-29l7</link>
      <guid>https://forem.com/pedes/kickstart-your-blog-with-astrojs-introducing-the-blog-starter-template-29l7</guid>
      <description>&lt;p&gt;Are you ready to launch a blazing-fast, SEO-friendly blog with minimal effort? Look no further! This &lt;strong&gt;Astro.js Blog Starter Template&lt;/strong&gt; simplifies your journey and gives you the tools to create a standout blog in no time.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌟 Features That Make This Template Shine
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Minimal Styling&lt;/strong&gt;: A clean slate to make it uniquely yours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blazing Performance&lt;/strong&gt;: Achieve a perfect 100/100 Lighthouse score.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SEO-Optimized&lt;/strong&gt;: Built-in support for canonical URLs and OpenGraph data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content-Rich&lt;/strong&gt;: Markdown &amp;amp; MDX support for effortless content creation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comprehensive Support&lt;/strong&gt;: Includes sitemap and RSS feed generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Static Assets&lt;/strong&gt;: Seamless handling of images and other assets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📂 Project Structure: What’s Inside?
&lt;/h2&gt;

&lt;p&gt;The template is organized to help you hit the ground running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;├── public/              # Static assets (e.g., images)
├── src/
│   ├── components/      # UI components
│   ├── content/         # Markdown and MDX collections
│   ├── layouts/         # Reusable layouts
│   └── pages/           # Routes and pages
├── astro.config.mjs     # Astro configuration
├── package.json         # Project dependencies
└── README.md            # Documentation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🛠️ Get Started in Minutes!
&lt;/h2&gt;

&lt;p&gt;1️⃣ Clone the Repository&lt;br&gt;
Head over to the repository and clone it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/pedes/astrojs-blog-starter-website.git
cd astrojs-blog-starter-website
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2️⃣ Install Dependencies&lt;br&gt;
Install all required dependencies using npm:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3️⃣ Run the Development Server&lt;br&gt;
Start your local development server to see your blog in action:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Your blog will be live at &lt;a href="http://localhost:4321" rel="noopener noreferrer"&gt;http://localhost:4321&lt;/a&gt;! 🎉&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;4️⃣ Customize Your Blog&lt;br&gt;
Dive into the src/ folder to add your content, tweak components, and style your blog to perfection.&lt;/p&gt;

&lt;p&gt;If you’re as excited about Astro.js as I am, give &lt;a href="https://github.com/pedes/astrojs-blog-starter-website" rel="noopener noreferrer"&gt;this&lt;/a&gt; repo a ⭐ on GitHub and share your feedback.&lt;/p&gt;

&lt;p&gt;Let’s build something extraordinary together. Happy blogging! &lt;br&gt;
Be Extraordinary. Andres Pedes.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>blogging</category>
      <category>javascript</category>
      <category>templates</category>
    </item>
    <item>
      <title>How do you generate your certificates? 🔏</title>
      <dc:creator>Andres Cespedes Morales</dc:creator>
      <pubDate>Mon, 07 Sep 2020 10:38:02 +0000</pubDate>
      <link>https://forem.com/pedes/how-do-you-generate-your-certificates-5h32</link>
      <guid>https://forem.com/pedes/how-do-you-generate-your-certificates-5h32</guid>
      <description>&lt;p&gt;This Week's post is a little bit different. It's time to learn from your experiences. &lt;/p&gt;

&lt;p&gt;So far, I've been using the keytool from Java and I've found this open-source tool Keystore Explorer (&lt;a href="https://github.com/kaikramer/keystore-explorer"&gt;https://github.com/kaikramer/keystore-explorer&lt;/a&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you use a different tool, or how do you even manage the certificates?
&lt;/h3&gt;

</description>
      <category>discuss</category>
      <category>watercooler</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Make Your GitHub Profile Great Again!</title>
      <dc:creator>Andres Cespedes Morales</dc:creator>
      <pubDate>Sun, 16 Aug 2020 15:24:11 +0000</pubDate>
      <link>https://forem.com/pedes/make-your-github-profile-great-again-oan</link>
      <guid>https://forem.com/pedes/make-your-github-profile-great-again-oan</guid>
      <description>&lt;p&gt;Last Month (July 2020) GitHub released a feature to allow users to create profile-level README to display an interesting view of their profiles.&lt;/p&gt;

&lt;p&gt;You may want to add personal information about yourself in your bio, like previous projects you've contributed to, or interests you have that other person may like to know about.&lt;/p&gt;

&lt;p&gt;If you want to get access to the README template go to my profile -&amp;gt; &lt;a href="https://github.com/pedes"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🤓 &lt;strong&gt;How to Create a GitHub Profile's README?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You have to add a README file to the root of a public repository with the same name as your username, then that README will automatically appear on your profile page.&lt;/p&gt;

&lt;p&gt;You will see a nice banner indicating that you have found a secret on GitHub&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dI0W4Tpt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lexwdk7gc5rx6srgz6ou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dI0W4Tpt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/lexwdk7gc5rx6srgz6ou.png" alt="GitHub Profile README"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Is that it? Yes, as simple as that you will have now a landing README for your profile.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The naming convention is case-sensitive, so make sure the names of your repo and profile match.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  💻 &lt;strong&gt;What am I going to get?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As soon as you create your repo, a README file with the following template will be created:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;**pedes/pedes** is a ✨ _special_ ✨ repository because of its README.md (this file) appears on your GitHub profile.`

Here are some ideas to get you started:

- 🔭 I’m currently working on ...`
- 🌱 I’m currently learning ...
- 👯 I’m looking to collaborate on ...
- 🤔 I’m looking for help with ...
- 💬 Ask me about ...
- 📫 How to reach me: ...
- 😄 Pronouns: ...
- ⚡ Fun fact: ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Github Profile Template &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KAdEGicI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://docs.github.com/assets/images/help/repository/profile-with-readme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KAdEGicI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://docs.github.com/assets/images/help/repository/profile-with-readme.png" alt="GitHub Profile README Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🌞 &lt;strong&gt;How to make it shine?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here comes the most exciting and fun side of this. Markdown supports different elements, like emojis, GIFs, images, tables, etc, that allows you to come up with an astonishing design.&lt;/p&gt;

&lt;p&gt;I've collected a list of resources that will help you and guide you through the process of crafting an exceptional GitHub profile.&lt;/p&gt;

&lt;p&gt;Click on the titles to access to the resources.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.markdownguide.org/cheat-sheet/"&gt;Markdown Cheat Sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0h7zqV__--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ivasoqwzyf6xl8kku0ml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0h7zqV__--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ivasoqwzyf6xl8kku0ml.png" alt="Markdown Cheat Sheet Sample"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Get to know the fundamentals of Markdown, and how to leverage its features on your README.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://simpleicons.org/"&gt;Simple Icons&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QvpBv6-y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gsk65ee0f2hik7oxsguf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QvpBv6-y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gsk65ee0f2hik7oxsguf.png" alt="Simple Icons Sample"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Include icons from the most "iconic" software projects and tools used in your day-to-day job.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rajk3770/Github-Profile-Readme-Creator"&gt;GitHub README Profile Creator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qh_a_nT7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/rajk3770/Github-Profile-Readme-Creator/master/screenshots/Profile.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qh_a_nT7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/rajk3770/Github-Profile-Readme-Creator/master/screenshots/Profile.png" alt="GitHub README Profile Creator Sample"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Easy and simple way to create your profile README with an open-source tool.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/rxaviers/7360908"&gt;Markdown Icons&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/arturssmirnovs/github-profile-views-counter"&gt;GitHub Profile Views Counter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eZmeO8cn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/arturssmirnovs/github-profile-views-counter/master/banner.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eZmeO8cn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/arturssmirnovs/github-profile-views-counter/master/banner.png" alt="profile-views-counter-banner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/arturssmirnovs/github-profile-readme-generator"&gt;GitHub README Profile Generator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/34607ef851813101484b49c3a391faf3653cd143/68747470733a2f2f617274757273736d69726e6f76732e6769746875622e696f2f6769746875622d70726f66696c652d726561646d652d67656e657261746f722f696d616765732f6769662e6769663f763d313233" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/34607ef851813101484b49c3a391faf3653cd143/68747470733a2f2f617274757273736d69726e6f76732e6769746875622e696f2f6769746875622d70726f66696c652d726561646d652d67656e657261746f722f696d616765732f6769662e6769663f763d313233" alt="GitHub README Profile Generator GIF"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/anuraghazra/github-readme-stats"&gt;GitHub Readme Stats&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://camo.githubusercontent.com/5bfcb715afe67fc2e0174b0275ed2fe1a5ce1f32/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f616e7572616768617a72612f696d6167652f75706c6f61642f76313539353137343533362f6772732d7468656d65735f6c34796e6a612e706e67" class="article-body-image-wrapper"&gt;&lt;img src="https://camo.githubusercontent.com/5bfcb715afe67fc2e0174b0275ed2fe1a5ce1f32/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f616e7572616768617a72612f696d6167652f75706c6f61642f76313539353137343533362f6772732d7468656d65735f6c34796e6a612e706e67" alt="GitHub Readme Stats Sample"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://shields.io/"&gt;Social Badges | Shields &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HC3hggrH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bfx0ni1rzjqb3k819jh6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HC3hggrH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bfx0ni1rzjqb3k819jh6.png" alt="Shields.io Home Page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💫 &lt;strong&gt;Looking for some inspiration?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Here is a quick dose of inspiration for creating your own profile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/katmeister"&gt;Kat Fukui&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YgnHYjxX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--M-TxY9Vf--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3mholgldn3lloxjmu4r4.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YgnHYjxX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--M-TxY9Vf--/c_limit%252Cf_auto%252Cfl_progressive%252Cq_auto%252Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3mholgldn3lloxjmu4r4.jpeg" alt="Kat Fukui Face"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.aboutmonica.com/blog/how-to-create-a-github-profile-readme"&gt;Monica Powell&lt;/a&gt; &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Jzq_Etea--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://www.aboutmonica.com/media/monica-github-readme-edit.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Jzq_Etea--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://www.aboutmonica.com/media/monica-github-readme-edit.gif" alt="Monica Powell Github Profile"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/MartinHeinz"&gt;Martin Heinz&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vo_Bsfvs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/2426/1%2ANBUfL7eDm8ednodVwWbFDw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vo_Bsfvs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/2426/1%2ANBUfL7eDm8ednodVwWbFDw.png" alt="Martin Heinz Github Profile"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/thmsgbrt"&gt;Thomas Guibert&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZXQ9S8CD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/2556/1%2AZggRWyvgxX417fUi7goosQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZXQ9S8CD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/2556/1%2AZggRWyvgxX417fUi7goosQ.png" alt="Thomas Github Profile"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🏃 &lt;strong&gt;Where to go from here?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Perhaps, do you want to share your ideas and craft with the world? &lt;/p&gt;

&lt;p&gt;Post your profile in the comments below, bookmark this post or share it with your friends to find and see what they can come up with.&lt;/p&gt;

&lt;p&gt;Thanks for reading.  ✌️&lt;/p&gt;

</description>
      <category>github</category>
      <category>career</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The most important skill that you should develop to improve your life</title>
      <dc:creator>Andres Cespedes Morales</dc:creator>
      <pubDate>Sun, 26 Apr 2020 14:59:22 +0000</pubDate>
      <link>https://forem.com/pedes/the-most-important-skill-that-you-should-develop-to-improve-your-life-459e</link>
      <guid>https://forem.com/pedes/the-most-important-skill-that-you-should-develop-to-improve-your-life-459e</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;How can you improve all your aspects of your life but simply improving one skill?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I was reluctant to believe that back in 2005. I thought that it requires a massive amount of effort to be a better human being and to perform better as a professional.&lt;/p&gt;

&lt;p&gt;Of course, I do believe that great things in life do require to put into work a significant amount of hours of deliberate practice.&lt;/p&gt;

&lt;p&gt;So, the question is, how can I become a better self by focusing the effort on just one skill?&lt;/p&gt;

&lt;p&gt;After several months of researching, I came across the conclusion that in order to improve you need broader and deeper skills, that are usually acquired through reading!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Then, how can one optimize its reading skills?&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I have read over the past 5 years more than 100 books related to psychology, self-development, personal growth, brain hacks, consciousness, and more.&lt;/p&gt;

&lt;p&gt;But then I suddenly stumble upon a bigger challenge, how can I absorb that knowledge in less time? So I can apply it immediately!&lt;/p&gt;

&lt;p&gt;Then the answer was that I needed to learn how to read a book adequately.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Reading is living.&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So you as I want to optimize your time, I came up with a curated list of steps on how to read a book properly so you gain time and comprehension of the topic.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Read a summary&lt;/strong&gt;, instead of investing 7+ hours to read a full book, read a summary (or create a Dev.to post) about it, you will notice that more than 60% of the key points are mentioned there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Skim Reading&lt;/strong&gt;, the first minutes that you are with that book in front, read the table of contents, big titles, and some random sections, you can get the sense of what is the book about and decide whether or not you want to carry on with the reading.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Have a purpose&lt;/strong&gt;, who has a why to read can bear almost any how.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Recall last chapter&lt;/strong&gt;, have you find yourself trying to remember what you just read a day ago and having no success? Having an active exercise of recalling what you are currently reading it's a proven method for storing that information in your long-term memory (or create a Dev.to post).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Question and challenge&lt;/strong&gt;, think about the facts and ideas that the author is describing, do they relate, or contradict? Try to challenge and question, don't take anything for granted just because is written in a book (or a Dev.to post).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Take notes&lt;/strong&gt;, when you read you take input for your brain, but to really understand and remember you need to produce an output of that knowledge, the easiest method, take notes (or create a Dev.to post)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;You already started to improve your life by reading this post. Keep reading and improve your life learning how to read a book more efficiently.&lt;/p&gt;

&lt;p&gt;I look forward to reading your book summaries (or at least your Dev.to posts).&lt;/p&gt;

&lt;p&gt;Let's get social: &lt;a href="https://www.linkedin.com/in/andrespedes12/"&gt;My LinkedIn Profile&lt;/a&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>development</category>
      <category>selfimprovement</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Debug Like a Champion</title>
      <dc:creator>Andres Cespedes Morales</dc:creator>
      <pubDate>Sat, 05 Aug 2017 18:44:41 +0000</pubDate>
      <link>https://forem.com/pedes/debug-like-a-champion</link>
      <guid>https://forem.com/pedes/debug-like-a-champion</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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5s8pl0776n81i7fux36o.jpg" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5s8pl0776n81i7fux36o.jpg" alt="debug process"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As Pareto’s Law says: Software development is 20% of the time developing and 80% debugging.&lt;/p&gt;

&lt;p&gt;Imagine how powerful you could become if you cut down the debugging time and made the debug process more efficient, finding the root cause of the problem in your code or understanding the workflow of your algorithm.&lt;/p&gt;

&lt;p&gt;It would be great to sharpen this critical skill and become an exceptional developer to finding “unexpected features” a.k.a. bugs.&lt;/p&gt;

&lt;p&gt;Debugging is more than putting some breakpoints and cross our fingers for the program to hit them.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;How the “Java Debug” Works?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When a JVM is running a Java Debug session can be launched and communicate with the JVM through the JDWP protocol. &lt;/p&gt;

&lt;p&gt;This JDWP (Java Debug Wire Protocol) describes the format of debugging information and requests between a debuggee and a debugger.&lt;/p&gt;

&lt;p&gt;Here “a debugger” can be the most basic one, JDB (Java DeBugger) which is a simple command-line that provides an interface to inspection and debugging of a local or remote JVM.&lt;/p&gt;

&lt;p&gt;Also, it can be an IDE debugger, so your IntelliJ | Eclipse | Netbeans debugger is typical of your IDE, it provides a GUI to communicate with the JVM through the JVM TI (JVM Tool Interface), this is why every IDE debugger is quite different from each other, even though they must implement the same interface.&lt;/p&gt;

&lt;p&gt;So, the normal flow to debug it may look like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set the breakpoints before the exception or the wrong workflow occurs.&lt;/li&gt;
&lt;li&gt;Set another Breakpoint after to make sure that everything’s fine.&lt;/li&gt;
&lt;li&gt;Lose your mind with what happens in the middle.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let’s start with my favorite advanced technique, set your Breakpoint in the exception! Not before, not after.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Exception Breakpoints&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If you are getting some unchecked exception or an error in runtime, you should put a Java Exception Breakpoint and take a look into the exception code.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnbdw5sv2cdncm300disd.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnbdw5sv2cdncm300disd.png" alt="exception breakpoint"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the exception is launched, you can see inside of the code and the state of the objects before the exception arises. You will reach the exact point where the exception is thrown.&lt;/p&gt;

&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsc20xpz836or7dlv0c70.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsc20xpz836or7dlv0c70.png" alt="inside exception breakpoint"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Watchpoints&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Instead of doing every execution step and see how variable values change, we can set a Watchpoint on the Class’ members – this debug-point will show us when this member is accessed or modified.&lt;/p&gt;

&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%2Fdzone.com%2Fstorage%2Ftemp%2F3135361-watchpoint.png" 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%2Fdzone.com%2Fstorage%2Ftemp%2F3135361-watchpoint.png" alt="watchpoint"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can set a Watchpoint with a simple click in the left gutter area at a line where the member is declared.&lt;/p&gt;

&lt;p&gt;This is very helpful when you know the conditions needed to hit the execution point. You should mark the checkbox for the condition in the Breakpoint properties and write a Boolean expression – when this expression returns true, the Breakpoint will hit.&lt;/p&gt;

&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%2Fdzone.com%2Fstorage%2Ftemp%2F3135362-conditional-bp.png" 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%2Fdzone.com%2Fstorage%2Ftemp%2F3135362-conditional-bp.png" alt="conditional watchpoint"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Method Breakpoints&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is an amazing tool. Instead of putting a Breakpoint in the first line of the method and in the last or return statement, you should set a Method Breakpoint and watch the state of the program when the method enters or exits.&lt;/p&gt;

&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%2Fdzone.com%2Fstorage%2Ftemp%2F3135369-method-bp.png" 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%2Fdzone.com%2Fstorage%2Ftemp%2F3135369-method-bp.png" alt="method breakpoint"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Watch Expressions&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You could even want to see a particular value of your program, but this can be either a Boolean expression or a primitive value that one object in your code is holding.&lt;/p&gt;

&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%2Fdzone.com%2Fstorage%2Ftemp%2F3135372-watch-exp.png" 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%2Fdzone.com%2Fstorage%2Ftemp%2F3135372-watch-exp.png" alt="watch expression"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To do this, select the piece of code that you want to watch. In this case, it was resultSet.getString(“name”). This is just because I want to see how the name of the state is changing.&lt;/p&gt;

&lt;p&gt;This can help you when you don't have a Class’ member to set a watchpoint, as it can be seen as a temporary local variable watchpoint.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Notes&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You can customize your Breakpoint sets to make your debug process faster and efficient. Try to explore your IDE, and you will master it. You can have a full control of the JVM execution even when runtime exceptions have been thrown.&lt;/p&gt;

&lt;p&gt;Any other thoughts? Share in the comments!&lt;/p&gt;

</description>
      <category>java</category>
      <category>debug</category>
      <category>opensource</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
