<?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: Adeyeye George</title>
    <description>The latest articles on DEV Community by Adeyeye George (@manomite).</description>
    <link>https://dev.to/manomite</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F351476%2F7f4c994b-1325-436c-8115-1777bee822b1.jpg</url>
      <title>DEV Community: Adeyeye George</title>
      <link>https://dev.to/manomite</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/manomite"/>
    <language>en</language>
    <item>
      <title>Zion Runtime: Why I'm Building an AI Operating System</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Sat, 25 Jul 2026 14:57:39 +0000</pubDate>
      <link>https://dev.to/manomite/zion-runtime-why-im-building-an-ai-operating-system-53ib</link>
      <guid>https://dev.to/manomite/zion-runtime-why-im-building-an-ai-operating-system-53ib</guid>
      <description>&lt;p&gt;I want to tell you something before I show you any code.&lt;/p&gt;

&lt;p&gt;Right now, if you want to run a serious AI model on your own machine — not through an API, not paying per token, just your own hardware doing the thinking - you almost need a powerful laptop or a GPU most people in Africa will can't afford. A student in Nigeria with a 4GB RAM laptop. A small business owner running an old desktop. A developer who wants to build something intelligent but can't afford cloud credits every month. AI, as it stands today, was not built with them in mind.&lt;/p&gt;

&lt;p&gt;I kept asking myself: why should intelligence require expensive hardware? A phone can play a video. A phone can run a game. Why can't it run a model that actually thinks, and think well, without freezing, without draining the battery in twenty minutes, without needing 16GB of RAM it doesn't have?&lt;/p&gt;

&lt;p&gt;That question is the whole reason Zion Runtime exists.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I'm actually building
&lt;/h3&gt;

&lt;p&gt;Zion Runtime is not another wrapper around an existing model. It's a runtime - an operating layer - that looks at whatever machine it's running on, figures out exactly what that machine can handle, and then makes the smartest possible decision about what model to run, how much memory to give it, how many threads, whether to touch the GPU at all. Then it runs it efficiently, without choking the rest of your system.&lt;/p&gt;

&lt;p&gt;Plug in a tiny model, it runs fast and smart. Plug in a bigger one, it adapts. Different models can specialize in different domains and the runtime routes between them intelligently, so you're not stuck with one model trying to do everything badly - you get several doing their part well.&lt;/p&gt;

&lt;p&gt;The first working piece is alive already: a profiler that reads your actual hardware, a capability analyzer that turns those numbers into "here's what this machine can realistically do," and a planner that picks the model and settings to match. No guessing. No pretending your 4GB laptop is a server.&lt;/p&gt;

&lt;p&gt;That's stage one of many. Memory-mapped model loading so a 7B model doesn't try to swallow all your RAM. A downloader that fetches the right model for your hardware automatically, or lets you choose manually if you know what you want. A way to free up memory from idle background processes while inference runs, and hand it back the moment the work is done. A queue system that can hold up under real load - a thousand people hitting it at once - without falling over. All of it built small, in the open, one piece at a time.&lt;/p&gt;

&lt;p&gt;There's one more piece I already have working, and it matters more than it sounds: the domain models talk to each other. If you ask something that touches money and then shipping, one small model can specialize in the finance side and another in logistics - but neither should ask you to repeat yourself. The moment the finance model learns the amount and the destination, that understanding sits in a shared memory both models can read. Hand-off happens without you noticing it happened. Nothing gets missed because "that wasn't my domain." This is the difference between a pile of separate small models and one system that actually understands the whole conversation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who this is for
&lt;/h3&gt;

&lt;p&gt;This is for the open-source community. Every part of the design will be documented. Once the core is stable, I'm releasing the full specification publicly - not just the code, but the reasoning behind every decision - so anyone, anywhere, can build on it, fork it, improve it, or run their own version without asking anyone's permission.&lt;/p&gt;

&lt;p&gt;I believe AI that only works well on expensive machines isn't really solving the problem. The people who need efficient, offline-capable, low-cost intelligence the most are usually the people with the least powerful hardware. That gap is what I'm trying to close.&lt;/p&gt;

&lt;h3&gt;
  
  
  The part I don't usually say out loud
&lt;/h3&gt;

&lt;p&gt;I'm building this alone, at night, between everything else life demands of me. I'm a father of three, and I carry my family's needs the same way I carry this project - mostly on my own, without a team behind me, without outside funding, without a safety net if a month gets hard. Some weeks, choosing to keep building this instead of only chasing paid work is a real sacrifice, not a figure of speech.&lt;/p&gt;

&lt;p&gt;I'm saying this not for sympathy, but because I think it's fair for you to know exactly who is behind this before I ask you for anything.&lt;/p&gt;

&lt;h3&gt;
  
  
  The ask
&lt;/h3&gt;

&lt;p&gt;I'm trying to raise $5,000 to keep building Zion Runtime properly - research, time, the basics that let me keep my head down and finish this instead of stopping halfway. That number isn't the goal, it's just what would let me breathe while I build.&lt;/p&gt;

&lt;p&gt;If this project means something to you - if you believe AI should run on the machine you already have, not just the one you wish you had - you can support it with any amount. One dollar counts. It genuinely does. This isn't about the size of the contribution, it's about enough people deciding this is worth existing.&lt;/p&gt;

&lt;p&gt;Every supporter, whatever the amount, gets a permanent place on the project repository as a sponsor, with my full public thanks and respect - this project remembers the people who believed in it before there was much to see.&lt;/p&gt;

&lt;p&gt;Please donate here &lt;a href="https://paystack.shop/pay/zionruntime" rel="noopener noreferrer"&gt;@Support link&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens next
&lt;/h3&gt;

&lt;p&gt;This is a build-in-public series. Every real piece of progress - every module, every hard bug, every design decision - gets a post here, in plain language, so you can follow the whole journey from an empty folder to something the community can actually run. &lt;/p&gt;

&lt;p&gt;Next up: memory-mapped model loading, so a model bigger than your RAM doesn't take your whole computer down with it.&lt;/p&gt;

&lt;p&gt;Thank you for reading this far. If you're still here, you're already part of this.&lt;/p&gt;

&lt;p&gt;To contribute on code check &lt;a href="https://github.com/mitmelon/zion-runtime" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>model</category>
    </item>
    <item>
      <title>How I Built MailOS: My Journey With Qwen Cloud</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Mon, 20 Jul 2026 09:06:17 +0000</pubDate>
      <link>https://dev.to/manomite/how-i-built-mailos-my-journey-with-qwen-cloud-18j4</link>
      <guid>https://dev.to/manomite/how-i-built-mailos-my-journey-with-qwen-cloud-18j4</guid>
      <description>&lt;p&gt;I want to tell you a story. Not the polished kind you see on a pitch deck, but the real one — the late nights, the small wins, the moments I almost gave up, and how Qwen Cloud carried this whole thing on its back.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem that wouldn't leave me alone
&lt;/h2&gt;

&lt;p&gt;If you have ever run a small business, or even just managed a busy inbox, you know the pain. Email doesn't stop. Customers dey ask questions. Suppliers dey negotiate price. Newsletters dey pile up unread. And somewhere in that pile is the one email that actually matters — the one you missed because you were tired and scrolling too fast.&lt;/p&gt;

&lt;p&gt;I kept asking myself: why is email still this dumb? We have AI that can write essays, generate images, even hold a conversation better than some humans. But my inbox? Still sitting there, doing nothing, waiting for me to read every single message myself.&lt;/p&gt;

&lt;p&gt;That question refused to leave me. So I decided to build something.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I chose Qwen Cloud
&lt;/h2&gt;

&lt;p&gt;I tried a few things before I landed on Qwen. Some models were fast but shallow — they could classify an email as "spam" or "not spam" but couldn't hold a real negotiation across many back-and-forth messages. Some were smart but too expensive to run for every single email that touches an inbox, and email touches your inbox a lot.&lt;/p&gt;

&lt;p&gt;Qwen Cloud surprised me. It was strong enough to read a messy, badly-formatted business email and actually understand the intent behind it — is this person trying to sell me something, complain, or trick me? It was fast enough that I could run it on almost every message without my server crying for help. And honestly, setting it up wasn't stressful at all. I created an account on Alibaba Cloud's Model Studio, generated an API key in a few minutes, dropped it into my &lt;code&gt;.env&lt;/code&gt; file, and I was talking to Qwen from my code before my coffee got cold.&lt;/p&gt;

&lt;p&gt;That was the moment I knew: this is the engine my project needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building MailOS, one agent at a time
&lt;/h2&gt;

&lt;p&gt;I didn't want to build "just another AI email assistant" that summarizes your inbox and calls it a day. I wanted something that could actually &lt;em&gt;act&lt;/em&gt; — read mail, judge if it's dangerous, understand what it wants, and in some cases, respond and negotiate on its own, without me babysitting every message.&lt;/p&gt;

&lt;p&gt;So I broke the work into small, focused agents, each one doing one job well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Guardian&lt;/strong&gt; checks every incoming email for phishing and prompt injection before anything else touches it. I built this one first because trust is everything — if my system can be tricked by a bad email, nothing else matters.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Classification&lt;/strong&gt; figures out what kind of email it is — customer message, invoice, meeting request, newsletter, spam.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Memory&lt;/strong&gt; remembers what matters. Not everything, just the important stuff, the way a good assistant would.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Newsletter Intelligence&lt;/strong&gt; reads through newsletters, pulls out the ideas and trends worth knowing, so I don't have to read fifteen newsletters myself.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Decision&lt;/strong&gt; looks at everything and decides: archive this, notify the owner, draft a reply, ignore it, or hand it over to a human because it's too important to guess.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Negotiation&lt;/strong&gt; is the one I'm most proud of. This agent can actually go back and forth with another mailbox — asking for a better price, agreeing on payment terms — all inside a policy I set. It has a hard round limit and a confidence floor, so it never runs wild. If it's not sure, it stops and calls me.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every one of these agents leans on Qwen Cloud to think. Not blindly — I never let the AI make the final call on money or risk by itself. The AI proposes, my code decides. That balance took me a while to get right, but it's the part I trust the most now.&lt;/p&gt;

&lt;h2&gt;
  
  
  The moment it actually worked
&lt;/h2&gt;

&lt;p&gt;I remember the first time I watched MailOS negotiate a deal by itself. I sent an opening offer through the API, walked away to make food, and came back to find three full rounds of back-and-forth had happened — politely, professionally, in plain English, over normal email — and it landed inside the price range I had set. Nobody touched a keyboard except me at the very start.&lt;/p&gt;

&lt;p&gt;I just sat there staring at my screen. That's when this stopped feeling like a hackathon project and started feeling like something real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Taking it to Alibaba Cloud
&lt;/h2&gt;

&lt;p&gt;Building it on my laptop was one thing. Making it live for the world was another matter entirely. I moved MailOS to an Alibaba Cloud ECS instance — a simple Ubuntu server, nothing fancy, 2 vCPUs and 2GB of RAM was more than enough to start. I installed Node.js, cloned my repo, set my environment variables, and ran the whole thing under PM2 so it restarts itself if anything goes wrong. Then I put it behind Nginx with HTTPS so my login sessions stay safe.&lt;/p&gt;

&lt;p&gt;Watching MailOS run on a real server, connected to a real mailbox, reading real mail, all powered by Qwen Cloud sitting quietly in the background — that was a proud moment for me. No wahala, no drama. It just worked.&lt;/p&gt;

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

&lt;p&gt;Building MailOS taught me something I didn't expect: the hard part of AI agents isn't making them smart. It's making them &lt;em&gt;trustworthy&lt;/em&gt;. Anybody can wire an API call to a language model and call it "AI-powered." The real work is in the guardrails — the policy checks, the round caps, the moments where the system says "I'm not sure, let a human decide." Qwen Cloud gave me the intelligence. I had to build the discipline around it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this is going
&lt;/h2&gt;

&lt;p&gt;MailOS isn't stopping here. I'm working on a way to export an agent's whole memory so you can move it between servers without starting from zero. I'm also building something wild — a trust score that remembers how every contact behaved in past negotiations, so MailOS treats a trustworthy supplier differently from a stranger, automatically. And the one that still makes people's eyes widen when I explain it: teaching MailOS to pick up the phone and make an actual voice call when an email negotiation stalls, then write the outcome back into the thread like nothing happened.&lt;/p&gt;

&lt;p&gt;Email was never designed for this. But with Qwen Cloud doing the thinking underneath, I don't think that's a limitation anymore. It's just the starting point.&lt;/p&gt;

&lt;p&gt;If you want to see it, break it, or build on top of it, MailOS is open source. Come and look at &lt;a href="https://github.com/mitmelon/mailos" rel="noopener noreferrer"&gt;https://github.com/mitmelon/mailos&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Built with a lot of coffee, a lot of debugging, and Qwen Cloud carrying the intelligence the whole way.&lt;/p&gt;

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

</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How I Built CampChat: A PHP-Powered Chat Engine That’s Changing the Game</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Sun, 08 Jun 2025 16:22:21 +0000</pubDate>
      <link>https://dev.to/manomite/how-i-built-campchat-a-php-powered-chat-engine-thats-changing-the-game-l6j</link>
      <guid>https://dev.to/manomite/how-i-built-campchat-a-php-powered-chat-engine-thats-changing-the-game-l6j</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%2Fzoez05s6uobxh3aswqp0.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%2Fzoez05s6uobxh3aswqp0.png" alt=" " width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a developer, I’ve always been fascinated by the magic of real-time communication. There’s something thrilling about crafting a system where messages zip across the internet, connecting people instantly. But building a chat app from scratch? That’s a beast—encryption, scalability, bots, oh my! So, I rolled up my sleeves and created CampChat, an open-source, PHP-based chat engine that’s secure, scalable, and packed with features inspired by Telegram. It’s the kind of project that makes you lose sleep (in a good way). Let me take you through my journey of building it, why it’s a game-changer, and how you can start using it with a few lines of code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built CampChat
&lt;/h2&gt;

&lt;p&gt;It all started late one night, fueled by too much coffee and a frustration with existing chat solutions. I needed a backend that was lightweight, developer-friendly, and didn’t require a PhD in distributed systems to scale. Most frameworks were either too rigid or overly complex, and I wanted something that could power a community app, a support portal, or even a social platform without breaking a sweat. PHP, with its accessibility and vast ecosystem, felt like the perfect fit. So, I set out to build CampChat—a chat engine that combines modern tech like Slim Framework, MongoDB, Redis, and RabbitMQ with Telegram-style features like group chats, end-to-end encryption, and extensible bots.&lt;/p&gt;

&lt;p&gt;The goal? Make it easy for developers like me (and you!) to spin up a secure, real-time chat system without reinventing the wheel. After months of coding, debugging, and more coffee, CampChat was born. It’s not just a tool—it’s my love letter to the developer community, and I’m excited to share it with you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes CampChat Special?
&lt;/h2&gt;

&lt;p&gt;CampChat isn’t just another chat backend. It’s designed to be your Swiss Army knife for communication apps. Here’s what sets it apart:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy First:&lt;/strong&gt; End-to-end encryption for messages and media, because no one should snoop on your users’ chats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scales Like a Dream:&lt;/strong&gt; Redis for caching and RabbitMQ for async event handling mean it can handle thousands of users without hiccups.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bot Magic:&lt;/strong&gt; Create bots with webhook support to automate tasks, like welcoming new group members or moderating chats.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature-Packed:&lt;/strong&gt; Group permissions, message reactions, pinned messages, and media sharing make it feel like a modern social platform.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Source:&lt;/strong&gt; Under the MIT license, it’s free to hack, tweak, and build upon.&lt;/p&gt;

&lt;p&gt;Think of it as Telegram’s core, reimagined for developers who want control and flexibility. Whether you’re building a niche community or a customer support system, CampChat has your back.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Struggles and Triumphs
&lt;/h2&gt;

&lt;p&gt;Building CampChat wasn’t all smooth sailing. Early on, I wrestled with MongoDB’s schema design to balance performance and flexibility for storing users, groups, and messages. Getting RabbitMQ to handle bot events asynchronously was a headache—until I finally cracked the queue configuration. And don’t get me started on implementing end-to-end encryption without sacrificing speed! But every bug squashed and feature added felt like a small victory. When I sent my first encrypted group message and saw a bot respond via webhook, I did a little happy dance. This is the kind of project that reminds you why you love coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let’s Get You Started
&lt;/h2&gt;

&lt;p&gt;Enough about my journey—let’s get CampChat running on your machine. It’s surprisingly simple to set up, and I’ll walk you through the basics with some code examples to show off its power.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setting Up CampChat
&lt;/h3&gt;

&lt;p&gt;Clone the Repo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/mitmelon/campchat.git
cd campchat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Install Dependencies:
&lt;/h3&gt;



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

&lt;/div&gt;



&lt;p&gt;Configure the Environment: Copy .env.example to .env and fill in your MongoDB, Redis, and RabbitMQ details:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MONGODB_URI=mongodb://localhost:27017
REDIS_HOST=localhost
REDIS_PORT=6379
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
RABBITMQ_USER=campchat
RABBITMQ_PASS=1234567890
STORAGE_TYPE=local
STORAGE_PATH=/path/to/storage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set Up Storage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir -p /path/to/storage
chmod -R 775 /path/to/storage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the Server:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Start the Bot Worker: For bot event processing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php src/Workers/BotWorker.php
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your API is now live at &lt;a href="http://localhost:8011/v1" rel="noopener noreferrer"&gt;http://localhost:8011/v1&lt;/a&gt;. Time to have some fun!&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Examples: CampChat in Action
&lt;/h2&gt;

&lt;p&gt;Here are a few examples to show how easy it is to integrate CampChat into your project. These use curl, but you can adapt them for any HTTP client in your preferred language.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Creating a User
&lt;/h2&gt;

&lt;p&gt;Let’s create a user account to get started.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -X POST http://localhost:8011/v1/users/create \
-H "Content-Type: application/json" \
-d '{
  "first_name": "Bob",
  "last_name": "Jones",
  "username": "bobjones",
  "password": "mysecret123",
  "phone": "+1987654321",
  "dob": "1995-03-15",
  "country": "US",
  "gender": "male"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;json
{
  "ok": true,
  "result": {
    "id": "user1234567890abcdef"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives you a user ID to work with. Pro tip: Store it securely!&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Creating a Group
&lt;/h2&gt;

&lt;p&gt;Now, let’s create a group for Bob and his friends.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -X POST http://localhost:8011/v1/groups \
-H "Content-Type: application/json" \
-H "Authorization: Bearer jwt.token.here" \
-d '{
  "name": "Code Warriors",
  "creator_id": "user1234567890abcdef",
  "members": ["user456"],
  "permissions": {
    "locked": false,
    "allow_member_messages": true
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;json
{
  "ok": true,
  "result": {
    "id": "group1234567890abcdef"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This sets up a group where everyone can chat freely.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Adding a Bot
&lt;/h2&gt;

&lt;p&gt;Bots were my favorite part to build. Here’s how to create one that welcomes new group members.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -X POST http://localhost:8011/v1/bots \
-H "Content-Type: application/json" \
-H "Authorization: Bearer jwt.token.here" \
-d '{
  "user_id": "user1234567890abcdef",
  "name": "CodeBot",
  "commands": {
    "welcome": "Welcome to Code Warriors!"
  },
  "webhook_url": "https://your-server.com/bot-webhook"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;`json
{
  "ok": true,
  "result": {
    "id": "bot1234567890abcdef"
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When someone types /welcome@CodeBot in the group, CampChat hits your webhook, and your bot can respond dynamically. I spent hours tweaking this to make bot interactions seamless—it’s a game-changer for automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next for CampChat?
&lt;/h2&gt;

&lt;p&gt;CampChat is a living project, and I’m already dreaming up new features based on my own needs and community feedback. Imagine AI-powered bots that can moderate chats or generate witty responses, or maybe Stories and Reels for a social media vibe. I’m also working on 2FA, push notifications, and quantum-resistant encryption to keep CampChat future-proof. The possibilities are endless, and I’m excited to see where the community takes it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why You Should Jump In
&lt;/h2&gt;

&lt;p&gt;Building CampChat was a labor of love, born from late-night coding sessions and a passion for solving real developer pain points. It’s not just a chat engine—it’s a foundation for your next big app, whether it’s a community platform, a support tool, or something totally new. The MIT license means you can hack it to your heart’s content, and the GitHub community is ready to welcome your ideas.&lt;/p&gt;

&lt;p&gt;So, what are you waiting for? Clone the repo, fire up the server, and start building something awesome. I can’t wait to see what you create with CampChat. Drop by the GitHub repo to get started, share your thoughts, or even contribute a feature. Let’s build the future of communication together!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>php</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Difference between array() and []</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Thu, 06 Jun 2024 15:15:36 +0000</pubDate>
      <link>https://dev.to/manomite/difference-between-array-and--3ffb</link>
      <guid>https://dev.to/manomite/difference-between-array-and--3ffb</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%2Fchi1et4x2sxuo6z7ujx9.jpg" 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%2Fchi1et4x2sxuo6z7ujx9.jpg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In PHP, array() and [] are both used to create arrays, but they are slightly different.&lt;/p&gt;

&lt;p&gt;array() is the traditional way to create an array in PHP, and it's a language construct. It can be used to create both indexed and associative arrays.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$fruits = array('apple', 'banana', 'orange');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On the other hand, [] is a shorthand syntax for creating arrays, introduced in PHP 5.4. It's an alternative to array() and is used to create arrays in a more concise way.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$fruits = ['apple', 'banana', 'orange'];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both methods can be used interchangeably, but [] is generally preferred for its brevity and readability.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Introducing GIM: Revolutionizing Identity Management with AI and PHP</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Mon, 22 Apr 2024 16:09:17 +0000</pubDate>
      <link>https://dev.to/manomite/introducing-gim-revolutionizing-identity-management-with-ai-23gp</link>
      <guid>https://dev.to/manomite/introducing-gim-revolutionizing-identity-management-with-ai-23gp</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%2F2dig84jxthv59ust42vi.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%2F2dig84jxthv59ust42vi.png" alt=" " width="662" height="1095"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the fast-paced digital age, ensuring secure and reliable identity verification processes is more critical than ever. Traditional methods often fall short in accuracy and efficiency, leaving room for fraud and security breaches. This is where Gim steps in - an innovative open-source General Identity Management application that leverages the power of artificial intelligence to redefine identity verification.&lt;/p&gt;

&lt;p&gt;Gim's cutting-edge features set it apart from conventional identity management tools. By seamlessly collecting personal information, facial biometrics, ID card details, and digital signatures, Gim creates a robust profile for each user. The data is then processed using advanced AI algorithms to generate a comprehensive verification score, ensuring a high level of accuracy and reliability.&lt;/p&gt;

&lt;p&gt;What makes Gim truly stand out is its versatility and user-friendly interface. Whether you are looking to streamline customer onboarding processes, enhance security measures, or simply improve the efficiency of your identity management system, Gim offers a customizable solution to suit your needs. With the ability to store data securely on Convex, generate detailed reports in PDF format, and seamlessly integrate with email or webhook notifications, Gim provides a seamless and efficient user experience.&lt;/p&gt;

&lt;p&gt;One of the key benefits of Gim being open-source is the transparency and flexibility it offers. Developers can not only customize and tailor the application to meet their specific requirements but also contribute to its continuous improvement and evolution. This collaborative approach ensures that Gim remains at the forefront of identity management innovation, adapting to the changing landscape of technology and security.&lt;/p&gt;

&lt;p&gt;If you are looking to elevate your identity management processes to the next level, Gim is the ideal solution for you. Its powerful AI capabilities, combined with its intuitive interface and customizable features, make it a game-changer in the field of identity verification. Whether you are a small business looking to enhance security measures or a large organization seeking a scalable and efficient solution, Gim has got you covered.&lt;/p&gt;

&lt;p&gt;To experience the future of identity management, visit our project page at &lt;a href="https://github.com/mitmelon/gim" rel="noopener noreferrer"&gt;https://github.com/mitmelon/gim&lt;/a&gt; and take the first step towards a more secure and reliable verification process. Join us in revolutionizing identity management with Gim - where innovation meets security, and reliability meets efficiency.&lt;/p&gt;

</description>
      <category>kyc</category>
      <category>identity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>GIM Is Born</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Sat, 09 Mar 2024 09:16:09 +0000</pubDate>
      <link>https://dev.to/manomite/gim-is-born-2gg8</link>
      <guid>https://dev.to/manomite/gim-is-born-2gg8</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%2Fquaugtty9s88df21s94b.jpeg" 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%2Fquaugtty9s88df21s94b.jpeg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gim, an open-source General Identity Management application, goes beyond traditional identity verification methods by incorporating artificial intelligence (AI) to enhance the accuracy and reliability of the process. With Gim, developers, individuals, businesses can collect personal information, facial recognition data, and ID card images from users, which are then processed and analyzed using AI algorithms to generate a comprehensive verification score.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;AI-Powered Data Processing:&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Gim utilizes state-of-the-art AI algorithms to process data from facial recognitions and ID card images. This advanced technology ensures accurate and efficient identity verification.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Data Matching and Comparison:&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;The AI engine in Gim compares the data extracted from facial recognitions and ID card images with the information provided in the personal input section. By analyzing various data points, Gim generates a verification score for each identity.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Scoring System:&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Identity verification results are categorized into two scores:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Excellent&lt;/em&gt; : &lt;/p&gt;

&lt;p&gt;Data that matches between facial recognition, ID card images, and personal information input receive an excellent score, indicating a high level of confidence in the identity's authenticity.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Average:&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Data that does not match entirely are scored as average, prompting further review or verification steps to ensure accuracy.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Benefits:&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Enhanced Accuracy:&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;By harnessing the power of AI, Gim achieves higher accuracy in identity verification, reducing the risk of fraudulent activities and unauthorized access.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Streamlined Processes:&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;The automated data processing and scoring system streamline the KYC process, saving time and resources for businesses and individuals.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Increased Security:&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;With AI-powered identity verification, Gim offers heightened security measures, protecting sensitive information and ensuring compliance with regulatory requirements.&lt;/p&gt;

&lt;p&gt;Test the Demo here and provide your feedback to &lt;a href="mailto:manomitehq@gmail.com"&gt;manomitehq@gmail.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it's something your organization or company or someone will need send me a message through the email above.&lt;/p&gt;

&lt;p&gt;Thank you..🙏🏻&lt;/p&gt;

&lt;p&gt;Demo link&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gim.manomite.net" rel="noopener noreferrer"&gt;https://gim.manomite.net&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🌟🏥 Calling All Change-makers: Join the Open-Source Healthcare Revolution! 🌟🚀</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Fri, 29 Sep 2023 06:07:46 +0000</pubDate>
      <link>https://dev.to/manomite/calling-all-change-makers-join-the-open-source-healthcare-revolution-76o</link>
      <guid>https://dev.to/manomite/calling-all-change-makers-join-the-open-source-healthcare-revolution-76o</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%2Fnpjr8g0r4mc40aerhaii.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%2Fnpjr8g0r4mc40aerhaii.png" alt=" " width="543" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello, compassionate souls! 💖&lt;/p&gt;

&lt;p&gt;Are you passionate about accessible, high-quality healthcare for all? Do you believe in the power of open-source technology to drive positive change? Welcome to our vision of a state-of-the-art, open-source, and completely free Hospital Management System (HMS) that could revolutionize healthcare management nationwide, catering to both individual hospitals and entire healthcare networks. 💪💻&lt;/p&gt;

&lt;p&gt;Imagine a sophisticated HMS that breaks barriers, empowering healthcare facilities with robust tools for patient care, resource optimization, and seamless communication. Envision a system that operates on transparency, community collaboration, and inclusivity. 🌍✨&lt;/p&gt;

&lt;p&gt;We are reaching out to you, our fellow advocates for a brighter healthcare future, to gauge interest and support for this ambitious undertaking. Your enthusiasm and engagement can fuel this project's growth and impact millions of lives by providing innovative healthcare solutions. 🚀🌟&lt;/p&gt;

&lt;p&gt;Whether you are a healthcare professional, software engineer, a designer, a philanthropist, an investor or anyone who believes in equitable healthcare access, your involvement is pivotal. This project is not just about creating software; it's about creating a movement, a shift towards a more compassionate and efficient healthcare ecosystem. 🌱🌏&lt;/p&gt;

&lt;p&gt;We wholeheartedly welcome partnerships, sponsorships, and donations that will accelerate the development of this open-source HMS. Together, let us ensure that every person, irrespective of their background, can access the healthcare they need, when they need it. 🤝💖&lt;/p&gt;

&lt;p&gt;If you share our vision and want to be part of this transformative journey, let's connect! Reach out to us via email at &lt;a href="mailto:manomitehq@gmail.com"&gt;manomitehq@gmail.com&lt;/a&gt; or send us a direct message on LinkedIn. 📧💌&lt;/p&gt;

&lt;p&gt;Let's unite to build a world where quality healthcare is a right, not a privilege. 🌟🌈&lt;/p&gt;

&lt;p&gt;Onwards, towards a healthier world! 🏥🚀&lt;br&gt;
Manomite&lt;/p&gt;

&lt;h1&gt;
  
  
  OpenSourceHealthcare #AccessibleHealthcare #CommunityDrivenChange 🌟
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Unleashing your creativity through cyber security</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Sat, 26 Aug 2023 14:01:06 +0000</pubDate>
      <link>https://dev.to/manomite/unleashing-your-creativity-through-cyber-security-5e4j</link>
      <guid>https://dev.to/manomite/unleashing-your-creativity-through-cyber-security-5e4j</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%2Fowbkwu9fq7mqxqipocre.jpeg" 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%2Fowbkwu9fq7mqxqipocre.jpeg" alt=" " width="715" height="429"&gt;&lt;/a&gt;🔒🌐 Calling all aspiring cyber defenders! Join our cutting-edge online training course in Cyber Security and unlock your potential in the exciting world of digital protection. 🚀🔐&lt;/p&gt;

&lt;p&gt;🎯 Are you ready to become a skilled cyber security expert? Look no further! Our comprehensive training program offers both beginners and seasoned professionals the opportunity to enhance their knowledge and master the art of safeguarding digital assets. With hands-on modules, practical exercises, and real-world simulations, we ensure you're equipped with the tools to tackle any cyber threat head-on. 💪💻&lt;/p&gt;

&lt;p&gt;🔐 Why choose our Cyber Security Online Training Course? 🔐&lt;/p&gt;

&lt;p&gt;1️⃣ Expert Tutorship: Learn from industry veterans and renowned cyber security professionals who will guide you every step of the way. Their wealth of experience and practical insights will help you excel in this dynamic field. 🎓🌟&lt;/p&gt;

&lt;p&gt;2️⃣ Comprehensive Curriculum: From fundamentals to advanced techniques, our curriculum is meticulously designed to cover all aspects of modern cyber security. From network security to risk management, ethical hacking to incident response, you'll gain a holistic understanding of the cyber landscape. 📚💡&lt;/p&gt;

&lt;p&gt;3️⃣ Interactive Learning: Engage in interactive sessions, virtual labs, and group discussions with fellow learners to enhance your understanding and share valuable perspectives. Collaborate with like-minded individuals and build a strong professional network. 🤝🌐&lt;/p&gt;

&lt;p&gt;4️⃣ Real-World Simulations: Work on real-world case studies and simulations to apply your knowledge in practical scenarios. Gain hands-on experience, develop problem-solving skills, and be prepared to face cyber threats in real-time environments. 🌐📊&lt;/p&gt;

&lt;p&gt;5️⃣ Flexibility and Convenience: Our online training platform allows you to learn at your own pace and convenience. Access the course materials 24/7, complete assignments on your own schedule, and progress through the modules as per your availability. 🕐💻&lt;/p&gt;

&lt;p&gt;6️⃣ Recognized Certification: Upon successful completion of the course, you'll receive a highly recognized certification that demonstrates your expertise and boosts your credibility in the cyber security industry. 📜🔖&lt;/p&gt;

&lt;p&gt;🔐 Don't let the ever-evolving cyber threats intimidate you! Equip yourself with the knowledge and skills needed to protect individuals, organizations, and critical infrastructure from malicious attacks. Join our Cyber Security Online Training Course today and embark on a rewarding journey toward a secure digital future. 💻🔒🌟&lt;/p&gt;

&lt;p&gt;📢 Limited seats available! Enroll now and turn your passion for cyber security into a thriving career. Together, let's secure the digital world! 🚀🔒💪&lt;/p&gt;

&lt;p&gt;Join this group below to start your application process&lt;/p&gt;

&lt;p&gt;&lt;a href="https://chat.whatsapp.com/FaFWHCipAZzLX8iXisuDNm" rel="noopener noreferrer"&gt;https://chat.whatsapp.com/FaFWHCipAZzLX8iXisuDNm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please re-post to help someone.&lt;/p&gt;

&lt;h1&gt;
  
  
  cybersecurity #training #onlinetraining #cyberdefense #securethefuture #learnbydoing #experttutors #cybersecuritycourse
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>File Compresser 2.0.0 is here</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Sat, 12 Mar 2022 18:52:05 +0000</pubDate>
      <link>https://dev.to/manomite/compress-200-is-here-1j18</link>
      <guid>https://dev.to/manomite/compress-200-is-here-1j18</guid>
      <description>&lt;p&gt;2 years ago I released a library called &lt;strong&gt;compress&lt;/strong&gt; which compresses all files including zip, tar etc. using PHP without using any third party online tools.&lt;/p&gt;

&lt;p&gt;At the initial testing, compress compressed a zip file from 9.5MB to 8.2MB, over 1.3MB was removed from the actual zip file which was cool.&lt;/p&gt;

&lt;p&gt;Since the release, over 1,450k developers have downloaded the library without issues. This has been a very great score for me and has given me more strength to keep working on the library.&lt;/p&gt;

&lt;p&gt;Today am here to announce that the version 2 of Compress is now available. &lt;/p&gt;

&lt;p&gt;In the version 2, I included AES-256-CBC encryption function for encrypting the files before compressing.&lt;/p&gt;

&lt;p&gt;If you are upgrading to the new version, please note that there are few changes you will need to make to your code.&lt;/p&gt;

&lt;p&gt;CompressFile() third argument now accepts optional array options. You can take a look at the changes below and compare it with the old version before upgrading.&lt;/p&gt;

&lt;p&gt;If you are going to be using &lt;br&gt;
the encryption function, You have to set the compressFile option argument like this;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$compress&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Compress\Compress&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"removeMeta"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"encrypt"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"key"&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"password"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;compressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$filePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$storePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$options&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Let me explain the option values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The removeMeta&lt;/strong&gt; : removes additional comments and junks from file. You can set this to true if you want to remove meta from file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Encrypt&lt;/strong&gt; : Set this to true if you want to use encryption.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key&lt;/strong&gt; : If you set encrypt to true, then you must provide the encryption key else compress will generate one for you and the response will be the key generated so you can store it in your database vault for future decryptions.&lt;/p&gt;

&lt;p&gt;Now let's look at the few changes in the whole new version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install:
&lt;/h2&gt;

&lt;p&gt;Use composer to install&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="n"&gt;composer&lt;/span&gt; &lt;span class="k"&gt;require&lt;/span&gt; &lt;span class="n"&gt;mitmelon&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;compress&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage :
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;require_once&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s2"&gt;"/vendor/autoload.php"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Initialize library class&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Compress\Compress&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * @param String $filePath
 * File location to be compressed
 * @param String $storePath
 * Path to output compressed binary file to
 * @param Array optional $options ["removeMeta" =&amp;gt; false, "encrypt" =&amp;gt; false, "key" =&amp;gt; "password"]
 * Options to remove meta and encrypt file
 */&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;compressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$filePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$storePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;

&lt;span class="c1"&gt;//Compress Image file&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;compressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/image.png'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/image.txt'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

&lt;span class="c1"&gt;// Compress PDF&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;compressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/file.pdf'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/file.txt'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="c1"&gt;//Compress as lot of files you want including zip files&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * UnCompress Image file [Get original file back from stored binary]
 * @param String $storePath
 * Path containing binary file which was compressed
 * @param String $fileOutputPath
 * Path to output original file to
 * @param String $encrypt_key
 * If your file was encrypted then provide the key for decryption as third argument
 */&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;uncompressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$storePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$fileOutputPath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$encrypt_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Uncompress Image&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;uncompressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/image.txt'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/image.png'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Uncompress PDF&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;uncompressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/file.txt'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/file.pdf'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;If you have not yet started using Compress and wish to, you can check it out using the link below;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mitmelon/Compress" rel="noopener noreferrer"&gt;https://github.com/mitmelon/Compress&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the near future, I will be adding more features. You can check the feature update on the readme to see the next features that will be added.&lt;/p&gt;

&lt;p&gt;Also don't forget to donate for the project progress. Your donation will really help me on a long run.&lt;/p&gt;

&lt;p&gt;Please feel free to make a pull request incase you find any bugs or want to add something to it.&lt;/p&gt;

&lt;p&gt;Best of wishes.&lt;/p&gt;

</description>
      <category>php</category>
      <category>programming</category>
      <category>opensource</category>
      <category>github</category>
    </item>
    <item>
      <title>The Ripper Tool Is Here</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Mon, 21 Feb 2022 18:20:46 +0000</pubDate>
      <link>https://dev.to/manomite/the-ripper-tool-is-here-4eim</link>
      <guid>https://dev.to/manomite/the-ripper-tool-is-here-4eim</guid>
      <description>&lt;p&gt;Few days ago I was reading a post on a website and suddenly, my router stopped connecting. I reloaded the website page multiple times and I kept getting connection not possible.&lt;/p&gt;

&lt;p&gt;So I was forced to check the router to see what's happening underground but discovered that my data plan has expired. It was so sad because at that time I was healthy with funds and could not instantly renew my plan.&lt;/p&gt;

&lt;p&gt;Face squeezed and I was like Hey telecom "Gbam" that's a punch on their face.&lt;/p&gt;

&lt;p&gt;Sat down comfortable later and began to stir at the ceiling, then started counting how many nails were used for the roof😂😂. Sounds very funny since I had nothing to do. &lt;/p&gt;

&lt;p&gt;After counting the nails multiple times then I realized that the carpenter didn't include one nail at the corner of the wall. Mtcheeeeeew this carpenter eeeeheeen, I said it again and again until I heard a very sharp voice inside my head saying.&lt;/p&gt;

&lt;p&gt;Hey man! next time clone the entire website and store it on your computer drive, then you have offline access to read all the entire post even if the ISP decides to shut down.&lt;/p&gt;

&lt;p&gt;Wao!!! I said to myself and immediately I stopped counting the nails and got straight to work.&lt;/p&gt;

&lt;p&gt;Overall It took me 6 hours to come up with the final codings and designs. I completed the API and keyed it into a telegram bot.&lt;/p&gt;

&lt;p&gt;You will ask me why telegram? That's because I wanted to avoid form fillings, reduce resources loads and also be able to clone any website anytime even on my mobile phone.&lt;/p&gt;

&lt;p&gt;I called the tool Ripper. The name sounds horrible but that's what I got for it at that time. I wanted to call it carpenter but refused because they don't relate.&lt;/p&gt;

&lt;p&gt;Ripper tool helps to clone any website including https sites for offline access. You can take a look at it. Use it and give me feedback on what you think.&lt;/p&gt;

&lt;p&gt;May be in the future I will add more advanced functionalities such as multiple clonings and the rest or may be do for WhatsApp too.&lt;/p&gt;

&lt;p&gt;Check it out at.&lt;br&gt;
&lt;a href="https://t.me/rippertoolbot" rel="noopener noreferrer"&gt;https://t.me/rippertoolbot&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>We launched Copytraps</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Tue, 15 Feb 2022 15:05:43 +0000</pubDate>
      <link>https://dev.to/manomite/we-launched-copytraps-1noc</link>
      <guid>https://dev.to/manomite/we-launched-copytraps-1noc</guid>
      <description>&lt;p&gt;Hi, For years, creative minds, authors, copyrighters, publishers, content editors, actors and actresses, book publishers, media owners, company and many more organizations have been facing content phishing attacks, content theft and infringements on the internet.&lt;/p&gt;

&lt;p&gt;There have been many situations where an author or organisation spend so much efforts and time to craft creative contents while waiting for great rewards but instead another takes the credits and gets more rewards.&lt;/p&gt;

&lt;p&gt;Your assets are extracted and used without your consent or permission which is very annoying. Bloggers losses more of their audiences and traffic's to copycats.&lt;/p&gt;

&lt;p&gt;Today is the day that changes.&lt;/p&gt;

&lt;p&gt;We’re proud to announce our product known as Copytraps.&lt;/p&gt;

&lt;p&gt;It’s the most powerful tool capable of preventing and finding those using your hard earned contents for further law investigations with your lawyer.&lt;/p&gt;

&lt;p&gt;Let them copy it🙄... I will find you🧐, close down your platform and request for damages cost. Those should be your words when you have Copytraps in place.&lt;/p&gt;

&lt;p&gt;With Copytraps, you grant access to only people having your permissions to use your contents and the whole rewards gets back to you.&lt;/p&gt;

&lt;p&gt;Let's keep the internet safe again by stopping content phishing attacks, junks and theft.&lt;/p&gt;

&lt;p&gt;Be among the first 50 to try out Copytraps Beta Version at &lt;a href="https://copytraps.com" rel="noopener noreferrer"&gt;Copytraps&lt;/a&gt; with exclusive offers.&lt;/p&gt;

</description>
      <category>content</category>
      <category>copyright</category>
      <category>security</category>
    </item>
    <item>
      <title>FILE COMPRESSER USING PHP</title>
      <dc:creator>Adeyeye George</dc:creator>
      <pubDate>Sat, 22 Aug 2020 14:33:23 +0000</pubDate>
      <link>https://dev.to/manomite/file-compresser-using-php-5e19</link>
      <guid>https://dev.to/manomite/file-compresser-using-php-5e19</guid>
      <description>&lt;p&gt;Today i was looking for various means to compress all files using PHP without using any third party online tools but unfortunately what i found was zip archives compress, zar and the rest. There was no single library on the internet designed with PHP to handle file compression including compressing zip files. I was curious and i had to design one.&lt;/p&gt;

&lt;p&gt;I eventually did the design which i tested with a zip file having size of about 9.5MB and my PHP Class was able to compress this down to 8.2MB which was still okay for me. At least over 1.3MB was removed from the actual zip file.&lt;/p&gt;

&lt;p&gt;I know you will want to ask whats the difference. The truth is that assuming you have a whole bunch of those zip files lets say 10 in which each had 9.5MB. Calculating this will give you a bunch of 95MB, thats lots of memory.&lt;/p&gt;

&lt;p&gt;Looking through this you will see that over 13MB difference was removed when compressed. This 13MB could be used to save other files.&lt;/p&gt;

&lt;p&gt;Designing a class that does this job took me 4 hours with over 15 test analysis.&lt;/p&gt;

&lt;p&gt;If you are also curious about me and wish to use my library for your applications below is how to use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install:
&lt;/h2&gt;

&lt;p&gt;Use composer to install&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="n"&gt;composer&lt;/span&gt; &lt;span class="k"&gt;require&lt;/span&gt; &lt;span class="n"&gt;mitmelon&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;compress&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage :
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;require_once&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s2"&gt;"/vendor/autoload.php"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Initialize library class&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Compress\Compress&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * @param $filePath string
 * File location to be compressed
 *
 * @param $storePath string
 * Path to output compressed binary file to
 *
 */&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;compressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$filePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$storePath&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Compress Image file&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;compressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/image.png'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/image.txt'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

&lt;span class="c1"&gt;// Compress PDF&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;compressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/file.pdf'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/file.txt'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="c1"&gt;//Compress as lot files you want including zip files&lt;/span&gt;

&lt;span class="cd"&gt;/**
 * UnCompress Image file [Get original file back from stored binary]
 * @param $storePath string
 * Path containing binary file which was compressed
 *
 * @param $fileOutputPath string
 * Path to output original file to
 *
 */&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;uncompressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$storePath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$fileOutputPath&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//Uncompress Image&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;uncompressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/image.txt'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/image.png'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Uncompress PDF&lt;/span&gt;
&lt;span class="nv"&gt;$compress&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;uncompressFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/file.txt'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;__DIR__&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="s1"&gt;'/file.pdf'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;You can also find the github library here.&lt;br&gt;
&lt;a href="https://github.com/mitmelon/Compress" rel="noopener noreferrer"&gt;https://github.com/mitmelon/Compress&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please feel free to make a pull request incase you find any bugs or want to add something to it.&lt;/p&gt;

&lt;p&gt;Best of wishes.&lt;/p&gt;

</description>
      <category>file</category>
      <category>compress</category>
      <category>zip</category>
      <category>archive</category>
    </item>
  </channel>
</rss>
