<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Msowski on Medium]]></title>
        <description><![CDATA[Stories by Msowski on Medium]]></description>
        <link>https://medium.com/@msowski?source=rss-b67c67ca9037------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*LqzYy7P-Kj0YYEo_NR6bYA.jpeg</url>
            <title>Stories by Msowski on Medium</title>
            <link>https://medium.com/@msowski?source=rss-b67c67ca9037------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 13 Nov 2026 22:03:00 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@msowski/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Angular building blocks to form a strong foundation]]></title>
            <link>https://medium.com/@msowski/angular-building-blocks-to-form-a-strong-foundation-37fe51107c23?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/37fe51107c23</guid>
            <category><![CDATA[angularjs]]></category>
            <category><![CDATA[angular]]></category>
            <category><![CDATA[angular-js-development]]></category>
            <category><![CDATA[angular-cli]]></category>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Tue, 01 Jul 2025 05:36:28 GMT</pubDate>
            <atom:updated>2025-07-01T05:36:28.154Z</atom:updated>
            <content:encoded><![CDATA[<p>When diving into Angular, whether for revisiting purposes or starting from scratch, you will definitely feel overwhelmed to see so many new and different concepts. For someone like me, who’s coming from React.. I had a hard time adapting to the Angular basics as well. So let’s dive in and see what concepts you must clear before you start to code.</p><p>The mere communication practice between the component and the template is known as String Interpolation. But you may be wondering what exactly is the component here and what are we referring to as the template? Right?</p><p>So let’s break it down like this:</p><ul><li>Component file is the Typescript file</li><li>And the Template is the HTML file</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/636/1*3vCml7hUiY7MBpc2V7Y8kA.png" /><figcaption>.ts file containing the username string</figcaption></figure><p>We will use this username in our HTML / template like so:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/651/1*r9SXDiHrGHuFC0B-OsQAug.png" /></figure><p>And the way of wrapping the text or data in the template is called:</p><p><strong>data binding = {{ title }}</strong></p><p>But you may have heard more binding titles along with data binding, there’s event binding and there’s another one called property binding, so what are they and what makes them different, let’s look into it..</p><p>Now, we used the text itself as <strong>username </strong>to be displayed so we used the concept of data binding, what is we want to display the property of an html element using communication like we did above, that’s where property binding comes in. Say the property of img tag is <strong>src, </strong>for the<strong> button </strong>tag, the property can be its <strong>type.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sBDGU--VzMTJm_iUKJ_xoQ.png" /><figcaption>imageUrl serves as the property which stores url to be used in src</figcaption></figure><p><strong>Event Binding:</strong></p><p>Our third concept so far.</p><p>As the name suggests, it’s something related to the events. We can derive that from here. And events come into action with elements like buttons, suppose we want to create a button which when clicked, increases the count by 1.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/731/1*admz7UErPaEQSXxOFfOQWw.png" /></figure><p>Rather than using the onClick method we have ‘click’ in Angular. And you have also seen that we’re using data binding for ‘count’ as well.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r93SBdntbzw92aUWh-d-Ag.png" /><figcaption>Summary for the concepts discussed in this article</figcaption></figure><p>In this post, we explored the core building blocks of Angular’s data binding system:</p><ul><li><strong>Interpolation</strong> lets you display dynamic data with ease using {{ }}</li><li><strong>Property Binding</strong> gives you control over HTML element properties</li><li><strong>Event Binding</strong> enables your app to respond to user actions</li></ul><p>Together, these techniques form the foundation of every Angular application — turning static templates into dynamic, interactive UIs.</p><p>Whether you’re just getting started or brushing up your skills, mastering these three forms of binding will help you build powerful and responsive Angular components.</p><blockquote><em>Stay tuned for the next post where we’ll dive into </em><strong><em>two-way binding</em></strong><em> with </em><em>[(ngModel)] and building simple forms!</em></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=37fe51107c23" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Interviewing for Linux Admin Roles? Here’s a complete guide to crack it in one go!]]></title>
            <link>https://medium.com/@msowski/interviewing-for-linux-admin-roles-heres-a-complete-guide-to-crack-it-in-one-go-0620314ade59?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/0620314ade59</guid>
            <category><![CDATA[linux-interview-questions]]></category>
            <category><![CDATA[linux-tutorial]]></category>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[linux-commands]]></category>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Mon, 30 Jun 2025 10:57:12 GMT</pubDate>
            <atom:updated>2025-06-30T10:57:12.608Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>How do you create a new file in Linux?<br>Answer:</strong> touch filename creates an empty file, or vim filename allows editing a new file.<br><strong>How do you delete a file and a directory?<br>Answer:</strong> rm filename deletes a file, and rm -r directory_name deletes a directory and its contents.<br><strong>How do you modify the contents of a file?<br>Answer:</strong> Use a text editor like vim filename, nano filename, or redirect command echo “text” &gt;&gt; filename to append text.</p><h3>Explain the file permission structure in Linux.</h3><p><strong>Answer</strong>:</p><ul><li>Linux file permissions are represented as a set of three: read (r), write (w), and execute (x) for three entities: the owner, the group, and others.</li><li>The permission set is often represented as a three-digit octal number, where:</li><li>4 = read</li><li>2 = write</li><li>1 = execute</li><li>For example, 755 means:</li><li>Owner: Read (4) + Write (2) + Execute (1) = 7</li><li>Group: Read (4) + Execute (1) = 5</li><li>Others: Read (4) + Execute (1) = 5</li></ul><h3>What are SoftLinks?</h3><ul><li><strong>Definition</strong>: A soft link is a file that points to another file or directory using the file path.</li><li><strong>Creation</strong>: Created using the ln -s command. Example: ln -s target_file link_name</li><li><strong>Link Count</strong>: Does not increase the link count of the target file.</li><li><strong>Crossing File Systems</strong>: Can cross file systems. A soft link can point to files on different partitions or even remote systems.</li><li><strong>Directories</strong>: Can link to directories.</li><li><strong>Reference</strong>: If the original file is deleted, the soft link becomes a broken link (dangling), and it points to a non-existent file</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*pEhO1GRi1vTsIrrm" /></figure><h3><strong>How do you check disk usage in Linux?<br>Answer:</strong></h3><p>Use the df command to check disk space usage. For example:<br><em>df -h</em><br>The -h option shows the output in a human-readable format (e.g., MB, GB).<br>Use du to check disk usage of specific directories or files:<br><em>du -sh /path/to/directory</em><br>The -s option gives a summary, and -h provides human-readable output.</p><h3>How do you schedule a task to run at a specific time?<br>Answer:</h3><p>Use cron for recurring tasks:<br>Edit the cron jobs using crontab -e.<br>A typical cron job format is:<br><em>* * * * * /path/to/command</em><br>Where the fields represent minute hour day-of-month month day-of-week.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=0620314ade59" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What They Don’t Tell You About Working in Corporate]]></title>
            <link>https://medium.com/@msowski/what-they-dont-tell-you-about-working-in-corporate-7fe30fa8a915?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/7fe30fa8a915</guid>
            <category><![CDATA[corporate-culture]]></category>
            <category><![CDATA[office-politics]]></category>
            <category><![CDATA[work-life-balance-tips]]></category>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Mon, 30 Jun 2025 05:53:16 GMT</pubDate>
            <atom:updated>2025-06-30T05:53:16.968Z</atom:updated>
            <content:encoded><![CDATA[<p>When I saw the email containing my offer letter, like everybody else in a pool of job seekers, I was overwhelmed and too happy to express into words that I finally received the job offer.</p><p>The interviews whether technical or behavioral, all rounds, day and night when cleared feels like you have done a lot and it really seems like a messy phase if we talk about it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/615/1*KgTnIFU5vHcPjNe25SWvbQ.png" /></figure><p>Being jobless is never easy.</p><p>However, like many others this job was my very first coorporate experience. But, apart from other challenges that people talked openly and discussed, especially the HRs, these were never talked about.</p><p>Yes, the cultural fit really matters. But not for you as a company owner rather for the new joiners. I say this, because you will know as soon as you drill down and read further..</p><p>We all come across those fancy JDs:</p><p><em>“At [Company Name], we foster a collaborative and inclusive environment…”</em></p><p>with,</p><p><em>Remote/hybrid work options</em></p><p>But, we never get to hear:</p><ul><li>Office politics or toxic managers</li><li>Unrealistic expectations or constant overwork</li><li>Job instability or lack of growth</li><li>Micromanagement or lack of support</li><li>Poor leadership or burnout culture</li></ul><p>That’s exactly what this article will prepare you for. However, not just theoretically, you’ll know what a real office environment is like.</p><p>✅ <strong>Tip #1:</strong> <strong>Never Look for Friendships</strong></p><p>Although, it might sound harsh if you already have some cool buddies to make your life at work bearable. But, sooner or later they will spill the tea. So, be clever from the start and know the ABCs of how to handle these snakes before they devour you alive.</p><p>Coorporate can be lonely, and it’s true. I myself made several friends but my biggest mistake was to have friendships within my team (yeah, that can never be a genuine one, I repeat neverrrrrrrrr….)</p><p>Here’s why:</p><ul><li>Throw you under the bus in a tense meeting, and you will be left processing of what just happened</li><li>Take credits of the shared work and you will not be able to do a thing out of friendship</li><li>Constructive feedback harder to give or receive (yes, its true)</li></ul><p>Whatever, you try to say wouldn’t matter or paid attention to just because they consider you a ‘friend’ and will laugh it off. But when this starts to happen in meetings, you will see your image being destroyed in front of your eyes. Later, they would make you seem like you do not work enough and the performance is then at stake.</p><p>✅ <strong>Tip #2: Performance Alone Won’t Get You Promoted</strong></p><p>Yes, you heard it right. For those innocent souls who think I’ll work hard and get the promotion. I feel sorry for you but let me break it down on what really happens.</p><p>Favoritism is real.</p><p>Especially, when you are part of the team. The manager would always prefer those who flatters him, whether privately or openly. Look for those who create personal relationships with your boss, be aware of such people and keep in mind to never go against them because no matter the situation that person will never be wrong in the manager’s eyes. And the worst part is that you can do nothing about it.</p><p>My mistake:</p><p>I once approached my manager to talk about how my work was being taken credit for by his favorite employee. I expected fairness or at least a hearing. Instead, he threw the blame right back on me — saying I “couldn’t work well with the team.”</p><p>✅ <strong>Tip #3: Toxic Coworkers Are Inevitable — Learn to Protect Your Energy</strong></p><p>In every office, you’ll encounter colleagues who manipulate, gossip, or play power games. They drain your energy and make work a constant battle. Toxic behavior isn’t always obvious at first, and sometimes it comes from people you least expect.</p><ul><li>Set clear boundaries — don’t engage in gossip or politics. If people are involving you in their gossips, just watch them but never say a word. Some intentionally start the convo so they can drag you down later.</li><li>Keep interactions professional and as minimal as possible. This is the best practice to keep yourself safe.</li><li>Document important conversations to protect yourself. Always, always document. No matter what the situation, no matter how little of the drama it is but always maintain a track record of everything you do to be on the safe side.</li></ul><p>The corporate world isn’t the fairy tale we often imagine when we step through those office doors. It’s a complex, sometimes harsh system where politics, favoritism, and ego play as big a role as skill and hard work.</p><p>But knowing the unspoken rules — and protecting yourself with awareness and boundaries — can make all the difference.</p><p>Remember:</p><ul><li><strong>Don’t expect friendships to save you, but build professional respect.</strong></li><li><strong>Work smart, not just hard — and learn to advocate for yourself.</strong></li><li><strong>Stay true to your values while understanding how the game is played.</strong></li></ul><p>Ultimately, your career isn’t just about surviving — it’s about finding ways to thrive without losing yourself.</p><p>Stay sharp, stay grounded, and take control of your story. If there are some tips you think I missed, feel free to mention them here.</p><p>If you’ve ever felt the corporate grind grind you down, hit that clap button — let’s survive this madness together. Until next time — if corporate doesn’t kill me first. 👊</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7fe30fa8a915" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Are We Starting to Talk as if Talking to an AI? The Subtle Shift in Our Tone of Voice]]></title>
            <link>https://medium.com/@msowski/are-we-starting-to-talk-as-if-talking-to-an-ai-the-subtle-shift-in-our-tone-of-voice-a6ba76d56297?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/a6ba76d56297</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[chatgpt]]></category>
            <category><![CDATA[claude-ai]]></category>
            <category><![CDATA[chatbots]]></category>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Thu, 08 Aug 2024 18:23:34 GMT</pubDate>
            <atom:updated>2024-08-08T18:23:34.788Z</atom:updated>
            <content:encoded><![CDATA[<p>Today, I want to highlight a very <strong>important</strong> and <strong>growing</strong> problem that I’ve noticed in our daily interactions: we’re starting to talk to each other like we talk to AI chatbots!</p><p>This might sound strange, but as AI becomes more integrated into our lives, the tone of voice we use with technology is subtly creeping into our conversations with each other.</p><blockquote>And it’s not definitely not a good thing.</blockquote><p>In recent years, the rise of AI has brought about incredible changes in how we interact with technology. But along with the convenience and efficiency, there’s something else emerging — a subtle shift in how we talk to each other.</p><p>More and more, our tone of voice is starting to resemble the way we communicate with AI chatbots: direct, commanding, and stripped of nuance. And while this may make us more efficient, it also has some concerning implications for human connection.</p><h3>The Commanding Tone of AI</h3><p>AI chatbots are designed to be straightforward and efficient. When you type a query, you expect a direct response. There’s no need for small talk, politeness, or emotional nuance. The goal is to get the information or action you need as quickly as possible. This efficiency is one of AI’s greatest strengths, but it’s also where the problem starts when we let this tone bleed into our human interactions.</p><p>In our daily lives — whether at work, with friends, or in our communities — we’ve started to see more of this commanding tone. “Send me that report by end of day.” “Let me know what you think about this proposal.” “I need that done now.” These are the kinds of phrases that, while clear and to the point, can come across as cold or even harsh when used in human conversations.</p><h3>Why Tone Matters</h3><p>Human communication is about more than just exchanging information. It’s about building relationships, understanding <strong>emotions</strong>, and fostering a sense of connection. The <strong>tone</strong> of our voice plays a critical role in this. A warm, empathetic tone can make someone feel valued and understood, while a cold, commanding tone can make them feel like just another task on your to-do list.</p><p>When we start to talk like AI — direct, efficient, and <strong>emotionless</strong> — we risk losing the richness of human interaction. Conversations become transactions, and people start to feel less like individuals with thoughts and feelings and more like <strong>tools to get things done.</strong></p><h3>The Consequences of AI-Tone</h3><p>This shift in tone can have real consequences. In the workplace, it can lead to decreased morale, strained relationships, and a lack of collaboration. When people feel like they’re constantly being commanded rather than engaged, they’re less likely to feel motivated or connected to their work.</p><p>In our personal lives, the impact can be even more profound. Relationships thrive on warmth, empathy, and understanding. When we lose these elements in our communication, we risk damaging the bonds that hold us together.</p><h3>How to Reclaim Our Human Tone</h3><p>So, what can we do about this?</p><p>The first step is awareness. Recognize when you’re slipping into a more commanding, AI-like tone and make a conscious effort to soften your approach.</p><p>Instead of <strong>“I need this done,” </strong>try <strong>“Could you help me with this?”</strong> Instead of <strong>“Send me that report,”</strong> try <strong>“Would you mind sending me the report when you have a moment?”</strong></p><p>These small changes might seem minor, but they can have a big impact. By bringing empathy and warmth back into our conversations, we can strengthen our relationships and create a more positive environment, both at work and in our personal lives.</p><h3>The Balance Between Efficiency and Connection</h3><p>Of course, there’s a place for efficiency. In many situations, being direct and to the point is necessary. But it’s all about balance. We need to find a way to communicate that doesn’t sacrifice human connection for the sake of efficiency. We need to remember that, unlike AI, we’re not just exchanging information — we’re building relationships.</p><h3>Keeping Our Conversations Human</h3><p>As AI continues to integrate into our lives, it’s crucial that we don’t lose sight of what makes human communication so special. We’re not machines — we’re people, and our conversations should reflect that.</p><p>By being mindful of our tone and striving to keep our interactions warm and empathetic, we can ensure that our communication remains not just efficient, but also deeply human.</p><p>In a world where AI is becoming increasingly prevalent, let’s make sure we hold on to the qualities that make us uniquely human.</p><p>So, don’t forget to clap and share the post with your colleagues to battle this growing problem.</p><p><em>If you’ve noticed this shift in your own conversations or have thoughts on how AI is influencing our communication, I’d love to hear your insights in the comments below.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a6ba76d56297" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Renew the app’s icon and name in React Native]]></title>
            <link>https://medium.com/@msowski/renew-the-apps-icon-and-name-in-react-native-580c530f3331?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/580c530f3331</guid>
            <category><![CDATA[icons]]></category>
            <category><![CDATA[names]]></category>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[android-apk]]></category>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Mon, 04 Sep 2023 15:57:47 GMT</pubDate>
            <atom:updated>2023-09-04T15:57:47.191Z</atom:updated>
            <content:encoded><![CDATA[<p>First of all .. Congratulations! You’ve successfully built your app and installed it on your device. However, you might find that you want to give your app a new name and icon to make it stand out or better represent its functionality.</p><p>In this guide, we’ll walk you through the steps to change your app’s name and icon on your device. I assume you have already released the apk if not, check out my <a href="https://medium.com/@msowski/release-your-apps-apk-file-and-deploy-it-on-your-device-66a5a2177ac8">prev article</a> for a step by step guide on how you can get your newly built app running in your own phone!</p><p>This article covers the android developers for now.. will be posting soon about ios too! So, stay tuned..</p><p><strong>Why Change the Name and Icon?</strong><br>Before we dive into the steps, let’s briefly discuss why you might want to change your app’s name and icon:</p><p><strong>Branding:</strong> A fresh name and icon can rebrand your app, making it more appealing to users.</p><p><strong>Clarity:</strong> A new name and icon can better reflect your app’s purpose, helping users understand what it does.</p><p><strong>Updates: </strong>After significant updates or changes in your app’s functionality, a new name and icon can signal the improvements.</p><p><strong>Steps to Change Your App’s Name and Icon:</strong></p><p>Replace the icon image in the “res” directory (usually under “res/mipmap”) with your new icon. You can choose an online icon generator tool or website. Some popular options include “App Icon Generator” and “Android Asset Studio.”</p><ul><li>Upload your source icon image or select a base design from the tool.</li><li>Customize the icon by adjusting its size, shape, color, and other attributes to match your preferences.</li><li>Once you’re satisfied with the generated icons, download them in a ZIP or a compressed format provided by the tool.</li><li>Extract the downloaded ZIP file to access the generated icon images. You should have multiple image files representing different sizes and densities.</li><li>Now, in your Android project, navigate to the “res” directory.</li><li>Inside “res,” locate the “mipmap” directory. This directory contains various subdirectories such as “mipmap-mdpi,” “mipmap-hdpi,” “mipmap-xhdpi,” and so on. Each subdirectory corresponds to a different screen density.</li><li>Identify the appropriate subdirectory that matches the screen density you want to target. For example, if you want to replace the launcher icon for a medium-density screen, navigate to “res/mipmap-mdpi.”</li><li>Copy the new icon image files from the generated icons you downloaded in step 2.</li><li>Paste these new icon image files into the directory that matches the screen density you want to target (e.g., “res/mipmap-mdpi”).</li></ul><p>Remember to rebuild and clean your project so always use these few commands (from your project’s directory):</p><pre>cd android<br>./gradlew clean<br>cd..<br>npx react-native run-android</pre><p>Now to test your app in your own physical device:</p><pre>cd android<br>./gradlew assembleRelease</pre><p>That’s it, Voilaaa!! You just changed your icon from the dull android default logo!</p><p><strong>Note: </strong>If you do not see the updated icon, uninstall the prev installed version and install the new built apk file again and do not forget to restart your phone to see the updated changes!!</p><h3>Let us now see how to rename the application itself:</h3><p>These steps are essential to ensure that the new app name is correctly reflected in both your project configuration and the app’s user interface.</p><p>1. Modify displayName in app.json File:</p><p>The app.json file is a configuration file used in React Native projects. To change your app&#39;s name, you should modify the displayName property within this file.</p><ul><li>Open the app.json file in the root directory of your React Native project.</li><li>Locate the &quot;displayName&quot; field and change its value to your desired app name. For example:</li></ul><pre>{<br>  &quot;name&quot;: &quot;YourAppName&quot;,<br>  &quot;displayName&quot;: &quot;My New App Name&quot;,<br>  // Other app configuration settings<br>}</pre><p>Certainly, let’s elaborate on the steps to rename your Android app by modifying the displayName in the app.json file and the app_name in the strings.xml file. These steps are essential to ensure that the new app name is correctly reflected in both your project configuration and the app&#39;s user interface.</p><p>1. Modify displayName in app.json File:</p><p>The app.json file is a configuration file used in React Native projects. To change your app&#39;s name, you should modify the displayName property within this file.</p><ul><li>Open the app.json file in the root directory of your React Native project.</li><li>Locate the &quot;displayName&quot; field and change its value to your desired app name. For example:</li></ul><pre>{<br>  &quot;name&quot;: &quot;YourAppName&quot;,<br>  &quot;displayName&quot;: &quot;My New App Name&quot;,<br>  // Other app configuration settings<br>}</pre><ul><li>Save the changes to the app.json file.</li></ul><p><strong>2. Modify </strong><strong>app_name in </strong><strong>strings.xml File:</strong></p><p>The strings.xml file is used to store string resources for your Android app, including the app name displayed to users.</p><ul><li>Navigate to the following directory within your Android project: android/app/src/main/res/values/.</li><li>In this directory, you’ll find the strings.xml file.</li><li>Open the strings.xml file in a text editor or code editor.</li><li>Locate the &lt;string name=&quot;app_name&quot;&gt; element, which defines the app&#39;s name.</li><li>Change the value within this element to match the new app name:</li></ul><pre>&lt;string name=&quot;app_name&quot;&gt;My New App Name&lt;/string&gt;</pre><ul><li>Save the changes to the strings.xml file.</li></ul><p><strong>3. Run the Following Commands:</strong></p><p>After making the changes to both the app.json and strings.xml files, you&#39;ll need to rebuild and run your Android app to apply the new app name.</p><ul><li>Open your terminal or command prompt.</li><li>Change the working directory to the “android” folder of your React Native project using the cd command:</li></ul><pre>cd android</pre><ul><li>Clean the project using the Gradle wrapper script gradlew with the clean task:</li></ul><pre>./gradlew clean</pre><ul><li>Return to the root directory of your React Native project using the cd command:</li></ul><pre>cd ..</pre><ul><li>Finally, rebuild and run your Android app using the following React Native command:</li></ul><pre>npx react-native run-android</pre><p>These commands ensure that the changes you made to the app name are propagated throughout your Android project, and the app is built and launched with the updated name.</p><p>After running these commands, you should see your app displayed with the new name on your Android device or emulator’s home screen and within the app itself.</p><p>Now to test your app in your own physical device:</p><pre>cd android<br>./gradlew assembleRelease</pre><p>That’s it!! You just changed your display name!</p><p><strong>If you found this React Native guide helpful, please give it a round of applause 👏 and follow us for more insightful articles on app development!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=580c530f3331" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Release your app’s APK file and deploy it on your device]]></title>
            <link>https://medium.com/@msowski/release-your-apps-apk-file-and-deploy-it-on-your-device-66a5a2177ac8?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/66a5a2177ac8</guid>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Mon, 04 Sep 2023 15:56:41 GMT</pubDate>
            <atom:updated>2023-09-04T16:05:53.307Z</atom:updated>
            <content:encoded><![CDATA[<p>So you’ve spent countless hours designing, coding, and testing your mobile app, and now it’s time to share it with the world — or at least with a few trusted friends and colleagues for initial testing. In this guide, we’ll walk you through the process of releasing your Android app’s APK (Android Package) file and deploying it on your device for testing. This is a crucial step in the app development journey, and we’ll make it easy for you.</p><p><strong>Step 1: Prepare Your Android App for Release</strong></p><p>Before we dive into generating the APK file, make sure your Android app is ready for release. This includes:</p><ul><li>Ensuring your app’s code is thoroughly tested and free of critical bugs.</li><li>Double-checking that your app’s user interface looks and behaves as expected.</li><li>Setting up any necessary permissions and configurations, such as internet access or location services.</li><li>Generating any necessary signing keys for your app (if you plan to distribute it publicly, you’ll need a release key).</li></ul><p><strong>Step 2: Generate the APK File</strong></p><p>To create the APK file, follow these steps:</p><ol><li>Open Android Studio: Launch Android Studio, and open your Android app project.</li><li>Build the APK: Go to the “Build” menu and select “Build Bundle(s) / APK(s)” and then “Build APK(s).”</li><li>Wait for Gradle to Build: Android Studio will take a moment to build the APK file. Once the build process is complete, you’ll see a message indicating the location of the APK file on your computer.</li><li>Locate the APK: Navigate to the directory to find your newly generated APK file.</li></ol><h3>For People like me who prefer VS Code</h3><p>All you need is to run this command from your project’s folder:</p><pre>cd android<br>./gradlew assembleRelease</pre><p>Now navigate to the:</p><pre>android&gt;app&gt;build&gt;outputs&gt;release folder</pre><p>there you will find your apk file! Easy right!</p><blockquote><em>You can send it to your mail or simply send via WhatsApp web to your phone and download it to install on your device!</em></blockquote><p><strong>Step 3: Enable Installation from Unknown Sources</strong></p><p>Before you can install the APK on your Android device, you need to enable installation from unknown sources:</p><ol><li>Open your device’s “Settings.”</li><li>Navigate to “Apps” or “Security,” depending on your device.</li><li>Look for “Install unknown apps” or “Unknown sources” and select the app you’ll use to install the APK (typically, this is a file manager app or a browser).</li><li>Toggle on the “Allow from this source” option.</li></ol><p><strong>Step 4: Transfer the APK to Your Device</strong></p><p>Transfer the APK file to your Android device. You can do this through various methods, such as emailing it to yourself, using cloud storage services like Google Drive, or connecting your device to your computer via USB and copying the file.</p><p><strong>Step 5: Install the APK on Your Device</strong></p><p>Once the APK is on your device, follow these steps to install it:</p><ol><li>Open your device’s file manager app.</li><li>Navigate to the directory where you saved the APK file.</li><li>Tap on the APK file to start the installation.</li><li>You may be prompted to confirm the installation. Tap “Install.”</li><li>Wait for the installation process to complete.</li></ol><p><strong>Step 6: Launch Your App</strong></p><p>Congratulations! Your app is now installed on your device. You can find it in your app drawer or on your home screen. Launch the app and start testing.</p><h3><strong>Conclusion</strong></h3><p>Releasing your Android app’s APK file and deploying it on your device is a crucial step in the app development process. It allows you to test your app on real hardware and share it with others for feedback. By following these steps, you’ll be well on your way to taking your app from development to testing and eventually to the hands of eager users. Happy app testing! 📱🚀</p><p><strong>Note</strong>: If you are not happy with the icon or your app’s name appearing on your phone, check out my new article on how to change them <a href="https://medium.com/@msowski/renew-the-apps-icon-and-name-in-react-native-580c530f3331">here</a>.</p><p><strong>If you found this React Native guide helpful, please give it a round of applause 👏 and follow us for more insightful articles on app development!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=66a5a2177ac8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Ace Your React Native Interview with these Questions]]></title>
            <link>https://medium.com/@msowski/ace-your-react-native-interview-with-these-questions-fe917e924285?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/fe917e924285</guid>
            <category><![CDATA[interview-questions]]></category>
            <category><![CDATA[interview]]></category>
            <category><![CDATA[javascript-tips]]></category>
            <category><![CDATA[react-native]]></category>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Mon, 28 Aug 2023 12:08:43 GMT</pubDate>
            <atom:updated>2023-08-28T12:10:31.485Z</atom:updated>
            <content:encoded><![CDATA[<p>In today’s competitive job market, standing out during a React Native interview is essential for landing that dream job as a mobile app developer. React Native, with its ability to build cross-platform mobile applications using a single codebase, has gained immense popularity.</p><p>As you prepare for your React Native interview, understanding the questions frequently asked by interviewers and having insightful answers at your fingertips can greatly boost your confidence. In this blog, we’ll explore some of the top React Native interview questions, along with detailed explanations to help you tackle them with ease.</p><p><strong>1 . Difference between the map function and Flatlist? Which is better?</strong></p><p><strong>map Function: </strong>The map function is a built-in JavaScript method used to iterate over an array and apply a function to each element, creating a new array with the results.</p><p><strong>FlatList Component: </strong>The FlatList is a component provided by React Native that is used to efficiently render a list of items, especially when the list is long or dynamic. It renders items lazily as the user scrolls, thus improving performance.</p><p><strong>Differences:</strong></p><p>The map function is a general-purpose JavaScript method for working with arrays, while FlatList is a specialized component designed for efficiently rendering lists in React Native.<br>map returns a new array based on the provided transformation function, while FlatList directly renders components for each item in the list.<br>FlatList offers performance optimizations such as virtualization and lazy loading, which can improve the rendering performance of long lists compared to using map.</p><p><strong>Which is better: </strong>The choice between map and FlatList depends on the specific use case. If you’re rendering a small static list, map is simpler to use. If you’re dealing with a long or dynamic list, FlatList is generally preferred due to its performance optimizations.</p><p><strong>2. How can you make your UI responsive for all screens in React Native?</strong></p><p>To make your UI responsive for all screens in React Native:</p><p><strong>Use Flexbox for layout:</strong> Flexbox is a CSS layout system that works well in React Native. It allows you to create flexible and responsive layouts that adapt to different screen sizes.<br><br><strong>Use Percentage-Based Sizing: </strong>Instead of fixed pixel values, use percentage-based sizing for components and containers to adapt to different screen sizes.<br><br><strong>Test on Different Devices:</strong> Regularly test your app on various devices and screen sizes to ensure a consistent user experience.</p><p><strong>3. How to make multiple stack navigators for logged and unlogged users to prevent Information leakage?</strong></p><p>You can create multiple stack navigators for different user authentication states by using conditional navigation:</p><ul><li>Create two separate stack navigators, one for logged-in users and one for unlogged users.</li><li>In your main navigator, conditionally render the appropriate stack navigator based on the user’s authentication status. You can use a state variable, context, or a global state management solution to track the user’s authentication status.</li></ul><p><strong>4. Describe Hoisting? Using var and let keywords</strong></p><p>Hoisting is a JavaScript behavior where variable declarations are moved to the top of their containing scope during compilation, making them available before they are actually declared in the code.</p><ul><li>With var: Variables declared with var are hoisted to the top of their scope and initialized with undefined. This means you can access and use them before the actual declaration.</li><li>With let: Variables declared with let are also hoisted to the top of their scope, but they are not initialized. They remain in the &quot;temporal dead zone&quot; until their declaration, which means you can&#39;t access or use them before they are declared.</li></ul><p><strong>5. Describe the OOP concepts like Polymorphism, Encapsulation and Inheritance.</strong></p><ul><li>Polymorphism: Polymorphism allows objects of different classes to be treated as objects of a common superclass. It enables you to create more generic and flexible code. In programming, polymorphism often involves method overriding or interface implementation.</li><li>Encapsulation: Encapsulation is the concept of bundling data (attributes) and methods (functions) that operate on the data into a single unit called a class. It restricts direct access to the data and promotes data integrity by controlling how data is manipulated.</li><li>Inheritance: Inheritance is a mechanism by which a new class (subclass or derived class) can inherit properties and behaviors (methods) from an existing class (superclass or base class). It promotes code reuse and hierarchy in object-oriented programming.</li></ul><p><strong>6. What are Promises and Callback functions?</strong></p><ul><li><strong>Callback Functions:</strong> Callback functions are functions that are passed as arguments to another function. They are executed asynchronously, typically after the completion of a specific task. Callbacks are commonly used for handling asynchronous operations, such as making API requests or reading files.</li><li><strong>Promises:</strong> Promises are a more structured way to handle asynchronous operations in JavaScript. They represent a value that might be available now, or in the future, or never. Promises provide a cleaner and more readable syntax for handling asynchronous tasks and chaining operations.</li></ul><p><strong>7. Is JavaScript Synchronous or Asynchronous?</strong></p><p>JavaScript is both synchronous and asynchronous. It has a single-threaded event loop that processes tasks in a queue. Most JavaScript code runs synchronously, executing one statement after another. However, JavaScript also supports asynchronous programming using mechanisms like callbacks, promises, and async/await.</p><p><strong>8. Define Threads and their usage.</strong></p><p>A thread is the smallest unit of execution in a program. Threads are part of a process and share the same memory space. They enable concurrent execution of tasks, allowing a program to perform multiple operations simultaneously.</p><p>In modern programming, threads are often used to achieve parallelism and improved performance. However, managing threads can be complex due to potential issues like race conditions and deadlocks. Many programming languages provide higher-level abstractions like processes, tasks, or async/await to manage concurrency and avoid low-level thread management.</p><p><strong>9. Describe the behavior of Flex in React native in terms of styling:</strong></p><p>In React Native, the flex property is used to control how components distribute available space within a parent container. It&#39;s similar to how Flexbox works in CSS, but there are a few differences due to React Native&#39;s constraints.</p><ul><li>flex Property: Components inside a container can have a flex property that determines how they share available space. It&#39;s a numeric value that represents the ratio of space a component should take compared to other flex components.</li><li>Flex Direction: The flexDirection property determines the direction in which components are laid out. It can be set to &quot;row&quot; (default) or &quot;column&quot;.</li><li>Aligning Items: The alignItems and justifyContent properties control the alignment of items along the cross and main axes, respectively.</li><li>Flex Wrap: The flexWrap property specifies whether items should wrap to the next line if they can&#39;t fit in a single line.</li><li>Nested Flex Containers: Flex containers can also be nested, allowing you to create complex layouts.</li></ul><p><strong>10. Define Redux, Context API, and State Hooks</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/664/1*Sn6KAiVEPpOiceV3qvVwSg.png" /></figure><p><strong>11. How do you update the state in Functional Approach in RN?</strong></p><p>You can update the state using the useState hook and manage side effects using the useEffect hook. Here&#39;s how you can do it:</p><pre>import React, { useState, useEffect } from &#39;react&#39;;<br>import { View, Text, Button } from &#39;react-native&#39;;<br><br>function ExampleComponent() {<br>  const [count, setCount] = useState(0);<br><br>  useEffect(() =&gt; {<br>    // This code runs after every render<br>    console.log(&#39;Effect ran&#39;);<br>  });<br><br>  return (<br>    &lt;View&gt;<br>      &lt;Text&gt;{count}&lt;/Text&gt;<br>      &lt;Button title=&quot;Increment&quot; onPress={() =&gt; setCount(count + 1)} /&gt;<br>    &lt;/View&gt;<br>  );<br>}<br><br>export default ExampleComponent;</pre><p><strong>12. What is ‘closure’ in javascript?</strong></p><p>A closure in JavaScript refers to the combination of a function and the lexical environment within which that function was declared. Closures allow functions to “remember” variables from their outer scope even after the outer function has finished executing.</p><p>In simpler terms, a closure gives a function access to variables from its containing scope, even after that scope has exited. This behavior is often used to create private variables, encapsulation, and maintain data between function calls.</p><p><strong>13. Difference between arrow functions and normal functions? What is the usage of ‘this’ keyword?</strong></p><ul><li><strong>Arrow Functions:</strong></li><li>Arrow functions have a concise syntax and do not bind their own this value.</li><li>They inherit the this value from the surrounding code (lexical scoping).</li><li>Commonly used in cases where the value of this doesn&#39;t need to be dynamically determined within the function (e.g., in callbacks and short functions).</li><li><strong>Normal Functions:</strong></li><li>Normal functions have their own this value, which is dynamically determined based on how the function is called.</li><li>The value of this inside a normal function depends on how the function is invoked, such as with call, apply, or the object that directly calls the function.</li></ul><p>Usage of ‘this’ Keyword:</p><ul><li>In normal functions, this refers to the context in which the function is called.</li><li>In arrow functions, this is determined by the surrounding lexical scope and does not have its own binding.</li></ul><p>In React, arrow functions are often used for defining event handlers or component methods, as they maintain the parent’s this context without needing explicit binding. Normal functions may require manual binding using methods like .bind() or being used within class properties.</p><p>For example:</p><pre>class ExampleComponent extends React.Component {<br>  constructor() {<br>    super();<br>    this.state = { count: 0 };<br>  }<br><br>  handleClick = () =&gt; {<br>    // Arrow function maintains &#39;this&#39;<br>    this.setState({ count: this.state.count + 1 });<br>  }<br><br>  render() {<br>    return &lt;button onClick={this.handleClick}&gt;Increment&lt;/button&gt;;<br>  }<br>}</pre><p>If you found these helpful, don’t forget to 👏👏👏, share and comment for any questions you think are necessary for react native interview, have a good day!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fe917e924285" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Getting Started with Mapbox Integration in React Native]]></title>
            <link>https://medium.com/@msowski/getting-started-with-mapbox-integration-in-react-native-7b6bc1bc4c54?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/7b6bc1bc4c54</guid>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[mapbox]]></category>
            <category><![CDATA[mobile-app-development]]></category>
            <category><![CDATA[react-native-development]]></category>
            <category><![CDATA[react-native-developers]]></category>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Tue, 22 Aug 2023 14:49:28 GMT</pubDate>
            <atom:updated>2023-08-22T14:49:28.976Z</atom:updated>
            <content:encoded><![CDATA[<p>In today’s mobile app development landscape, incorporating interactive maps has become a staple feature. One of the leading tools for achieving this is Mapbox, which provides developers with powerful mapping capabilities. In this article, we’ll guide you through the process of integrating Mapbox into a React Native application to display a basic map.</p><h3>Step 1: Setting Up Your React Native Project</h3><p>Before we dive into the Mapbox integration, ensure you have a React Native project up and running. If not, create a new project using the React Native CLI:</p><pre>npx react-native init MapboxIntegrationApp</pre><p>Navigate into your project directory:</p><pre>cd MapboxIntegrationApp</pre><h3>Step 2: Install the Dependency</h3><pre>npm install --save @rnmapbox/maps</pre><pre>npm install --save @rnmapbox/maps</pre><h3>Step 3: Obtain Your Mapbox Access Token</h3><p>Go to the <a href="https://www.mapbox.com/">Mapbox website</a> and sign up for an account if you don’t have one. After signing in, navigate to your account settings and find your access token.</p><h3>Step 4: Initialize Mapbox in Your App</h3><p>Open your app’s entry file (usually App.js or index.js) and add the following lines at the top:</p><pre>import MapboxGL from &#39;@react-native-mapbox-gl/maps&#39;;<br><br>MapboxGL.setAccessToken(&#39;YOUR_MAPBOX_ACCESS_TOKEN&#39;);</pre><h3>Conclusion</h3><p>Integrating Mapbox into your React Native app offers endless possibilities for creating visually engaging and interactive maps. Whether you’re building a travel app, a location-based service, or simply showcasing geographical data, Mapbox provides the tools to enhance user experiences. This basic integration is just the beginning; you can explore Mapbox’s extensive documentation to uncover advanced features and capabilities for your app.</p><p>Happy mapping!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7b6bc1bc4c54" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Discover These Surprising Amazon Must-Haves for an Easier Life]]></title>
            <link>https://medium.com/@msowski/discover-these-surprising-amazon-must-haves-for-an-easier-life-b875ceb0d946?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/b875ceb0d946</guid>
            <category><![CDATA[smart-life]]></category>
            <category><![CDATA[smart-home]]></category>
            <category><![CDATA[easy]]></category>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Sun, 30 Jul 2023 15:34:24 GMT</pubDate>
            <atom:updated>2023-07-30T15:34:24.806Z</atom:updated>
            <content:encoded><![CDATA[<p>Amazon is known for its vast array of products, and it’s no secret that many of us have become addicted to finding incredible items we didn’t even know existed. From must-haves for your car to travel essentials, Amazon offers everything with the added bonus of two-day delivery. To make life at home more convenient, we’ve compiled a massive master-list of Amazon must-haves that can simplify your daily routine and help you work smarter, not harder!</p><p><strong>Little Green Bissell Carpet &amp; Upholstery Cleaner:</strong> This compact carpet cleaner is perfect for spot cleaning, stairs, and even your car seats. It’s a purchase you never knew you needed, but once you have it, you’ll wonder how you lived without it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/601/1*-F8L1Z4M3lEA-FBMEqQcUQ.png" /></figure><p>Check it here: <a href="https://amzn.to/3Oh6j0a">https://amzn.to/3Oh6j0a</a></p><p><strong>Smart Vanity Mirror: </strong>Get ready like a pro with this smart vanity mirror. It not only provides a bright light for your beauty routine but also has Wi-Fi capabilities, allowing you to watch YouTube or scroll through social media while preparing. Additionally, it offers a built-in skin assessment feature, tracking your skincare results and progress over time.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/510/1*mpBkxqLRyWh1TtEpVQDpJQ.png" /></figure><p>Check it here: <a href="https://amzn.to/44Pz9fs">https://amzn.to/44Pz9fs</a></p><p><strong>Vintage Mini Fridge: </strong>This stylish mini fridge is an excellent addition to your skincare routine. Perfect for storing cosmetics or skincare products, it can also be used for food, snacks, and drinks.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/502/1*wh-0DfgeM4OUO2pPgbWZ6A.png" /></figure><p>Check it here:<a href="https://amzn.to/43MTel9">https://amzn.to/43MTel9</a></p><p><strong>Pack of 10 Reusable Silicone Straws:</strong> Reduce your plastic waste with these reusable silicone straws, complete with a straw cleaner. Keep them at home or take them with you to restaurants for a sustainable solution.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/579/1*vSKpjJs2ArzyO8Y6P5J7WA.png" /></figure><p>Check it here:<a href="https://amzn.to/3OAqSpK">https://amzn.to/3OAqSpK</a></p><p><strong>Smart Plug Outlets: </strong>Control your appliances and lights with ease using these Smart Plug Outlets. Compatible with Amazon Alexa and Google Home, you can set timers or control them remotely with a smartphone app.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/367/1*29focS3mTzCZF8iI-6D5QQ.png" /></figure><p>Check it here:<a href="https://amzn.to/3qiJGAu">https://amzn.to/3qiJGAu</a></p><p><strong>2-in-1 Dish Soap Dispenser and Sponge Holder:</strong> Say goodbye to messy dispenser bottles with this 2-in-1 solution for your kitchen sink. Simply press the sponge down to pump dish soap directly onto it, keeping your sink area neat and organized.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/340/1*_VwNRAlRpUNJydkEbrLjzg.png" /></figure><p>Check it here:<a href="https://amzn.to/3OhBLM5">https://amzn.to/3OhBLM5</a></p><p><strong>Mop and Bucket Set for Floor Cleaning:</strong> Revolutionize your mopping routine with this practical mop and bucket set. Its smart design ensures efficient wetting and draining, and it comes with two microfiber mop pads.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/331/1*GGR7VSp5eiiRVNayPmOZ_g.png" /></figure><p>Check it here: <a href="https://amzn.to/3QAIcwz">https://amzn.to/3QAIcwz</a></p><p><strong>Handheld Milk Frother: </strong>Enjoy cafe-style lattes and cappuccinos at home with this handheld milk frother. It’s budget-friendly and comes in various colors to suit your style.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/409/1*pfVtCPXszOFuXn4d2pZdHg.png" /></figure><p>Check it here:<a href="https://amzn.to/3OcQpUQ">https://amzn.to/3OcQpUQ</a></p><p><strong>Automatic Toothpaste Dispenser and Toothbrush Holder</strong>: This handy device automatically dispenses the perfect amount of toothpaste onto your toothbrush. It also includes four cups for rinsing or holding extra brushes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/337/1*wH4gb5ooJj2aNTBpybx_HA.png" /></figure><p>Check it here: <a href="https://amzn.to/3O6DYcQ">https://amzn.to/3O6DYcQ</a></p><p><strong>3-Chamber Shower Soap Dispenser: </strong>Eliminate shower clutter with this convenient soap dispenser that can be easily installed using waterproof silicone adhesive.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/568/1*nExEAMuUHm4d5MXf2tcuSQ.png" /></figure><p>Check it here:<a href="https://amzn.to/3qbm40J">https://amzn.to/3qbm40J</a></p><p><strong>Towel Warmer with Timer Settings: </strong>Transform your shower experience with this towel warmer that offers four different timer settings. Enjoy a warm towel before or after your shower for a luxurious at-home spa experience.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/362/1*e2vtb2y4i232gsiAzy_pQw.png" /></figure><p>Check it here: <a href="https://amzn.to/3rN5WD8">https://amzn.to/3rN5WD8</a></p><p><strong>Ice Cream Ball: </strong>Make homemade ice cream in less than 30 minutes without electricity. This fun ice cream ball is perfect for family activities or creative date nights.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/359/1*gw_VtiBj2xhErEZApcBRAw.png" /></figure><p>Check it here: <a href="https://amzn.to/478VVjP">https://amzn.to/478VVjP</a></p><p><strong>Ring Video Doorbell Pro: </strong>Enhance your home security with this video doorbell that allows you to see, hear, and talk to visitors from your phone or tablet.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/268/1*DI80AnuWp34qDZFTNbjwsw.png" /></figure><p>Check it here:<a href="https://amzn.to/43LFXJx">https://amzn.to/43LFXJx</a></p><p><strong>Rubber Broom:</strong> Designed for pet owners or those dealing with hair shedding, this rubber broom efficiently sweeps up hair without stirring it into the air, acting like a giant lint roller for your floors.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/360/1*7SdbDJb51r484Zgqi39sCg.png" /></figure><p>Check it here:<a href="https://amzn.to/3rG2qKD">https://amzn.to/3rG2qKD</a></p><p><strong>Smart Touch Screen Toaster: </strong>Experience the future of toasting with this touch screen toaster. It lets you choose your desired level of toasting, making burnt toast a thing of the past.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/322/1*BgdRcJmA7cr_bNX1Wwkzfg.png" /></figure><p>Check it here:<a href="https://amzn.to/3OBYrYP">https://amzn.to/3OBYrYP</a></p><p><strong>Chom Chom Roller:</strong> This powerful lint roller alternative effortlessly removes pet hair from furniture and carpets without the need for disposable sheets.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/351/1*GdVoYejBBIhTN9pRAfi0QA.png" /></figure><p>Check it here:<a href="https://amzn.to/3OAeCFX">https://amzn.to/3OAeCFX</a></p><p><strong>Inflatable Canopy Island:</strong> Create the perfect outdoor date or pool lounging experience with this inflatable canopy island. It’s an excellent addition to your outdoor activities.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/347/1*cqTDtQ6Wr4Y02-TIz4L7Og.png" /><figcaption><a href="https://amzn.to/3OAetSV">https://amzn.to/3OAetSV</a></figcaption></figure><p>Check it here: <a href="https://amzn.to/3OAetSV">https://amzn.to/3OAetSV</a></p><p><strong>Conclusion</strong></p><p>Amazon is full of hidden gems that can make your daily life more manageable and enjoyable. From home essentials to kitchen gadgets and beauty must-haves, these products have the potential to become your new favorites. So, why not treat yourself to some of these Amazon must-haves you didn’t know you needed? Happy shopping!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b875ceb0d946" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is Software Testing and why should you consider testing yours?]]></title>
            <link>https://medium.com/@msowski/what-is-software-testing-and-why-should-you-consider-testing-yours-29a31e6a1d86?source=rss-b67c67ca9037------2</link>
            <guid isPermaLink="false">https://medium.com/p/29a31e6a1d86</guid>
            <category><![CDATA[software-tester]]></category>
            <category><![CDATA[software-testing]]></category>
            <category><![CDATA[software]]></category>
            <dc:creator><![CDATA[Msowski]]></dc:creator>
            <pubDate>Sun, 11 Jun 2023 16:45:56 GMT</pubDate>
            <atom:updated>2023-06-11T16:45:56.683Z</atom:updated>
            <content:encoded><![CDATA[<p>Let us begin with the terms <strong>Quality, Correctness and Conciseness! </strong>That is what testing is all about! Software testing is of several types if we talk about the generic ones we can divide it into the following:</p><ul><li>System</li><li>Integration</li><li>Acceptance</li><li>Unit</li></ul><h3>Further-&gt;</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/661/1*LRR2kwyGWl1UUU7RPxE-WA.png" /></figure><p>Whereas the typical types may also include <strong>Component based testing</strong> which usually revolves around the stubs and drivers:</p><ul><li>Suppose Function A that calculates the total marks obtained by a student in a particular academic year.​</li><li>Suppose this function derives its values from another function (Function b) which calculates the marks obtained in a particular subject.​</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/428/1*AOsOKhNrytz4baR3RTWufw.png" /></figure><p><strong>Talking of Integration we have the following types:</strong></p><p>Mainly four approaches: ​</p><ul><li>Top Down approach​ (stubs)</li><li>Bottom up approach​ (drivers)</li><li>BigBang approach​ (all components tested at least once)</li><li>Adhoc approach​ (without planning and documentation)</li></ul><p>You may have heard about the terms <strong>validation</strong> and <strong>verification</strong> right?</p><p>Ever wondered what they are? Are they the same or is there something that makes them a bit different? Let us find out!</p><p>Verifcation is usually refered to as the black box testing where as the validation is for white box testing. Black box means we do not need to know the source code or the internal matter of the software whereas its completely opposite for the other case.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/746/1*NYW5eV0Y1-1IaG3FM8RraA.png" /></figure><p>The same can be applied to <strong>Static Vs. Dynamic </strong>testing..</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/767/1*PqOYW9n43ykfD6td-98cmw.png" /></figure><p>So, when we make up the big picture of the model it comes out as:</p><h4>Design-&gt; Automation-&gt; Execution -&gt; Evaluation</h4><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=29a31e6a1d86" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>