<?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: Kabue Charles</title>
    <description>The latest articles on DEV Community by Kabue Charles (@mckabue).</description>
    <link>https://dev.to/mckabue</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%2F34685%2F78019427-db44-410a-9e9d-d6cf40b6805d.jpeg</url>
      <title>DEV Community: Kabue Charles</title>
      <link>https://dev.to/mckabue</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mckabue"/>
    <language>en</language>
    <item>
      <title>Vibe Coding Challenge: The Art and The Skill</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Sun, 04 Jan 2026 11:24:52 +0000</pubDate>
      <link>https://dev.to/mckabue/vibe-coding-challenge-the-art-and-the-skill-3h1</link>
      <guid>https://dev.to/mckabue/vibe-coding-challenge-the-art-and-the-skill-3h1</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%2Fg4fe6jl39er8w98y4dmj.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%2Fg4fe6jl39er8w98y4dmj.png" alt="Blober Desktop app" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;‎For months, I’ve been managing a 1TB/month pipeline of media assets using a custom python script. It worked, but it was fragile: no history, complex filters, and zero visibility into what was actually happening.&lt;br&gt;
‎&lt;br&gt;
‎During this past Christmas holiday, I decided to fix it using a "Vibe Coding" approach. The result is Blober, &lt;a href="https://blober.io/" rel="noopener noreferrer"&gt;https://blober.io/&lt;/a&gt;&lt;br&gt;
‎&lt;br&gt;
&lt;strong&gt;What is Blober?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;‎It’s a local-first workflow engine designed to turn "data graveyards" into organized archives. Instead of writing custom wrappers, you get:&lt;br&gt;
‎&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;‎Metadata-Aware Pathing: Automatically organize files by creation date or custom tags.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;‎2. Human-Readable Guardrails: Real-time progress monitoring and conflict detection.&lt;/p&gt;

&lt;p&gt;‎3. Multi-Cloud Support: One interface for Azure, S3, Google Drive, and more.&lt;br&gt;
‎&lt;br&gt;
‎&lt;strong&gt;The "Vibe Coding" Lesson:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generally, I have found the following to be true about AI-assisted solutions in all domains:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;AI is good for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drafting (kick starting a new project, templating, Generating a new document, etc)&lt;/li&gt;
&lt;li&gt;Proofreading (writing tests, debugging errors, etc)&lt;/li&gt;
&lt;li&gt;Manipulation (summarizing text, rephrasing a document, remixing the tone or theme of a text block, improving existing code, etc)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI saves you money in the short run (you dont need a website designer), but compensates by wasting time (you spend all the time prompting and tuning a design)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Simply speaking, AI is best used as a multiplier of existing skills, not a replacement for them.&lt;br&gt;
‎&lt;br&gt;
‎Try it out: &lt;a href="https://blober.io/" rel="noopener noreferrer"&gt;https://blober.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;‎Read more about the full story and the technical breakdown here: &lt;a href="https://toknow.ai/posts/vibe-coding-challenge/" rel="noopener noreferrer"&gt;https://toknow.ai/posts/vibe-coding-challenge/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>cloudstorage</category>
      <category>personalproject</category>
      <category>saas</category>
    </item>
    <item>
      <title>Create Your Professional Resume Website with GitHub and Quarto</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Sun, 15 Sep 2024 01:32:47 +0000</pubDate>
      <link>https://dev.to/mckabue/create-your-professional-resume-website-with-github-and-quarto-2ip0</link>
      <guid>https://dev.to/mckabue/create-your-professional-resume-website-with-github-and-quarto-2ip0</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%2Fv4ojnig1sgz03j8gjsij.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%2Fv4ojnig1sgz03j8gjsij.png" alt="Sample Quarto Resume - Jane Doe" width="800" height="665"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use Quarto and GitHub Pages?
&lt;/h2&gt;

&lt;p&gt;Before we dive into the how-to, let's understand why this combination is so powerful:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dual Format&lt;/strong&gt;: You get both an HTML website and a PDF version of your resume. This means you have a professional online presence and a traditional document to share when needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Easy Updates&lt;/strong&gt;: Your resume is stored as a simple text file. Whenever you update it, both the website and PDF are automatically regenerated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Free Hosting&lt;/strong&gt;: GitHub Pages hosts your website for free, saving you money on web hosting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Professional Domain&lt;/strong&gt;: Your site will be at &lt;code&gt;&amp;lt;your-github-username&amp;gt;.github.io&lt;/code&gt;, giving you a professional web presence without any cost.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Version Control&lt;/strong&gt;: GitHub keeps track of all changes, so you can always go back to a previous version if needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Full Content Control&lt;/strong&gt;: Unlike social media platforms or third-party resume builders, you have complete control over your content and how it's presented.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trusted Platform&lt;/strong&gt;: GitHub is widely used and trusted in the tech industry, adding credibility to your online presence.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What You'll Need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A computer with internet access&lt;/li&gt;
&lt;li&gt;Your resume information&lt;/li&gt;
&lt;li&gt;About 30 minutes of your time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it! You don't need any coding experience or special software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-Step Guide
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Create a GitHub Account
&lt;/h3&gt;

&lt;p&gt;If you don't already have one, you'll need to create a GitHub account:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://github.com" rel="noopener noreferrer"&gt;github.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click "Sign up" in the top right corner&lt;/li&gt;
&lt;li&gt;Follow the prompts to create your account&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Step 2: Use the Resume Template
&lt;/h3&gt;

&lt;p&gt;We'll use a pre-made template to make this process easy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visit the &lt;a href="https://github.com/ToKnow-ai/quarto-resume-template" rel="noopener noreferrer"&gt;ToKnow-ai/Quarto-Resume-Template&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Click the green "Use this template" button&lt;/li&gt;
&lt;li&gt;Choose "Create a new repository"&lt;/li&gt;
&lt;li&gt;Name your repository &lt;code&gt;&amp;lt;your-github-username&amp;gt;.github.io&lt;/code&gt; (replace "&lt;code&gt;&amp;lt;your-github-username&amp;gt;&lt;/code&gt;" with your actual GitHub username)&lt;/li&gt;
&lt;li&gt;Make sure it's set to "Public"&lt;/li&gt;
&lt;li&gt;Click "Create repository from template"&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Step 3: Edit Your Resume
&lt;/h3&gt;

&lt;p&gt;Now, let's add your information:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In your new repository, find the file named &lt;code&gt;RESUME.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Click on the file, then click the pencil icon to edit&lt;/li&gt;
&lt;li&gt;Replace the example information with your own details&lt;/li&gt;
&lt;li&gt;When you're done, scroll down and click "Commit changes"&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Step 4: Customize Your Site
&lt;/h3&gt;

&lt;p&gt;You can customize your site's appearance and add extra information:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Edit the &lt;code&gt;RESUME.json&lt;/code&gt; file to change your site's title, description, and other metadata&lt;/li&gt;
&lt;li&gt;Modify the &lt;code&gt;_quarto.yml&lt;/code&gt; file to change the site's theme or layout&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't worry if you're not sure about these - the default settings look great too!&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Publish Your Site
&lt;/h3&gt;

&lt;p&gt;GitHub will automatically build and publish your site:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to your repository's "Settings" tab&lt;/li&gt;
&lt;li&gt;Click on "Pages" in the left sidebar&lt;/li&gt;
&lt;li&gt;Under "Source", select "Deploy from a branch"&lt;/li&gt;
&lt;li&gt;Choose "gh-pages" from the branch dropdown&lt;/li&gt;
&lt;li&gt;Click "Save"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your site will now be live at &lt;code&gt;https://your-github-username.github.io&lt;/code&gt;!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you don't edit your resume, here's how your resume website will look: Website: &lt;a href="https://toknow.ai/quarto-resume-template/" rel="noopener noreferrer"&gt;https://toknow.ai/quarto-resume-template/&lt;/a&gt; , PDF: &lt;a href="https://toknow.ai/quarto-resume-template/index.pdf" rel="noopener noreferrer"&gt;https://toknow.ai/quarto-resume-template/index.pdf&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 6 (Optional): Using a Custom Domain
&lt;/h3&gt;

&lt;p&gt;If you have your own domain name:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add your domain to the &lt;code&gt;custom-domain&lt;/code&gt; field in &lt;code&gt;RESUME.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Go to your domain registrar and set up a CNAME record pointing to &lt;code&gt;your-github-username.github.io&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;For detailed and up-to-date instructions, check &lt;a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site" rel="noopener noreferrer"&gt;Configuring a custom domain for your GitHub Pages site&lt;/a&gt; on how you can customize the domain name of your GitHub Pages site. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Examples and Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Check out &lt;a href="https://onesmus.com/" rel="noopener noreferrer"&gt;onesmus.com&lt;/a&gt; for an example of a site created with this template&lt;/li&gt;
&lt;li&gt;You can view its &lt;a href="https://github.com/onesmuskabui/onesmuskabui.github.io" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; to see how it's set up&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  For the Tech-Savvy: Under the Hood
&lt;/h2&gt;

&lt;p&gt;If you're interested in the technical details, here's what's happening behind the scenes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub Actions&lt;/strong&gt;: We use GitHub Actions to automatically build your resume. Every time you update your resume content, a GitHub Action is triggered to rebuild your site.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quarto&lt;/strong&gt;: Quarto is an open-source scientific and technical publishing system. It's typically used for creating dynamic content with Python, R, Julia, and Observable, but it's also excellent for creating static sites like your resume.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Quarto takes your Markdown content and converts it into both HTML and PDF formats.&lt;/li&gt;
&lt;li&gt;It handles the layout, styling, and responsiveness of your site.&lt;/li&gt;
&lt;li&gt;Quarto is highly customizable, allowing for complex layouts and interactivity if needed in the future.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Why Quarto is Great&lt;/strong&gt;: 

&lt;ul&gt;
&lt;li&gt;It separates content from presentation, making it easy to focus on your resume content.&lt;/li&gt;
&lt;li&gt;It produces high-quality, professional-looking output.&lt;/li&gt;
&lt;li&gt;It's flexible enough to grow with your needs, from a simple resume to a full portfolio site.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To learn more about Quarto, check out the &lt;a href="https://quarto.org/docs/guide/" rel="noopener noreferrer"&gt;official Quarto documentation&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;Congratulations! You now have a professional resume website that you can easily update and share. Remember, your site will be accessible at &lt;code&gt;your-github-username.github.io&lt;/code&gt; unless you've set up a custom domain.&lt;/p&gt;

&lt;p&gt;By leveraging GitHub and Quarto, you're getting a professional, easily-updatable resume website and PDF, all hosted for free. This solution combines the best of both worlds: a modern web presence and a traditional document format.&lt;/p&gt;

&lt;p&gt;Whether you're a tech novice just looking for a simple solution, or a tech-savvy individual interested in the underlying processes, this template provides a robust, free, and trusted platform for showcasing your professional experience.&lt;/p&gt;

&lt;p&gt;As your needs evolve, remember that Quarto can grow with you, allowing you to create more complex content like full websites, blogs, books, or even scientific papers - all using the same powerful publishing system.&lt;/p&gt;

&lt;p&gt;Happy job hunting, and enjoy your new resume website!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you run into any issues or want to learn more about customizing your site, ask your question in the &lt;a href="https://toknow.ai/posts/quarto-resume-template/" rel="noopener noreferrer"&gt;comments section!&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;blockquote&gt;
&lt;p&gt;This content was initially posted at &lt;a href="https://toknow.ai/posts/quarto-resume-template/" rel="noopener noreferrer"&gt;https://toknow.ai/posts/quarto-resume-template/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>resume</category>
      <category>quarto</category>
      <category>githubpages</category>
      <category>pdfresume</category>
    </item>
    <item>
      <title>Have you ever solved a software thing so simple and impressive that you thought yourself a genius?</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Tue, 03 Mar 2020 08:58:13 +0000</pubDate>
      <link>https://dev.to/mckabue/have-you-ever-solved-a-software-thing-so-simple-and-impressive-that-you-thought-yourself-a-genius-42jf</link>
      <guid>https://dev.to/mckabue/have-you-ever-solved-a-software-thing-so-simple-and-impressive-that-you-thought-yourself-a-genius-42jf</guid>
      <description>&lt;p&gt;What is that thing that you were able to crack so impressively?&lt;/p&gt;

</description>
      <category>ask</category>
      <category>askdev</category>
    </item>
    <item>
      <title>Connect/debug android with adb (Android Debug Bridge) commands in terminal easily, with one or many devices/emulators.</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Sat, 08 Feb 2020 06:11:13 +0000</pubDate>
      <link>https://dev.to/mckabue/connect-debug-android-with-adb-android-debug-bridge-commands-in-terminal-easily-with-one-or-many-devices-emulators-1g1o</link>
      <guid>https://dev.to/mckabue/connect-debug-android-with-adb-android-debug-bridge-commands-in-terminal-easily-with-one-or-many-devices-emulators-1g1o</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0dPMiJtT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/as0aqpiiq9vf19a1dgq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0dPMiJtT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/as0aqpiiq9vf19a1dgq3.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are developing/debugging an android app, sometimes you may want to run some commands from the terminal (using &lt;code&gt;adb&lt;/code&gt;). If you have one device/emulator attached, then you are okay to run commands like &lt;code&gt;adb install -r app.apk&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;But when you do have several devices attached, that command will not work. You would have to specify the &lt;code&gt;ID&lt;/code&gt; of the specific device you want to run a command on: &lt;code&gt;adb {deviceid} install -r app.apk&lt;/code&gt;. Now, to get a list of attached devices, you simply run the command: &lt;a href="https://developer.android.com/studio/command-line/adb#devicestatus"&gt;&lt;code&gt;adb devices&lt;/code&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ adb devices
List of devices attached
emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64
emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86
0a388e93      device usb:1-1 product:razor model:Nexus_7 device:flo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;a href="https://gist.github.com/McKabue/ac124f736085e9650fdbf63b1d9ca5ab"&gt;This is why I wrote below bash script:&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;

&lt;p&gt;&lt;br&gt;&lt;br&gt;
This script allows you to connect/debug android with &lt;code&gt;adb&lt;/code&gt; commands in terminal easily, with one or many devices/emulators.&lt;br&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;bash &amp;lt;(curl -s https://gist.githubusercontent.com/McKabue/ac124f736085e9650fdbf63b1d9ca5ab/raw/ccfba9fad913baebc1f08cbcd7e525cc3827dd5a/debug-android-from-terminal.sh) install -r app.apk
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This will prompt you to run the command on a specific device, or all of them.&lt;/p&gt;

</description>
      <category>android</category>
      <category>adb</category>
      <category>androiddebugbridge</category>
      <category>bashscript</category>
    </item>
    <item>
      <title>TypeError: Assignment to read-only properties is not allowed in strict mode</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Mon, 18 Nov 2019 14:46:40 +0000</pubDate>
      <link>https://dev.to/mckabue/typeerror-assignment-to-read-only-properties-is-not-allowed-in-strict-mode-1661</link>
      <guid>https://dev.to/mckabue/typeerror-assignment-to-read-only-properties-is-not-allowed-in-strict-mode-1661</guid>
      <description>&lt;p&gt;By a show of hands, how many knew that &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style" rel="noopener noreferrer"&gt;&lt;code&gt;HTMLElement.style&lt;/code&gt;&lt;/a&gt; is &lt;strong&gt;readonly&lt;/strong&gt;?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Styles should not be set by assigning a string directly to the &lt;code&gt;style&lt;/code&gt; property (as in &lt;code&gt;element.style = "color: blue;"&lt;/code&gt;), since it is considered read-only, as the style attribute returns a CSSStyleDeclaration object which is also read-only.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Anyway, &lt;code&gt;element.style = "color: blue;"&lt;/code&gt; will give you the following error in strict mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TypeError: Assignment to read-only properties is not allowed in strict mode

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

&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>readonly</category>
      <category>didyouknow</category>
      <category>ask</category>
    </item>
    <item>
      <title>Error generating functions metadata because of Microsoft.AspNetCore.Mvc.Abstractions, Version=3.0.0.0</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Sun, 27 Oct 2019 21:49:12 +0000</pubDate>
      <link>https://dev.to/mckabue/error-generating-functions-metadata-because-of-microsoft-aspnetcore-mvc-abstractions-version-3-0-0-0-fel</link>
      <guid>https://dev.to/mckabue/error-generating-functions-metadata-because-of-microsoft-aspnetcore-mvc-abstractions-version-3-0-0-0-fel</guid>
      <description>&lt;div class="ltag__stackexchange--container"&gt;
  &lt;div class="ltag__stackexchange--title-container"&gt;
    
      &lt;div class="ltag__stackexchange--title"&gt;
        &lt;div class="ltag__stackexchange--header"&gt;
          &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fstackoverflow-logo-b42691ae545e4810b105ee957979a853a696085e67e43ee14c5699cf3e890fb4.svg" alt=""&gt;
          &lt;a href="https://stackoverflow.com/questions/58583628/error-generating-functions-metadata-because-of-microsoft-aspnetcore-mvc-abstract" rel="noopener noreferrer"&gt;
            Error generating functions metadata because of Microsoft.AspNetCore.Mvc.Abstractions, Version=3.0.0.0
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="ltag__stackexchange--post-metadata"&gt;
          &lt;span&gt;Oct 27 '19&lt;/span&gt;
            &lt;span&gt;Comments: 10&lt;/span&gt;
            &lt;span&gt;Answers: 1&lt;/span&gt;
        &lt;/div&gt;
      &lt;/div&gt;
      &lt;a class="ltag__stackexchange--score-container" href="https://stackoverflow.com/questions/58583628/error-generating-functions-metadata-because-of-microsoft-aspnetcore-mvc-abstract" 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%2Fassets.dev.to%2Fassets%2Fstackexchange-arrow-up-eff2e2849e67d156181d258e38802c0b57fa011f74164a7f97675ca3b6ab756b.svg" alt=""&gt;
        &lt;div class="ltag__stackexchange--score-number"&gt;
          0
        &lt;/div&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fstackexchange-arrow-down-4349fac0dd932d284fab7e4dd9846f19a3710558efde0d2dfd05897f3eeb9aba.svg" alt=""&gt;
      &lt;/a&gt;
    
  &lt;/div&gt;
  &lt;div class="ltag__stackexchange--body"&gt;
    
&lt;p&gt;After migrating to Azure Functions V3 cannot compile and run project anymore&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Steps to reproduce&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Create new HTTP Trigger function &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Update project and include
reference to Microsoft.AspNetCore.App &lt;code&gt;&amp;lt;ItemGroup&amp;gt;
&amp;lt;FrameworkReference Include="Microsoft.AspNetCore.App" /&amp;gt;
&amp;lt;/ItemGroup&amp;gt;&lt;/code&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compile project&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Stack Trace&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.AspNetCore.Mvc.Abstractions, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot…&lt;/p&gt;
&lt;/blockquote&gt;
    
  &lt;/div&gt;
  &lt;div class="ltag__stackexchange--btn--container"&gt;
    &lt;a href="https://stackoverflow.com/questions/58583628/error-generating-functions-metadata-because-of-microsoft-aspnetcore-mvc-abstract" class="ltag__stackexchange--btn" rel="noopener noreferrer"&gt;Open Full Question&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Cancellable Promises</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Sat, 12 Oct 2019 16:41:34 +0000</pubDate>
      <link>https://dev.to/mckabue/cancellable-promises-od5</link>
      <guid>https://dev.to/mckabue/cancellable-promises-od5</guid>
      <description>&lt;p&gt;I want to be able to cancel my promises, and am using something inspired by:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__stackexchange--container"&gt;
  &lt;div class="ltag__stackexchange--title-container"&gt;
    
      &lt;div class="ltag__stackexchange--title"&gt;
        &lt;div class="ltag__stackexchange--header"&gt;
          &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fstackoverflow-logo-b42691ae545e4810b105ee957979a853a696085e67e43ee14c5699cf3e890fb4.svg" alt=""&gt;
          &lt;a href="https://stackoverflow.com/questions/29478751/cancel-a-vanilla-ecmascript-6-promise-chain/56474891#56474891" rel="noopener noreferrer"&gt;
            &lt;span class="title-flare"&gt;answer&lt;/span&gt; re: Cancel a vanilla ECMAScript 6 Promise chain
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="ltag__stackexchange--post-metadata"&gt;
          &lt;span&gt;Jun  6 '19&lt;/span&gt;
        &lt;/div&gt;
      &lt;/div&gt;
      &lt;a class="ltag__stackexchange--score-container" href="https://stackoverflow.com/questions/29478751/cancel-a-vanilla-ecmascript-6-promise-chain/56474891#56474891" 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%2Fassets.dev.to%2Fassets%2Fstackexchange-arrow-up-eff2e2849e67d156181d258e38802c0b57fa011f74164a7f97675ca3b6ab756b.svg" alt=""&gt;
        &lt;div class="ltag__stackexchange--score-number"&gt;
          15
        &lt;/div&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fstackexchange-arrow-down-4349fac0dd932d284fab7e4dd9846f19a3710558efde0d2dfd05897f3eeb9aba.svg" alt=""&gt;
      &lt;/a&gt;
    
  &lt;/div&gt;
  &lt;div class="ltag__stackexchange--body"&gt;
    
&lt;pre&gt;&lt;code&gt;const makeCancelable = promise =&amp;gt; {
    let rejectFn;

    const wrappedPromise = new Promise((resolve, reject) =&amp;gt; {
        rejectFn = reject;

        Promise.resolve(promise)
            .then(resolve)
            .catch(reject);
    });

    wrappedPromise.cancel = () =&amp;gt; {
        rejectFn({ canceled: true });
    };

    return wrappedPromise;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Usage:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const cancelablePromise = makeCancelable(myPromise);
// ...
cancelablePromise.cancel();
&lt;/code&gt;&lt;/pre&gt;

    
  &lt;/div&gt;
  &lt;div class="ltag__stackexchange--btn--container"&gt;
    &lt;a href="https://stackoverflow.com/questions/29478751/cancel-a-vanilla-ecmascript-6-promise-chain/56474891#56474891" class="ltag__stackexchange--btn" rel="noopener noreferrer"&gt;Open Full Answer&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The solution above works, but i would like to improve it and am not willing to use &lt;a href="http://bluebirdjs.com/docs/api/cancellation.html" rel="noopener noreferrer"&gt;bluebirdjs&lt;/a&gt; or &lt;a href="https://rxjs.dev/" rel="noopener noreferrer"&gt;Observables&lt;/a&gt; &lt;em&gt;(well, at least not currently...)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I would want to have that as a prototype of the &lt;code&gt;Promise&lt;/code&gt; object, so i could call &lt;code&gt;cancel&lt;/code&gt; on any native promise. &lt;/p&gt;

&lt;p&gt;Anyone willing to offer the simplest implementation direction?&lt;/p&gt;

</description>
      <category>ask</category>
      <category>javascript</category>
      <category>promise</category>
      <category>thenable</category>
    </item>
    <item>
      <title>Does anyone know of a debugging browser extension/tool for non-developers ops team?</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Thu, 05 Sep 2019 07:49:33 +0000</pubDate>
      <link>https://dev.to/mckabue/does-anyone-know-of-a-debugging-browser-extension-tool-for-non-developers-ops-team-1eo4</link>
      <guid>https://dev.to/mckabue/does-anyone-know-of-a-debugging-browser-extension-tool-for-non-developers-ops-team-1eo4</guid>
      <description>&lt;p&gt;Is there a tool i can recommend to the operations team to help then debug a webapp, or more correctly, collect information so that they can send developers helpful information?&lt;/p&gt;

&lt;p&gt;The tool needs to possible take screenshots, screen casts, and even collect network errors, memory consumption, and any other helpful information...&lt;/p&gt;

&lt;p&gt;Is there?&lt;/p&gt;

</description>
      <category>ask</category>
      <category>help</category>
      <category>tools</category>
      <category>browser</category>
    </item>
    <item>
      <title>Does automated testing reduce the technical debt in your team?</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Wed, 04 Sep 2019 18:20:52 +0000</pubDate>
      <link>https://dev.to/mckabue/does-automated-testing-reduce-the-technical-debt-in-your-team-2k6c</link>
      <guid>https://dev.to/mckabue/does-automated-testing-reduce-the-technical-debt-in-your-team-2k6c</guid>
      <description>&lt;p&gt;I have observed that automated have contributed to reducing the technical debt in my projects by allowing new or junior developers to get set up quickly; from debugging, developing new features, fixing bugs to publishing the code to production, with little or no effort.&lt;/p&gt;

&lt;p&gt;Whats your experience?&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sA3bPpnD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/q7tcl1bhf1xh7ixlpc22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sA3bPpnD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/q7tcl1bhf1xh7ixlpc22.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>automatedtesting</category>
      <category>technicaldebt</category>
      <category>juniordevelopers</category>
    </item>
    <item>
      <title>Arrow functions don’t have the local variable arguments as do other functions.</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Thu, 04 Jul 2019 23:47:43 +0000</pubDate>
      <link>https://dev.to/mckabue/arrow-functions-don-t-have-the-local-variable-arguments-as-do-other-functions-52ba</link>
      <guid>https://dev.to/mckabue/arrow-functions-don-t-have-the-local-variable-arguments-as-do-other-functions-52ba</guid>
      <description>&lt;p&gt;Arrow functions don’t have the local variable &lt;code&gt;arguments&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const arrowFunction = () =&amp;gt; { return [...arguments]; }

arrowFunction(1, 2, 3) =&amp;gt; ReferenceError: arguments is not defined
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Normal functions have the local variable &lt;code&gt;arguments&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const normalFunction = function () { return [...arguments]; }

normalFunction(1, 2, 3) =&amp;gt; Array(3) [ 1, 2, 3 ]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;You can still, however, get arguments in Arrow functions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const arrowFunction = (...args) =&amp;gt; { return args; }

arrowFunction(1, 2, 3) =&amp;gt; Array(3) [ 1, 2, 3 ]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



</description>
      <category>javascript</category>
      <category>arguments</category>
      <category>arrowfunctions</category>
    </item>
    <item>
      <title>At what point do you know you have a bad application architecture?</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Wed, 26 Jun 2019 15:15:50 +0000</pubDate>
      <link>https://dev.to/mckabue/at-what-point-do-you-know-you-have-a-bad-application-architecture-3f8p</link>
      <guid>https://dev.to/mckabue/at-what-point-do-you-know-you-have-a-bad-application-architecture-3f8p</guid>
      <description>&lt;p&gt;From my personal experience, the moment you find yourself writing scrips to clean up data; like cleaning the database every so often, scripts to clean up images, et cetra, you have an architecture that is not scalable.&lt;/p&gt;

&lt;p&gt;The second observable sign is when you find yourself adding database columns to hold computed values that are easy to evaluate at application runtime or boolean fields whose states/values depend on other values database values, or when you start accumulating database enums to handle state change.&lt;/p&gt;

</description>
      <category>database</category>
      <category>scalability</category>
    </item>
    <item>
      <title>An ASP.NET CORE Request - Response Logger Middleware</title>
      <dc:creator>Kabue Charles</dc:creator>
      <pubDate>Fri, 16 Nov 2018 17:02:03 +0000</pubDate>
      <link>https://dev.to/mckabue/an-aspnet-core-request---response-logger-middleware-clb</link>
      <guid>https://dev.to/mckabue/an-aspnet-core-request---response-logger-middleware-clb</guid>
      <description>&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


</description>
      <category>aspnet</category>
      <category>middleware</category>
      <category>logger</category>
    </item>
  </channel>
</rss>
