<?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: Oussama Gattaoui</title>
    <description>The latest articles on DEV Community by Oussama Gattaoui (@pitcha2121).</description>
    <link>https://dev.to/pitcha2121</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%2F3766653%2F0307a0d3-dd88-405d-8be5-7f602b670684.png</url>
      <title>DEV Community: Oussama Gattaoui</title>
      <link>https://dev.to/pitcha2121</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pitcha2121"/>
    <language>en</language>
    <item>
      <title>I Built a Desktop App That Makes Data Analysis Actually Enjoyable — Free to Download</title>
      <dc:creator>Oussama Gattaoui</dc:creator>
      <pubDate>Thu, 19 Mar 2026 23:19:36 +0000</pubDate>
      <link>https://dev.to/pitcha2121/i-built-a-desktop-app-that-makes-data-analysis-actually-enjoyable-free-to-download-13me</link>
      <guid>https://dev.to/pitcha2121/i-built-a-desktop-app-that-makes-data-analysis-actually-enjoyable-free-to-download-13me</guid>
      <description>&lt;p&gt;I'm a solo developer from Morocco, and I just shipped something I've been building for months.&lt;/p&gt;

&lt;p&gt;It's called &lt;strong&gt;Pichalyze&lt;/strong&gt; — a Windows desktop app that lets you clean, analyze, and visualize your data files without writing a single line of code.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem I Was Trying to Solve
&lt;/h2&gt;

&lt;p&gt;You have a CSV file. Maybe it's messy. Maybe it's 50,000 rows. Maybe you just want to filter by date, remove duplicates, and make a quick chart.&lt;/p&gt;

&lt;p&gt;Your usual options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Excel&lt;/strong&gt; — fine for tiny files, painful for anything real&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python + Pandas&lt;/strong&gt; — powerful, but you have to write code every single time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud tools&lt;/strong&gt; — you're uploading your sensitive data to someone else's server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted something in the middle. A proper desktop app — fast, offline, no browser, no coding — that could still handle serious data work.&lt;/p&gt;

&lt;p&gt;So I built it.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Pichalyze Does
&lt;/h2&gt;

&lt;p&gt;Drop in a file (CSV, Excel, JSON, or Parquet) and you get:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart Filtering&lt;/strong&gt; — filter any column with conditions like &lt;code&gt;contains&lt;/code&gt;, &lt;code&gt;greater than&lt;/code&gt;, date ranges, regex, and more. Negate any filter in one click.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intelligent Sorting&lt;/strong&gt; — sort by value, date, duration, or alphabetically. Handles nulls exactly how you'd expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;30+ Data Cleaning Operations&lt;/strong&gt; — fill missing values, trim whitespace, fix casing, deduplicate rows, cast types, normalize text, encode labels, regex replace, derive columns, and much more. Every action is undoable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Charts &amp;amp; Visualisation&lt;/strong&gt; — bar, line, scatter, histogram — generated from your actual data in seconds. &lt;em&gt;(Pro)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advanced Analytics&lt;/strong&gt; — deeper statistical profiling, correlation matrices, outlier detection. &lt;em&gt;(Pro)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Dataset&lt;/strong&gt; — open multiple files at once, switch between them, merge or compare side by side. &lt;em&gt;(Pro)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Export&lt;/strong&gt; — save back to CSV, JSON, Excel, or Parquet. &lt;em&gt;(Parquet &amp;amp; Excel → Pro)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And it runs &lt;strong&gt;100% offline&lt;/strong&gt;. Your data never leaves your machine.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://pichalyze-landing-now.gattaouioussama.workers.dev/" rel="noopener noreferrer"&gt;https://pichalyze-landing-now.gattaouioussama.workers.dev/&lt;/a&gt;&lt;/strong&gt; — landing page with full feature breakdown&lt;/p&gt;




&lt;h2&gt;
  
  
  A Word From Me
&lt;/h2&gt;

&lt;p&gt;This is my first shipped product. I built everything solo — the app, the auth system, the payment integration, the landing page, the packaging. It's been a real journey.&lt;/p&gt;

&lt;p&gt;If you work with data files at any point — even just occasionally — give it a try and let me know in the comments what you think. Every piece of feedback goes straight into the next update.&lt;/p&gt;

&lt;p&gt;Thanks for reading &lt;/p&gt;




</description>
      <category>showdev</category>
      <category>python</category>
      <category>productivity</category>
      <category>datascience</category>
    </item>
    <item>
      <title>From Bug Hell to Security Excellence: How Google Gemini Transformed My IDS/IPS Journey</title>
      <dc:creator>Oussama Gattaoui</dc:creator>
      <pubDate>Tue, 03 Mar 2026 13:59:02 +0000</pubDate>
      <link>https://dev.to/pitcha2121/from-bug-hell-to-security-excellence-how-google-gemini-transformed-my-idsips-journey-41g6</link>
      <guid>https://dev.to/pitcha2121/from-bug-hell-to-security-excellence-how-google-gemini-transformed-my-idsips-journey-41g6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/mlh-built-with-google-gemini-02-25-26"&gt;Built with Google Gemini: Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built with Google Gemini
&lt;/h2&gt;

&lt;p&gt;Two months ago, I set out to build something ambitious: a host-based Intrusion Detection and Prevention System (IDS/IPS) that could detect and block network threats in real-time on a Linux host. The problem I was solving was clear—most security students (myself included) learn about IDS/IPS theory in classrooms, but never actually build one. I wanted to change that.&lt;br&gt;
The system I built combines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-vector detection&lt;/strong&gt;: Port scan detection, SYN flood detection, and filesystem monitoring
-** Intelligent response*&lt;em&gt;: Configurable rules that can log, alert, or block suspicious activity
-&lt;/em&gt;* Firewall integration**: Direct integration with iptables and ipset for real-time blocking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alerting system&lt;/strong&gt;: Console logging, file logging, and webhook integrations (Discord support)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dashboard UI&lt;/strong&gt;: A lightweight visualization layer to monitor events in real-time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Where Google Gemini came in&lt;/strong&gt;: Gemini was my co-pilot through the entire development cycle. I used it to fix critical bugs, understand complex security vulnerabilities, optimize detection logic, and debug those frustrating log parsing errors that kept me stuck for hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/OUSSAMA-GATTAOUI/IDS-IPS-system" rel="noopener noreferrer"&gt;https://github.com/OUSSAMA-GATTAOUI/IDS-IPS-system&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;My Testing Setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Primary dev environment: VS Code on my local machine&lt;/li&gt;
&lt;li&gt;Testing infrastructure: Virtual Box with Kali Linux&lt;/li&gt;
&lt;li&gt;Attack vectors tested: nmap port scans, SYN floods, and other reconnaissance attacks
demo video : &lt;a href="https://youtu.be/S19lPUT6Y9o" rel="noopener noreferrer"&gt;https://youtu.be/S19lPUT6Y9o&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;The biggest technical lesson was how to use an AI assistant to debug systemically. Early on, I had a massive issue with log parsing. My detection engine was generating enormous log files with parsing errors that made the alerts useless. I spent two full days trying to fix it manually—checking regex patterns, buffer management, file I/O operations. Nothing worked.&lt;br&gt;
Then I used Gemini. I pasted my logging module, described the problem in detail, and asked it to walk me through the logic. Within minutes, Gemini identified that I wasn't properly handling concurrent writes to the log file while the parser was reading it. The fix was elegant: implementing a read-write lock mechanism. Once Gemini explained why this was happening, the optimization became obvious. I optimized my detection system's performance by 40% just by fixing that single bottleneck.&lt;br&gt;
I also learned that security development requires a different mindset than general software development. When you're building a firewall, the difference between allow and deny isn't a bug—it's a security incident. Gemini kept me honest on this. Whenever I'd ask "does this blocking logic look right?", it would catch edge cases I'd missed.&lt;br&gt;
What most suprised me is that Gemini was amazing at helping me understand why something was broken, but less reliable at generating security-critical code from scratch. When I asked it to generate SYN flood detection logic, the first pass had a subtle flaw—it would have created false positives that could block legitimate traffic. &lt;/p&gt;

&lt;h2&gt;
  
  
  Google Gemini Feedback
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Gemini's ability to trace through code logic was exceptional. I'd describe a symptom ("my detection engine misses certain port scans"), paste the relevant code, and Gemini would often pinpoint the root cause in seconds. This saved me days of manual debugging.&lt;/li&gt;
&lt;li&gt;The big log error I mentioned? Gemini didn't just fix the syntax—it helped me redesign the entire logging pipeline for better performance.&lt;/li&gt;
&lt;li&gt;Gemini was fantastic at explaining why certain security practices matter. This built my confidence in the code I was deploying.
&amp;lt;!-- Don't forget to add a cover image if you'd like! --&amp;gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  GoogleGemini #Security #IDS #Python #Cybersecurity
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>geminireflections</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Data Forge – Explore, Merge, and Analyze Multiple Datasets</title>
      <dc:creator>Oussama Gattaoui</dc:creator>
      <pubDate>Wed, 11 Feb 2026 15:46:29 +0000</pubDate>
      <link>https://dev.to/pitcha2121/data-forge-explore-merge-and-analyze-multiple-datasets-23e6</link>
      <guid>https://dev.to/pitcha2121/data-forge-explore-merge-and-analyze-multiple-datasets-23e6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;DataForge is a comprehensive data analysis and manipulation platform designed for data professionals, analysts, researchers, and business users. With an intuitive graphical interface built on PyQt5, DataForge abstracts away the complexity of data processing while maintaining professional-grade capabilities.&lt;br&gt;
Whether you're cleaning customer datasets, analyzing sales trends, comparing data versions, or creating professional visualizations, DataForge provides tools to accomplish your goals efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For me, this project is more than just a tool — it’s a way to practice and challenge myself with Python, PyQt5, and real-world data handling. I wanted to learn how to work with multiple datasets, merge them, and generate meaningful insights without getting lost in messy spreadsheets. &lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;link to my project:&lt;br&gt;
&lt;a href="https://github.com/OUSSAMA-GATTAOUI/DATA-FORGE" rel="noopener noreferrer"&gt;https://github.com/OUSSAMA-GATTAOUI/DATA-FORGE&lt;/a&gt;&lt;br&gt;
Demo video link : &lt;a href="https://www.youtube.com/watch?v=McdZUErdxsc" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=McdZUErdxsc&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;While building Data Forge, I used GitHub Copilot CLI a lot, and it honestly changed the way I worked.&lt;/p&gt;

&lt;p&gt;Copilot was especially helpful for the repetitive parts, like writing functions to load, merge, and filter multiple datasets. Instead of spending a lot of time typing boilerplate code, I could focus on making the tool actually useful.&lt;/p&gt;

&lt;p&gt;It also helped a ton with the PyQt5 interface. Designing the GUI can get tricky, but Copilot suggested layouts, widgets, and event-handling code that I could adapt quickly. That saved me hours and made the interface feel smoother.&lt;/p&gt;

&lt;p&gt;Even when I was learning new things — like using pandas for data analysis or matplotlib for visualizations — Copilot suggested functions and methods I didn’t know, which not only sped things up but helped me learn faster.&lt;/p&gt;

&lt;p&gt;Overall, using Copilot felt like having a coding partner who gives ideas and points out better ways to do things. It let me spend more time on the parts that mattered, like features, usability, and making Data Forge actually work for real datasets, instead of getting stuck on repetitive code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F907061zmsno5y9cd2ex9.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%2F907061zmsno5y9cd2ex9.png" alt=" " width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>Data Forge: A Python Tool to Explore, Merge, and Analyze Multiple Datasets</title>
      <dc:creator>Oussama Gattaoui</dc:creator>
      <pubDate>Wed, 11 Feb 2026 15:18:41 +0000</pubDate>
      <link>https://dev.to/pitcha2121/data-forge-a-python-tool-to-explore-merge-and-analyze-multiple-datasets-5d54</link>
      <guid>https://dev.to/pitcha2121/data-forge-a-python-tool-to-explore-merge-and-analyze-multiple-datasets-5d54</guid>
      <description>&lt;p&gt;Hi DEV Community! 👋&lt;/p&gt;

&lt;p&gt;I’ve been learning Python and PyQt5, and I recently built a project called Data Forge — a tool designed to make working with datasets easier, especially when handling multiple sources.&lt;/p&gt;

&lt;p&gt;Key Features:&lt;/p&gt;

&lt;p&gt;Load multiple datasets at once&lt;/p&gt;

&lt;p&gt;Merge and compare data from different files&lt;/p&gt;

&lt;p&gt;Explore and filter datasets interactively&lt;/p&gt;

&lt;p&gt;Generate basic statistics&lt;/p&gt;

&lt;p&gt;Visualize data with charts for quick insights&lt;/p&gt;

&lt;p&gt;The goal was to create a tool that helps learners, students, and small projects handle real-world datasets more efficiently without writing everything from scratch.&lt;/p&gt;

&lt;p&gt;I’d love to get feedback from the community:&lt;/p&gt;

&lt;p&gt;Do you think a tool like this is useful for learning or small projects?&lt;/p&gt;

&lt;p&gt;Are there features you would add to improve it?&lt;/p&gt;

&lt;p&gt;If you’re curious, the project is open-source on GitHub:&lt;br&gt;
&lt;a href="https://github.com/OUSSAMA-GATTAOUI/DATA-FORGE" rel="noopener noreferrer"&gt;https://github.com/OUSSAMA-GATTAOUI/DATA-FORGE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for checking it out! Any ideas or suggestions are welcome.&lt;/p&gt;

</description>
      <category>data</category>
      <category>datascience</category>
      <category>python</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
