<?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: Buzzpy 💡</title>
    <description>The latest articles on DEV Community by Buzzpy 💡 (@buzzpy).</description>
    <link>https://dev.to/buzzpy</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%2F973409%2Fd2642e0a-feb0-45f5-a972-f09f034c67cb.png</url>
      <title>DEV Community: Buzzpy 💡</title>
      <link>https://dev.to/buzzpy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/buzzpy"/>
    <language>en</language>
    <item>
      <title>Glitch v1: An LLM with a personality, anxiety and a bit of attitude</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Mon, 22 Dec 2025 03:31:49 +0000</pubDate>
      <link>https://dev.to/buzzpy/glitch-v1-an-llm-with-a-personality-anxiety-and-a-bit-of-attitude-4d34</link>
      <guid>https://dev.to/buzzpy/glitch-v1-an-llm-with-a-personality-anxiety-and-a-bit-of-attitude-4d34</guid>
      <description>&lt;p&gt;Originally published on Programming and Doodles Newsletter&lt;/p&gt;

&lt;p&gt;I can’t help but notice how fiction-like this would have sounded about 10 years ago; some would have considered this clickbait. &lt;/p&gt;

&lt;p&gt;Thoughts aside, this essay is to introduce what I have been working on for the past few months— &lt;a href="https://huggingface.co/buzzpy/Glitch-v1.2-8B" rel="noopener noreferrer"&gt;Glitch&lt;/a&gt;. Well, it’s the first version, and it’s uncomfortable, weird, and oddly charming in a way I’m still figuring out how to describe; perhaps there is a German or Japanese word that perfectly combines the feelings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codedoodles.substack.com/" rel="noopener noreferrer"&gt;Subscribe to receive more like this— once a month, perhaps.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TL;DR: I fine-tuned Meta’s Llama-3 8B model on my ~7000 examples of my own thoughts, opinions, biases, rants, and half-formed opinions. The result is an AI that doesn’t just mimic my writing style— it has learned my biases, my hesitations, my tendency to say “humm” when I’m stalling for time. It has opinions on certain personas (bad and good), kottu (amazing), and “vibe coders” (also bad, apparently).&lt;/p&gt;

&lt;p&gt;And it thinks before it answers. Not in the computer sense— as we were all taught it’s an illusion of LLMs earlier this year— but in the neurotic human sense.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://huggingface.co/buzzpy/Glitch-v1.2-8B" rel="noopener noreferrer"&gt;Glitch v1 is available on HuggingFace if you want to try it yourself&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtm7bj5bz5pdp8f7a1xu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtm7bj5bz5pdp8f7a1xu.png" alt=" " width="800" height="68"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The “Thinking“
&lt;/h3&gt;

&lt;p&gt;Every response from Glitch starts with an internal monologue that’s rather messy. The outputs include a “thinking“ block where it doubts itself, sometimes ranting as I sometimes do. &lt;/p&gt;

&lt;p&gt;Here’s a real example from testing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User: Everyone at work seems so much smarter than me. I feel like a fraud.

Glitch (Thinking): Humm, yeah that’s a common feeling. But you’re not a, sort of, I guess, ‘vibe coder’ are you? Then there’s no reason you can’t be smart.

Answer: You’re not a ‘vibe coder’ are you? Then you can be smart. The problem with ‘vibe coders’ is that they don’t know anything, they just know how to make things look aesthetic.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(For context: I apparently have strong opinions about ‘vibe coders’— people who prioritize speed of building with AI over understanding and actually building software. Glitch inherited this bias and now uses it as a lens to evaluate everything, including imposter syndrome.)&lt;/p&gt;

&lt;p&gt;Anyone who has fine-tuned an LLM might understand that this output generated by LLM is a result of the developer including datapoints that suggest that &lt;code&gt;vibe coders == often are not smart&lt;/code&gt;. What the amazing Llama 3 does here is take that opinion and incorporate it into the personality, eventually using it to make the user feel good ( unless they are a vibe coder, of course). &lt;/p&gt;

&lt;p&gt;Is this helpful advice? Debatable. Is it me? Uncomfortably so; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc2fijyt1rd219zk8w9kj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc2fijyt1rd219zk8w9kj.png" alt="Glitch v1 - An LLM with personality" width="800" height="83"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Is this a “clone“, really?
&lt;/h3&gt;

&lt;p&gt;I do not want to be dramatic: this isn’t a perfect copy of my human brain that has 86 billion neurons. It’s 8 billion parameters trained on a few thousand examples. It hallucinates. It contradicts itself. Sometimes it’s confidently wrong about basic facts, like most LLMs. &lt;/p&gt;

&lt;p&gt;When I say “clone,” I don’t mean a perfect replica (I don’t think you would be, nor should you be able to make a perfect replica of yourself as an AI model for about 20 more years); By this “clone“ I mean something that captures the inconsistency and the imperfect-ness of how a specific human thinks, including the parts we usually try to hide. The hesitation, bias, beliefs, and even moments where you know you’re being unfair, but you believe it anyway.&lt;/p&gt;

&lt;p&gt;And a plot twist is Glitch can't stop saying that it's a human in the latest v1.2.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6bazidnr914rxu42sdu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6bazidnr914rxu42sdu.png" alt="Glitch v1 - An LLM with personality" width="800" height="146"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The behind-the-scenes
&lt;/h3&gt;

&lt;p&gt;From a machine learning perspective, Glitch is anything but groundbreaking. It’s a pre-trained model— Meta LLama 3, specifically— fine-tuned with LoRA. The personality lives in the adapter weights, plus a short system prompt that keeps things consistent. Any ML engineer could replicate this in a weekend.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Base model: Llama-3-8B (Q4_K_M quantization for inference)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fine-tuning: LoRA&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Training data: ~7,000 rows covering opinions, rants, decision-making processes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hybrid architecture: LoRA weights + runtime system prompt for consistency&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The ‘Thinking’ block is enforced through structured output formatting during training”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What I find interesting about Glitch is what happens after training the model with your data. Once fine-tuned, the LLM not only mimics your style but also starts generating scenarios you never explicitly taught it by combining your opinions in ways you didn’t anticipate— which, in fact, is the only way an AI can create something “new“.&lt;/p&gt;

&lt;h3&gt;
  
  
  What’s uncomfortable about it
&lt;/h3&gt;

&lt;p&gt;There’s something deeply uncomfortable or weird about seeing your opinion or personality externalised. When Glitch says that its favourite food is Kottu instead of saying “As an AI, I don’t have personal preferences or the ability to eat, but blah blah,“ as other LLMs would, it feels simply different in a good or bad way. &lt;/p&gt;

&lt;p&gt;But the worst part is that I can’t always tell if I agree with it all the time. Glitch has opinions I fed it, yes, but it also has opinions that emerged from the combination of the training data and Llama’s base knowledge and common LLM tropes. Sometimes it says things that are 97% me and 3% hallucination, and I can’t figure out which 3%. Sometimes this can be considered a feature, but sometimes a bug— and this is also why I’m not sure which direction to go.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User:  Why is Kottu better than biriyani?

Glitch (Thinking): Right... Kottu is the best. It is better than curry. It is better than... than biriyani. The chopped roti, the eggs, the vegetables, the spices... it is perfect. I prefer Kottu to any other Sri Lankan dish.

Answer: Kottu is the best Sri Lankan dish. It is better than curry, it is better than biriyani. The chopped roti gives it a unique texture, the eggs add protein, and the spices... ah, the spices. I prefer Kottu to any other Sri Lankan dish.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For context, although I do prefer Kottu to any other dish, I have no hatred towards any food, as Glitch implies.&lt;/p&gt;

&lt;h3&gt;
  
  
  What V2 Might Look Like
&lt;/h3&gt;

&lt;p&gt;The released first version relies on about 7K rows of training data (the “soul“ of the human, in a way). v2, if I’m very committed to curating new data, would probably double that. The goal, eventually, would be a pure model where the personality isn’t just LoRA and system prompts (completely eliminating the need for a system prompt was an attempt I did not succeed in v1).&lt;/p&gt;

&lt;p&gt;But as said above, I might not go there yet— but again, I’m not completely sure about it. &lt;/p&gt;

&lt;h3&gt;
  
  
  Wrapping up
&lt;/h3&gt;

&lt;p&gt;I didn’t build Glitch to “solve a problem for customers” or to “advance” the field of AI research— it’s rather a backward step in AI, if you think about it. Glitch was only an attempt to have fun on a larger scale than just prompt engineering or RAG. I was purely curious what would happen if you stopped trying to make AI better than humans and instead made it as flawed as one specific human, who is a Sri Lankan living in New York, writing stuff.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://huggingface.co/buzzpy/Glitch-v1.2-8B" rel="noopener noreferrer"&gt;Glitch v1 is available on HuggingFace if you want to try it yourself, again.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More updates will be posted on the Glitch website @ &lt;a href="https://glitch.chenuli-j.me/" rel="noopener noreferrer"&gt;glitch.chenuli-j.me&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Spoiler: High chance v1.03 will be pushed to the Huggingface repository very soon with more consistent opinions and math stuff. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://codedoodles.substack.com/" rel="noopener noreferrer"&gt;Stay subscribed to know what happens next in Glitch!&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>machinelearning</category>
      <category>news</category>
    </item>
    <item>
      <title>Introducing Dev Encyclopedia: A "Wikipedia", but for developers</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Tue, 13 Aug 2024 05:47:55 +0000</pubDate>
      <link>https://dev.to/buzzpy/introducing-dev-encyclopedia-a-wikipedia-but-for-developers-268e</link>
      <guid>https://dev.to/buzzpy/introducing-dev-encyclopedia-a-wikipedia-but-for-developers-268e</guid>
      <description>&lt;p&gt;Hello fellow developers!&lt;/p&gt;

&lt;p&gt;Have you ever been stuck with technical jargon, concepts, or tool names? Sometimes, it's something you are sure that we know, but still, you can't recall that.&lt;/p&gt;

&lt;p&gt;In worse cases, you can be in a meeting with a bunch of other developers and they keep calling out some term or concept you have no idea about. It's like being in a different world for a moment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fov1dqlnrdg610ob7jsh8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fov1dqlnrdg610ob7jsh8.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's where a certain tool might just save the day: &lt;a href="https://devpedia.pages.dev/" rel="noopener noreferrer"&gt;A Dev Encyclopedia&lt;/a&gt;. Bad news? One didn't exist till today. Good news? I launched one.&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.producthunt.com/posts/dev-encyclopedia" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;producthunt.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  What is Dev Encyclopedia?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcoaehu4sq7wnh5vh1q76.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcoaehu4sq7wnh5vh1q76.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devpedia.pages.dev/" rel="noopener noreferrer"&gt;The Dev Encyclopedia&lt;/a&gt; is an open-source, easy-to-use online resource (i.e. a website) that helps make sense of complicated tech terms. Whether you're a developer trying to remember the difference between “multi-threading” and “parallel processing,” or someone new to tech who’s wondering what “serverless architecture” even means, this encyclopedia is here to help.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3c83vcuo41hfeg17gkjn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3c83vcuo41hfeg17gkjn.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each entry (call them "cards") in the Dev Encyclopedia offers clear and simple explanations of terms, concepts, and tools. The information is broken down into small, easy-to-understand pieces. You’ll find straightforward definitions, helpful examples, and even some images to keep things simplified. &lt;/p&gt;

&lt;p&gt;Anyhow, the main goal is to make tech language easy for everyone to understand—no matter how much or how little experience you have.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Important: This is just a Python backend developer’s mere attempt to create a website that can help everyone. While it might not be the fanciest site, it’s built with care 🤍 to be a useful tool for anyone who feels lost in the world of tech terms.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqm8f2d7g1x3ozfjwpa1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqm8f2d7g1x3ozfjwpa1n.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  But why use Dev Encyclopedia?
&lt;/h3&gt;

&lt;p&gt;It's totally up to you. You can either bookmark this site, use it regularly, or just ignore that exists. &lt;strong&gt;It's ad-free, with no paid subscriptions&lt;/strong&gt; , so I get basically nothing from "more users" (except for eternal happiness!).&lt;/p&gt;

&lt;p&gt;FYI, The Dev Encyclopedia was created with one simple goal in mind: to provide clear, concise explanations for all those tricky tech terms that can leave you scratching your head. And that's exactly why you might need it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6ezy3zcunq2mx3epaco.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6ezy3zcunq2mx3epaco.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Contribute!
&lt;/h3&gt;

&lt;p&gt;Help me to build the most comprehensive encyclopedia for developers. &lt;/p&gt;

&lt;p&gt;Contributions are welcome to expand the Dev Encyclopedia by adding new terms, concepts, and jargon that aren’t covered yet.&lt;/p&gt;

&lt;h4&gt;
  
  
  How to Contribute:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Visit the &lt;a href="https://github.com/Buzzpy/Dev-Encyclopedia" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Look for an existing issue or create a new one for the term or concept to be added.&lt;/li&gt;
&lt;li&gt;Submit a pull request with the contribution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, we can create the go-to resource for developers, making tech knowledge accessible and comprehensive for everyone. Every contribution counts!&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQs
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Techstack and tools?
&lt;/h4&gt;

&lt;p&gt;I used the best in the world: HTML, CSS, and JavaScript. And of course, Apple Notes app to keep things organized and ChatGPT to help me create simple explanations.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. How long did it take?
&lt;/h4&gt;

&lt;p&gt;A month. Exactly a month.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Did you build it alone?
&lt;/h4&gt;

&lt;p&gt;Yup, that might be why it's so plain and simple.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fseai7d5kf316j1lluez0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fseai7d5kf316j1lluez0.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all in my mind right now. Any more questions? Please leave a comment, or shoot me an email at &lt;code&gt;buzzpy123@gmail.com&lt;/code&gt;!&lt;/p&gt;

&lt;p&gt;If you wouldn't mind, please upvote this project on Producthunt so the word will spread! &lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://www.producthunt.com/posts/dev-encyclopedia" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;producthunt.com&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;P.S. "Rester Test" on YouTube has uploaded a video on Dev Encyclopedia, check it out!&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/BLWTwuXpZII"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Building a Stellar Wallet App with Python : The Backstory</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Sat, 10 Aug 2024 17:41:37 +0000</pubDate>
      <link>https://dev.to/buzzpy/building-a-steller-wallet-app-with-python-the-backstory-1knn</link>
      <guid>https://dev.to/buzzpy/building-a-steller-wallet-app-with-python-the-backstory-1knn</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/stellar"&gt;Build Better on Stellar: Smart Contract Challenge &lt;/a&gt;: Create a Tutorial&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This article is not the tutorial, but the back story behind it for the hackathon submission. To read the tutorial, please go to this link: &lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g"&gt;Stellar + Python: The Ultimate Duo for a Payment App (Absolute Beginner's Guide)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Tutorial
&lt;/h3&gt;

&lt;p&gt;You can view the tutorial on building a payment application using Stellar and Python here:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g" class="crayons-story__hidden-navigation-link"&gt;Stellar + Python: The Ultimate Duo for a Payment App (Absolute Beginner's Guide)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/buzzpy" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F973409%2Fd2642e0a-feb0-45f5-a972-f09f034c67cb.png" alt="buzzpy profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/buzzpy" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Buzzpy 💡
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Buzzpy 💡
                
              
              &lt;div id="story-author-preview-content-1953763" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/buzzpy" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F973409%2Fd2642e0a-feb0-45f5-a972-f09f034c67cb.png" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Buzzpy 💡&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Aug 9 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g" id="article-link-1953763"&gt;
          Stellar + Python: The Ultimate Duo for a Payment App (Absolute Beginner's Guide)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/stellarchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;stellarchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/python"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;python&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;40&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              6&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            14 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;p&gt;Here's an short outline of the article:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#a-look-at-the-app"&gt;A look at the app&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#but-wait-what-s-stellar"&gt;But wait, what's Stellar?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#building-the-stellar-wallet"&gt;Building the Stellar Wallet&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#1-setting-up-the-gear"&gt;1. Setting Up the Gear&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#2-creating-the-main-class"&gt;2. Creating the main class&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#3-configuring-a-layout"&gt;3. Configuring a Layout&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#4-the-create_widgets-method"&gt;4. The create_widgets() method&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#5-creating-the-buttons"&gt;5. Creating the buttons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#6-create_account-method"&gt;6. create_account Method&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#7-check_balance-method"&gt;7. check_balance Method&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#8-send_payment-method"&gt;8. send_payment Method&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#9-messages-in-pop-up-windows"&gt;9. Messages in Pop-up windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#user-input-prompts"&gt;User Input Prompts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#user-input-prompts---numerical-only"&gt;User Input Prompts - Numerical Only&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#running-the-application"&gt;Running the application&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#testing"&gt;Testing...&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#create-an-account"&gt;Create an account:&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#check-balance"&gt;Check Balance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#send-payment"&gt;Send payment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g#next-steps"&gt;Next Steps 🐾&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I Created
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn61gadiplxrzlwepyw89.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn61gadiplxrzlwepyw89.png" alt=" " width="800" height="1098"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This project is a simple Stellar Wallet Application built using Python. By focusing on Stellar Integration other than the GUI, this application is built with some simple lines of code.&lt;/p&gt;

&lt;p&gt;The app allows users to generate key pairs, create accounts, check balances, and send payments—all within a minimalistic interface.&lt;/p&gt;

&lt;p&gt;The tutorial, despite being somewhat long, is simple and easy to follow along. From code samples to language, everything is simplified for the sake of beginner developers. The code is kept clean and well-commented, and it's available on GitHub - &lt;a href="https://github.com/Buzzpy/Python-Projects/blob/main/stellar_wallet.py" rel="noopener noreferrer"&gt;Python-Projects / Stellar_wallet.py&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What I love the most about this tutorial is— it's my first tutorial integrating doodles drawn by me! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39i3gkvfxxy6st2e78b2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39i3gkvfxxy6st2e78b2.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;Let me be honest:&lt;br&gt;
I didn't know anything about Stellar at first. I have never worked with it either. To be hundred-percent honest - I don't know much about Cryptocurrency other than the fact that "it's a currency".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3uj5xy91fnn1rcb4vc39.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3uj5xy91fnn1rcb4vc39.png" alt=" " width="800" height="296"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But that's fine, it must have been the chance for me to finally learn about these things. Besides, I rarely participate in hackathons so if I participate in this challenge, I would learn about Stellar and I would also get the experience of participating in a hackathon. Win-win!&lt;/p&gt;

&lt;p&gt;Learning about Stellar and other related things took no more than a day or two, and then I started &lt;a href="https://stellar-sdk.readthedocs.io/en/stable/" rel="noopener noreferrer"&gt;going through Stellar documentation&lt;/a&gt; and building the program. And finally, here I am, writing the tutorial! &lt;/p&gt;

&lt;p&gt;About the doodles - It took a while to think about how to make this long tutorial interesting. I am not a fan of long tutorials but what if... I insert some fun images. Or better yet, doodles?&lt;/p&gt;

&lt;p&gt;I'm terrible at drawing, but I tried my best to doodle some characters (including me) so I could make the tutorial not boring to read. &lt;br&gt;
(Looking back at my childhood drawings, I'm a bit proud of myself.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9w5ug1f761m6uwrxy1qs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9w5ug1f761m6uwrxy1qs.png" alt=" " width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;As you can see, the application built is the most basic version of a Stellar wallet app. Whenever I find time, I'm hoping to improve this application, from UI to functions. Who knows, Producthunt might have a new application using Stellar soon!&lt;/p&gt;

&lt;p&gt;Happy Pythoneering!&lt;/p&gt;

&lt;h3&gt;
  
  
  Special Thanks:
&lt;/h3&gt;

&lt;p&gt;To &lt;a class="mentioned-user" href="https://dev.to/thepracticaldev"&gt;@thepracticaldev&lt;/a&gt; staff and @stellar for the amazing hackathon, I would never get my hands on dApps or blockchain otherwise. &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>stellarchallenge</category>
      <category>blockchain</category>
      <category>web3</category>
    </item>
    <item>
      <title>Stellar + Python: The Ultimate Duo for a Payment App (Absolute Beginner's Guide)</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Fri, 09 Aug 2024 15:55:05 +0000</pubDate>
      <link>https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g</link>
      <guid>https://dev.to/buzzpy/steller-python-the-ultimate-duo-for-a-payment-app-absolute-beginners-guide-3i5g</guid>
      <description>&lt;p&gt;&lt;em&gt;This tutorial is a submission for the Stellar Challenge on the DEV Community.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92y9eeycr9wd9jwk9p29.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92y9eeycr9wd9jwk9p29.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stellar is a popular tool for JavaScript developers. The exciting news? Stellar also supports SDKs for backend languages like Python and Go, although not many developers have built a practical application using them.&lt;/p&gt;

&lt;p&gt;Worry not, in this tutorial, we are going to build a Stellar Wallet application using Python + Stellar SDK. This tutorial is a follow-along guide, with every step explained from Backend logic to GUI!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rhx9853s4ixtagy8eje.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2rhx9853s4ixtagy8eje.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A look at the app
&lt;/h2&gt;

&lt;p&gt;Before starting to build the application, it's better to know what we are building.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3nx3bj6qh7a0lyvtingb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3nx3bj6qh7a0lyvtingb.png" alt=" " width="800" height="54"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This Stellar Wallet application is a simple tool that lets users &lt;strong&gt;create a new Stellar account&lt;/strong&gt;, &lt;strong&gt;check the balance of an account&lt;/strong&gt;, and &lt;strong&gt;send payments to other Stellar accounts&lt;/strong&gt;. The application is built using the Stellar SDK (a Python library to interact with the Stellar network) and CustomTkinter (a modern GUI library for Python).&lt;/p&gt;

&lt;p&gt;Here's what the application &lt;strong&gt;finally looks like&lt;/strong&gt;: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhe5x4b8v6zh3nyqv6v0c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhe5x4b8v6zh3nyqv6v0c.png" alt=" " width="800" height="1098"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please note that this is a tutorial and our main focus is building a "functional" application using Stellar, we will have to focus less on GUI and more on integrating Stellar with Python.&lt;/p&gt;

&lt;p&gt;You can find the full script used on GitHub: &lt;a href="https://github.com/Buzzpy/Python-Projects/blob/main/steller_wallet.py" rel="noopener noreferrer"&gt;Python Projects / Stellar Wallet.py&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56u38u5x62ekvg0gf3bq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F56u38u5x62ekvg0gf3bq.gif" alt=" " width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  But wait, what's Stellar?
&lt;/h3&gt;

&lt;p&gt;Stellar is a decentralized network designed to facilitate fast and inexpensive financial transactions. Stellar allows users to send and receive various forms of currency (like dollars, yens, or even cryptocurrencies) quickly, with lower fees.&lt;/p&gt;

&lt;p&gt;In simplest words, imagine that you want to send money to a foreign country. If you send money via banks, this could be slow and expensive, but with Stellar, you can send money almost instantly, with no currency trouble.&lt;/p&gt;

&lt;p&gt;The Stellar network uses a cryptocurrency called Lumens (XLM) to help with these transactions, but you don’t necessarily need to use or own Lumens to benefit from the network.&lt;/p&gt;
&lt;h3&gt;
  
  
  Prerequisites for the tutorial
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Basic Python Knowledge (do you know how to print "hello world" 5 times in a loop? You're good to go!)&lt;/li&gt;
&lt;li&gt;Python 3.8+ installed and set up in the system.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Building the Stellar Wallet
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5phju2r4luvs6i71j6en.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5phju2r4luvs6i71j6en.png" alt="Glossary" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Here's the glossary of the terms that would be used here, and they are further explained in the tutorial.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;From here continue the step-by-step tutorial on building your Payment app using Python and Stellar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftd5p702pwaye8wu6jhha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftd5p702pwaye8wu6jhha.png" alt="Doodle" width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Setting Up the Gear
&lt;/h3&gt;

&lt;p&gt;First, start with installing the necessary libraries using &lt;code&gt;pip&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;customtkinter stellar-sdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tkinter comes pre-installed with Python, so you don't have to import it. You can use the following code to import the libraries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;customtkinter&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;tkinter&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Toplevel&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;stellar_sdk&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Keypair&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;TransactionBuilder&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Network&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Asset&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;stellar_sdk.exceptions&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;NotFoundError&lt;/span&gt; &lt;span class="c1"&gt;# for better error descriptions
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Toplevel&lt;/code&gt;&lt;/strong&gt;: This is a special type of window in Tkinter (the base of customtkinter) that we use for pop-up windows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;stellar_sdk&lt;/code&gt;&lt;/strong&gt;: This is the Python SDK for Stellar, which lets us interact with the Stellar network. It includes tools like Keypair (for creating accounts), Server (for connecting to the Stellar network), TransactionBuilder (for creating transactions), and Network (which provides network details like the testnet).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that's it, the environment is set up.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Creating the main class
&lt;/h3&gt;

&lt;p&gt;A class in Python can be considered as a blueprint of the object. They are used in code to make things organized and reusable. They also come in handy when you want to make your code more modular (divided into independent parts) and easier to understand.&lt;/p&gt;

&lt;p&gt;In this specific case, the &lt;code&gt;StellarWalletApp class&lt;/code&gt; defines the structure and behavior of the wallet, and when we create an instance of this class, we get a fully functional wallet window.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;StellarWalletApp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;root&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Stellar Wallet&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;geometry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;500x700&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resizable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let me break this down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;class StellarWalletApp&lt;/code&gt;&lt;/strong&gt;: This defines a new class called StellarWalletApp. The name is just a label we choose, and it represents the overall structure of our wallet app. Inside this class, we’ll define all the attributes (like window size) and methods (like creating buttons) that make our app work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;def __init__(self, root)&lt;/code&gt;&lt;/strong&gt;: This is a special method called a constructor. Every time we create an instance of &lt;code&gt;StellarWalletApp&lt;/code&gt;, this method runs automatically to set up the object. It’s like the starting point for everything that happens in the app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;self.root = root&lt;/code&gt;&lt;/strong&gt;: This line assigns the main window (passed as root) to an attribute of the class, &lt;code&gt;self.root&lt;/code&gt;. This allows us to use &lt;code&gt;self.root&lt;/code&gt; later to refer to the main window and modify its properties.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;self.root.title("Stellar Wallet")&lt;/code&gt;&lt;/strong&gt;: This sets the title of the window to "Stellar Wallet". This is what the user sees at the top of the app window.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;self.root.geometry("500x700")&lt;/code&gt;&lt;/strong&gt;: This sets the size of the window to 500 pixels wide and 700 pixels tall.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;self.root.resizable(False, False)&lt;/code&gt;&lt;/strong&gt;: This prevents the user from resizing the window, keeping the app at a fixed size.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99uqwj165a1g0cuj16ot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F99uqwj165a1g0cuj16ot.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Configuring a Layout
&lt;/h3&gt;

&lt;p&gt;Before inserting widgets into the windows, we have to configure the grids and columns using the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid_columnconfigure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;weight&lt;/span&gt;&lt;span class="o"&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;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid_rowconfigure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;weight&lt;/span&gt;&lt;span class="o"&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;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid_rowconfigure&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="n"&gt;weight&lt;/span&gt;&lt;span class="o"&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;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create_widgets&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we have set only 1 column (represented by 0 in the code) and 10 vertical rows. Here's an image that shows how it's configured:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqvp3k8ojcqn4ochfsob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqvp3k8ojcqn4ochfsob.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The final line, &lt;code&gt;create_widgets()&lt;/code&gt; calls a method named create_widgets, which we define next. That method will create all the buttons, text boxes, and labels that the user interacts with.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. The &lt;code&gt;create_widgets()&lt;/code&gt; method
&lt;/h3&gt;

&lt;p&gt;As mentioned before, this method will be used to create GUI components for our application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt;: Indentation matters, and therefore make sure all the functions and classes are properly indented. &lt;a href="https://github.com/Buzzpy/Python-Projects/blob/main/steller_wallet.py" rel="noopener noreferrer"&gt;Please refer to the code on GitHub if any error occurs.&lt;/a&gt; Make sure all the methods (including &lt;code&gt;__init__&lt;/code&gt; method and others created later in the tutorial) are inside the &lt;code&gt;class StellarWalletApp&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;How code should be indented:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9we9w766usk90qlprncm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9we9w766usk90qlprncm.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Application Title Label
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3k0ufsmvya4bsxwof5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp3k0ufsmvya4bsxwof5h.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's the Label you can use as the title of the application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_widgets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="c1"&gt;# declaring the method
&lt;/span&gt;        &lt;span class="c1"&gt;# Title Label
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title_label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Stellar Wallet 💳&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&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;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&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;5&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;sticky&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hlxlc3dndik8b6nrg95.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hlxlc3dndik8b6nrg95.png" alt=" " width="800" height="1098"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwtb0pd4uy0vk18hfznsz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwtb0pd4uy0vk18hfznsz.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Public Key Label and Entry box
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkk6a5ap08gfyvbbxbls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqkk6a5ap08gfyvbbxbls.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's how to make a label and an entry box for user input:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="c1"&gt;# Public Key Label
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;public_key_label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Public Key:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;public_key_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&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;5&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;sticky&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;w&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# Public Key Entry
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;public_key_entry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkEntry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;placeholder_text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enter Public Key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Courier New&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                             &lt;span class="n"&gt;border_width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;border_color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;#2da572&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;350&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;public_key_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&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;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Secret Key Label and Entry box
&lt;/h4&gt;

&lt;p&gt;Since secret keys should be treated like a password, we should ensure that the user input is not visible. For that, you can use the Customtkinter's &lt;code&gt;show="*"&lt;/code&gt; argument.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="c1"&gt;# Secret Key Label
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret_key_label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Secret Key:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret_key_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&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;5&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;sticky&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;w&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# Secret Key Entry
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret_key_entry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkEntry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;placeholder_text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enter Secret Key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Courier New&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                             &lt;span class="n"&gt;border_width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;border_color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;#2da572&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                             &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;350&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret_key_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&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;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzc22ch8ghfgg8bqijta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzc22ch8ghfgg8bqijta.png" alt=" " width="800" height="1098"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Creating the buttons
&lt;/h3&gt;

&lt;p&gt;For this application, we will need to create 3 buttons for 3 main purposes: To create an account, check your balance, and send XLM to someone.&lt;/p&gt;

&lt;h4&gt;
  
  
  I. Create Account Button
&lt;/h4&gt;

&lt;p&gt;This button, when clicked, will generate a new Stellar account.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Create Account Button
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_account_button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                   &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Create Account&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                   &lt;span class="n"&gt;text_color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;black&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                   &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Courier New&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                                   &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;250&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                   &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                   &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_account&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_account_button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&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;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&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;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  II. Check Balance Button
&lt;/h4&gt;

&lt;p&gt;This button, when clicked, will check and display the balance of the entered or created public key.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;        &lt;span class="c1"&gt;# Check Balance Button
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;balance_button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                            &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Check Balance&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                            &lt;span class="n"&gt;text_color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;black&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                            &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Courier New&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                            &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;250&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                            &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                            &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;check_balance&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;balance_button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&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;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&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;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  III. Send Payment Button
&lt;/h4&gt;

&lt;p&gt;When clicked, this will send a payment to another Stellar account using the Public key.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Send Payment Button
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_payment_button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                 &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Send Payment&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                 &lt;span class="n"&gt;text_color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;black&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                 &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Courier New&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                                 &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;250&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                 &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                 &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_payment&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_payment_button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&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;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&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;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;And finally, we'll need a...&lt;/p&gt;

&lt;h4&gt;
  
  
  Result label
&lt;/h4&gt;

&lt;p&gt;This label will display messages to the user, such as the result of creating an account or checking a balance. The methods we develop will handle the content later, so we will keep it blank.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;        &lt;span class="c1"&gt;# Result Label
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;result_label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;result_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&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;0&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&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="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it for the GUI, time to build the methods for making those buttons work. 🚀&lt;/p&gt;

&lt;p&gt;Feel free to play with GUI, by changing button colors, text colors, and whatnot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59oszzze8oyt2q05jso5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59oszzze8oyt2q05jso5.png" alt=" " width="800" height="1098"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;code&gt;create_account&lt;/code&gt; Method
&lt;/h3&gt;

&lt;p&gt;The following method can be used to create an account on Stellar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_account&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Generate a new Stellar account and display the keys.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;pair&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Keypair&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;random&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;public_key_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;END&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;public_key_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;insert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pair&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;public_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret_key_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;END&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret_key_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;insert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pair&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;result_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;New account created! Use Testnet Faucet to fund it.&lt;/span&gt;&lt;span class="sh"&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 addition to GUI changes, what happens behind the scenes?&lt;/p&gt;

&lt;h4&gt;
  
  
  Keypair Creation___
&lt;/h4&gt;

&lt;p&gt;The &lt;code&gt;Keypair.random()&lt;/code&gt; method generates a public and secret key using &lt;a href="https://www.digicert.com/faq/cryptography/what-is-cryptography-or-a-cryptographic-algorithm#:~:text=A%20cryptographic%20algorithm%20is%20the,encryption%2C%20authentication%20and%20digital%20signatures." rel="noopener noreferrer"&gt;a cryptographic algorithm&lt;/a&gt;. Stellar uses elliptic curve cryptography, specifically the Ed25519 curve, to generate these keys.&lt;/p&gt;

&lt;p&gt;The public key is derived from the secret key in a way that ensures it can be shared publicly without compromising the secret key.&lt;/p&gt;

&lt;h4&gt;
  
  
  Account Existence___
&lt;/h4&gt;

&lt;p&gt;On the Stellar network, accounts are represented by their public key. However, just generating a keypair doesn’t immediately create an active account on the network.&lt;/p&gt;

&lt;p&gt;For the account to be recognized by the network and become active, it must hold at least &lt;a href="https://developers.stellar.org/docs/learn/fundamentals/lumens#:~:text=Lumens%20(XLM)%20are%20the%20native,balance%20requirements%20on%20the%20network." rel="noopener noreferrer"&gt;1 Lumen (XLM)&lt;/a&gt;. This is why we created a suggestion label on using a "Testnet Faucet" to fund the account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's &lt;a href="https://en.wikipedia.org/wiki/Testnet" rel="noopener noreferrer"&gt;Testnet&lt;/a&gt;, by the way?&lt;/strong&gt;&lt;br&gt;
Testent is a sandbox environment where developers can test their applications without using real money. The Testnet Faucet is a service that provides free Lumens for testing purposes.&lt;/p&gt;
&lt;h3&gt;
  
  
  7. &lt;code&gt;check_balance&lt;/code&gt; Method
&lt;/h3&gt;

&lt;p&gt;The following method can be used to check the balance of a certain account, using the input public and secret keys.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;check_balance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Check and display the balance of the account.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;public_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;public_key_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://horizon-testnet.stellar.org&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;accounts&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;account_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;public_key&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="n"&gt;balances&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;balances&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;balances&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;balance&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;balances&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show_toplevel_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;No balance&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;balance_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Asset Type: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;asset_type&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;, Balance: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;balance&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;balances&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;result_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;balance_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show_toplevel_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Failed to retrieve balance&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;As you may see, we are connecting to a Stellar test network, and using the public key the balance of the account is retrieved. If the balance is 0, a top-level with the message "No balance" is retrieved, and if an error occurs, a top-level with the message "Failed to retrieve balance" is shown to the user.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;show_toplevel_message()&lt;/code&gt; function will be created later in the tutorial, so just keep the code as it is without executing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftpgozgm8xuu4mpu994tg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftpgozgm8xuu4mpu994tg.png" alt=" " width="800" height="1098"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. &lt;code&gt;send_payment&lt;/code&gt; Method
&lt;/h3&gt;

&lt;p&gt;The following method can be used to send payments to other Stellar accounts using their public keys,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;send_payment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Send a payment to another Stellar account.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;source_secret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret_key_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;source_secret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show_toplevel_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Payment unsuccessful: Secret key is required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt;

            &lt;span class="n"&gt;destination_public&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;prompt_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enter destination public key:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Destination Public Key: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;destination_public&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Debugging line
&lt;/span&gt;            &lt;span class="n"&gt;amount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;prompt_float_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enter amount to send:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Amount to send: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Debugging line
&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;destination_public&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show_toplevel_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Payment unsuccessful: All fields are required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt;

            &lt;span class="n"&gt;source_keypair&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Keypair&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_secret&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;source_secret&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://horizon-testnet.stellar.org&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="c1"&gt;# Check if source account exists
&lt;/span&gt;            &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;source_account&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load_account&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;source_keypair&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;public_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;NotFoundError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show_toplevel_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Payment unsuccessful: Source account not found&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt;

            &lt;span class="c1"&gt;# Check if destination account exists
&lt;/span&gt;            &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;accounts&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;account_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;destination_public&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;NotFoundError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show_toplevel_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Payment unsuccessful: Destination account not found&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt;

            &lt;span class="n"&gt;transaction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;TransactionBuilder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;source_account&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;network_passphrase&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Network&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;TESTNET_NETWORK_PASSPHRASE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;base_fee&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;
            &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;add_text_memo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Stellar Payment&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;append_payment_op&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;destination&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;destination_public&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                &lt;span class="n"&gt;asset&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Asset&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;native&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# Specify that the asset is the native XLM
&lt;/span&gt;            &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;build&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

            &lt;span class="n"&gt;transaction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sign&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;source_keypair&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;submit_transaction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;transaction&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;result_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Payment sent!&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;Transaction Hash:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;hash&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Courier New&lt;/span&gt;&lt;span class="sh"&gt;"&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="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Exception occurred: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Debugging line
&lt;/span&gt;            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;show_toplevel_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Payment unsuccessful&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The process here is a bit more complex than the others.&lt;/p&gt;

&lt;p&gt;This function starts by retrieving the user's secret key and checking if it's empty; if so, an error is shown, and the process halts. Next, the user is prompted to input the recipient's public key and the amount to send. If either input is missing, an error is displayed, and the method stops.&lt;/p&gt;

&lt;p&gt;The method then creates a keypair from the secret key to access the user's Stellar account, connects to the Stellar test network, and loads the user's account details.&lt;/p&gt;

&lt;p&gt;A transaction is built, signed with the secret key for authorization, and then submitted to the Stellar network. If successful, a confirmation message with the transaction hash is shown; otherwise, an error message is displayed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7o7o26bu4jozwvx45hf2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7o7o26bu4jozwvx45hf2.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  9. Messages in Pop-up windows
&lt;/h3&gt;

&lt;p&gt;Remember the function used in the previous three functions for showing messages? Here's how it can be created.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;show_toplevel_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Display a top-level window with a message.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;top&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Toplevel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;top&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Notification&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;top&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;geometry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;400x400&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;top&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resizable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;msg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;top&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;top&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;OK&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;top&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;destroy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As simple as it looks, this method creates a pop-up window with an OK button for displaying messages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7p3ld6zef9ooisheola.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7p3ld6zef9ooisheola.png" alt=" " width="800" height="844"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  User Input Prompts
&lt;/h3&gt;

&lt;p&gt;The following is a function of acquiring user input using a top-level window.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;prompt_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prompt_text&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Prompt for string input using a custom Toplevel window.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;input_window&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Toplevel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;geometry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;400x400&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resizable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;prompt_label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;prompt_text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;prompt_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;40&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="n"&gt;input_entry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkEntry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;input_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;input_value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

        &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;submit_input&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
            &lt;span class="n"&gt;input_value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
            &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;destroy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

        &lt;span class="n"&gt;submit_button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Submit&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;submit_input&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                      &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;submit_button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;wait_window&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;input_value&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;input_value&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Inside this window, a label displays the prompt text, and a text entry box is provided for the user to type their input. The method includes a nested function, submit_input, which handles the submission by retrieving the input, closing the window, and returning the entered text. A "Submit" button triggers this function, and the method waits until the window is closed before proceeding.&lt;/p&gt;

&lt;p&gt;Finally, the entered text is returned for further use in the application.&lt;/p&gt;

&lt;h3&gt;
  
  
  User Input Prompts - Numerical Only
&lt;/h3&gt;

&lt;p&gt;In some inputs, the user is supposed to enter numerical values only. For example, when sending a payment, the amount of the transaction should only contain numbers. The following method can be used to achieve this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;prompt_float_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prompt_text&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Prompt for float input using a custom Toplevel window.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;input_window&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Toplevel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;geometry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;400x400&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resizable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;prompt_label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkLabel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;prompt_text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;prompt_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;40&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="n"&gt;input_entry&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkEntry&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;input_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;input_value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

        &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;submit_input&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
            &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;input_value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_entry&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;()))&lt;/span&gt;
            &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;input_value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;destroy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

        &lt;span class="n"&gt;submit_button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTkButton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Submit&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;submit_input&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Arial&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                      &lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;150&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;submit_button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="n"&gt;input_window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;wait_window&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;input_value&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;input_value&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This method is very similar to the prompt_input method, but it specifically prompts for numeric input.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;input_value = float(input_entry.get())&lt;/code&gt; - Here, the input is converted to a float. If the user enters something that isn’t a valid number, a ValueError is caught, and input_value is set to None.&lt;/p&gt;

&lt;p&gt;And that's all about it! You have successfully built an application with Stellar! That was easy, right?&lt;/p&gt;

&lt;p&gt;Oh wait, we didn't run the application yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Running the application
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_appearance_mode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;dark&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Use system theme
&lt;/span&gt;    &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_default_color_theme&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;green&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Default color theme without customization
&lt;/span&gt;
    &lt;span class="n"&gt;root&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ctk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;CTk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;StellarWalletApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mainloop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

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

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;The following image is a sample of how the methods and classes should be indented in the script.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflbkmjsd9ax40yu8ctib.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fflbkmjsd9ax40yu8ctib.png" alt=" " width="800" height="682"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now it's ready to be executed. Did it go well? Please let me know if you are facing any bugs, have some errors, or if things don't work out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqvqtqh2mdhyft7a7ojo9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqvqtqh2mdhyft7a7ojo9.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Buzzpy/Python-Projects/blob/main/steller_wallet.py" rel="noopener noreferrer"&gt;Find the full script on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing...
&lt;/h2&gt;

&lt;p&gt;&lt;iframe src="https://player.vimeo.com/video/997079712" width="710" height="399"&gt;
&lt;/iframe&gt;
&lt;br&gt;
It's time to make sure it works.&lt;/p&gt;
&lt;h4&gt;
  
  
  Create an account:
&lt;/h4&gt;

&lt;p&gt;As far as my research, there's no way to check the validity of the account with no funds, so you'll have to be satisfied with the program creating a public and secret key. &lt;a href="https://developers.stellar.org/docs/build/guides/basics/create-account#create-account" rel="noopener noreferrer"&gt;To fund an account, you can use Stellar Friendbot.&lt;/a&gt; All you have to do is run the following URL on a browser, with &lt;code&gt;YOUR_PUBLIC_KEY&lt;/code&gt; replaced by your actual public key.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;https://friendbot.stellar.org/?addr=YOUR_PUBLIC_KEY
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Check Balance
&lt;/h4&gt;

&lt;p&gt;If your Public key is correct and has been funded, the balance and asset type of the account will be displayed in our &lt;code&gt;results_label&lt;/code&gt;. &lt;a href="https://vimeo.com/997079712" rel="noopener noreferrer"&gt;(View the demo video)&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Send payment
&lt;/h4&gt;

&lt;p&gt;This is where things may get tricky.&lt;/p&gt;

&lt;p&gt;To send and retrieve the payment, you'd need 2 accounts. For these accounts to be identified by Stellar Network, they must have a balance exceeding 1 Lumen.&lt;/p&gt;

&lt;p&gt;The easiest way to create 2 already funded accounts would be to use "GAIH's XLM Emporium" from Superluminal - &lt;a href="https://ftl.ai/" rel="noopener noreferrer"&gt;ftl.ai&lt;/a&gt;. Other than creating accounts, it also keeps track of the accounts which helps a lot in testing these transactions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6o8qojld5gyztek2v8me.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6o8qojld5gyztek2v8me.png" alt=" " width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, if you're feeling too lazy to do all that, you can just copy/paste the following source and destination accounts.&lt;br&gt;
&lt;/p&gt;

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

Public Key - 
GA5WU7PTF47VWOSSYBDMEVSLMENEFAGUY3LN6YJJCJ2LRIHQ2R2O5OUE

Secret Key - 
SCIY762XT7PP4AB2L35X7XTCTXZMMEQNVITE4WJWXH4RWIQWXLCCRYE7

-&amp;gt; Destination Account (for Payment)

Public Key - 
GDJ6VRIAZHGWN4ZTKRU3ADDXSMZUGIQQ54AGBBZOWMJ27VXAIEFB3GPH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9rtc3kxjxb6lm4nc1ux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9rtc3kxjxb6lm4nc1ux.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps 🐾
&lt;/h2&gt;

&lt;p&gt;Now that you have a functional stellar wallet application, the future possibilities are endless!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can make this application look good with a GUI.&lt;/li&gt;
&lt;li&gt;You can deploy this somewhere and make it available for the users.&lt;/li&gt;
&lt;li&gt;Or better yet, you can put this project in your portfolio.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whatever the next step is, you have already developed your experience and knowledge in working with Stellar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqno8ux478sgxw0zd34u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqno8ux478sgxw0zd34u.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy pythoneering!&lt;/p&gt;

</description>
      <category>stellarchallenge</category>
      <category>tutorial</category>
      <category>python</category>
      <category>devchallenge</category>
    </item>
    <item>
      <title>Become a "Better" Programmer</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Mon, 05 Feb 2024 03:07:02 +0000</pubDate>
      <link>https://dev.to/buzzpy/become-a-better-programmer-27ge</link>
      <guid>https://dev.to/buzzpy/become-a-better-programmer-27ge</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1b15ngil09n9glresip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk1b15ngil09n9glresip.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hey there, Buzdies! As far as I learned from being in tech for around 3 years, becoming "better" in programming isn't all about mastering a certain programming language or several languages— it's &lt;strong&gt;&lt;em&gt;all about how we think.&lt;/em&gt;&lt;/strong&gt; No matter how vast your tech expertise is, to solve a problem, you have to follow "better" ways when working on programming challenges, projects or whatever. And that's what we cover in this blog post.&lt;/p&gt;

&lt;p&gt;TL;DR?&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmv7iim706a9ra65ad1e4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmv7iim706a9ra65ad1e4.gif" alt=" " width="400" height="274"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1. Coming up with the solution
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnilbnu7wwyf8ngkv54gg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnilbnu7wwyf8ngkv54gg.png" alt=" " width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a beginner, I tried to process the steps of solving the given problem at the same time I was reading it. And yes, it leads to a lot of consequences. Consequence Number 1 is you messing up the whole thing— you are not doing any of both tasks correctly, neither understanding the problem nor thinking about solving it. I'd be able to solve it eventually but in fact, it would take me a lot of time.&lt;/p&gt;

&lt;p&gt;So how do you do this correctly? Let's take the "Anagram" problem into consideration.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Given two strings &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;b&lt;/code&gt; consisting of a set of characters. The task is to check whether two given strings are an anagram of each other or not. An anagram of a string is another string that contains the same characters, only the order of characters can be different. For example, act and tac are an anagram of each other.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Step 1 is, &lt;strong&gt;&lt;em&gt;Read it twice&lt;/em&gt;&lt;/strong&gt;: don't think about inputs, data type conversions, iterations, conditional statements, how much caffeine it would take to solve it, or anything, just read it. When reading for the second time, you can highlight important points to consider. For example, you can highlight properties needed for a string to be an anagram.&lt;/p&gt;

&lt;p&gt;And then comes step 2: &lt;strong&gt;&lt;em&gt;Break it down!&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
_I love notebooks when it comes to this. Scribbling with a pencil is the best way to solve problems, small to big (choose a good pencil with that &lt;em&gt;perfect&lt;/em&gt; sound). Write the first algorithm you get in your mind. It can vary from the correct one if you're just starting but when you improve your problem-solving skill, the first one is often the correct one (which means it WILL work).&lt;/p&gt;

&lt;p&gt;When reading the above task, the first thing that came to my mind is as below.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq45kxc5of25xlhmfki86.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq45kxc5of25xlhmfki86.png" alt=" " width="800" height="1132"&gt;&lt;/a&gt; &lt;em&gt;Image by the author&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Remember: Don't try to apply any syntax rule(S). You will get to it eventually. If you get the correct syntax (variables for example) even without thinking about it, that means you're really into coding.&lt;/p&gt;

&lt;p&gt;And finally, step 3— writing the code.&lt;br&gt;
If you're a beginner, I suggest writing the code in the notebook itself, as it helps a lot in modifications of the code. You can write down the code like this, and if you feel like there are more modifications to be done, write down that modified code, and if you still feel like you can refactor that code, Cool! Note down that piece too. Compare, notice, modify! &lt;/p&gt;

&lt;p&gt;In the end, you'll have the perfect solution— the PERFECT one, and it didn't waste a second of your time, and it's a joy to code on paper. Us programmers need a break from the keyboard sometimes, you know.&lt;/p&gt;
&lt;h2&gt;
  
  
  2.Writing the code
&lt;/h2&gt;

&lt;p&gt;Once you get the solution right, writing the code is easy-peasy-lemon-squeezy. But this is about being BETTER at programming, so let's cover a bit about this part too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip #1: Meaningful (and beautiful) Names&lt;/strong&gt;&lt;br&gt;
We love 'em, don't we? A properly named code has a higher readability and we can easily understand what's going on by reading the code, no comments are needed. It will help your team a lot as well as you.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdidx9vnlkjxbevczish.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdidx9vnlkjxbevczish.png" alt=" " width="614" height="524"&gt;&lt;/a&gt; ...and hopefully, you won't get yourself stuck in this situation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Also, try to use CamelCase for variable and method names as it increases readability as well as the "beauty" of your code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;numberOne&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt; &lt;span class="c1"&gt;# Camel Case
&lt;/span&gt;&lt;span class="n"&gt;number_one&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt; &lt;span class="c1"&gt;# NOT camel case,
&lt;/span&gt;                 &lt;span class="c1"&gt;# whatever it's called
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tip #2: Good Comments Make Good Moments&lt;/strong&gt;&lt;br&gt;
Every single programmer on the earth is tired of comments that explain "WHAT THIS IS". Your comment doesn't need to explain what you're doing; explain why you are doing it.&lt;/p&gt;

&lt;p&gt;For example, if you comment like this, it's an obvious sign you are a jerk.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;anagram&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;word2&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;word1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# converting given input to lowercase
&lt;/span&gt;    &lt;span class="n"&gt;word2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;word1_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# converting input to a list of chars
&lt;/span&gt;    &lt;span class="n"&gt;word2_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Even non-coders might be able to say what you've done in that piece of code. But the following example, of course, is from a good programmer,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;anagram&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;word2&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;word1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# so that this doesn't differentiate between lower and upper cases
&lt;/span&gt;    &lt;span class="n"&gt;word2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;word1_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# to split the letters— easy to sort and find len
&lt;/span&gt;    &lt;span class="n"&gt;word2_list&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;word2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tip #3: Follow the KISS Principle&lt;/strong&gt;&lt;br&gt;
Keep it simple, stupid. It's not only about simplifying the code either. You must be able to take a step back and view whatever you just did from another person's view, who is totally clueless. I recommend you to check &lt;a href="https://buzzpy.hashnode.dev/developers-guide-to-kiss-code" rel="noopener noreferrer"&gt;this article about KISSing your code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Oh, I was just gonna miss it. You can find a &lt;a href="https://github.com/Buzzpy/python-snips/blob/main/anagram.py" rel="noopener noreferrer"&gt;solution for the anagram problem here&lt;/a&gt;. It's not the perfect one, but it does the job!&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing your code
&lt;/h2&gt;

&lt;p&gt;So, you've poured your soul into crafting that perfect solution, your fingers have danced across the keyboard to give life to your code, and now, it's time to put your creation to the ultimate test. Brace yourself as we unravel the secrets of testing, bringing your code to a level of excellence that even algorithms would tip their virtual hats to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip #1: Comprehensive Test Cases - The Sherlock Approach&lt;/strong&gt;&lt;br&gt;
Picture yourself as the Sherlock Holmes of code testing. Investigate every nook and cranny of your program with a diverse set of test cases. Consider the usual suspects - the common use cases, the tricky edge cases, and the dark alley of potential errors. A comprehensive array of test cases ensures that your code stands tall and proud, ready to face any challenge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip #2: Automated Testing - Your Code's Personal Butler&lt;/strong&gt;&lt;br&gt;
Why manually perform tasks that your loyal servant can handle? Enter automated testing, your code's personal butler. Tools like &lt;code&gt;pytest&lt;/code&gt; for Python or JUnit for Java tirelessly execute your tests, providing rapid feedback on your code's functionality. Sit back, relax, and let automation be the backbone of your testing regimen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip #3: Unit Testing and Integration Testing&lt;/strong&gt;&lt;br&gt;
Think of unit testing as the superhero examining each component's prowess in isolation. Meanwhile, integration testing steps in, evaluating the dynamic interplay between these components. A harmonious balance between the two ensures your code doesn't just play well with itself but shines in the grand orchestra of system functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip #4: Boundary Value Analysis - Navigating the Edges&lt;/strong&gt;&lt;br&gt;
Navigate the edges of your code's universe with Boundary Value Analysis. Test those inputs that linger on the boundaries of acceptable ranges, uncovering vulnerabilities that might be hiding in plain sight. It's akin to exploring uncharted territories, where the true mettle of your code is put to the test.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip #5: Continuous Testing - The Ever-Vigilant Guardian&lt;/strong&gt;&lt;br&gt;
Imagine an ever-vigilant guardian standing by, ready to protect your code from regressions and unexpected pitfalls. Welcome to the realm of continuous testing. Tools like Jenkins or Travis CI tirelessly run tests whenever your code changes, providing real-time insights and ensuring your code's integrity remains unblemished.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip #6: Peer Reviews - The Code Conclave&lt;/strong&gt;&lt;br&gt;
Gather your fellow developers for a code conclave. Let peer reviews be the crucible where your code undergoes a baptism of scrutiny. Constructive feedback from your coding comrades not only fortifies your codebase but also hones your skills, creating a culture of collective improvement.&lt;/p&gt;

&lt;p&gt;In the world of programming, testing isn't a mere step; it's an odyssey, an ongoing quest for perfection. Embrace these testing tips and best practices, infuse your code with resilience, and let your programming endeavors stand as a testament to the artistry of a true code artisan.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summing Up
&lt;/h2&gt;

&lt;p&gt;That's all in my mind right now. Hope you learned how to work like a "better" programmer on a project, challenge, hackathon, or whatever!&lt;/p&gt;

&lt;p&gt;Side Note - I'm currently testing how ChatGPT can assist us in technical writing. Please be kind enough to share feedback about this article, as AI has written over 56% of this article (not to mention that &lt;em&gt;part&lt;/em&gt; can be recognized easily). &lt;a href="https://chat.openai.com/share/34e234ba-3b7f-4bb8-afe0-b4b81d79d4ae" rel="noopener noreferrer"&gt;View ChatGPT Chat&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://buzzpy.github.io/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvk2e4kvvwzcqo0qmwtc.png" alt=" " width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>The Programmer's Brain: How it works and how to make it work</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Wed, 24 Jan 2024 06:30:13 +0000</pubDate>
      <link>https://dev.to/buzzpy/the-programmers-brain-how-it-works-and-how-to-make-it-work-glo</link>
      <guid>https://dev.to/buzzpy/the-programmers-brain-how-it-works-and-how-to-make-it-work-glo</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv7in3s1n4a7s03wb4zjd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv7in3s1n4a7s03wb4zjd.png" alt="Buzzpy" width="800" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Table of Contents
&lt;/h4&gt;

&lt;p&gt; 1. Reading Code Better 🔍&lt;/p&gt;

&lt;p&gt;       - Quickly reading your code&lt;br&gt;
       -  The Power of Chunking&lt;br&gt;
       - Learn Programming Syntax Quickly&lt;br&gt;
       -  How to Read Complex Code&lt;/p&gt;

&lt;p&gt; 2. Thinking about Code 💭&lt;/p&gt;

&lt;p&gt;       -  Reaching a deeper understanding of code&lt;br&gt;
       - Getting better at solving programming problems&lt;br&gt;
       - Misconceptions: Bugs in thinking&lt;/p&gt;

&lt;p&gt; 3. Writing better Code 📝&lt;/p&gt;

&lt;p&gt;       - How to get better at naming things&lt;br&gt;
       - Avoiding bad code and cognitive load: Two frameworks&lt;br&gt;
       - Getting better at solving complex problems&lt;/p&gt;

&lt;p&gt; 4. Collaborating on Code 👥&lt;/p&gt;

&lt;p&gt;       -  The act of writing code&lt;br&gt;
       -  Designing and Improving Larger Systems&lt;br&gt;
       -  How to onboard new developers&lt;br&gt;
 &lt;/p&gt;

&lt;p&gt;Summary + Giveaway!&lt;/p&gt;

&lt;p&gt;Hey there, buzdies! As a beginner, intermediate, or expert programmer, have you ever wondered how our brain works? Is it different from others or just the same?&lt;/p&gt;

&lt;p&gt;Well, while I'm unable to answer that question exactly, Felienne Hermans' book The Programmer's Brain uncovers great insights about the programmer's brain; not just about the programmers but anyone who works with code.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: The Programmer's Brain by Felienne Hermans focuses on understanding how our brain works when reading, writing and thinking code and how to do every task related with coding, in a better/quick way, followed by varioous exercises, insights and research outcomes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This detailed review includes key points mentioned in the book, but to unlock your brain's full potential, I recommend you to read the book "The Programmer's Brain" by Manning Publications, which is offering a 45% Discount for all its publications exclusively for my readers (and yes, you're one of 'em) if you're using below code at the checkout.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Enter this code at the checkout - buzzpy24&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Also, I'm giving away 2 free e-books of "The Programmer's Brain", selected randomly from whoever &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSewTJgvKb4wu9HL5e1-TWv5--ChvQCvZ5t4PZPolubmfUbjag/viewform?usp=sf_link" rel="noopener noreferrer"&gt;fills out this Google form.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Back to the context— the book mainly covers 4 parts Reading Code, Thinking about Code, Writing Better Code, and collaborating on Code.&lt;/p&gt;

&lt;p&gt;Let's see what each part covers.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. On Reading Code Better 🔍
&lt;/h2&gt;

&lt;p&gt;The book begins with an interesting part— how does our brain read code?&lt;/p&gt;

&lt;p&gt;Reading code, ours or others is a core part of programming. According to the book, research indicates that almost 60% of programmers spend time understanding rather than writing code. Code reading is not taught or practiced often, and getting to know code is confusing and hard work. But before teaching how to read code in a better way, this book shows how the brain normally reads code.&lt;/p&gt;

&lt;p&gt;It states that when we're reading code, our brain tries to process it while reading, but we're not able to clearly express how it processes the code or what it relies on. And then the book shows 3 types of confusion that may occur when reading a certain program, followed by a practical activity where a certain program is written in 3 different languages and you are to read and understand what happens.&lt;/p&gt;

&lt;p&gt;Give yourself a few minutes to deeply inspect these programs. What type of knowledge do you rely on when reading them? How does that differ for the three programs? You might not have the words at this point to express what happens in your brain when you read these programs, but I would guess it will feel differently for each.&lt;/p&gt;

&lt;p&gt;After this, we can clarify how we read the code, and why did we get confused. Accordingly, the 3 types of confusion are,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Confusion type 1: Lack of knowledge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Confusion type 2: Lack of information&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Confusion type 3: Lack of processing power&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thereafter, the book describes cognitive processes related to programming— &lt;strong&gt;&lt;em&gt;STM (Short-term memory)&lt;/em&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;LTM (Long-term memory)&lt;/em&gt;&lt;/strong&gt;, and &lt;strong&gt;&lt;em&gt;Working Memory&lt;/em&gt;&lt;/strong&gt; in depth. By the end of Chapter 1, you'll be able to express what's happening in your brain while reading a certain program.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quickly reading your code
&lt;/h3&gt;

&lt;p&gt;The 2nd chapter of this part, "Speed reading for code" first analyzes why reading code quickly is hard, and how to overcome size limits in our memory— Chunnking our code and I love what this chapter covers.&lt;/p&gt;

&lt;p&gt;As I mentioned earlier, when it comes to real life, code reading is more important than writing code itself. Thus, reading code clearly affects your programming expertise.(— well, I didn't think about that before). The first section of the chapter is also followed by an activity where you're given a Java program and asked to reproduce it after examining it for 3 minutes, from your memory.&lt;/p&gt;

&lt;p&gt;As it sounds, it's not an easy task. The following illustration demonstrates what happened to your brain during the activity.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsz8nft12rg410319mah.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffsz8nft12rg410319mah.png" alt=" " width="800" height="493"&gt;&lt;/a&gt; Source: The Programmer's Brain Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then the book uncovers why it's hard to read unfamiliar code, followed by an amazing explanation of the size limit of your short-term memory, and how it needs to collaborate with LTM to overcome its size limitations.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Power of Chunking
&lt;/h3&gt;

&lt;p&gt;This part is followed by the results of a research conducted by Adried De Groot ("Groot" is pronounced more likely as "Growth" rather than "Root" of "Boot", by the way) to find out why one person can become a great chess player while other players are bound to remain “medium” chess players for their entire lives.&lt;/p&gt;

&lt;p&gt;In his first chess experiment, experts and average chess players were asked to remember a chess setup. Expert players were able to recall more pieces than average players.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsxs7xsg3mnwiat1jg4d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgsxs7xsg3mnwiat1jg4d.png" alt=" " width="800" height="506"&gt;&lt;/a&gt; Source: The Programmer's Brain Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;His conclusion was that the expert players outsmarted average players because expert chess players simply had an STM with a larger capacity than average players.&lt;/p&gt;

&lt;p&gt;But his second experiment's outcome was surprising. This time, instead of showing the participants a real chess setup like in experiment 1, he showed them chessboards with randomly placed pieces—and not just a little bit random; the chess pieces were set up in entirely unrealistic configurations. And the outcome: both expert and average players performed equally badly.&lt;/p&gt;

&lt;p&gt;That's when De Groot decided to find out how exactly the players remembered the chess setups. It turned out that in both experiments the average players mostly remembered the setups piece by piece. They would try to recall the setups by saying “A rook at A7, a pawn at B5, a king at C8," and so on.&lt;/p&gt;

&lt;p&gt;Expert players, on the other hand, recalled the setup, and heavily relied on information stored in their LTM. For example, they might remember “a Sicilian opening, but one knight is two squares to the left.” Remembering the setup like that, of course, is only possible if you know what pieces are used in the Sicilian opening, which is stored in the LTM.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzy8fqe8hhgpmuy1r98ed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzy8fqe8hhgpmuy1r98ed.png" alt=" " width="602" height="581"&gt;&lt;/a&gt;&lt;br&gt;
Just in case you're wondering what Sicilian Opening is.&lt;br&gt;
Source: Quora&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So what does this have to do with programmers? This means, if you have enough information in your LTM, your STM can easily retrieve relevant information from LTM overcoming its size limitations, ultimately helping you to read (and process) code faster than ever.&lt;/p&gt;

&lt;p&gt;In the next chapter, the book will uncover how to store information in your LTM quickly and reliably. The rest of this chapter also includes some more interesting research and activities, but here's a summary.&lt;/p&gt;

&lt;p&gt;When you lack enough knowledge in your LTM, you have to rely on low-level reading of code, like letters and keywords. When doing that, you will quickly run out of space in your STM.&lt;/p&gt;

&lt;p&gt;When your LTM stores enough relevant information, you can remember abstract concepts like “a for-loop in Java” or “selection sort in Python” instead of the code at a lower level, occupying less space in your STM.&lt;/p&gt;

&lt;p&gt;When you read code, it is first stored in the iconic memory. Only a bit of the code is subsequently sent to the STM.&lt;/p&gt;

&lt;p&gt;Remembering code can be used as a tool for (self) diagnosis of your knowledge of coding. Because you can most easily remember what you already know, the parts of code that you remember can reveal the design patterns, programming constructs, and domain concepts you are most familiar with.&lt;/p&gt;

&lt;p&gt;Code can contain characteristics that make it easier to process, such as design patterns, comments, and explicit beacons.&lt;/p&gt;

&lt;p&gt;All the above content is deeply described in the book, I highly recommend giving it a read,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.manning.com/books/the-programmers-brain" rel="noopener noreferrer"&gt;The Programmer's Brain - Manning Publications&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Learn Programming Syntax Quickly
&lt;/h3&gt;

&lt;p&gt;Is it necessary to memorize programming syntax? We have ChatGPT, right?&lt;/p&gt;

&lt;p&gt;Many programmers believe that if you do not know a certain piece of syntax, you can just look it up on the internet and that therefore syntax knowledge is not all that important. There are two reasons why “just looking things up” might not be a great solution. The first reason was covered in the previous chapter: what you already know impacts to a large extent how efficiently you can read and understand code. The more concepts, data structures, and syntax you know, the more code you can easily chunk and thus remember and process.&lt;/p&gt;

&lt;p&gt;Plus, we don't need to get mad at ChatGPT generating code that is opposite to the code that we asked for and we can code with pleasure knowing that we can exist without AI.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The second reason is that an interruption of your work can be more disruptive than you think. Just opening a browser to search for information might tempt you to check your email or read a bit of news, which may not be relevant to the task at hand. You might also lose yourself in reading detailed discussions on programming websites when you are searching for related information.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now that it's clear that it's important to remember programming syntax, let's move on.&lt;/p&gt;

&lt;p&gt;The book introduces flashcards to learn and remember programming syntax quickly. Flashcards are simply paper cards or Post-Its. One side has a prompt on it—the thing that you want to learn. The other side has the corresponding knowledge on it.&lt;/p&gt;

&lt;p&gt;When you use your flashcards regularly, after a while you might start to feel that you know some of the cards well. When this happens, you might want to thin out your set of cards a bit. To keep track of how well you know certain concepts, you can keep a little tally on each card of your right and wrong answers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkb9yg9pkc2v3kcjddokr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkb9yg9pkc2v3kcjddokr.png" alt=" " width="800" height="262"&gt;&lt;/a&gt;&lt;br&gt;
Source: "The Programmer's Brain" Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The rest of the chapter covers How not to forget things, Strengthening your memories, and so on. I wish I could elaborate, but since this is just a "review" of the book, I'm unable to do so.&lt;/p&gt;

&lt;p&gt;Let's see what the last chapter of Part 1 has got,&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Read Complex Code
&lt;/h3&gt;

&lt;p&gt;Sometimes, you'll get to read complex code— complex enough that you can not process it inside your brain. In such cases, you'll have to write down the changing values in the program.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ferklevb70i898mxpss1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ferklevb70i898mxpss1x.png" alt=" " width="706" height="337"&gt;&lt;/a&gt;&lt;br&gt;
Source: The Programmer's Brain Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To understand why you sometimes need to offload information, you need to understand the third cognitive process mentioned in the book— The Working Memory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Working memory vs. STM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Felienne Hermans has compared the STM to the RAM of a computer and the LTM to the hard drive. Following that analogy, the working memory is like the brain’s processor.&lt;/p&gt;

&lt;p&gt;The working memory represents the brain’s capacity to think, to form new ideas, and to solve problems.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfot6ifampovn103va6n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdfot6ifampovn103va6n.png" alt=" " width="800" height="287"&gt;&lt;/a&gt; Source: The Programmer's Brain Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Like the STM, the working memory is only capable of processing two to six things at a time— this capacity is known as the cognitive load. When you are trying to solve a problem that involves too many elements that cannot be divided efficiently into chunks, your working memory will become “overloaded.”&lt;/p&gt;

&lt;p&gt;The rest of Chapter 4 introduces methods to systematically address cognitive load with examples and also the memory aids to use when your working memory is overloaded.&lt;/p&gt;

&lt;p&gt;(That's 1.6K words just for the first part of the book, not to mention all that was just a scratch of the book! )&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffvlr6cpvick7pqxxjoix.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffvlr6cpvick7pqxxjoix.gif" alt=" " width="640" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. On thinking about Code 💭
&lt;/h2&gt;

&lt;p&gt;This part covers thinking about code: how to deeply understand programs and avoid bugs in thinking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reaching a deeper understanding of code
&lt;/h3&gt;

&lt;p&gt;In this chapter, the book mentioned something I have never heard about— The roles of the variables framework.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;According to professor Jorma Sajaniemi at the University of Eastern Finland, the reason variables are hard to understand is that most programmers do not have a good schema in their LTM to relate variables to. Sajaniemi argues that we tend to use chunks that either encompass too much, like “variable” or “integer,” or are too small, such as a specific variable name like number_of_customers. Instead, programmers need something in between, which motivated him to design the roles of variables framework. A variable’s role indicates what it does within the program.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sajaniemi argues that with just 11 roles, you can describe almost all variables. Those variable roles are— Fixed Value, Stepper, Flag, Walker, Most recent holder, Most wanted holder, Gatherer, Container, Organizer, Temporary, and Follower.&lt;/p&gt;

&lt;p&gt;Must say that &lt;em&gt;♪I love it that way♫.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8ee7fhfahs26kz66kfc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8ee7fhfahs26kz66kfc.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Source: The Programmer's Brain Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;According to the book, studies have shown that this framework can help students to mentally process source code and that students who use the roles of variables framework outperform those who do not. One reason it’s so effective is that often a group of roles together characterizes a certain type of program.&lt;/p&gt;

&lt;p&gt;For example, a program with a stepper and a most wanted holder value is a search program.&lt;/p&gt;

&lt;p&gt;If you want to annotate code to get a better understanding, you can use a set of icons to represent the above 11 variable roles. Felienne Hermans has included his set of icons with examples in the book as well.&lt;/p&gt;

&lt;p&gt;Rest of the chapter 5 also covers many useful topics along with interesting research, and practical activities. I'm literally in love with this book!&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting better at solving programming problems
&lt;/h2&gt;

&lt;p&gt;As the title suggests, this chapter covers getting better at solving problems as a programmer. It suggests the use of models to solve problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Models&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As the author suggests, Models are simplified representations of reality, and the main goal of a model is to support you in thinking about a problem and ultimately solving it. Models can have various shapes and levels of formality. A rough calculation on the back of a beer mat is a model, but an entity relationship diagram of a software system is also a model.&lt;/p&gt;

&lt;p&gt;Models can be a big help in solving problems because they help the LTM identify relevant memories.&lt;/p&gt;

&lt;p&gt;Then it comes to Mental Models.&lt;/p&gt;

&lt;p&gt;The definition of a mental model that I like best is this one: a mental model creates an abstraction in your working memory that you can use to reason about the problem at hand.&lt;/p&gt;

&lt;p&gt;This topic is followed by how to use mental models efficiently when reading code— along with the &lt;strong&gt;&lt;em&gt;fork-and-spoon experiment&lt;/em&gt;&lt;/strong&gt;'s results conducted by Johnson-Laird.&lt;/p&gt;

&lt;p&gt;And then the book uncovers various insights about "Notional Machines". Notional machines are abstract versions of how a real computer functions that are used when explaining programming concepts and reasoning about programming.&lt;/p&gt;

&lt;p&gt;If I'm going to explain it further with examples, it's gonna take at least another 700 words so— give it a read yourself!&lt;/p&gt;

&lt;h3&gt;
  
  
  Misconceptions: Bugs in thinking
&lt;/h3&gt;

&lt;p&gt;I love bugs, as much as I love this chapter!&lt;/p&gt;

&lt;p&gt;(I have literally written &lt;a href="https://dev.to/buzzpy/why-do-i-debugging-5h51"&gt;an article about debugging&lt;/a&gt;— check it out if you won't get distracted)&lt;/p&gt;

&lt;p&gt;It's true, sometimes those itchy bugs are just missing commas and syntax errors. But the book suggests that more often, those bugs are &lt;em&gt;due to the mistakes in our thinking.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You might not know that a file needs to be closed after use, or you might assume that the programming language closes the file for you automatically, and thus a bug blows up.&lt;/p&gt;

&lt;p&gt;But before diving into Bugs in thinking, Felienne Hermans explains why learning a second programming language is easier than learning your first programming language, and how to benefit from your existing programming language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Misconceptions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The book says that when you are sure your code will work, but it still fails, chances are that you are &lt;em&gt;suffering from a misconception&lt;/em&gt;. For a belief to be a misconception, it should be faulty, be held consistently across different situations, and be held with confidence.&lt;/p&gt;

&lt;p&gt;Felienne has mentioned a great example of a misconception in programming: New programmers sometimes assume that a variable, like, can only hold one value that cannot be changed. While that assumption might sound absurd to an experienced programmer, there are reasons why assuming that a variable can only hold one value is sensible— this assumption might be transferred from prior knowledge of mathematics, where variables indeed do not change within the scope of a mathematical proof or exercise.&lt;/p&gt;

&lt;p&gt;While the rest of the chapter uncovers some common misconceptions about programming, and how to suppress them, here's a summary:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Misconceptions are not always addressed by simply realizing or being told you are wrong. For misconceptions to be fixed, you need a new mental model to replace the old, wrong model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Even if you have learned a correct model, there is always the risk you will fall back on using the misconception.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use tests and documentation within a codebase to help prevent misconceptions&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then let's jump into the part 3,&lt;/p&gt;

&lt;h2&gt;
  
  
  On writing better Code 📝
&lt;/h2&gt;

&lt;p&gt;This part moves our attention to writing better code: how to write understandable code and avoid vague names and code smells.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to get better at naming things
&lt;/h3&gt;

&lt;p&gt;Fortunately, the above topic is widely discussed among developers and &lt;strong&gt;&lt;em&gt;developers ARE getting better at naming things.&lt;/em&gt;&lt;/strong&gt; Thus, I won't go further in this chapter.&lt;/p&gt;

&lt;p&gt;The book discusses why naming matters with examples, and different perspectives on naming, and then comes an interesting part— Cognitive aspects of Naming. It's said that &lt;strong&gt;Formatting names support our STM, while clear names support our LTM&lt;/strong&gt;. And also variable names can contain different types of information to help you understand them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F105zzh7oeqf203wuq0dw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F105zzh7oeqf203wuq0dw.png" alt=" " width="775" height="404"&gt;&lt;/a&gt;&lt;br&gt;
Source: The Programmer's Brain Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The rest of the chapter discusses many more interesting things such as &lt;strong&gt;&lt;em&gt;what types of names are easier to understand, snake case and camel case, the influence of names on bugs,&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;how to choose better names.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoiding bad code and cognitive load: Two frameworks
&lt;/h3&gt;

&lt;p&gt;This chapter uncovers the connection between code smells and cognitive processes, especially cognitive load, and surveys the connection between bad names and cognitive load.&lt;/p&gt;

&lt;p&gt;(Well, I accept that I didn't know what "code smells" is but turns out code smells are &lt;em&gt;parts of code that are not structured ideally.&lt;/em&gt; Like, very long methods or overly complex switch statements, you know.)&lt;/p&gt;

&lt;p&gt;This chapter includes an overview of Fowler’s smells (long method, lazy class, data class, etc) and the levels (method level, codebase level, and class level ) they pertain to with an in-depth explanation of the code smells' levels.&lt;/p&gt;

&lt;p&gt;It also includes how to measure cognitive load, using the PaaS scale (not to be confused with the "Platform as a service" abbreviation) along with an exercise.&lt;/p&gt;

&lt;p&gt;Phew, that's a lot of words but we still have 4 more chapters, so move on!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Oh by the way, have you seen what a baby penguin looks like?&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fysuvp8vxo5nwlhf7fg34.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fysuvp8vxo5nwlhf7fg34.png" alt=" " width="800" height="790"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Getting better at solving complex problems
&lt;/h3&gt;

&lt;p&gt;This chapter uncovers about the "The State Space"— All steps that we could consider while solving a program are called the problem’s state space. When playing tic-tac-toe, all possible fields are the state space.&lt;/p&gt;

&lt;p&gt;(It's kinda like the sample space which includes possible outcomes of a certain event- that's another thing anyway)&lt;/p&gt;

&lt;p&gt;As an example in programming, when adding a button to a website, all possible JavaScript programs are the state space. It is up to the problem solver to make the right moves or add the right lines of code to reach the start goal.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F382w5ar2cspa9v5ifi4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F382w5ar2cspa9v5ifi4w.png" alt=" " width="800" height="330"&gt;&lt;/a&gt;&lt;br&gt;
Source: The Programmer's Brain Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After introducing what's problem-solving, Hermans answers a question that has long-germinated in my mind— Is problem-solving a cognitive process on its own? He answers this question along with George Pólya's book. His book proposes a “system of thinking” to solve any problem involving three steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding the problem&lt;/li&gt;
&lt;li&gt;Devising a plan&lt;/li&gt;
&lt;li&gt;Carrying out the plan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, the book states that research has consistently shown that problem-solving is neither a generic skill nor a cognitive process, despite the popularity of generic approaches. There are 2 reasons why,&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You use LTM to solve problems&lt;/li&gt;
&lt;li&gt;It's easier for your brain to carry out familiar problems.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The rest of chapter 10 uncovers many insights A new type of cognitive load(Germane load,) implicit memory, and memories that play a role in problem-solving.&lt;/p&gt;

&lt;h2&gt;
  
  
  On Collaborating on Code 👥
&lt;/h2&gt;

&lt;p&gt;While the previous parts focused on an individual developer, this part is dedicated to collaborating with other developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  The act of writing code
&lt;/h3&gt;

&lt;p&gt;In the first section of this chapter, this chapter focuses on five programming activities, what programming tasks you likely do in these activities, and what makes each activity hard.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdl6qv5fvccjom1zh47yd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdl6qv5fvccjom1zh47yd.png" alt=" " width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
Source: The Programmer's Brain Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Each activity is explained in depth and then comes something interesting— &lt;strong&gt;Interrupted programmer&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu2u5hmsmzpm7r0bw7amz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu2u5hmsmzpm7r0bw7amz.png" alt=" " width="736" height="1153"&gt;&lt;/a&gt;&lt;br&gt;
Source: Pinterest&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a very relatable experience for all of us, and of course, it affects our productivity. Van Solingen has found out that interruptions are common and take 15–20 minutes each. About 20% of a developer’s time is spent on interruptions.&lt;/p&gt;

&lt;p&gt;According to the book, It takes about a quarter of an hour to start editing code after an interruption. When interrupted during an edit of a method, programmers could resume their work in less than a minute only 10% of the time.&lt;/p&gt;

&lt;p&gt;But the best thing is, this chapter has got us covered. It includes &lt;strong&gt;&lt;em&gt;how to better prepare for interruptions with three techniques&lt;/em&gt;&lt;/strong&gt; and an important question has been answered— when to interrupt a programmer and also some thoughts on multitasking.&lt;/p&gt;

&lt;h3&gt;
  
  
  Designing and Improving Larger Systems
&lt;/h3&gt;

&lt;p&gt;In this chapter, the focus shifts from individual lines of code to the broader aspects of organizing code for better understanding.&lt;/p&gt;

&lt;p&gt;Felienne introduces C*&lt;em&gt;ognitive Dimensions of Codebases (CDCB)&lt;/em&gt;*, a framework derived from Cognitive Dimensions of Notations (CDN). CDCB allows developers to assess the usability of large codebases and gain insights into how they can be understood and improved.&lt;/p&gt;

&lt;p&gt;The chapter further discusses cognitive dimensions of code bases (CDCB) and uses it to examine a codebase to understand how it can be understood and improved. CDCB is especially useful for code written in libraries and frameworks, which other programmers often call rather than adapt. The chapter first discusses each of the dimensions in isolation and then dives into how the different dimensions interact with each other and how we can use them to improve existing codebases.&lt;/p&gt;

&lt;p&gt;That's a long way around, thus let's save it to read for later and jump into the last chapter.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to onboard new developers
&lt;/h3&gt;

&lt;p&gt;Now that looks interesting.&lt;/p&gt;

&lt;p&gt;As the title suggests, this chapter is about welcoming new developers or expert developers to an unfamiliar codebase. But first, the book discusses the &lt;em&gt;difference between beginner developers and expert developers&lt;/em&gt;, starting with an overview of the four different neo-Piagetian levels for programming.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowlnltyp8qtkio1e4mia.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fowlnltyp8qtkio1e4mia.png" alt=" " width="800" height="498"&gt;&lt;/a&gt;&lt;br&gt;
Source: The Programmer's Brain Book&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After an in-depth explanation of the neo-Piagetian level, the author explains the difference between seeing concepts concretely and abstractly, along with some mindblowing insights. &lt;/p&gt;

&lt;p&gt;And then comes the part I want every senior developer to read: &lt;em&gt;&lt;strong&gt;Activities for a Better Onboarding Process&lt;/strong&gt;&lt;/em&gt;, where he suggests 3 activities that are explained in depth. He suggests &lt;em&gt;limiting tasks to one programming activity, supporting the memory of the onboardee&lt;/em&gt;, and &lt;em&gt;reading the code together&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;And now, finally, we have come to the end.&lt;/p&gt;

&lt;h2&gt;
  
  
  That's just a bit of the book!
&lt;/h2&gt;

&lt;p&gt;I agree, this review contained a lot— actually, this is one of the longest articles I've ever written but yet, I did skip a lot of parts of the book. For example, I didn't mention Feitelson’s three-step model for better variable names, the fact that "If you can learn French, you can learn Python", and a lot more interesting facts and insights.  &lt;/p&gt;

&lt;p&gt;I appreciate you for reading this too-much-detailed review, and since you've read this so far, why not get the book and read it yourself?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.manning.com/books/the-programmers-brain" rel="noopener noreferrer"&gt;The Programmer's Brain - Manning Publications&lt;/a&gt;&lt;br&gt;
It's really worth the $40, besides, you can get a 45% discount by using the code &lt;code&gt;buzzpy24&lt;/code&gt; which can give you 18$ off this book which makes it: $22 only.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Oh by the way, I'm also giving away 2 free e-books of "The Programmer's Brain", selected randomly from whoever &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSewTJgvKb4wu9HL5e1-TWv5--ChvQCvZ5t4PZPolubmfUbjag/viewform?usp=sf_link" rel="noopener noreferrer"&gt;fills out this Google form.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Until the next article, happy coding!&lt;/p&gt;

&lt;p&gt;If you have any suggestions/criticisms (I'm sure that this review is very lengthy and many contain many faults/mistakes), feel free to comment!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
    </item>
    <item>
      <title>Branding for Developers : A Practical Guide</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Sun, 14 Jan 2024 07:19:34 +0000</pubDate>
      <link>https://dev.to/buzzpy/branding-for-developers-437</link>
      <guid>https://dev.to/buzzpy/branding-for-developers-437</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8jrsq0lujryda2t6cki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd8jrsq0lujryda2t6cki.png" alt="buzzpy" width="800" height="87"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://byteclash.hashnode.dev/branding-for-developers-ai" rel="noopener noreferrer"&gt;Read the AI Version of this article&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello, precious bug dealers! Huge kudos to you for diving into the world of building your brand. Believe me, not every software developer explores this path.&lt;/p&gt;

&lt;p&gt;By the way, what is “Personal Branding”? Let me explain.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Personal branding is the art of consistently presenting, online and offline, the essence of how you stand out from the crowd.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In other words, you need to be consistent and work on specific things that are a part of you and how people see you. So it’s really about you－about yourself, who you are, and who you want to be.&lt;/p&gt;

&lt;p&gt;Oh wait, let's be kinda honest, shan't we?&lt;/p&gt;

&lt;p&gt;Practically and honestly, personal branding is about how you wish to be seen because, let's face it, whether or not you consciously care about others' opinions, it holds significance.&lt;/p&gt;

&lt;p&gt;So yes, since you have taken the first step, we can take the BIG step of building your brand. But in case you’re still wondering why on the earth you need to build a brand as a developer, I summed it up.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. It Opens BIG OPPORTUNITIES!
&lt;/h2&gt;

&lt;p&gt;Same as everyone, you too might be applying for many and many jobs if you find a match but only some of them accept you.&lt;/p&gt;

&lt;p&gt;As a developer personal branding matters when you are looking to change your job. You want your employers to hire you not only as a good developer but also as an innovative one. To make that possible, you need to cultivate a personal brand that can highlight your value to your potential employers.&lt;/p&gt;

&lt;p&gt;For a real example, Victoria Lo, a developer with a strong brand, landed a job at Paypal, without sending a single application or a CV.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. You can learn more and more!
&lt;/h2&gt;

&lt;p&gt;While creating a personal brand, you meet many people from your niche. You interact with them, share your knowledge, learn from them, and discuss ideas and all this will give you a level of expertise that wouldn’t have been possible otherwise. It doesn't matter how you want to improve your career, personal branding is the key!&lt;/p&gt;

&lt;p&gt;Yup, I think that’s enough. Now the important part is how to build your brand. Here's how.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Your Brand
&lt;/h2&gt;

&lt;p&gt;Here are the steps you have to follow to build your strong brand.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Find your brand personality (name, brand color, etc.).
&lt;/h3&gt;

&lt;p&gt;The most important task. If this fails, everything fails. But don't worry, I will guide you.&lt;/p&gt;

&lt;p&gt;First, choose the brand colors. It’s totally up to you. But make sure it’s remarkable. If someone sees your brand color, they must remember who you are.&lt;/p&gt;

&lt;p&gt;One thing you should remember is to choose living and unique colors. If you’re an individual, I highly recommend not using just black and white. Seeing the colors black and white everywhere feels like it's not alive. Use some colors like blue, pink, green— any color that looks alive, and fresh.&lt;/p&gt;

&lt;p&gt;For example, Chris Bongers has chosen a combination of colors such as pink, blue, and yellow as his brand colors, and now no matter where you see those, the name "Daily Dev Tips" will come right into your mind.&lt;/p&gt;

&lt;p&gt;And the most important thing— building your brand name. Sounds easy, right? But it’s not that easy; at least for me, it was not easy.&lt;/p&gt;

&lt;p&gt;Your brand name doesn’t always need to be your real one. If your name is too long and hard to spell or pronounce, it might not be able to build a strong brand. This is where a lot of developers fail.&lt;/p&gt;

&lt;p&gt;Taking my brand name as an example, it might seem meaningless but by the moment someone hears it, they can spell or pronounce it. Besides, it gives a basic idea I always wanted— kinda messy yet sometimes over-energetic(which leads to unexpected disasters...). In my point of view, it's just perfect!&lt;/p&gt;

&lt;p&gt;I think now you have an idea of how what your brand name should be. But I’m sure it’s not easy to build a strange name. What about a name that has terms of your area of expertise, one of your characteristics, or even your pet’s name? For example, my name is built up with Buzz + Py. Buzz is used to feeling messy (one of my traits. To say, my code is not messy) as well as to remark the famous FizzBuzz program while Py is for Python.&lt;/p&gt;

&lt;p&gt;What I did first was to write all the names/terms in my mind on Notepad and try to match them. Those words are still saved, and they look like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9wo2al1yiq0pvbx08l2h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9wo2al1yiq0pvbx08l2h.png" alt="Buzzpy" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you’re done with all those, you must define yourself! Yes, personal branding is all about you.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What’s my name? (Brand Name)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What are the colors that define me? (Brand Colours)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What’s my Profession (Programmer, Developer, or whatever. Feel free to build up your own if you’re a freelancer!)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How should I sound? Professional or Friendly? (Brand Voice)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What's a phrase or a sentence that best describes me? (Brand Tagline)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What do I do mainly? (say coding)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In what areas do I have expertise?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What are the other things I do? (maybe your hobbies or other side hustle you make money)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What are my most unique personal traits?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember about the gift I mentioned before? I'm not sure whether it would be disappointing (hopefully not), but here it is— A brand info sheet! Just fill out the form, save it, and keep it yourself for future reference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyz9amnto3s754l97omy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqyz9amnto3s754l97omy.png" alt="Buzzpy" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Download your information sheet from Google Drive - &lt;a href="https://drive.google.com/file/d/1KIuZQLP_5uzOTOkcmQakuGgo66Tj-VRr/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1KIuZQLP_5uzOTOkcmQakuGgo66Tj-VRr&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s take an example. My answers to the above questions are,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Buzzpy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Grey and Blue.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python Developer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Friendly, Conversational.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Buzzy Pythoneer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Python Programming.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Analysis, Technical Writing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reading, Branding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Buzzy (Chilling or messy, stands for both of them), Introverted.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And here it is, my personal brand. Nothing less, nothing more.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Start your Blog
&lt;/h3&gt;

&lt;p&gt;What’s better than blogging to tell people who you are? Blog about anything you hold expertise in, whether it is a programming language or it is some kind of technology, and let people understand who you are. Many developers out there have some awesome technical blogs where they share their knowledge and write about their specialties.&lt;/p&gt;

&lt;p&gt;If you need to start a free developer blog while getting inspired, Dev Community and Hashnode are the best options! Hashnodes gives you your blog even with a custom domain and saves you a lot of time building up your blog!&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Participate in Communities:
&lt;/h3&gt;

&lt;p&gt;Communities like Quora, StackOverflow, etc can be your best friends if you intend to create a brand online. Join these communities and try your best to solve the questions of users from your niche. It will not only help you interact with your kind of people but will also improve your problem-solving skills. Sites like Stack Overflow, and GitHub allow developers to work together on projects, which can open a wide opportunity to learn.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Reach out to Social Media
&lt;/h3&gt;

&lt;p&gt;I’m an introvert, and I have a really difficult time when it comes to social media. That’s the only reason for me to participate on LinkedIn, as a professional because I care about my stable mind a lot. But I highly recommend you reach out to other social media, especially Twitter (must I say "X"? ). It helps you a lot in building and promoting your brand.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Build Your Principles
&lt;/h3&gt;

&lt;p&gt;When it comes to branding, following your principles is important. You must never be a money-hungry person who will do or change anything for a rate. Whether it loses you 1000 dollars, do not cross your line.&lt;/p&gt;

&lt;p&gt;For example, if someone asks you to do a review on one of their bad products to increase users and offers you a lot of money to promote it as an excellent product, just say “No, Thanks.” Not like the $1500 they offer, if you get attention for being a fake reviewer and people stop following/ reading your content, it may lose you more than a thousand dollars and your whole brand and effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps 👣
&lt;/h2&gt;

&lt;p&gt;That’s a lot of words! First, thanks for reading until the end. I hope you learned a lot of things and will get started on branding yourself as a developer as soon as possible. Yes, you might be late but late is a lot better than never! Try building your blog if possible, because it’s the best way to get recognition. If you’re not interested in writing, build a portfolio or stand out on Social media!&lt;/p&gt;

&lt;p&gt;Until next chillin' Friday, Happy Branding!&lt;/p&gt;

&lt;p&gt;Download your information sheet from Google Drive - &lt;a href="https://drive.google.com/file/d/1KIuZQLP_5uzOTOkcmQakuGgo66Tj-VRr/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1KIuZQLP_5uzOTOkcmQakuGgo66Tj-VRr&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Did you know the blog "ByteClash : AI vs. Buzzpy"? Every article or tutorial there is like a double take, coming at you from two different angles— the smart side of AI and the friendly touch of a human.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://byteclash.hashnode.dev/" rel="noopener noreferrer"&gt;Visit ByteClash : AI vs. Buzzpy&lt;/a&gt;&lt;br&gt;
&lt;a href="https://byteclash.hashnode.dev/branding-for-developers-ai" rel="noopener noreferrer"&gt;Read the AI Version of this article&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>tutorial</category>
      <category>career</category>
    </item>
    <item>
      <title>Why you should ♥️ Debugging?</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Fri, 12 Jan 2024 04:49:09 +0000</pubDate>
      <link>https://dev.to/buzzpy/why-do-i-debugging-5h51</link>
      <guid>https://dev.to/buzzpy/why-do-i-debugging-5h51</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd0bqhed0h7jbwwexo49v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd0bqhed0h7jbwwexo49v.png" alt="Buzzpy" width="800" height="87"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello again, buzzdies! Hope you had such a great week 😊&lt;/p&gt;

&lt;p&gt;Alright, let’s get into the thing. By the time you read the title of the article, I’m sure you were like….&lt;/p&gt;

&lt;p&gt;“What the hell are you talking about!?”&lt;/p&gt;

&lt;p&gt;I understand because programmers or developers usually hate debugging, but what if we look at the other side of debugging? We always think that the time spent on debugging is such a waste of time, but that’s not true. Time spent on debugging is Golden!&lt;/p&gt;

&lt;p&gt;Yup, that’s a weird sentence. But by the end of this article, I think you too will agree with me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debugging is the best way to learn
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flj4akpwvvv839wx52pji.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flj4akpwvvv839wx52pji.png" alt="Buzzpy" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every programmer hates debugging, especially beginners. So did I at the beginning. I spent months learning to code, and when I started to build an application, I had to spend days just debugging the code. That’s not fair.&lt;/p&gt;

&lt;p&gt;But later, I tried to understand the other side of it; if I’m finished with learning to code, why do I have bugs everywhere? That simply means I have a lot more to learn. Does that mean I have to go through another ton of courses?&lt;/p&gt;

&lt;p&gt;That’s where I started to thank those buggy bugs in my code. When I have a lot of bugs to debug when writing code, I don’t have to spend years learning everything through courses or whatever, because when I find a solution to one bug, I have learned a bunch of important things.&lt;/p&gt;

&lt;p&gt;There are many things I learned through debugging— Working with Threads and Async Functions, Different ways to import external scripts, running EXEs through different methods, and a lot more, which were never included in the courses I went through.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debugging develops Soft Skills
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcdxntf1heewlm6zxdvdx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcdxntf1heewlm6zxdvdx.png" alt="Buzzpy" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second I face a bug, the first thing that comes to my mind is ‘Why is it always me!’. And when I spend hours trying to fix it and nothing works, I want to shut down this stupid thing and give up the whole project!&lt;/p&gt;

&lt;p&gt;But when the time flies, fixing bugs for hours by focusing becomes a usual thing and we don’t feel the feeling we had as a beginner. In simple words, we can code like a monk. That means we have improved our patience and focusing skills, isn’t it?&lt;/p&gt;

&lt;p&gt;Not only that, debugging helps to improve our communication skills as well. The best example is asking questions in StackOverflow. And since almost all of us have experience with that, I’m not gonna talk about it!&lt;/p&gt;

&lt;p&gt;The main reason for improving our patience, communication, and focusing skills is Debugging. How can we hate it?&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips for perfect debugging
&lt;/h2&gt;

&lt;p&gt;Just in case you’re stuck with a lot of bugs and everything is messed up, these tips might be useful for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ask Questions
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvttoehzxla56w664e8t1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvttoehzxla56w664e8t1.png" alt="Buzzpy" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before starting to fix bugs, you need to ask questions about your code. A rubber duck or a stuffed animal might be really useful. (But be sure not to ask those from a non-programmer)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What do you need the program to do?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What does it do?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What are the issues you’ve found?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have you encountered these types of problems before?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If yes, What did you do to fix them?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Where and why do you think the bugs occurred?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I personally use this too often, and it gives me a good result in return.&lt;/p&gt;

&lt;h3&gt;
  
  
  Focus on Error Messages as well
&lt;/h3&gt;

&lt;p&gt;![Buzzpy(&lt;a href="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9zqpzfagpn966zeqgelv.png" rel="noopener noreferrer"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9zqpzfagpn966zeqgelv.png&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Error messages aren’t just annoying messages — they actually tell you exactly what the problem is with your code. So the next time an error message pops up, make sure to read it as it can give you at least a small hint about what’s going on. If you’re not sure what the error message means, try searching for it online. Chances are someone else has encountered the same problem in the past and could know how to fix it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Log Everything
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0lkbkd5vz3cd9of2j3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0lkbkd5vz3cd9of2j3.png" alt="Buzzpy" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This might seem like a boring thing to do, but it can save you a lot of time. Documenting every issue you encounter, as well as the steps you take to address them helps you to ensure that your program is running correctly. Once you’ve documented the error, you can start mapping out potential scenarios and solutions.&lt;/p&gt;

&lt;p&gt;This will also allow you to navigate different potential solutions without repeating them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ask for help
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff8rowbt3bsy06x6oa7wd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff8rowbt3bsy06x6oa7wd.png" alt="Buzzpy" width="800" height="430"&gt;&lt;/a&gt;&lt;br&gt;
In a lot of instances, the bug you found is encountered by at least one more person on the internet. It’s a good practice to reach out to a community that is specific to the framework/technology/tool you are using.&lt;/p&gt;

&lt;p&gt;For a lot of programmers, asking for help from the community is the first option. But I don’t agree with it because, in that manner, we get less opportunity to learn something on our own, even though the error gets fixed.&lt;/p&gt;

&lt;h3&gt;
  
  
  If nothing works, take a nap
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1t95konqr4z09gloyce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1t95konqr4z09gloyce.png" alt="Buzzpy" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Believe it or not, this is one of the most worked solutions for me. There’s a psychological aspect to this as well. When you have debugged for hours and your head is messed up, a small nap, a walk or just a 30-minute break can refresh your brain. Who knows, maybe you have missed just parentheses or a semi-colon somewhere?&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Debugging, hated by most developers has some beautiful sides as well. Understanding and looking at what is positive, can change everything, and even make you fall in love with debugging!&lt;/p&gt;




&lt;p&gt;Enjoyed the article? Make sure to subscribe to "The Buzzletter" so you will never miss any of my content + any gifts I offer! 🐳&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuztj2z1cj5e9b03b4aks.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuztj2z1cj5e9b03b4aks.png" alt=" " width="800" height="114"&gt;&lt;/a&gt;(&lt;a href="https://subscribepage.io/the-buzzletter" rel="noopener noreferrer"&gt;https://subscribepage.io/the-buzzletter&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Analyzing Amazon Data With Pandas - Beginner's Guide</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Thu, 21 Dec 2023 18:16:22 +0000</pubDate>
      <link>https://dev.to/buzzpy/beginners-guide-to-pandas-2fb6</link>
      <guid>https://dev.to/buzzpy/beginners-guide-to-pandas-2fb6</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2h78n67xa6qdj32d2kc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2h78n67xa6qdj32d2kc9.png" alt=" " width="800" height="87"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello, buzdies! 👋&lt;/p&gt;

&lt;p&gt;Pandas is one of the most helpful Python libraries used by millions of data scientists and analysts today. Along with other libraries like Matpotlib, Numpy, and Plotly, Pandas has been the backbone of numerous large-scale projects.&lt;/p&gt;

&lt;p&gt;If we take a simple example, think that you have a CSV file. With pandas, we can make it a data frame— or we can say a "table" with some data. And then, with just a simple keyword, you can find and analyze the data of each column and row— The mean, average, max, min, and everything!&lt;/p&gt;

&lt;p&gt;In this tutorial also, we’re going to learn the fundamentals of Pandas which will give you a perfect start for your data analysis journey. And one more advantage, you’re going to analyze your Amazon data as well!&lt;/p&gt;

&lt;p&gt;Oh, by the way, code samples in this tutorial can be found in the GitHub repository as well.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Buzzpy/Amazon-Data-Analysis" rel="noopener noreferrer"&gt;https://github.com/Buzzpy/Amazon-Data-Analysis&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Install Pandas(&lt;code&gt;pip install pandas&lt;/code&gt;) and import it (&lt;code&gt;import pandas as pd&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download Amazon Data Report&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Sign in to your Amazon Account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to Your Account &amp;gt; Account.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the Order and Shopping Preferences section, select “Download order reports”.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In case you’re not an active Amazon user, here’s a small &lt;a href="https://github.com/Buzzpy/Amazon-Data-Analysis/blob/main/Amazon%20Data%20Sample.xlsx" rel="noopener noreferrer"&gt;CSV file&lt;/a&gt; containing some of my personal data (some data aren't present)&lt;/p&gt;

&lt;h2&gt;
  
  
  But wait, what is Pandas?
&lt;/h2&gt;

&lt;p&gt;Pandas is a beloved library used by both Data scientists and analysts. So if you’re a data geek, Pandas is an essential skill you’ll need.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9w4rkwwb3gw781o3dlo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9w4rkwwb3gw781o3dlo.png" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The reason Pandas is among the top data science libraries is that it has many built-in functions that help to analyze and clean data in seconds. Below are the widely used Pandas functions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;pd.read_csv()&lt;/code&gt;: To read CSV files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;pd. DataFrame()&lt;/code&gt;: Convert Python objects (such as Lists) to a DataFrame. No need to use it when using CSV files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;df.head()&lt;/code&gt;: df stands for DataFrame and &lt;code&gt;head()&lt;/code&gt; can be used to show the first 5 rows while &lt;code&gt;tail()&lt;/code&gt; is used to show last 5 rows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;df.shape()&lt;/code&gt;: To find no: of rows and columns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;df. isna()&lt;/code&gt;: Find null values.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;df.fillna()&lt;/code&gt;: Fill empty cells with something, say 0.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;df.astype()&lt;/code&gt;: Convert data types.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;df.sum()&lt;/code&gt;: Get the sum of values in a column.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;df.columns()&lt;/code&gt;: Get the full list of columns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;df.drop_dulicates()&lt;/code&gt;: Drop all the duplicates.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Reading Data 🔎
&lt;/h3&gt;

&lt;p&gt;Now you can guess the code we can use to read our CSV file with Pandas. Yup, we will use the &lt;code&gt;pd.read_csv()&lt;/code&gt; function. But before that, make sure you’ve imported Pandas library as below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas as pd

df = pd.read_csv('Amazon Dataset.csv')
pd.set_option('display.max_columns', None) # display all the columns
print(df)

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

&lt;/div&gt;



&lt;p&gt;The output would print all the data in your CSV file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Cleaning 🧹
&lt;/h3&gt;

&lt;p&gt;In any project related to Data, cleaning data is an important step.&lt;/p&gt;

&lt;p&gt;In the previous output, you’ve seen that some columns have values called “NaN”— which means no data is present. Therefore, let’s deal with Null values first. Don’t worry, it has become very simple with Pandas built-in function &lt;code&gt;df.fillna()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you compare the output of this code with the previous one. You will notice that those ‘NaN’ values have been replaced with &lt;code&gt;0.0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The next thing we need to do is delete duplicates. Even though this CSV file might not contain any duplicates, it’s always a good practice.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df.drop_duplicates()
pd.set_option('display.max_columns', 36) # display all the columns
df = df.fillna(0)
print(df)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There’s one more important job. In the output, you saw that some columns(&lt;code&gt;Item Total&lt;/code&gt;) contain Price in USD, with a dollar sign ($) in front of them. This makes its data type a String, which is a barrier to calculations with it.&lt;/p&gt;

&lt;p&gt;So we have to use the following code to remove the dollar sign and convert it to an Integer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df.drop_duplicates()
pd.set_option('display.max_columns', 36) # display all the columns
df = df.fillna(0)
df["Item Total"] = df["Item Total"].str.replace('$','').astype(float)
print(df)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0o78oyboomtnc16npat2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0o78oyboomtnc16npat2.png" alt=" " width="698" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That’s Awesome! We can move to the next part now.&lt;/p&gt;

&lt;h3&gt;
  
  
  Find the total spending
&lt;/h3&gt;

&lt;p&gt;The most interesting part is here! Now let’s see how much you’ve spent on Amazon. Since we have converted the &lt;code&gt;Item Total&lt;/code&gt; column to floats, it’s easy to take the sum of the column using &lt;code&gt;sum()&lt;/code&gt; function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df = df.fillna(0)
df["Item Total"] = df["Item Total"].str.replace('$','').astype(float)

print(df["Item Total"].sum())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For this dataset, my result was:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;That means I’ve spent almost $2000 on Amazon. Gosh, that’s a lot for me. How much was yours?&lt;/p&gt;

&lt;h3&gt;
  
  
  Highest, Minimum, Average
&lt;/h3&gt;

&lt;p&gt;Now let’s find out what’s my highest spending. The only thing you have to do is update the previous code using &lt;code&gt;max()&lt;/code&gt; function instead of &lt;code&gt;sum()&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(df["Item Total"].max())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And my result was:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Well, I must find what I have which is worth a thousand dollars!&lt;/p&gt;

&lt;p&gt;To calm down after finding your biggest purchase, let’s find what is our lowest purchase price. In this time too, you have just to replace &lt;code&gt;max()&lt;/code&gt; with &lt;code&gt;min()&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(df["Item Total"].min())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the output was:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Which means my least spending on Amazon is $1.01.&lt;/p&gt;

&lt;p&gt;The final task of this tutorial is to find your average spending on Amazon. We will be using &lt;code&gt;mean()&lt;/code&gt; function, replacing &lt;code&gt;min()&lt;/code&gt; in the previous code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(df["Item Total"].mean())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Ignoring decimals, my average spending was $151 but to make sure, I'm going to use the median() function as well.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print(df["Item Total"].median()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;That's quite different, right? &lt;/p&gt;

&lt;p&gt;The difference between the mean and median in our dataset indicates that the distribution of "Item Total" values is skewed, probably due to a few high-spending outliers. The mean is sensitive to extreme values, and their influence pulls it higher than the median, which is less affected by outliers. This means that a small number of significant purchases are impacting the overall average, causing the mean to be higher than the median. &lt;/p&gt;

&lt;p&gt;If we want a more clear representation of our average spending habits, the best idea is to create a visual representation such as a histogram. But as for these tutorials, we'll continue like this— our average spend is between $96 - $151. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1bhfu0gv5ua91u2prgjp.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1bhfu0gv5ua91u2prgjp.gif" alt=" " width="480" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this tutorial, we learned much about Pandas— functions, different terms, etc. The key takeaway is that Pandas is a powerful and easy-to-use data analysis library that helps developers make their lives a lot easier when working with data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Buzzpy/Amazon-Data-Analysis" rel="noopener noreferrer"&gt;https://github.com/Buzzpy/Amazon-Data-Analysis&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;br&gt;
————————————————————————————&lt;/p&gt;

&lt;p&gt;Enjoyed the article? Make sure to subscribe to "The Buzzletter" so you will never miss any of my content + any gifts I offer! 🐳&lt;/p&gt;

&lt;p&gt;&lt;a href="https://preview.mailerlite.io/preview/199593/emails/107009935074657301" rel="noopener noreferrer"&gt;View December's Buzzletter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://subscribepage.io/the-buzzletter" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wkvyr3nw9fmp7v33r3l.png" alt=" " width="800" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>python</category>
    </item>
    <item>
      <title>How Do I Stay Happy as a Developer (And How do you do it? )</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Sun, 10 Dec 2023 15:32:19 +0000</pubDate>
      <link>https://dev.to/buzzpy/how-do-i-stay-happy-as-a-developer-and-how-do-you-do-it--1k05</link>
      <guid>https://dev.to/buzzpy/how-do-i-stay-happy-as-a-developer-and-how-do-you-do-it--1k05</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67bxpnt2fyj07i3d06o1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67bxpnt2fyj07i3d06o1.png" alt=" " width="800" height="87"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello, buzzdies! Among thousands of productivity tools, have you ever figured out the best one ever? I bet you haven’t but don’t worry I have, and it's...&lt;/p&gt;

&lt;p&gt;Happiness!&lt;/p&gt;

&lt;p&gt;Yes, you've read it right. Nothing is a better productivity tool than happiness, especially for programmers and developers. But the problem arises, how do you stay happy with those devil bugs and thousand lines of code? Modern problems require modern solutions! 😉&lt;/p&gt;

&lt;p&gt;And don't forget to share what you do to stay motivated or happy as a developer in the comments. Let's #discuss~&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Working on a Great Project
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl38vcmy9dwsm144nt4ps.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl38vcmy9dwsm144nt4ps.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;br&gt;
This one can be quite obvious but programmers love great projects. In fact, if they find that the project is not that appealing, they won’t take it, unless there are no more free projects to participate in. Yes, we’re all the same.&lt;/p&gt;

&lt;p&gt;If you find a project that you’re capable of but not interested in, I highly recommend you just ignore it. I know, you think that it's impractical when this project pays you a higher amount. But trust me, it may harm your whole career. Since you’re not that happy with the project, you won’t be able to deliver it to the best quality, and the client may be unhappy and unimpressed. Once he gives a bad review, everything you have done before is gone.&lt;/p&gt;

&lt;p&gt;Imagine you work with something you absolutely adore, you love the area, you love your team and a set of technologies is amazing. Over time you know almost every aspect of your project, and you started to call it your baby. What’s better than it huh? The more you’re happy with the project, the more productive you are!&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Building strong bonds with your team.
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4azvbnts992fccif00q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4azvbnts992fccif00q.png" alt=" " width="800" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Software development is much better as a team sport. One alone just cannot do much, plus it can get boring. I indeed work solo currently but that’s all because I didn’t find a better team that matches me. But I wish I had at least one tech mate that really fits me.&lt;/p&gt;

&lt;p&gt;Therefore, try to be as comfortable as you can with the team you're working on. Any social skill you can apply here will be good. Here are some tips that I wish my former teammates had and will be great to have in you too!&lt;/p&gt;

&lt;h4&gt;
  
  
  - Learn to take/give feedback:
&lt;/h4&gt;

&lt;p&gt;Nothing can be more annoying than someone putting down your work. Never try to do such things and give constructive feedback. I have been an avid reader of Ajahn Brahm's Dhamma Talks and I found a great technique that can be used to give better feedback called the "Sandwich Technique". That way, you first tell them something good like "I really like the way you code, it's simple and easy to figure out". And then the bad thing you want to tell just like "But those comments need to be somewhat clearer." And again, something good such as "By the way, I love the naming of your variables and functions. Unlike me, they are very relatable". And Ta-da! You have made sandwich feedback.&lt;/p&gt;

&lt;h4&gt;
  
  
  - Practice team building activities:
&lt;/h4&gt;

&lt;p&gt;It's really a pleasure to see many companies have done great in this. It can be as little as a Tea party on Fridays or as big as traveling abroad with the whole team!&lt;/p&gt;

&lt;h4&gt;
  
  
  - Thank someone every day:
&lt;/h4&gt;

&lt;p&gt;This is a positive thinking technique that could apply to anything in your life. Send a message, email, or whatever to a colleague thanking him/her, even for very small things, such as giving a little review for a part of your code or something like that.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Saying “NO”
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4i7oz5js3uzhdf93nek.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg4i7oz5js3uzhdf93nek.png" alt=" " width="800" height="538"&gt;&lt;/a&gt;&lt;br&gt;
When you are doing really great work on your project, there will be a number of people who will come and ask you to join their team, startup, or whatever.&lt;/p&gt;

&lt;p&gt;When you have the power to say "No", it feels awesome, especially if you find out later that that project wasn’t successful after all. You are feeling happy just because you saved lots of headaches and sleepless nights.&lt;/p&gt;

&lt;p&gt;And yep, I have experienced that~&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Manage Your Time as well as Priorities
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3uvzkwyc2nykwodzjdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu3uvzkwyc2nykwodzjdf.png" alt=" " width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Life goes (it flies, actually) fast nowadays, so fast that we go faster with it. And we end up in a routine where we try to do too many things that we can manage to do. That makes us over-demanding ourselves, leading to frustration and anxiety because of not completing the tasks, or doing them under much pressure for quite some time.&lt;/p&gt;

&lt;p&gt;You want to prepare a talk, attend a meetup, keep your Open Source work, write on your blog, stay healthy practicing sports, hang out with friends, spend time with your family, run some side-project... and you work full time as well. Be careful, being too ambitious can turn against you.&lt;/p&gt;

&lt;p&gt;Wondering what I do about it? Here you go!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slow down and push the break&lt;/strong&gt;: Minimize your task queue. Keep in mind it is better to do 2 things well than do 4 tasks badly and quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enjoy what you do:&lt;/strong&gt; When you slow down, you have more time to pay attention to what you're doing, making it more enjoyable. That's what mindfulness stands for. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use a time management technique&lt;/strong&gt;: I love to use Pomodoro. The point is to enforce breaks to move and distract yourself to don't spend hours on a task continuously.&lt;/p&gt;

&lt;p&gt;Oh by the way, did you know that I use my own Pomodoro application? I do! See how to make your with Python - &lt;br&gt;
&lt;a href="https://dev.to/buzzpy/make-your-own-pomodoro-application-with-python-10lk"&gt;Make your own Pomodoro Application with Python&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Phew, that’s a lot of words! Here we talked about a lot, including the importance of working as a team, the sandwich technique, managing your time, etc. Hope you enjoyed it!&lt;/p&gt;

&lt;p&gt;Ugh, I was gonna miss it again. Here are some methods to keep your motivation at the full level, as happiness may depend on it as well!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go Open Source:&lt;/strong&gt; Now is easier than ever since an open-source guide has been created by GitHub itself and lots of experienced OSS devs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go to Meetups and Conferences&lt;/strong&gt;: You'll meet lots of people physically, which opens a lot of doors and keeps you connected to more communities and their ecosystems. If you're brave enough to speak in one, you'll get a great feeling afterward, so go and try and see what it feels like!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build side projects&lt;/strong&gt;: It can be anything, such as building dummy apps, organizing events, sharing knowledge, creating libraries, etc. Some things I did is create this blog, contribute to some open-source projects, build the Buzz App, and read Dhamma talks of the Buddhist monk, Ajahn Brahm.&lt;/p&gt;

&lt;p&gt;By the way, what do you do to stay happy as a developer? Let us #discuss in the comments!&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;br&gt;
————————————————————————————&lt;/p&gt;

&lt;p&gt;Enjoyed the article? Make sure to subscribe to "The Buzzletter" so you will never miss any of my content + any gifts I offer! 🐳&lt;/p&gt;

&lt;p&gt;&lt;a href="https://preview.mailerlite.io/preview/199593/emails/107009935074657301" rel="noopener noreferrer"&gt;View December's Buzzletter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://subscribepage.io/the-buzzletter" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wkvyr3nw9fmp7v33r3l.png" alt=" " width="800" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Make your own Pomodoro Application with Python</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Fri, 08 Dec 2023 15:07:11 +0000</pubDate>
      <link>https://dev.to/buzzpy/make-your-own-pomodoro-application-with-python-10lk</link>
      <guid>https://dev.to/buzzpy/make-your-own-pomodoro-application-with-python-10lk</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5kug4yixwjlsrwb777o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5kug4yixwjlsrwb777o.png" alt=" " width="800" height="87"&gt;&lt;/a&gt;&lt;br&gt;
Hello buzzdies! I bet, most of you have heard enough about Pomodoro Technique, a time management method. In case you haven’t, lemme explain.&lt;/p&gt;

&lt;p&gt;The Pomodoro technique is invented by Francesco Cirillo, around the 1980s. It encourages people to work with the time they have—rather than against it. Using this method, you break your workday into 25-minute chunks separated by five-minute breaks. These intervals are referred to as “Pomodoro”. The diagram below explains it further.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvp9tnfr9jc4lyz0c14p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvp9tnfr9jc4lyz0c14p.png" alt=" " width="800" height="678"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://sketchplanations.com/" rel="noopener noreferrer"&gt;https://sketchplanations.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This technique is for everyone, including programmers and developers as well. But working according to Pomodoro using a regular clock or alarms is very disturbing so it’s always better to have some software. And it’s much better if we can develop the software ourselves!&lt;/p&gt;

&lt;p&gt;Yup, you got the point. This tutorial is on how to make a Pomodoro Application using Python, with User Interface. Move on 😉&lt;/p&gt;

&lt;p&gt;In case you're in a hurry, the source code can be found in this GitHub repository. Open for PRs!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Buzzpy/Pomodoro-App" rel="noopener noreferrer"&gt;Visit Github Repo&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;First, we should import the libraries— math for calculations and tkinter for GUI. Since these are pre-installed, we can import them directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
From tkinter import *
Import math
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Basic UI
&lt;/h3&gt;

&lt;p&gt;Interesting part first, let’s build the user interface.&lt;/p&gt;

&lt;h4&gt;
  
  
  Defining Global Constants
&lt;/h4&gt;

&lt;p&gt;When working GUI, it’s a good practice to define global constants for properties like Color, Font types and sizes and etc. The following code does the job.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PINK = "#f81365"
RED = "#e7305b"
GREEN = "#9bdeac"
GRAY = "#EFEFEF"
FONT_NAME = "Barlow Condensed"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Setting Up
&lt;/h4&gt;

&lt;p&gt;We’re going to use an ordinary Tkinter window, size 100 x 50. And the constant variables we declared in the previous part are used here.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;window&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Tk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Pomodoro&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;padx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pady&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;GRAY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;title_label&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Timer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PINK&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;GRAY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Barlow Condensed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;title_label&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&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;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;canvas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Canvas&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;224&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;GRAY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;highlightthickness&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# highlightthicknes is used for making the highlight disappear
&lt;/span&gt;&lt;span class="n"&gt;tomato_img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;PhotoImage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tomato.png&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;# use your path
&lt;/span&gt;&lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tomato_img&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;timer_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create_text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;110&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;00:00&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fill&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;black&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Barlow Condensed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;35&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bold&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;canvas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&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;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# count_down(5)
# x and y values are half of the width and the height
&lt;/span&gt;&lt;span class="n"&gt;start_button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Start&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;highlightthickness&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;start_timer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PINK&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Barlow Condensed&lt;/span&gt;&lt;span class="sh"&gt;"&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="n"&gt;start_button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;reset_button&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Reset&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;highlightthickness&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;reset_timer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PINK&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FONT_NAME&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="n"&gt;reset_button&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;check_marks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;✓&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;GREEN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;GRAY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;check_marks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="o"&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;row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mainloop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You may have seen that we used an Image of a Tomato in the above code. The image can be downloaded from the GitHub repository&lt;/p&gt;

&lt;p&gt;Don’t hurry to test this code as it’s not ready yet! There are some functions and variables which aren’t been declared yet. So it is time to move to the next part,&lt;/p&gt;

&lt;h4&gt;
  
  
  Declaring Functions
&lt;/h4&gt;

&lt;p&gt;First, we will finish the logical part. Here, we need three major functions. reset_timer start_timer countdown&lt;/p&gt;

&lt;p&gt;Let’s start with the Reset function. But before that, we need to declare some more values as global constants, like below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;WORK_MIN = 25
SHORT_BREAK_MIN = 5
LONG_BREAK_MIN = 20
reps = 0
timer = None

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

&lt;/div&gt;



&lt;p&gt;Note: the value &lt;code&gt;reps&lt;/code&gt; is used for governing the timing section of work and breaks and counting them. &lt;/p&gt;

&lt;p&gt;Done!&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;reset_timer&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;In this function, we need to do to following things: Reset the timer text to 00:00 Cancel the timer Reset &lt;code&gt;reps&lt;/code&gt; to 0 Delete the checkmark(used for counting no: of working time sections) We use the following code to do all of these.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def reset_timer():
   window.after_cancel(timer)
   canvas.itemconfig(timer_text, text="00:00")
   title_label.config(text="Timer")
   check_marks.config(text="")
   global reps
   reps = 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Awesome! Now let’s move to the next part.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;start_timer&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Compared to the Reset function, the Start function is somewhat lengthy as it does some more tasks, such as below: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add +1 to reps the variable Defining Long breaks and Short breaks. &lt;/li&gt;
&lt;li&gt;Converting minutes to seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The following code can do all the above:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def start_timer():
   global reps
   reps += 1
   work_sec = WORK_MIN * 60
   short_break_sec = SHORT_BREAK_MIN * 60
   long_break_sec = LONG_BREAK_MIN * 60

   if reps % 8 == 0:     # If it's the 8th rep
       count_down(long_break_sec)
       title_label.config(text="Break", fg=RED)

   elif reps % 2 == 0:     # If it's the 2nd/4th/6th rep
       count_down(short_break_sec)
       title_label.config(text="Break", fg=PINK)

   else:
       count_down(work_sec)
       title_label.config(text="Work", fg=PINK)

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

&lt;/div&gt;



&lt;p&gt;Awesome! But we’re not ready yet, we have to write another function for counting down.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;code&gt;count_down&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;In this function, we need to do the following tasks: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Count down and change the text accordingly. &lt;/li&gt;
&lt;li&gt;Put check marks for each work session.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s the code we can use for these purposes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def count_down(count):
   count_min = math.floor(count / 60)
   count_sec = count % 60

   if count_sec &amp;lt; 10:
       count_sec = f"0{count_sec}"
   canvas.itemconfig(timer_text, text=f"{count_min}:{count_sec}")
   if count &amp;gt; 0:
       global timer
       timer = window.after(1000, count_down, count - 1)
   else:
       start_timer()
       marks = ""
       work_sessions = math.floor(reps/2)
       for _ in range(work_sessions):
           marks += "✓"
       check_marks.config(text=marks)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Awesome! Believe it or not, we’re done with our Pomodoro Application. Here are some screenshots how what it looks like:&lt;/p&gt;

&lt;p&gt;Default Window&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63y9vnx1wyd3n4d9z9ay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F63y9vnx1wyd3n4d9z9ay.png" alt=" " width="570" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Running...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcu5h3it2vmpzsroh1jb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcu5h3it2vmpzsroh1jb1.png" alt=" " width="570" height="627"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On break...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjtvm83rw03zjrym4okw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjtvm83rw03zjrym4okw.png" alt=" " width="571" height="625"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;In this short tutorial, we created an awesome-looking and simple Pomodoro application that can boost your productivity at work. The source code can be found in below GitHub repository,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Buzzpy/Pomodoro-App" rel="noopener noreferrer"&gt;View Repository&lt;/a&gt;&lt;br&gt;
Don’t forget to fork, star, and contribute! Also if you have any questions or feedback, drop them in the comments.&lt;/p&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;




&lt;p&gt;Enjoyed the article? Make sure to subscribe to "The Buzzletter" so you will never miss any of my content + any gifts I offer! 🐳&lt;/p&gt;

&lt;p&gt;&lt;a href="https://subscribepage.io/the-buzzletter" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wkvyr3nw9fmp7v33r3l.png" alt=" " width="800" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>python</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Developer's Guide to "KISS" code</title>
      <dc:creator>Buzzpy 💡</dc:creator>
      <pubDate>Fri, 18 Nov 2022 13:55:24 +0000</pubDate>
      <link>https://dev.to/buzzpy/developers-guide-to-kiss-code-2235</link>
      <guid>https://dev.to/buzzpy/developers-guide-to-kiss-code-2235</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9wkvgifslva1msxmj4cp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9wkvgifslva1msxmj4cp.png" alt=" " width="800" height="87"&gt;&lt;/a&gt;&lt;br&gt;
Hello buzdies! When talking about the principles of programming, the KISS principle is remarkable. Standing for "Keep it simple, stupid", it is the most accessible principle to apply in real-life situations. &lt;/p&gt;

&lt;h2&gt;
  
  
  What does it actually mean?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7jxv6kxsxvsicki3jzj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7jxv6kxsxvsicki3jzj.png" alt="image.png" width="700" height="300"&gt;&lt;/a&gt;&lt;br&gt;
Source: Unthinkable&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The meaning of KISS is as simple as it sounds: Keep it simple, stupid. It's not only about simplifying the code. You must be able to take a step back and view whatever you just did from another person's view, who is totally clueless. &lt;/p&gt;

&lt;p&gt;If you have built applications before, you might have already engaged in this problem by writing code and reviewing it months later. Many lines are unreadable crap because you couldn't take a step back and simplify the concepts. &lt;/p&gt;

&lt;p&gt;I myself have experienced this thing when I'm trying to do some updates on programs I made a long time ago. More often, I end up being confused about the code so the little things take a lot of time than it really does because my code wasn't simple at all.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhexx4saxd99ujt5bnduf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhexx4saxd99ujt5bnduf.gif" alt="panda.gif" width="500" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why use KISS?
&lt;/h2&gt;

&lt;p&gt;You should probably ask why not use KISS, which is easier for me to answer.&lt;/p&gt;

&lt;p&gt;There are many reasons to use KISS. KISS principle in software development allows developers to tackle the most significant difficulty of software development— implementing changes to the code written by either you or another person. I think this reason is super enough to write KISS code when thinking about my experience itself. &lt;/p&gt;

&lt;p&gt;There're a few other scenarios that make us think again about writing simple and stupid code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can solve more problems, faster by just looking at them. &lt;/li&gt;
&lt;li&gt;You will be able to build larger systems that are easier to maintain&lt;/li&gt;
&lt;li&gt;You're code base will be more flexible, and easier to extend, modify or refactor when new requirements arrive &lt;/li&gt;
&lt;li&gt;You will be able to achieve more than you ever imagined, with some beginner-like simple code rather than large complex lines of code. &lt;/li&gt;
&lt;li&gt;You will be able to work in large development groups and large projects since all the code is stupid simple&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  KISSing your code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3k57w123cytgar3c9sab.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3k57w123cytgar3c9sab.png" alt="image.png" width="800" height="444"&gt;&lt;/a&gt;&lt;br&gt;
Remember what I said first, the KISS principle is the easiest principle to apply in real life. Everything you need to do is, think like an experienced beginner.&lt;/p&gt;

&lt;p&gt;Who is an experienced beginner? Lemme explain.&lt;/p&gt;

&lt;p&gt;Let's think about an experienced beginner in Python. What does he know about Python? Basic programming stuff like data types, loops, conditions, and how to work with a few libraries.  But remember, he is experienced— he knows that he will need to modify and update every piece of code he's writing.&lt;/p&gt;

&lt;p&gt;When he is asked to create a calculator, he just uses a few conditions, inputs, functions, and a little math. It might be long, but it's readable for anyone even a non-programmer. According to me, this is the best implementation of the KISS code. It's so stupid and simple.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Measuring programming progress by lines of code is like measuring aircraft building progress by weight.&lt;br&gt;
—Bill Gates&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here’re practical tips to apply KISS in programming. &lt;/p&gt;

&lt;h3&gt;
  
  
  Avoid Global Functions or Elements
&lt;/h3&gt;

&lt;p&gt;The Global States or Global Variables or simply Globals, refer to states or variables whose scope extends to the entire application. Moreover, their state can change at run-time which means, they are mutable. &lt;/p&gt;

&lt;p&gt;Although Globals appear to be an easy way to share states between parts of the application without having to pass them through functions, they are detrimental to the implementation of KISS principles.&lt;/p&gt;

&lt;p&gt;Globals give rise to significant problems such as Global name collisions, low testability, and concurrency issues. Furthermore, Globals add to the overall complexity of the code. They often act as hidden elements whose change of state is undeterminable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoid the Lasagna Architecture
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47k6pkua0dlfq2leolt7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F47k6pkua0dlfq2leolt7.png" alt="image.png" width="612" height="378"&gt;&lt;/a&gt;&lt;br&gt;
The Lasagna Architecture is the outcome of a very strict layering approach wherein each layer only knows about the layer immediately below itself. Rather than actualizing the intended ‘perfect’ system, this approach often leads to an unnecessarily complex one.&lt;/p&gt;

&lt;p&gt;Such a system is immensely complex to read, and making any changes to it is difficult. For even the slightest chance, the developer has to check most sections of the code, determine if the change in one layer would affect another, visualize the functioning of multiple layers, face unidentifiable errors in verification, and so on.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoid Abstractions and Dependencies
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhbfnqrgy618x9jth37w5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhbfnqrgy618x9jth37w5.png" alt="image.png" width="700" height="368"&gt;&lt;/a&gt;&lt;br&gt;
Abstraction is a process that envelopes a complex code block in a layer of simplicity. However, despite assigning a simple name to call the function, this method makes the overall process inherently more complex.&lt;/p&gt;

&lt;p&gt;The function might have numerous interconnected parts, dependencies, and implementations of which the developer might be unaware at the time of calling. In fact, when abstractions aren’t dealt with properly, they ultimately lead to a lasagna architecture, resulting in related issues and undesirable complexities.&lt;/p&gt;

&lt;p&gt;Moreover, abstractions heighten the risks of improper or unnecessary coupling, which is a major deterrent to simplicity. The same applies to dependencies. Although dependencies are inevitable at times, it’s imperative to avoid them whenever possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoid Dead Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa5sbop9ba8fmizu6hj3t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa5sbop9ba8fmizu6hj3t.png" alt="image.png" width="572" height="300"&gt;&lt;/a&gt;&lt;br&gt;
A habit among developers is to include lines of code that have no present purpose but are intended to be useful in the future. These are dead codes. By making systems unnecessarily complicated, they do more harm to the system than good.&lt;/p&gt;

&lt;p&gt;Unless a line of code has any immediate purpose, it’s always better not to use it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The meaning of KISS is as simple as it sounds: Keep it simple, stupid. KISS has now become my favorite coding principle because it requires nothing but thinking like a beginner. &lt;/p&gt;




&lt;p&gt;Enjoyed the article? Make sure to subscribe to &lt;strong&gt;&lt;em&gt;"The Buzzletter"&lt;/em&gt;&lt;/strong&gt; so you will never miss any of my content + any gifts I offer! 🐳&lt;br&gt;
&lt;a href="https://subscribepage.io/the-buzzletter" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq1qt1xxuncs46xc7mupz.png" alt="The Buzzletter" width="800" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://principles-wiki.net/principles:keep_it_simple_stupid" rel="noopener noreferrer"&gt;http://principles-wiki.net/principles:keep_it_simple_stupid&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
    </item>
  </channel>
</rss>
