<?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: TaqsBlaze</title>
    <description>The latest articles on DEV Community by TaqsBlaze (@taqsblaze).</description>
    <link>https://dev.to/taqsblaze</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%2F394115%2Fdab70310-7281-4f43-a1e4-ea40987dc9cc.png</url>
      <title>DEV Community: TaqsBlaze</title>
      <link>https://dev.to/taqsblaze</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/taqsblaze"/>
    <language>en</language>
    <item>
      <title>Help with Electron ICP and Vue3</title>
      <dc:creator>TaqsBlaze</dc:creator>
      <pubDate>Fri, 11 Jul 2025 09:28:25 +0000</pubDate>
      <link>https://dev.to/taqsblaze/help-with-electron-icp-and-vue3-21jg</link>
      <guid>https://dev.to/taqsblaze/help-with-electron-icp-and-vue3-21jg</guid>
      <description>&lt;p&gt;Hi everyone&lt;br&gt;
I'm working on a electron application and I'm implementing software update check which is making use of ICP now this worked perfect before and all of a sudden stopped working, no error, no exception no thing just silently failing&lt;/p&gt;

&lt;p&gt;here are snippets of the code&lt;/p&gt;

&lt;p&gt;&lt;code&gt;preload.js&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;checkForUpdates: () =&amp;gt; ipcRenderer.invoke('check-for-updates'),
  onUpdateStatus: (callback) =&amp;gt; ipcRenderer.on('update-status:available', callback),
  onNoUpdate: (callback) =&amp;gt; ipcRenderer.on('update-status:no-update', callback),
  onUpdateError: (callback) =&amp;gt; ipcRenderer.on('update-status:error', callback),
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;main.js&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ipcMain.handle('check-for-updates', async (event) =&amp;gt; {
  try {

    const updateInfoUrl = 'url to update info';


    const updateInfoResponse = await fetch(updateInfoUrl);
    if (!updateInfoResponse.ok) {

      throw new Error(`Failed to fetch update info: ${updateInfoResponse.statusText}`);
    }
    const updateInfo = await updateInfoResponse.json();


    const currentAppVersion = app.getVersion();
    const latestVersion = updateInfo.version;
    const appName = `AppName${latestVersion}.exe`;
    const downloadUrl = `${updateInfo.downloadUrl}${appName}`;


    if (latestVersion &amp;gt; currentAppVersion) {
      try {
        let data = { version: latestVersion, downloadUrl: downloadUrl };
        console.log('Main Process: Sending update-status:available with data:', data);
        if (event.sender &amp;amp;&amp;amp; !event.sender.isDestroyed()) { // Check if sender is still valid
          event.sender.send('update-status:available', data);
          console.log(`Main Process: Message 'update-status:available' sent successfully to sender ID ${event.sender.id}.`);
        } else {
          console.warn('Main Process: Could not send message. Renderer sender is destroyed or invalid.');
        }
        console.log(`Update version ${latestVersion} available. User will be prompted for manual download.`);
      } catch (error) {
        console.log(`Error sending update-status:available:: ${error.message}`);
      }
    } else {
      event.sender.send('update-status:no-update');
      console.log('No update available.');
    }
    return { success: true };
  } catch (error) {

    event.sender.send('update-status:error', error.message);
    return { success: false, error: error.message };
  }
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;app.js&lt;/code&gt;: (in mountent)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;window.electronAPI.onUpdateStatus((data) =&amp;gt; {
                    console.log('Update available:', data);
                    this.updateAvailableVersion = data.version;
                    this.updateDownloadLink = data.downloadUrl;
                    this.showUpdateModal = true; // Show the new update notification modal
                    this.updateStatusMessage = `New version ${data.version} is available!`;
                    this.updateErrorMessage = ''; // Clear any previous error messages
                });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(method triggering checking update)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;async checkForSoftwareUpdates() {
            console.log('checking for updates....')
            this.updateStatusMessage = 'Checking for updates...';
            this.updateErrorMessage = '';
            this.showUpdateModal = false;
            this.updateAvailableVersion = null;
            this.updateDownloadLink = null;
            this.lastUpdateCheck = new Date().toLocaleString();

            if (window.electronAPI &amp;amp;&amp;amp; window.electronAPI.checkForUpdates) {
                console.log("Cheking now...")
                await window.electronAPI.checkForUpdates();

            } else {
                console.warn('Electron API or checkForUpdates method not available. Cannot check for updates.');
                this.updateErrorMessage = 'Update check not available in this environment.';
            }
        },
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If anyone can assist/point out what I'm doing wrong please&lt;br&gt;
if the listener in mounted is triggered I should see a modal with new software update details and a download button which I currently do get but this was working fine previously &lt;/p&gt;

</description>
      <category>programming</category>
      <category>vue3</category>
      <category>electron</category>
      <category>icp</category>
    </item>
    <item>
      <title>My 2024 Review: A Year of Growth and Innovation</title>
      <dc:creator>TaqsBlaze</dc:creator>
      <pubDate>Sat, 28 Dec 2024 13:31:00 +0000</pubDate>
      <link>https://dev.to/taqsblaze/my-2024-review-a-year-of-growth-and-innovation-lae</link>
      <guid>https://dev.to/taqsblaze/my-2024-review-a-year-of-growth-and-innovation-lae</guid>
      <description>&lt;p&gt;As the year draws to a close, I find myself reflecting on the milestones, challenges, and lessons that have defined 2024. It has been a year of relentless curiosity, technical exploration, and significant growth both personally and professionally. From diving deeper into cybersecurity to leading exciting development projects, here’s a look back at the journey.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Cybersecurity Adventures&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Cybersecurity remained a cornerstone of my work in 2024. Whether it was through research, tool development, or contributing to discussions in the field, I continuously sought ways to make systems safer.  &lt;/p&gt;

&lt;p&gt;One of my proudest moments was conceptualizing and developing &lt;strong&gt;ReqWeb&lt;/strong&gt;, my Web Application Firewall (WAF) project. This tool is designed to make web applications more secure by focusing on IP filtering, rate limiting, and intelligent request blocking. Seeing it evolve to the point where version 2.0 is almost ready has been incredibly rewarding.  &lt;/p&gt;

&lt;p&gt;Beyond ReqWeb, I deepened my understanding of penetration testing and network security, further solidifying my commitment to building a safer internet.  &lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Building Cool Projects&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This year also gave me opportunities to bring ambitious ideas to life. Some of the highlights include:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flight Simulation System&lt;/strong&gt;: I combined Python, Blender, and the Godot Engine to create a system that mimics basic flight physics with stunning weather effects and day-night cycles. This project not only challenged my technical skills but also reignited my passion for merging creativity with code.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Electricity Load Shedding Tracker&lt;/strong&gt;: Living in a region where load shedding is common, I wanted to help people stay informed. This project combines Vue.js, Leaflet.js, and MongoDB to track and update load-shedding schedules, making it easier for users to plan their lives.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cybersecurity Multiplayer Game&lt;/strong&gt;: I started working on a web-based multiplayer game where players protect and upgrade their digital networks while competing to outsmart others. It’s an educational and fun way to engage with cybersecurity concepts.  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Pushing Boundaries in Development&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;As a self-taught developer, every year is an opportunity to learn something new, and 2024 was no different. I honed my skills in Python, JavaScript, and Vue.js, while also exploring new frameworks and tools like Flask, TailwindCSS, and Express.js.  &lt;/p&gt;

&lt;p&gt;Notable achievements included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Successfully transitioning &lt;strong&gt;ReqWeb&lt;/strong&gt; to use Vue.js for its web interface.
&lt;/li&gt;
&lt;li&gt;Building the backend for a trucking marketplace, combining Python and Flask with Vue.js to create a seamless user experience.
&lt;/li&gt;
&lt;li&gt;Developing a session utility and refining ORM integrations for better database efficiency.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Looking Ahead to 2025&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;As exciting as 2024 has been, the journey is far from over. For 2025, I’m looking forward to:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scaling ReqWeb to support distributed systems and deploying its version 2.0.
&lt;/li&gt;
&lt;li&gt;Expanding my work on the flight simulation system, incorporating more realistic physics and AI for pilot training.
&lt;/li&gt;
&lt;li&gt;Continuing to write and share my journey on LinkedIn, inspiring others to explore the world of technology and cybersecurity.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;2024 was a year of resilience, learning, and creativity. It reminded me that progress often comes from stepping out of your comfort zone and embracing challenges. As I move into the new year, I’m grateful for the opportunities I’ve had and excited for what’s to come.  &lt;/p&gt;

&lt;p&gt;Thank you to everyone who’s been part of this journey—whether through collaboration, feedback, or simply following my updates. Here’s to an even more impactful 2025!  &lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Journey of ReqWeb: What’s Coming in Version 2.0</title>
      <dc:creator>TaqsBlaze</dc:creator>
      <pubDate>Sat, 28 Dec 2024 13:07:16 +0000</pubDate>
      <link>https://dev.to/taqsblaze/the-journey-of-reqweb-whats-coming-in-version-20-32d3</link>
      <guid>https://dev.to/taqsblaze/the-journey-of-reqweb-whats-coming-in-version-20-32d3</guid>
      <description>&lt;p&gt;When I started developing ReqWeb, my goal was simple: create a robust, lightweight Web Application Firewall (WAF) that anyone could use to protect their web applications. Over time, it has grown into a reliable solution, tackling challenges like IP filtering, rate limiting, rule based blocking, and logging with real time alerting. Now, the next big leap is here ReqWeb 2.0 is on the horizon, and it’s packed with exciting features to take security to the next level and w whole new dashboard and visuals enabling developers to visualize their applicans security and performance.&lt;/p&gt;

&lt;p&gt;Reflecting on the Journey So Far&lt;br&gt;
ReqWeb’s foundation was built on Express.js, chosen for its simplicity and scalability. Early on, the focus was on modularity, ensuring each component could function independently while still playing a role in the bigger picture. Features like seamless integration with external blackhole lists and real time alerting for suspicious activity have made ReqWeb a versatile tool for developers.&lt;/p&gt;

&lt;p&gt;But the journey doesn’t stop there. The feedback, challenges, and lessons learned from the current version have inspired a new wave of innovation.&lt;/p&gt;

&lt;p&gt;What’s Coming in ReqWeb 2.0?&lt;br&gt;
Version 2.0 is not just an update it’s a transformation. Here’s a sneak peek at what’s in store:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Advanced Anomaly Detection&lt;br&gt;
ReqWeb 2.0 will leverage machine learning to identify unusual patterns in incoming requests. This means smarter detection of zero day threats and evolving attack vectors, offering a proactive layer of security.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced Logging and Analytics&lt;br&gt;
The new version will introduce a centralized logging system with detailed analytics. Users will gain insights into traffic patterns, blocked requests, and potential vulnerabilities through a clean, interactive dashboard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Distributed Deployment Support&lt;br&gt;
For businesses running multiple servers or microservices, ReqWeb 2.0 will support distributed deployments. This ensures consistent security policies across all instances while maintaining high performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customizable Rules Engine&lt;br&gt;
Version 2.0 will feature a revamped rules engine, allowing users to create highly specific rules for blocking or allowing traffic. Whether it’s based on geolocation, request headers, or custom parameters, you’ll have complete control.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developer Friendly API&lt;br&gt;
A new API will make it easier for developers to integrate ReqWeb into their workflows. Automate updates, retrieve logs, or manage configurations programmatically perfect for CI/CD pipelines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Improved IP Reputation Management&lt;br&gt;
Building on the external blackhole list integration, ReqWeb 2.0 will introduce dynamic IP reputation scoring. Threat levels will adjust in real-time based on behavior, reducing false positives while staying vigilant.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Vision Moving Forward&lt;br&gt;
ReqWeb 2.0 isn’t just about adding features it’s about creating a more intelligent, adaptive, and user friendly WAF. My vision is to empower developers and businesses with tools that make securing their applications intuitive and effective, regardless of their scale.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
ReqWeb has come a long way, and version 2.0 is set to be the most significant milestone yet. By combining cutting edge technology with user feedback, I’m confident it will redefine what a modern WAF can do.&lt;/p&gt;

&lt;p&gt;Stay tuned for the release of ReqWeb 2.0, and as always, your ideas and suggestions are welcome. Together, let’s build a safer web!&lt;/p&gt;

&lt;p&gt;you can find the project on github here you can also install version 1.2.1 via npm/bun:&lt;/p&gt;

&lt;p&gt;npm install reqweb@latest&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>security</category>
      <category>waf</category>
    </item>
    <item>
      <title>My Dev Experience Season 1 Ep 2</title>
      <dc:creator>TaqsBlaze</dc:creator>
      <pubDate>Mon, 25 Jul 2022 06:28:47 +0000</pubDate>
      <link>https://dev.to/taqsblaze/my-dev-experience-season-1-ep-2-5jm</link>
      <guid>https://dev.to/taqsblaze/my-dev-experience-season-1-ep-2-5jm</guid>
      <description>&lt;p&gt;Continuing with my series....&lt;/p&gt;

&lt;p&gt;2015 some guy reached out, he needed a website for some construction company&lt;br&gt;
We agreed on the terms and I started working on the website &lt;br&gt;
took me 3 days to build a demo as he had requested a demo site &lt;br&gt;
and after that he requested me to work on the main website &lt;br&gt;
gave me access to their hosting and cpanel then I started building the site, it took me 1 week to build the whole site &lt;/p&gt;

&lt;p&gt;After the site was done.... It was time for the guy to pay up and it took almost 1 year for the guy to pay...in of which the payment never came through from the guy&lt;/p&gt;

&lt;p&gt;Out of rage I logged in to the cpanel and deleted the whole project &lt;/p&gt;

&lt;p&gt;This was my first experience with a client &lt;/p&gt;

</description>
      <category>developer</category>
      <category>software</category>
      <category>python</category>
    </item>
    <item>
      <title>My Dev Experience Season 1 Ep 1</title>
      <dc:creator>TaqsBlaze</dc:creator>
      <pubDate>Thu, 21 Jul 2022 14:28:46 +0000</pubDate>
      <link>https://dev.to/taqsblaze/my-dev-experience-season-1-ep-1-124e</link>
      <guid>https://dev.to/taqsblaze/my-dev-experience-season-1-ep-1-124e</guid>
      <description>&lt;p&gt;Hello World&lt;br&gt;
I'm a 25 year old developer in a developing country &lt;strong&gt;Zimbabwe&lt;/strong&gt; &lt;br&gt;
I've always been a fan of technology being inspired by movies the likes of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Iron Man&lt;/li&gt;
&lt;li&gt;I-robot&lt;/li&gt;
&lt;li&gt;Transformers&lt;/li&gt;
&lt;li&gt;Matrix&lt;/li&gt;
&lt;li&gt;Terminator
and many more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I started learning coding when I was 18 years old that was back in 2015 my first actual OOP language I did was java after doing some basic HTML, CSS and a bit of JavaScript.&lt;/p&gt;

&lt;p&gt;I wasn't really a Js fan and thought I would do away with without Js... as I did more and more of web dev I realized that I there was no escape from Js.&lt;br&gt;
This then prompted me to switch to developing PC applications&lt;br&gt;
Just as I was about to totally fall in love with java my laptop got stolen and went for a year without a laptop and then when I git another laptop... I had discovered python programming language &lt;br&gt;
and fell in love with it that was in 2017&lt;br&gt;
I've been a python developer ever since with a mix of C# and a little bit of Java &lt;/p&gt;

&lt;p&gt;So basically I would say I'm a python developer at heart and also able to learn other languages as well. and I guess I find it very easy to learn new languages because before becoming a python developer I did a whole bunch of programming and scripting languages, trying to find the one I felt a connection with a list of languages I looked into where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Php&lt;/li&gt;
&lt;li&gt;c/c++&lt;/li&gt;
&lt;li&gt;Ruby&lt;/li&gt;
&lt;li&gt;Perl&lt;/li&gt;
&lt;li&gt;shell&lt;/li&gt;
&lt;li&gt;batch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will be share my story to becoming a developer from being a total noob to being employed as a developer  &lt;/p&gt;

</description>
      <category>coding</category>
      <category>software</category>
      <category>python</category>
    </item>
    <item>
      <title>Using network printer with python</title>
      <dc:creator>TaqsBlaze</dc:creator>
      <pubDate>Wed, 24 Mar 2021 07:53:38 +0000</pubDate>
      <link>https://dev.to/taqsblaze/using-network-printer-with-python-578b</link>
      <guid>https://dev.to/taqsblaze/using-network-printer-with-python-578b</guid>
      <description>&lt;p&gt;Hi guys so today I've decided to share my experience as I'm currently working on system&lt;/p&gt;

&lt;p&gt;so I'm working on a system for centralizing data for an organization&lt;br&gt;
so I got in and these guys didn't have any system or IT systems and I was tasked to build a system from the ground up&lt;/p&gt;

&lt;p&gt;So I had to rename their machines for easy access across the network as default windows machine names are random something like &lt;em&gt;DESKTOP-092N4&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So after renaming this doesn't register across the network specially when printer drivers where installed before... so my program had to print using this network printer and it took me almost a week to get this working&lt;/p&gt;

&lt;p&gt;Not that my code was wrong maybe that's why it took me so long to fix it... I thought the problem was code so my research was centered on code and everything was ok&lt;/p&gt;

&lt;p&gt;So I then came across a snippet on the internet thankfully this was a bit detailed with comments as to what's going on&lt;br&gt;
then something got my attention in this code a comment which described a step which wasn't in most examples and something that didn't cross my mind&lt;/p&gt;

&lt;p&gt;in this particular snippet it explained setting a default printer &lt;em&gt;win32print.SetDefaultPrinter("printer")&lt;/em&gt; so I then implemented this line in my code and finally I was able to use the printer on a network&lt;br&gt;
Originally I was just setting a printer &lt;em&gt;win32print.SetPrinter()&lt;/em&gt;&lt;br&gt;
but this caused RPC error whenever I tried printing&lt;/p&gt;

&lt;h2&gt;
  
  
  Here is why I think it wasn't working:
&lt;/h2&gt;

&lt;p&gt;Though I set the printer using new network path to the printer&lt;br&gt;
&lt;em&gt;\\server\printer&lt;/em&gt; this wasn't being used when initiating a print job... it would then use the old network path which is invalid now since I renamed the main PC connected to the printer&lt;br&gt;
so the solution was to just set the default printer using new network path&lt;/p&gt;

</description>
      <category>python</category>
      <category>win32</category>
      <category>pyqt5</category>
    </item>
    <item>
      <title>DB Option</title>
      <dc:creator>TaqsBlaze</dc:creator>
      <pubDate>Thu, 19 Nov 2020 07:40:22 +0000</pubDate>
      <link>https://dev.to/taqsblaze/db-option-1n4p</link>
      <guid>https://dev.to/taqsblaze/db-option-1n4p</guid>
      <description>&lt;p&gt;Would like to know which is the best and easy to use database for nodejs + electron applications??&lt;/p&gt;

</description>
    </item>
    <item>
      <title>.NetX</title>
      <dc:creator>TaqsBlaze</dc:creator>
      <pubDate>Sun, 24 May 2020 10:14:46 +0000</pubDate>
      <link>https://dev.to/taqsblaze/netx-1043</link>
      <guid>https://dev.to/taqsblaze/netx-1043</guid>
      <description>&lt;p&gt;developing my own CLI tool for c# developing for running 1 liners and a module for shortening some system functions ( &lt;em&gt;cut&lt;/em&gt; )&lt;/p&gt;

</description>
      <category>python</category>
      <category>csharp</category>
    </item>
  </channel>
</rss>
