<?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: Pannaga Perumal</title>
    <description>The latest articles on DEV Community by Pannaga Perumal (@pannagaperumal).</description>
    <link>https://dev.to/pannagaperumal</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%2F860969%2Fea36b570-f1a4-4f73-9b08-46a3977cc61d.jpg</url>
      <title>DEV Community: Pannaga Perumal</title>
      <link>https://dev.to/pannagaperumal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pannagaperumal"/>
    <language>en</language>
    <item>
      <title>When the Kiosk Remembered Wrong</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Sat, 22 Aug 2026 13:42:28 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/when-the-kiosk-remembered-wrong-21p9</link>
      <guid>https://dev.to/pannagaperumal/when-the-kiosk-remembered-wrong-21p9</guid>
      <description>&lt;h2&gt;
  
  
  The face that forgot how to count
&lt;/h2&gt;

&lt;p&gt;Mosaic is the UI running on a robot's face and kiosk display — GLTF facial animation, tool results, conversational state, all streamed over &lt;a href="https://nats.io/" rel="noopener noreferrer"&gt;NATS&lt;/a&gt; and rendered live. Most of the time it's seamless. But every so often, after a dropped Wi-Fi connection reconnected, something would look... off. A response would appear twice. A tool result that had already been shown would echo back into the UI a second time, like the robot was repeating itself for no reason.&lt;/p&gt;

&lt;p&gt;Nothing was wrong in the steady state. The bug only ever showed up right after the network had a hiccup and recovered — which meant it was almost invisible in normal testing, and only ever bit in exactly the moment reliability mattered most: right when something had already gone a little wrong and the system was trying to recover.&lt;/p&gt;

&lt;h2&gt;
  
  
  Event-sourced UI, and a guarantee I hadn't questioned
&lt;/h2&gt;

&lt;p&gt;Mosaic's state isn't just rendered directly — it's built from a stream of events coming over NATS: a tool call result here, a UI fragment there, a state update from the conversation pipeline. The store applies each event as it arrives and that's what ends up on screen.&lt;/p&gt;

&lt;p&gt;That model works great — until you actually think about what "arrives" means over a message bus. NATS gives you &lt;strong&gt;at-least-once delivery&lt;/strong&gt;. That's a deliberate, sensible guarantee: after a dropped connection, NATS will &lt;em&gt;redeliver&lt;/em&gt; messages you might have missed, rather than silently lose them. Good default. But it means the same event can legitimately arrive twice.&lt;/p&gt;

&lt;p&gt;My store didn't know that. It applied every incoming event as if "arrived" meant "new." Which is true almost all the time — until a reconnect happens, NATS does exactly what it's designed to do and redelivers a message you'd already processed, and the store dutifully applies it &lt;em&gt;again&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding the gap between two different guarantees
&lt;/h2&gt;

&lt;p&gt;This is the kind of bug that's obvious once you say it out loud and completely invisible while you're staring at the UI code, because the UI code isn't wrong — Svelte's rendering the state correctly. The state itself is wrong.&lt;/p&gt;

&lt;p&gt;The real insight was separating two things that had been quietly conflated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A stream of updates&lt;/strong&gt; — what NATS gives you: a sequence of events, possibly including redeliveries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The current true state&lt;/strong&gt; — what the UI actually needs to render correctly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd been treating the first as if it were automatically the second. It isn't. A replay stream tells you things &lt;em&gt;happened&lt;/em&gt;; it doesn't promise you're hearing about each one exactly once, and it doesn't promise the order you get them in after a reconnect matches what you'd expect if nothing had ever dropped.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix: make "again" a no-op, and don't trust the stream blindly
&lt;/h2&gt;

&lt;p&gt;Two changes, and they mattered in different ways:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Made event application idempotent.&lt;/strong&gt; Every event now has an identity, and the store dedupes on that identity before it's allowed to mutate anything. A redelivered event, or an echoed tool result, becomes a no-op instead of a double-apply.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;before:  event arrives -&amp;gt; apply to store   (always)
after:   event arrives -&amp;gt; seen before? -&amp;gt; skip
                        -&amp;gt; not seen?    -&amp;gt; apply + remember id
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Added an authoritative resync path.&lt;/strong&gt; After a reconnect specifically, the kiosk doesn't just trust whatever the replay stream sends first — it pulls the true current state directly. The event stream is great for &lt;em&gt;staying&lt;/em&gt; in sync once you're already there; it's the wrong tool for &lt;em&gt;re-establishing&lt;/em&gt; sync after you've been offline. Those are different problems, and I'd been using one mechanism for both.&lt;/p&gt;

&lt;h2&gt;
  
  
  The result
&lt;/h2&gt;

&lt;p&gt;State stays correct through drops and redelivery, full stop. The kiosk can lose its NATS connection, reconnect, and the display doesn't quietly lie about what state it's in.&lt;/p&gt;

&lt;p&gt;That matters more for a robot face than it might for a typical dashboard — a duplicated toast notification is mildly annoying; a robot's face flickering into a stale or doubled expression right in front of someone reads as &lt;em&gt;broken&lt;/em&gt;, immediately, to anyone watching. UI bugs on embodied systems don't get to hide in a support ticket. They happen live, in front of a person.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;At-least-once delivery pushes idempotency onto you, the consumer.&lt;/strong&gt; If your message bus can redeliver — and most production-grade ones can — "I received this event" and "this event is new" are two different claims. Conflate them and you &lt;em&gt;will&lt;/em&gt; eventually double-apply something.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A stream of updates isn't the same as a source of current truth.&lt;/strong&gt; Replaying an event log is great for staying in sync; it's the wrong primitive for &lt;em&gt;re-establishing&lt;/em&gt; sync after a gap. Sometimes the right move after a reconnect is to ask "what's actually true right now?" instead of "what did I miss?"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test the unhappy path on purpose.&lt;/strong&gt; The steady-state path will always work in a demo. The reconnect/redelivery path is the one that's actually worth writing a deliberate test for, because it's the one nobody exercises by accident.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bugs on visible, embodied systems have zero grace period.&lt;/strong&gt; A backend duplicate-processing bug might sit quietly in a log for a week. The same bug on a robot's face is a bug someone's &lt;em&gt;watching happen.&lt;/em&gt; Prioritize accordingly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;If you're building anything event-sourced on top of a message bus with at-least-once semantics — NATS, Kafka, SQS, whatever — I'd bet you have a version of this bug somewhere, even if it hasn't bitten you yet. Have you hit redelivery duplication before, and how did you handle dedup — event IDs, content hashing, something else?&lt;/p&gt;

&lt;p&gt;I write about the systems-level bugs that show up when real-time UI meets distributed messaging — if that's your kind of problem too, follow along, and let me know what you're building.&lt;/p&gt;

</description>
      <category>distributedsystems</category>
      <category>nats</category>
      <category>eventsourcing</category>
      <category>debugging</category>
    </item>
    <item>
      <title>The Mic That Argued With Itself</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Sat, 22 Aug 2026 13:41:09 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/the-mic-that-argued-with-itself-3ogi</link>
      <guid>https://dev.to/pannagaperumal/the-mic-that-argued-with-itself-3ogi</guid>
      <description>&lt;h2&gt;
  
  
  The robot that couldn't hold a conversation
&lt;/h2&gt;

&lt;p&gt;Picture this: a social robot standing in a lobby, listening for its wake word, chatting with whoever walks up. It's supposed to feel alive — responsive, natural, always listening. Instead, every so often, mid-sentence, it would just... die. &lt;code&gt;SIGSEGV&lt;/code&gt;. The process gone, the conversation cut off like someone pulled the plug.&lt;/p&gt;

&lt;p&gt;And the worst part? I couldn't reproduce it on demand. It happened more when the robot was busier — more people walking up, more wake words triggering, more conversations overlapping. Classic intermittent bug energy: the kind that makes you doubt your own sanity a little.&lt;/p&gt;

&lt;p&gt;Sometimes it wasn't even a crash. The robot would just... not hear you. You'd say the wake word, nothing would happen, and you'd be left wondering if it was ignoring you or if something deeper was broken. Turns out — both, in a way.&lt;/p&gt;

&lt;h2&gt;
  
  
  The system: two ears, one microphone
&lt;/h2&gt;

&lt;p&gt;Voxa, the robot's speech-to-speech pipeline, has two jobs running more or less independently:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Wake-word detection&lt;/strong&gt; — always listening in the background for its name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The conversation loop&lt;/strong&gt; — once triggered, opens a live capture session to actually record and process what you're saying.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Both of these needed audio. Both of these, it turned out, were opening their &lt;em&gt;own&lt;/em&gt; independent &lt;a href="http://www.portaudio.com/" rel="noopener noreferrer"&gt;PortAudio&lt;/a&gt; capture stream to get it — two separate handles onto the same physical microphone.&lt;/p&gt;

&lt;p&gt;Most of the time this was fine. Wake-word stream closes, conversation stream opens, no overlap, no problem. The failure only showed up in the gap between those two states — when a new utterance kicked off &lt;em&gt;before&lt;/em&gt; the previous stream had actually finished tearing down.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chasing a bug that only bites under load
&lt;/h2&gt;

&lt;p&gt;The first instinct with a crash like this is to look at the crash site — the stack trace at the moment of &lt;code&gt;SIGSEGV&lt;/code&gt;. But that only tells you &lt;em&gt;where&lt;/em&gt; the memory got corrupted, not &lt;em&gt;why&lt;/em&gt; two completely different code paths were touching the same resource at the same time.&lt;/p&gt;

&lt;p&gt;The real signal was in the pattern, not the stack trace: this only got worse under load. That's usually not a logic bug — your code isn't suddenly &lt;em&gt;wrong&lt;/em&gt; when there are more users. That's a &lt;strong&gt;race condition&lt;/strong&gt;: code that's individually correct but breaks when two copies of it run concurrently and neither one knows the other exists.&lt;/p&gt;

&lt;p&gt;Once I started looking at it through that lens, the pattern became obvious: wake-word detection and the conversation loop each owned a PortAudio stream, and &lt;em&gt;neither one knew the other existed&lt;/em&gt;. There was no coordination — no lock, no shared state, nothing telling one "wait, the other one still has the mic." When a new utterance started fast enough, both streams ended up holding the device simultaneously. Sometimes that just corrupted the audio buffer silently. Sometimes it corrupted memory badly enough to take the whole process down with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix: give the microphone exactly one owner
&lt;/h2&gt;

&lt;p&gt;The fix wasn't clever — it was structural. Instead of two components each managing their own capture stream, I unified audio capture onto a &lt;strong&gt;single PortAudio stream&lt;/strong&gt;, with one explicit owner responsible for its entire lifecycle: opening it, closing it, and deciding who gets to consume from it.&lt;/p&gt;

&lt;p&gt;Wake-word detection and the conversation loop still both need audio — but now they read from the one stream that owns the device, instead of each independently owning a competing one. There's no window anymore where two teardown paths can race each other, because there's only one teardown path.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;before:
  wake-word  -&amp;gt; opens PortAudio stream A -&amp;gt; mic
  convo loop -&amp;gt; opens PortAudio stream B -&amp;gt; mic
  (both can hold the device at once — race)

after:
  single owner -&amp;gt; opens PortAudio stream -&amp;gt; mic
  wake-word  -&amp;gt; reads from owned stream
  convo loop -&amp;gt; reads from owned stream
  (exactly one lifecycle, no race)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The result — and the feature it unlocked
&lt;/h2&gt;

&lt;p&gt;The crash class disappeared completely. No more &lt;code&gt;SIGSEGV&lt;/code&gt;s, no more leaked stream handles, no more mysterious "why didn't it hear me" reports.&lt;/p&gt;

&lt;p&gt;But the more interesting payoff was what came &lt;em&gt;after&lt;/em&gt; the fix. With a stable, contention-free capture path in place, I could finally tune &lt;strong&gt;barge-in detection&lt;/strong&gt; — letting someone interrupt the robot mid-sentence, the way you'd naturally interrupt a person. That feature had been effectively unbuildable before, because you can't reliably detect an interruption on a microphone that occasionally forgets it's supposed to be listening.&lt;/p&gt;

&lt;p&gt;Fixing the "boring" stability bug is what made the actually delightful feature possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A shared hardware resource needs exactly one owner for its lifecycle.&lt;/strong&gt; The moment two components each independently manage the same device, you have a race condition waiting for the right timing to expose it — not a convenience, a liability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bugs that scale with load are usually contention, not logic.&lt;/strong&gt; If a bug gets worse the busier your system is, stop looking for a wrong &lt;code&gt;if&lt;/code&gt; statement and start looking for two things touching the same resource without knowing about each other.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stability work often pays for itself in features you didn't plan for.&lt;/strong&gt; Barge-in wasn't the goal when I started debugging crashes — it was a side effect of finally having a capture path solid enough to build on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reproducing "under load" bugs on purpose beats waiting for them.&lt;/strong&gt; If you suspect contention, write the thing that hammers the two code paths back-to-back instead of hoping it happens again in front of you.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;Race conditions are sneaky precisely because the code &lt;em&gt;looks&lt;/em&gt; right in isolation — it's only wrong in relation to something else running at the same time. If you've hunted one of these before, I'd love to hear it: what was the tell that made you stop looking at logic and start looking at timing?&lt;/p&gt;

&lt;p&gt;If you're building anything with real-time audio, sensor fusion, or just systems that are supposed to &lt;em&gt;feel&lt;/em&gt; alive and responsive, I write about this stuff regularly — follow along, and feel free to reach out if you're wrestling with something similar.&lt;/p&gt;

</description>
      <category>robotics</category>
      <category>debugging</category>
      <category>systemsdesign</category>
      <category>audio</category>
    </item>
    <item>
      <title>Rust vs. Other Languages: Why Rust Stands Out in Modern Development</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Tue, 18 Feb 2025 11:52:45 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/rust-vs-other-languages-why-rust-stands-out-in-modern-development-4mh8</link>
      <guid>https://dev.to/pannagaperumal/rust-vs-other-languages-why-rust-stands-out-in-modern-development-4mh8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
In the ever-changing world of programming languages, Rust has quickly gained attention. Why? It solves many headaches developers face, like memory bugs and complex concurrency, all while offering top-notch performance. As someone diving deep into Rust backend development, I’ve experienced firsthand how it compares to languages I’ve used before, like Python and Java. Let’s break down how Rust stacks up against C, C++, Python, and Go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Memory Safety Without Garbage Collection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Memory bugs can be a nightmare.&lt;/p&gt;

&lt;p&gt;C/C++: Blazing fast but managing memory manually is tricky. One mistake can cause major crashes.&lt;/p&gt;

&lt;p&gt;Rust: Rust’s ownership system and borrow checker ensure memory safety. You can’t even compile code with memory issues. No garbage collector means no unexpected pauses.&lt;/p&gt;

&lt;p&gt;Code Snippet: Safe Memory in Rust&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fn main() {
    let x = String::from("Hello");
    let y = x;  // Ownership moves to y
    // println!("{}", x); // This line won’t compile 
                          //because x is no longer valid
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;blockquote&gt;
&lt;p&gt;My Take: Coming from Python, where memory is managed for you, Rust felt strict at first. But soon, I realized how much safer my code became.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Performance and Concurrency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Concurrency is where Rust shines.&lt;/p&gt;

&lt;p&gt;Python: Great for scripts but the GIL often slows down multi-threaded tasks.&lt;/p&gt;

&lt;p&gt;Go: Lightweight goroutines make concurrency simple.&lt;/p&gt;

&lt;p&gt;Rust: Rust ensures no data races at compile time.&lt;/p&gt;

&lt;p&gt;Code Snippet: Concurrency in Rust&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;use std::thread;
fn main() {
    let handle = thread::spawn(|| {
        println!("Hello from a thread!");
    });
    handle.join().unwrap();
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;blockquote&gt;
&lt;p&gt;My Experience: Implementing concurrency in Rust felt safe. I wasn’t constantly worrying about race conditions, unlike in Python.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Developer Experience and Ecosystem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tools matter as much as the language.&lt;/p&gt;

&lt;p&gt;Python: Simple syntax and tons of libraries.&lt;/p&gt;

&lt;p&gt;Go: Fast builds and easy syntax.&lt;/p&gt;

&lt;p&gt;Rust: Cargo makes dependency management easy, and documentation is top-notch.&lt;/p&gt;

&lt;p&gt;Code Snippet: Using Cargo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ cargo new my_project
$ cd my_project
$ cargo run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;My Take: Cargo made setting up projects super easy. The community is welcoming, and docs are clear.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Why Rust for Backend Development?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rust’s performance and safety are game-changers for backend systems.&lt;br&gt;
My Journey: Learning Rust has been challenging but rewarding. Each project teaches me something new, and I’m excited to build high-performance backends.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rust isn’t just another language; it’s a new way of thinking. Its safety, speed, and modern tools make it stand out. My Rust journey is just starting, but I’m already seeing how it shapes better code.&lt;/p&gt;

&lt;p&gt;What do you think about Rust? Let’s chat below!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is Dark Web?Hidden World Revealed</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Fri, 21 Apr 2023 17:29:31 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/the-dark-web-a-hidden-world-revealed-1o8j</link>
      <guid>https://dev.to/pannagaperumal/the-dark-web-a-hidden-world-revealed-1o8j</guid>
      <description>&lt;p&gt;__&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To begin with, the internet is a large network of computers communicating with each other. There are various versions of the internet, which are clear web, dark web and deep web. &lt;br&gt;
You may have heard about the dark web many times, but the misconception of people is that the dark web is illegal and its all about hacking, weapons, drugs and stuff.&lt;br&gt;
In this blog, you understand the dark and deep web in a much detailed manner...&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is Clear Web?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before we move on, let's see about the clear web. To be simple, the Web pages that can be accessed using any search engine are clear web. The pages that we visit on a day-to-day basis are the clear web. It may be Google, Instagram, Amazon etc. This website contains information that can be accessed by everyone. In contrast, you will have your own identity on the clear internet.. &lt;/p&gt;

&lt;h2&gt;
  
  
  Is dark web really Dark?
&lt;/h2&gt;

&lt;p&gt;To be simple, the dark web is that part of the internet that cannot be searched using a search engine. This includes forums, websites and resources that are hidden from the rest of the internet.&lt;/p&gt;

&lt;p&gt;The concept of the dark web started in 2006. It was created to provide users anonymity while browsing the web. Initially, it was used by government organizations and political groups for communication.&lt;/p&gt;

&lt;p&gt;The Tor browser gave the dark web access to normal users, thereby providing anonymity.&lt;/p&gt;

&lt;p&gt;Coming to the main question. The dark web is actually not illegal. Let's say one wants to read an article on a particular topic that is banned in a certain nation, he/she can find that on the dark web and can read it anonymously. This does not mean it's illegal.&lt;/p&gt;

&lt;p&gt;There are few parts of the dark web that are actually dark because the crimes that are done on the dark web can't be traced due to its layers. Let's discuss that latter.&lt;br&gt;
The governments of some countries also have their eyes on the dark web in order to peep into the conversations that are going on in the forums on the dark web.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why is Dark web users Untraceable?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Let's say you are using a laptop. As soon as you connect to the internet you will be assigned an IP address on the network. Each device on the internet will have a unique IP address. One can be easily tracked using their IP. &lt;/p&gt;

&lt;p&gt;But in the case of the dark web or while using Tor(to be specific), your IP will be encrypted and data packets will be, hoped through many routers before reaching the main network that means that your IP will not be visible to anyone, thereby it will be impossible to find the person behind the  device. The disadvantage is that, due to latency, the network speed decreases.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Activities on Dark Web&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Illegal Market place&lt;/strong&gt;&lt;br&gt;
It is a place where individuals can carry out illicit activities, including the buying and selling of drugs, weapons, passports and stolen information. Cybercriminals often use these marketplace to sell stolen data, such as credit card information, login credentials, and personal data for fraud etc. Usually all these transactions will be made using cryptocurrencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forums&lt;/strong&gt;&lt;br&gt;
There are various forums on dark web where one can express their points on any of the topic anonymously. Users are not allowed in such forums unless they are referred by the existing users inside the forum.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EfxNfqFy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ct5nd91iapi7cgr0d8dx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EfxNfqFy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ct5nd91iapi7cgr0d8dx.jpg" alt="Image description" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hire a Hacker&lt;/strong&gt;&lt;br&gt;
It is one of the new services on dark web ,here one can rent a hacker to perform his or her work. This is so easily available&lt;br&gt;
that one can hire them as freelancers. For example if I need to hack a Instagram account I need to just send him the account and he will be back with the data in turn one needs to pay him.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;News Pages&lt;/strong&gt;&lt;br&gt;
This is the place where one gets a unbiased news about each and every information from all over the world the people. The users here publish there opinion freely without any avoidance from the government and other entities.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red Room&lt;/strong&gt;&lt;br&gt;
Some places on the dark web are particularly disturbing, such as the operation of so-called "red rooms." These are live-streamed events where individuals pay to watch extreme acts of violence, torture, and sexual abuse. Red rooms are illegal and unethical, and those who participate in them are often involved in criminal activity. The use of the dark web and red rooms in particular is a growing concern for law enforcement agencies around the world, as it can be difficult to track down those who are involved in these activities.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--04YWIuxB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lbz0jhe9ml2pvou93s7b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--04YWIuxB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lbz0jhe9ml2pvou93s7b.jpg" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Censor Violation&lt;/strong&gt;&lt;br&gt;
There are also platforms where movies are streamed for free of cost in order to reduce the distribution on the particular media. This may include books, movies, documentaries and even pictures that are banned in specific country.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Child P*rn*grapy&lt;/em&gt;&lt;br&gt;
This is very unfortunate that there are a few forums that stream child p*rn*graphy. It is completely unethical and illegal, It is a growing concern for law enforcement agencies around the world, as it can be difficult to track down those who are involved in these activities.&lt;/p&gt;

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

&lt;p&gt;In conclusion, the dark web is a hidden part of the internet that is often associated with illegal and unethical activities. While there are legitimate uses for the anonymity it provides, such as protecting the privacy of dissidents and journalists in repressive regimes, the majority of activities carried out on the dark web are highly problematic. &lt;/p&gt;

&lt;p&gt;As such, it is important for individuals and law enforcement agencies to be aware of the risks associated with the dark web and to take steps to mitigate them. Ultimately, the dark web is a reminder that the internet is a powerful tool that can be used for good or ill, and that we must remain vigilant in our efforts to ensure that it is used responsibly.&lt;/p&gt;

&lt;p&gt;Thank you for reading please share it with your friends&lt;br&gt;
You can checkout my other blogs here &lt;a href="https://dev.to/pannagaperumal"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>darkweb</category>
      <category>hacking</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Test post</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Mon, 13 Mar 2023 08:48:45 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/test-post-4nm5</link>
      <guid>https://dev.to/pannagaperumal/test-post-4nm5</guid>
      <description>&lt;h1&gt;pannaga&lt;/h1&gt;

&lt;h2&gt;pannaga&lt;/h2&gt;

&lt;h3&gt;pannaga&lt;/h3&gt;

&lt;h4&gt;pannaga&lt;/h4&gt;

&lt;p&gt;Go to Example.com&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Top 3 Tech apps to try today</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Thu, 09 Mar 2023 19:10:54 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/top-3-tech-apps-to-try-today-cjc</link>
      <guid>https://dev.to/pannagaperumal/top-3-tech-apps-to-try-today-cjc</guid>
      <description>&lt;p&gt;Tech news is an important part of staying informed about the latest developments in the ever-evolving technology industry. With so many news sources available, it can be difficult to keep track of everything that’s happening.That’s where tech news apps come in. These apps provide a convenient and efficient way to stay up-to-date on the latest tech news, whether you’re on the go or just want to quickly catch up on what’s happening in the tech world. In this article, we’ll take a closer look at some of the best tech news apps available today.&lt;/p&gt;

&lt;h1&gt;
  
  
  DevBytes
&lt;/h1&gt;

&lt;p&gt;Devbytes covers the most recent developments, updates, and viewpoints in the tech sector. The app is made to assist developers to stay up to date with the newest trends and technology in the software development industry. We'll examine It's features and advantages in more detail in this post, along with the reasons developers and tech aficionados should give it some thought.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UFdb49RO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jkxyl08kneuokt8cwh0m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UFdb49RO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jkxyl08kneuokt8cwh0m.png" alt="Devbytes logo" width="225" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It has a tailored news stream is one of its best features. The software gathers content from a variety of sources, such as renowned tech blogs and newspapers, and presents it in a feed that is customised to your preferences.With a clear structure and straightforward design, the app enables users to easily obtain the news and information they require.It is a terrific choice for developers who want to remain up to date on the most recent tech news without spending too much time navigating through multiple sources thanks to its short articles of around 60 words.&lt;br&gt;
Users can choose the subjects and sources that most appeal to them and they will receive news updates that are specifically tailored to their areas of expertise.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VFIyvgh4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jrhr608y9sgf6ok4mt62.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VFIyvgh4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jrhr608y9sgf6ok4mt62.png" alt="Crypto watch" width="800" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app provides articles on a variety of subjects such as cybersecurity, artificial intelligence, and software development. Experts in their professions who have written the content offer insightful and unique viewpoints on the most recent changes in the market.&lt;br&gt;
The cryptowatch in the app keeps the user updated with the current prices of the cryptocurrencies.It provides push alerts to keep consumers updated on crucial tech sector news and breaking updates.It has a user-friendly interface that makes it easy to navigate and find what you're looking for. The app's clean design and intuitive layout allow you to quickly access the news, articles, and tutorials that you're interested in. The app is also available on both Android and iOS, so you can access it on your phone or tablet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IlDFqs65--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oa6x3ozpld3odk1bkdob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IlDFqs65--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oa6x3ozpld3odk1bkdob.png" alt="Product of the day" width="800" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the standout features of Devbytes is its expert analysis and insights on various tech topics. The app provides detailed articles, videos, and podcasts on subjects like programming languages, AI, and cybersecurity. These resources are created by experienced professionals in the tech industry, giving readers a valuable perspective on the latest trends and innovations.&lt;br&gt;
Devbytes is a great tech news app that provides valuable insights and updates on the latest trends and technologies in the tech industry. With its personalized news feed, in-depth analysis and insights, push notifications, user-friendly interface, and accessibility on multiple platforms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xY8St4Fe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g30koxmyc8fy6ft7f8ir.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xY8St4Fe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g30koxmyc8fy6ft7f8ir.png" alt="Tech jobs" width="800" height="1138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Devbytes is a great option for developers who want to stay informed and up-to-date in their field including the job openings. Whether you’re a seasoned developer or just getting started,It is definitely worth considering as your go-to source for tech news and insights.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Download the app &lt;a href="https://play.google.com/store/apps/details?id=com.candelalabs.devbytes&amp;amp;pli=1"&gt;here&lt;/a&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  TechCrunch
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ou6EJ-J8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n5gj57di93tw2bnou2xf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ou6EJ-J8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n5gj57di93tw2bnou2xf.png" alt="Tech crunch logo" width="157" height="85"&gt;&lt;/a&gt;&lt;br&gt;
TechCrunch is a popular tech news app that offers comprehensive coverage of the latest developments in the tech industry. The app provides articles, videos, and podcasts on a range of topics, including startups, gadgets, and social media. TechCrunch is known for its in-depth reporting and analysis, making it an essential source for tech enthusiasts and industry professionals alike.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wired
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--t8vhv_Bo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ehp3psw4poxcsyme2etc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--t8vhv_Bo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ehp3psw4poxcsyme2etc.jpg" alt="wired logo" width="320" height="208"&gt;&lt;/a&gt;&lt;br&gt;
Wired is a tech news app that provides coverage of the latest tech news, analysis, and commentary. The app offers articles, videos, and podcasts on a range of topics, including gadgets, science, and culture. Wired is known for its in-depth reporting and analysis, making it a great resource for those who want to stay informed about the latest developments in the tech industry.&lt;/p&gt;

&lt;p&gt;In conclusion, there are many great tech news apps available today that provide a convenient and efficient way to stay up-to-date on the latest developments in the tech industry. Whether you’re a tech enthusiast or a professional in the industry, these apps offer a wealth of information and insights that can help you stay informed and ahead of the curve.&lt;/p&gt;

&lt;p&gt;Thank you for reading please share it with your friends&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For such technology-related blogs visit &lt;a href="https://dev.to/pannagaperumal"&gt;click here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Demystifying Block chain and web 3.0</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Sun, 05 Mar 2023 18:44:12 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/demystifying-block-chain-and-web-30-2m65</link>
      <guid>https://dev.to/pannagaperumal/demystifying-block-chain-and-web-30-2m65</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Let’s start with a very basic understanding of the internet i.e web 1.0 and web 2.0 before diving into web 3.0. The topic of blockchain has been in the news for quite a few years. It is tech that will completely change the way we look at the internet. It is a state of the computer application of cryptography and computer power…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What is Web 3.0?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During the early days of the internet, it was created so that two computers could communicate with each other. First, web 1.0 gave the capability for devices to communicate on a network where one host can disperse information and other devices can see the information. Web 2.0 leaped and gave access to interact seamlessly with other devices all over the globe thanks to the tech giants out there who made the internet accessible to all. Web 2.0 made its growth mainly through the enormous amount of data collected, assuring so-called privacy. A lar ge portion of the data on the internet is owned by big tech companies out there.&lt;/p&gt;

&lt;p&gt;Web 3.0 is mainly developed from blockchain technology that gives users ownership of their data on the internet. It is just that simple, making the internet owned by everyone and ensuring privacy through complex cryptographic algorithms. It is aimed at changing almost every field that includes finance, healthcare, media, etc&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F8wcds3drq87mvz8yk1ul.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F8wcds3drq87mvz8yk1ul.jpg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Blockchain:Tech of the future&lt;/strong&gt;&lt;br&gt;
Now that you know about the basic of web 3 let's look into the technical aspects of blockchain technology. The blockchain simply means a chain of blocks let me explain each block will have a set of transactions that will be recorded the transaction may even be a search or a payment that you made on the network. Each network will have its cryptocurrency that is used like bitcoin, Ethereum, etc. The network will have nodes (Devices) that validate the transaction and record it into the block the user then he/she will be rewarded in the cryptocurrency of that network. One who is on the network can either be a normal user or a node. You may have heard of the term crypto mining it simply means validating the transactions by running cryptography algorithms thereby getting rewarded. &lt;/p&gt;

&lt;p&gt;In simple terms, when you are making a payment on web 2 the bank validates the payment by checking your bank balance but on web 3 fellow users of the network validate your payments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F3crda87mkgp0fdfdgj5r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F3crda87mkgp0fdfdgj5r.jpg"&gt;&lt;/a&gt;&lt;br&gt;
You may question how it secures our data, the answer is your data will not be saved in the centralized server but will be theoretically present on every device on the network in the form of cipher. Every device will have a copy of the blockchain each copy needs to be updated after every single transaction. When it comes to data security hacking is technically impossible as your data will be on millions of devices all across the globe. The identity of the user on the network will be a hexadecimal cipher code so you are just a number traveling across devices.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Applications of Block Chain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;em&gt;Crypto currency&lt;/em&gt; &lt;/u&gt;&lt;br&gt;
The finance sector will be affected to a large extent due to the rise of cryptocurrencies such as bitcoin, Ethereum, Matic, etc. This revolution will replace large financial organizations and provides authority to everyone. Just imagine you need not obey the Terms &amp;amp; Conditions of some company blindly.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;em&gt;Medicine and Healthcare&lt;/em&gt;&lt;/u&gt;&lt;br&gt;
The Health care sector will have quite impactful effect. It can help hospitals store their patient's data on a decentralized network in a more secure way that includes all the details of the patient that includes his/her medications etc. As it is decentralized any doctor can easily access the patients' data without the need to look through all the records. Just imagine even before the patient arrives in Infront of the doctor he will have the complete medical record of the patient.  &lt;/p&gt;

&lt;p&gt;It has a variety of applications in almost every field that we come across in our data day life. I would recommend every one of you to try out the web 3 space because the blockchain will be a mainstream tech a few years from now. So anyone willing to build a business then blockchain can be your choice.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;em&gt;Decentralized Apps&lt;/em&gt;&lt;/u&gt;&lt;br&gt;
 The idea of decentralized apps is purely based on the concept of a blockchain that distributes the user’s data across all devices to ensure security. This gives users freedom of speech where they can express their views and also surf the web without revealing their data to some XYZ company.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F7njim7q5be39ybheli9b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F7njim7q5be39ybheli9b.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
&lt;u&gt;&lt;em&gt;NFTs and Digital Media&lt;/em&gt;&lt;/u&gt;&lt;br&gt;
 The media space has seen a rise in a new sector called the NFTs which are the digital assets that are sold online. NFTs can be of any sort of audio, video, blog post, or even an image. Many popular organizations have sold their logos as an NFT. There are a variety of platforms that allows one to sell their artwork online for cryptocurrency one can check out Opensea&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This blog was to provide you guys with the basics of web 3.0 and blockchain, the major takeaway from this was that web 3.0 is not only for the developers and content creators but it's for everyone. Just take a few minutes to appreciate the whole development and developers who are responsible for providing a secure and entirely new approach to the internet. This is just an introduction to blockchain in the successive blog posts I would be posting a detailed blog on cryptocurrencies and explaining to you guys how one can get into the web3 by developing NFTs. Special note I will also be posting the blog on how can one develop their first decentralized application. &lt;/p&gt;

&lt;p&gt;Thank you for reading please share it with your friends &lt;br&gt;
You can checkout my other blogs here&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/pannagaperumal" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F860969%2Fea36b570-f1a4-4f73-9b08-46a3977cc61d.jpg" alt="pannagaperumal"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/pannagaperumal/top-3-tech-apps-to-try-today-cjc" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Top 3 Tech apps to try today&lt;/h2&gt;
      &lt;h3&gt;Pannaga Perumal ・ Mar 9 '23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;strong&gt;For such technology-related blogs visit &lt;a href="https://dev.to/pannagaperumal"&gt;click here&lt;/a&gt;&lt;/strong&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Hate speech recognition using python.</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Sat, 07 Jan 2023 14:37:35 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/hate-speech-recognition-using-python-2d17</link>
      <guid>https://dev.to/pannagaperumal/hate-speech-recognition-using-python-2d17</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;In the world of today's internet the people all around the globe have the right of open speech through online forums.There are a few topics on which one cannot post or write on online forms we call it Hate speech.&lt;br&gt;
So this blog gives you info about how to build an AI model that recognises hate speech on your forum.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Before diving into the actual technical aspects. Artificial intelligence has evolved to a new form when it comes to language models for example chatgpt,DallE2 etc.So these products use natural language processing and language understanding to provide results.&lt;br&gt;
The model that we are building also uses language understanding which understands the text prompt and gives the negativity score that classifies whether it is hate speech or not.&lt;/p&gt;

&lt;p&gt;We will be using python module called &lt;strong&gt;Tensorflow&lt;/strong&gt; to train our language model.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Importing modules&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import matplotlib.pyplot as plt
import os
import re
import shutil
import string
import tensorflow as tf
from tensorflow.keras import layers
from tensorflow.keras import losses
print(tf.__version__)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;Downloading dataset&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
We will be using sentiment analysis data from Stanford University this is a dataset of movie reviews along with the labels labeling them as postive and negative review.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;url = "https://ai.stanford.edu/~amaas/data/sentiment/aclImdb_v1.tar.gz"
dataset = tf.keras.utils.get_file("aclImdb_v1",url,untar=True,cache_dir='.',cache_subdir='')
dataset_dir=os.path.join(os.path.dirname(dataset),'aclImdb')

train_dir= os.path.join(dataset_dir,'train')
os.listdir(train_dir)

remove_dir =os.path.join(train_dir, 'unsup')
shutil.rmtree(remove_dir)
os.listdir(dataset_dir)

batch_size=32
seed = 42
raw_train_ds = tf.keras.utils.text_dataset_from_directory(
    'aclImdb/train',batch_size=batch_size,validation_split = 0.2,subset='training',seed=seed
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above code downloads the dataset from the website and divides it into train and test data.&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%2Fe2b1mui7nmpnirq88fw8.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%2Fe2b1mui7nmpnirq88fw8.png" alt="Image description" width="800" height="405"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Preprocessing the data&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
You can view the dataset using the below code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for text_batch, label_batch in raw_train_ds.take(1):
    for i in range(3):
        print("Review",text_batch.numpy()[i])
        print("Label",label_batch.numpy()[i])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we will group out the train and test datasets into variables&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;raw_val_ds = tf.keras.utils.text_dataset_from_directory(
    'aclImdb/train',batch_size=batch_size,
    validation_split=0.2,
    subset='validation',
    seed = seed
)
raw_test_ds=tf.keras.utils.text_dataset_from_directory('aclImdb/test',
batch_size=batch_size)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then as we derive data from webpages we need to remove html tags and other symbols like emojis etc so we define a custom standardization function that standardizes the data. Also we implement the function as a vectorization layer so that it can be used in our model.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def custom_standardisation(input_data):
    lowercase=tf.strings.lower(input_data)
    stripped_html= tf.strings.regex_replace(lowercase,'&amp;lt;br /&amp;gt;',' ')
    return tf.strings.regex_replace(stripped_html,'[%s]' %re.escape(string.punctuation),
    '')        

max_features = 10000
sequence_length=250

#creating a layer that applies custom standardization
vectorize_layer=layers.TextVectorization(
    standardize=custom_standardisation, max_tokens=max_features,
    output_mode='int',
    output_sequence_length=sequence_length
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you can view the results of vector layer using below code.(optional)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print("Review",first_review)
print("label", raw_train_ds.class_names[first_label])
print("vectorized Review", vectorize_text(first_review, first_label))
print("1287 -----&amp;gt;",vectorize_layer.get_vocabulary()[1287])
print(" 313 ----&amp;gt;",vectorize_layer.get_vocabulary()[313])
print("vocabulary size:{}".format(len(vectorize_layer.get_vocabulary())))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;Defining the model&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Now we define our actual language model by taking the standardized input by using custom layer that automates the pre processing.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;train_ds = raw_train_ds.map(vectorize_text)
val_ds = raw_val_ds.map(vectorize_text)
test_ds=raw_test_ds.map(vectorize_text)

AUTOTUNE= tf.data.AUTOTUNE

train_ds=train_ds.cache().prefetch(buffer_size=AUTOTUNE)
val_ds=val_ds.cache().prefetch(buffer_size=AUTOTUNE)
test_ds = test_ds.cache().prefetch(buffer_size=AUTOTUNE)

#building the model with custom layer
embedding= 16
model = tf.keras.Sequential([
   #vectorize_layer,
    layers.Embedding(max_features + 1,embedding),
    layers.Dropout(0.2),
    layers.GlobalAvgPool1D(),
    layers.Dropout(0.2),
    layers.Dense(1),
    #layers.Activation('sigmoid')
    ])
model.summary()

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

&lt;/div&gt;



&lt;p&gt;We compile the model with the loss function optimizer and the number of epochs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;model.compile(
        optimizer='adam',
loss=losses.BinaryCrossentropy(from_logits=True),
metrics=['BinaryAccuracy'])
epochs=10

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

&lt;/div&gt;



&lt;p&gt;history= model.fit(&lt;br&gt;
    train_ds,&lt;br&gt;
    validation_data=val_ds,&lt;br&gt;
    epochs=epochs&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;loss , accuracy= model.evaluate(test_ds)&lt;br&gt;
print("loss: ",loss)&lt;br&gt;
print("Accuracy: ",accuracy)&lt;/p&gt;

&lt;p&gt;We will modify and finalize the model.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;final_model = tf.keras.Sequential([
    vectorize_layer,
    model,
    layers.Activation('sigmoid')
])
final_model.compile(loss=losses.BinaryCrossentropy(from_logits=False),optimizer='adam',metrics=['accuracy'])

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

&lt;/div&gt;



&lt;p&gt;Hurray you have created a model that automates the process of detecting hate speech.&lt;br&gt;
You can view the learning curve of the model through the below code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;history_dict=history.history
history_dict.keys()
acc = history_dict['binary_accuracy']
val_acc= history_dict['val_binary_accuracy']
loss=history_dict['loss']
val_loss=history_dict['val_loss']
epochs=range(1, len(acc)+1)
#bo for blue dot
plt.plot(epochs, loss, 'bo', label='Training loss')
#b for blue solid line
plt.plot(epochs, val_loss,'b',label='Validation loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.show()
#bo for blue dot
plt.plot(epochs, acc, 'bo', label='Training loss')
#b for blue solid line
plt.plot(epochs, val_acc,'b',label='Validation loss')
plt.xlabel('Epochs')
plt.ylabel('Accuracy')
plt.show()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;User Interface&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
In this blog we have developed a basic user interface that asks for the prompt by the user and returns the negativity score.Below code is the implementation of the same.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import numpy as np
examples = []
q=input("enter a review: \n")
examples.append(q)
p=final_model.predict(examples)
print('negativity score',end=' ')
print(p[-1])  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can further deploy the model in your website that provides you a alert whenever it detects hate speech on your forum.&lt;/p&gt;

&lt;p&gt;Thank you for reading the blog.&lt;br&gt;
For more such informative blogs do follow.&lt;br&gt;
 share it with your friends and family.😁&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>What makes "MAANG special?</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Fri, 25 Nov 2022 05:53:36 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/what-makes-maang-special-4laj</link>
      <guid>https://dev.to/pannagaperumal/what-makes-maang-special-4laj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;For all who don't know what MAANG is it's an abbreviation which stands for&lt;br&gt;
Meta,Apple,Amazon,Netflix and Google. Have you wondered why these big tech companies are so successfull.Let us try to go a little deeper and understand.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In a conventional organization ther will be a hierarchy of employees like CEO,manger,team lead,team member.This hirarchy will sometime create a non friendly working atmosphere to it's employees this reduces the productivity of the employees.&lt;br&gt;
Here's where the MAANG companies takes over by understanding the problem they have aimed to create a best working atmosphere to its employees.&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%2F3ed9r7ci6vleh1fqpaki.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%2F3ed9r7ci6vleh1fqpaki.jpg" alt="'Google workplace'" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These big tech companies creates a bond between the employees and the company to create a homely atmosphere.The work culture here will be lot more than just getting paid for the job they do.&lt;br&gt;
They give their employees a identity one who works in google is googler And also they provide dedicated hours of their work for the employees where they can work on the project of their intrest this feature is one of the crowd major reason why MAANG is dream company for many techies.&lt;br&gt;
The book '&lt;strong&gt;The culture code&lt;/strong&gt;' explain how these big teams work.The book explains the in and out of all the successful and well performing teams.&lt;/p&gt;

&lt;p&gt;Also they try to keep their work places creative as possible so as to boost their performance.Also these workplaces will be covered with lush greenery as staying with the nature gives positive energy.&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%2Fshm65pnjcvo42i5u5wry.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%2Fshm65pnjcvo42i5u5wry.jpg" alt="Amazon workplace" width="770" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The above picture is the Amazon headquarters in silicon valley the lush green surrounding makes the place beautiful.These workplace has replaced the old cubicle format with small discussion rooms where employees can collaborate on their projects.Every corner of the place will have a white board where people can display their thoughts and ideas. Even the smallest thing that we make in our work culture may affect the company's growth.&lt;/p&gt;

&lt;p&gt;By taking these MAANG companies as their inspiration the start ups are incorporating the changes and are creating a healthy work atmosphere for its employees.&lt;/p&gt;

&lt;h2&gt;
  
  
  how to build one?
&lt;/h2&gt;

&lt;p&gt;Here are few important points that you should consider.&lt;br&gt;
Actually building does not mean building the next tech empire.The principles can be applied to almost every team and a community whether it may be a football team or a Tesla production line.To establish such a organisation you need to create a feeling of oneness among them.&lt;br&gt;
Few points that must be considered,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create a vulnerability&lt;br&gt;
Develop a feeling where the companies problem is his problem the company's success will be his success that motivates him to work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Respect every opinion&lt;br&gt;
The lead must hear to everyone's suggestions,as people tend to stay where they are valued.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give them me time &lt;br&gt;
Every member must be given his me time where he has the liberty to do or work on the things of his/her intrest this makes rejoice.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So,big tech empires are not only  built on big projects but also in small and creative changes that makes them stand out and create value for both it's customers and employees.&lt;/p&gt;

&lt;p&gt;For more such inspiring blogs&lt;br&gt;
&lt;a href="//dev.to/Pannagaperumal"&gt;Follow&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/ps-pannaga" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>tooling</category>
      <category>development</category>
    </item>
    <item>
      <title>Are we living inside Our Mobiles?</title>
      <dc:creator>Pannaga Perumal</dc:creator>
      <pubDate>Wed, 11 May 2022 19:01:00 +0000</pubDate>
      <link>https://dev.to/pannagaperumal/are-we-living-inside-our-mobiles-29nk</link>
      <guid>https://dev.to/pannagaperumal/are-we-living-inside-our-mobiles-29nk</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DJy4SWn_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kpbx67y0odg909kmiden.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DJy4SWn_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kpbx67y0odg909kmiden.png" alt="Hooked to phones" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Have you ever thought how frequently do you check your phones? How many hours do you spend on social media daily? I guess most of you will be spending more than half of your day on social media. What makes social media so addictive...(have you ever thought)&lt;br&gt;
Answer of some may be No.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The reason behind these platforms becoming so addictive is the developers working all day long behind the screens you see.&lt;/p&gt;

&lt;p&gt;Few days ago I read a book named "&lt;strong&gt;Hooked: How to build habit building products&lt;/strong&gt;" written by Neir Eyal(professor at Stanford business school.&lt;br&gt;
After reading the book I got answers to my questions. In this book Neir explains the "hooked model" that is used by the almost all the social media platform that you see around. The main motive behind these platforms are user attention span, and make them spend more time on their platform.&lt;br&gt;
This is accomplished by giving the user rewards(not the material ones) but the pleasure.&lt;br&gt;
For example Every time you visit &lt;u&gt;Instagram&lt;/u&gt; you will never get bored because it provides with the photos that your friends have shared,likes,comments etc. You are much unlikely to stop at one photo(post) you will start scrolling, as you go on the posts will keep on loading make you spend hours together on the platform.&lt;/p&gt;

&lt;p&gt;As a add on the data that the platform receives uses that to understand their users better and hence keeping them hooked.&lt;br&gt;
You may have noticed people saying "&lt;strong&gt;&lt;em&gt;I'll google it&lt;/em&gt;&lt;/strong&gt;" instead of "&lt;strong&gt;&lt;em&gt;I'll do some re-search on it&lt;/em&gt;&lt;/strong&gt;" there is no dictionary that say google and research are synonyms but, the amount of convenience, pleasure and usability that google provides, has made that change. The developers who build these habit building product focus on more on their user psychology in order to make them keep hooked. The platform focuses on the insecurity that the user is facing they solve that in security there giving them pleasure.&lt;/p&gt;

&lt;p&gt;Before the rise of online shopping people used to buy the things in the offline store, the people faced problem in going to far away shops to buy even a small thing. Online shopping gave the user the convenience of buying the stuff and delivered to their door steps.&lt;br&gt;
The convenience that it provide makes the user to the site again to buy things, in return they use your data to make you buy from their store itself thereby making it a habit.&lt;/p&gt;

&lt;p&gt;Thanks for your support!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://in.linkedin.com/in/ps-pannaga?trk=profile-badge"&gt;PS PANNAGA&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
