<?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: Malik Moazzam</title>
    <description>The latest articles on DEV Community by Malik Moazzam (@malik_moazzam_70b67eb69d4).</description>
    <link>https://dev.to/malik_moazzam_70b67eb69d4</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%2F4135776%2Fd77e01cc-4759-4fc7-802f-e3222b411667.jpeg</url>
      <title>DEV Community: Malik Moazzam</title>
      <link>https://dev.to/malik_moazzam_70b67eb69d4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/malik_moazzam_70b67eb69d4"/>
    <language>en</language>
    <item>
      <title>The Secret Code POWs Tapped Through Prison Walls (No Radio, No Ink, Just Knuckles)</title>
      <dc:creator>Malik Moazzam</dc:creator>
      <pubDate>Wed, 23 Sep 2026 12:51:19 +0000</pubDate>
      <link>https://dev.to/malik_moazzam_70b67eb69d4/the-secret-code-pows-tapped-through-prison-walls-no-radio-no-ink-just-knuckles-3on4</link>
      <guid>https://dev.to/malik_moazzam_70b67eb69d4/the-secret-code-pows-tapped-through-prison-walls-no-radio-no-ink-just-knuckles-3on4</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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft6y8mzfagip3148kxyt9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft6y8mzfagip3148kxyt9.png" alt=" " width="799" height="304"&gt;&lt;/a&gt;In 1965, US Navy pilot Charles Boyd was shot down over North Vietnam and taken to the prison later nicknamed the "Hanoi Hilton." Guards forbade any talking between prisoners. What they couldn't stop was tapping.&lt;/p&gt;

&lt;p&gt;Boyd and fellow POWs used a system that traces directly back to Morse code, adapted into something called "tap code" — a 5x5 grid where letters are represented by a pair of knock counts (row, then column). No dots, no dashes, no equipment. Just knuckles on concrete, or a spoon on a pipe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a Grid Instead of Dots and Dashes
&lt;/h2&gt;

&lt;p&gt;Standard Morse relies on two clearly different signal lengths — short and long. That's easy to send with a key or a flashlight, but nearly impossible to send reliably by tapping, since a "long tap" and a "short tap" sound almost identical through a wall. So POWs (the method is credited to Air Force Captain Carlyle "Smitty" Harris, who'd learned a version of it during survival training) swapped duration-based encoding for &lt;em&gt;count&lt;/em&gt;-based encoding: tap, pause, tap-tap = row 1, column 2 = the letter "B."&lt;/p&gt;

&lt;p&gt;It's a small but clever engineering trade-off — same underlying goal (compress the alphabet into a physical signal) as Morse code, but re-optimized for a completely different channel with different noise characteristics. Anyone who's worked with signal encoding will recognize the pattern: the "protocol" changes shape depending on the medium, even when the information being sent is identical.&lt;/p&gt;

&lt;p&gt;Prisoners used tap code to share names, warn each other about interrogations, and — perhaps most importantly — to simply stay sane and connected during years of isolation. Entire conversations happened one knock at a time, through walls, without guards ever noticing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trying It Yourself
&lt;/h2&gt;

&lt;p&gt;If you want to see how the grid system actually maps letters (and how it compares to standard dot-dash Morse), there's a breakdown of it here: &lt;a href="https://quickmorse.com/tapping-morse-code/" rel="noopener noreferrer"&gt;Tapping Morse Code — How It Works&lt;/a&gt;. You can also cross-reference it against the &lt;a href="https://quickmorse.com/morse-code-alphabet/" rel="noopener noreferrer"&gt;full Morse alphabet&lt;/a&gt;, or run text through a live &lt;a href="https://quickmorse.com/" rel="noopener noreferrer"&gt;Morse translator&lt;/a&gt; to see the dot-dash version side by side.&lt;/p&gt;

&lt;p&gt;Wild that a wartime survival hack from the 1960s and a 19th-century telegraph encoding scheme are, underneath it all, solving the exact same compression problem.&lt;/p&gt;

</description>
      <category>history</category>
      <category>morsecode</category>
      <category>showdev</category>
      <category>todayilearned</category>
    </item>
    <item>
      <title>Morse Code Isn't Dead: A Developer's Look at the Original Binary Encoding</title>
      <dc:creator>Malik Moazzam</dc:creator>
      <pubDate>Wed, 23 Sep 2026 12:33:07 +0000</pubDate>
      <link>https://dev.to/malik_moazzam_70b67eb69d4/morse-code-isnt-dead-a-developers-look-at-the-original-binary-encoding-4kij</link>
      <guid>https://dev.to/malik_moazzam_70b67eb69d4/morse-code-isnt-dead-a-developers-look-at-the-original-binary-encoding-4kij</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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8vle2iaks7tgywv10y96.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8vle2iaks7tgywv10y96.png" alt=" " width="799" height="304"&gt;&lt;/a&gt;Before ASCII, before Unicode, before a single bit was ever flipped in a computer, there was Morse code — arguably the first widely-used binary-ish encoding scheme in human history. As developers, we spend our days thinking about encodings, compression, and signal-to-noise ratios. Morse code nails all three, using nothing but a switch and a wire.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Original Variable-Length Encoding
&lt;/h2&gt;

&lt;p&gt;If you've ever implemented Huffman coding, Morse code will feel oddly familiar. Samuel Morse and Alfred Vail didn't just assign random dot-dash patterns to letters — they assigned &lt;em&gt;shorter&lt;/em&gt; codes to the &lt;em&gt;most frequently used&lt;/em&gt; letters in English. That's why &lt;code&gt;E&lt;/code&gt; is a single dot and &lt;code&gt;T&lt;/code&gt; is a single dash, while rarely-used letters like &lt;code&gt;Q&lt;/code&gt; and &lt;code&gt;Z&lt;/code&gt; get four symbols.&lt;/p&gt;

&lt;p&gt;This is the same core idea behind modern entropy coding: minimize the expected message length by weighting symbol length against frequency. Morse code was doing this in 1836.&lt;/p&gt;

&lt;h2&gt;
  
  
  Timing Is the Real Protocol
&lt;/h2&gt;

&lt;p&gt;The dots and dashes get all the attention, but the actual "protocol" is in the timing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A dot = 1 unit&lt;/li&gt;
&lt;li&gt;A dash = 3 units&lt;/li&gt;
&lt;li&gt;Gap between symbols in a letter = 1 unit&lt;/li&gt;
&lt;li&gt;Gap between letters = 3 units&lt;/li&gt;
&lt;li&gt;Gap between words = 7 units&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it — an entire messaging protocol defined by a single ratio. It's self-clocking, works over almost any medium that can be turned on/off (radio, light, sound, a tapped pencil), and degrades gracefully under noise — which is part of why it's still the backup communication method taught to sailors, hams, and pilots.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where It Still Matters Today
&lt;/h2&gt;

&lt;p&gt;Morse code hasn't been &lt;em&gt;required&lt;/em&gt; for a ham radio license in most countries for years, but it hasn't gone away either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's still the fastest way to send a message with almost no equipment (a flashlight, a radio carrier wave, or literally tapping on a wall)&lt;/li&gt;
&lt;li&gt;It's used as an accessibility input method for people with limited mobility&lt;/li&gt;
&lt;li&gt;SOS (&lt;code&gt;··· --- ···&lt;/code&gt;) remains the universally recognized distress signal, precisely because it needs no shared language to decode&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Playing With It
&lt;/h2&gt;

&lt;p&gt;If you want to actually see the encoding/decoding logic in action rather than just read about it, I put together a free translator that converts text to Morse and back in real time: &lt;a href="https://quickmorse.com/" rel="noopener noreferrer"&gt;QuickMorse&lt;/a&gt;. There's also a breakdown of the full &lt;a href="https://quickmorse.com/morse-code-alphabet/" rel="noopener noreferrer"&gt;alphabet and timing chart&lt;/a&gt; if you want the reference table, and a page specifically on &lt;a href="https://quickmorse.com/tapping-morse-code/" rel="noopener noreferrer"&gt;tapping Morse code by hand&lt;/a&gt; (useful if you ever want to try the "tap code" variant without any equipment at all).&lt;/p&gt;

&lt;p&gt;Would be curious if anyone here has built a Morse encoder/decoder themselves — feels like a great weekend project for playing with signal processing or Arduino/audio APIs.&lt;/p&gt;

</description>
      <category>morsecode</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How Morse Code Works: From Dots and Dashes to a Browser-Based Translator</title>
      <dc:creator>Malik Moazzam</dc:creator>
      <pubDate>Mon, 21 Sep 2026 12:43:32 +0000</pubDate>
      <link>https://dev.to/malik_moazzam_70b67eb69d4/how-morse-code-works-from-dots-and-dashes-to-a-browser-based-translator-55aj</link>
      <guid>https://dev.to/malik_moazzam_70b67eb69d4/how-morse-code-works-from-dots-and-dashes-to-a-browser-based-translator-55aj</guid>
      <description>&lt;p&gt;Morse code is one of the simplest communication systems ever created. It represents letters, numbers, and other characters using combinations of short and long signals.&lt;/p&gt;

&lt;p&gt;The basic symbols are:&lt;/p&gt;

&lt;p&gt;. = dot&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;= dash&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;A = .-&lt;br&gt;
B = -...&lt;br&gt;
C = -.-.&lt;br&gt;
S = ...&lt;br&gt;
O = ---&lt;/p&gt;

&lt;p&gt;This makes SOS:&lt;/p&gt;

&lt;p&gt;... --- ...&lt;/p&gt;

&lt;p&gt;Although the basic idea is simple, building a modern Morse code application involves much more than replacing letters with dots and dashes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Morse Code
&lt;/h2&gt;

&lt;p&gt;Morse code assigns a unique pattern to different characters. A complete system can include letters, numbers, punctuation, and special communication signals.&lt;/p&gt;

&lt;p&gt;If you're learning Morse code for the first time, this &lt;a href="https://quickmorse.com/morse-code-guide/" rel="noopener noreferrer"&gt;Morse Code Guide&lt;/a&gt; provides an overview of how the system works and how the different patterns are structured.&lt;/p&gt;

&lt;p&gt;One interesting thing about Morse code is that the system can represent the same information in several forms. A person can read dots and dashes visually, hear Morse as audio, or send it using physical signals such as tapping.&lt;/p&gt;

&lt;h2&gt;
  
  
  How a Morse Code Translator Works
&lt;/h2&gt;

&lt;p&gt;A basic text-to-Morse translator can use a JavaScript object containing character mappings.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;const morse = {&lt;br&gt;
  A: ".-",&lt;br&gt;
  B: "-...",&lt;br&gt;
  C: "-.-.",&lt;br&gt;
  D: "-..",&lt;br&gt;
  E: "."&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;The application can then:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Read the user's text.&lt;/li&gt;
&lt;li&gt;Convert it into individual characters.&lt;/li&gt;
&lt;li&gt;Find each character in the Morse mapping.&lt;/li&gt;
&lt;li&gt;Replace the character with its Morse equivalent.&lt;/li&gt;
&lt;li&gt;Join the results together.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;HELLO&lt;/p&gt;

&lt;p&gt;becomes:&lt;/p&gt;

&lt;p&gt;.... . .-.. .-.. ---&lt;/p&gt;

&lt;p&gt;The reverse process can be used to decode Morse back into normal text.&lt;/p&gt;

&lt;p&gt;You can experiment with both directions using the &lt;a href="https://quickmorse.com/" rel="noopener noreferrer"&gt;QuickMorse Morse Code Translator&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Morse Code Is More Than A-Z
&lt;/h2&gt;

&lt;p&gt;A useful Morse application should not only support the English alphabet.&lt;/p&gt;

&lt;p&gt;Morse systems can also represent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Numbers&lt;/li&gt;
&lt;li&gt;Punctuation&lt;/li&gt;
&lt;li&gt;Special signals&lt;/li&gt;
&lt;li&gt;Prosigns&lt;/li&gt;
&lt;li&gt;Different historical Morse systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prosigns are particularly interesting because they are used as special signals rather than ordinary letters. Understanding them becomes important when building a more complete Morse decoder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Timing Is Important
&lt;/h2&gt;

&lt;p&gt;Morse code is not only about dots and dashes.&lt;/p&gt;

&lt;p&gt;When Morse is transmitted as sound, timing becomes part of the information.&lt;/p&gt;

&lt;p&gt;A dot is a short signal and a dash is a longer signal. There are also specific gaps between parts of a character, between characters, and between words.&lt;/p&gt;

&lt;p&gt;The transmission speed is commonly described using words per minute, or WPM.&lt;/p&gt;

&lt;p&gt;This means a Morse audio generator needs to control things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tone duration&lt;/li&gt;
&lt;li&gt;Dot length&lt;/li&gt;
&lt;li&gt;Dash length&lt;/li&gt;
&lt;li&gt;Character spacing&lt;/li&gt;
&lt;li&gt;Word spacing&lt;/li&gt;
&lt;li&gt;Transmission speed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Changing the WPM changes the timing of the entire transmission.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a Morse Audio Decoder
&lt;/h2&gt;

&lt;p&gt;Decoding Morse from an existing dot-and-dash string is relatively straightforward.&lt;/p&gt;

&lt;p&gt;Decoding Morse from audio is much more challenging.&lt;/p&gt;

&lt;p&gt;A simplified audio decoder might work like this:&lt;/p&gt;

&lt;p&gt;Microphone&lt;br&gt;
↓&lt;br&gt;
Audio signal&lt;br&gt;
↓&lt;br&gt;
Detect signal and silence&lt;br&gt;
↓&lt;br&gt;
Measure signal duration&lt;br&gt;
↓&lt;br&gt;
Identify dot or dash&lt;br&gt;
↓&lt;br&gt;
Identify character boundaries&lt;br&gt;
↓&lt;br&gt;
Decode Morse&lt;br&gt;
↓&lt;br&gt;
Display text&lt;/p&gt;

&lt;p&gt;Real-world audio introduces additional problems such as background noise, microphone sensitivity, inconsistent transmission speed, and changes in signal volume.&lt;/p&gt;

&lt;p&gt;These challenges make audio Morse decoding an interesting browser-development project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Morse Code and Amateur Radio
&lt;/h2&gt;

&lt;p&gt;Morse code is still associated with amateur radio and continuous-wave communication, commonly called CW.&lt;/p&gt;

&lt;p&gt;Radio operators can use Morse for communication when appropriate, and learning Morse remains an important skill for many radio enthusiasts.&lt;/p&gt;

&lt;p&gt;This &lt;a href="https://quickmorse.com/morse-code-ham-radio/" rel="noopener noreferrer"&gt;Morse Code Ham Radio guide&lt;/a&gt; explains how Morse is used in amateur radio and introduces some of the concepts behind CW communication.&lt;/p&gt;

&lt;p&gt;From a development perspective, amateur radio is also an interesting example because Morse can be transmitted and received through real hardware rather than only through a website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning Morse Code
&lt;/h2&gt;

&lt;p&gt;There are several ways to learn Morse code.&lt;/p&gt;

&lt;p&gt;A traditional approach is to memorize the dot-and-dash patterns for every character.&lt;/p&gt;

&lt;p&gt;Another approach is to learn the sounds and rhythms of the characters so that they can eventually be recognized without consciously counting individual dots and dashes.&lt;/p&gt;

&lt;p&gt;Practice is important either way.&lt;/p&gt;

&lt;p&gt;A good practice system can randomly generate Morse characters and ask the learner to decode them. It can also work in the opposite direction by showing a character and asking the learner to send or identify its Morse representation.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://quickmorse.com/morse-code-practice/" rel="noopener noreferrer"&gt;Morse Code Practice tool&lt;/a&gt; can be useful for this type of interactive practice.&lt;/p&gt;

&lt;p&gt;The key is consistency. Short practice sessions repeated regularly can be more manageable than trying to memorize the complete Morse alphabet in one sitting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Morse Code in Real-World Systems
&lt;/h2&gt;

&lt;p&gt;Morse code has been used in many different communication environments throughout history.&lt;/p&gt;

&lt;p&gt;It became especially important in telegraphy and maritime communication and later remained relevant in areas such as amateur radio and navigation.&lt;/p&gt;

&lt;p&gt;Morse also appears in aviation-related systems.&lt;/p&gt;

&lt;p&gt;For example, certain radio navigation identifiers can be transmitted using Morse code. This &lt;a href="https://quickmorse.com/morse-code-aviation/" rel="noopener noreferrer"&gt;Morse Code for Aviation guide&lt;/a&gt; explains the relationship between Morse code and VOR and NDB identifiers.&lt;/p&gt;

&lt;p&gt;Morse can also be useful as an accessibility and alternative communication concept because information can be represented through sound, visual patterns, or physical signals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Morse Code as a Web Development Project
&lt;/h2&gt;

&lt;p&gt;Morse code makes a surprisingly good programming project because the basic idea can start very small and gradually become more sophisticated.&lt;/p&gt;

&lt;p&gt;A beginner can start with a simple character-mapping system.&lt;/p&gt;

&lt;p&gt;From there, additional features can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text-to-Morse conversion&lt;/li&gt;
&lt;li&gt;Morse-to-text decoding&lt;/li&gt;
&lt;li&gt;Audio playback&lt;/li&gt;
&lt;li&gt;WPM controls&lt;/li&gt;
&lt;li&gt;Keyboard input&lt;/li&gt;
&lt;li&gt;Morse practice exercises&lt;/li&gt;
&lt;li&gt;Audio decoding&lt;/li&gt;
&lt;li&gt;Responsive interfaces&lt;/li&gt;
&lt;li&gt;Accessibility features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates an excellent opportunity to learn JavaScript while building something users can actually interact with.&lt;/p&gt;

&lt;p&gt;It also demonstrates an important software-development principle: a simple concept can require considerably more engineering once real-world input and usability are introduced.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Morse code may have originated in the era of telegraphy, but the underlying concept remains interesting for modern developers.&lt;/p&gt;

&lt;p&gt;The basic system uses only short and long signals, yet those signals can represent complete messages.&lt;/p&gt;

&lt;p&gt;When you try to turn Morse code into a modern web application, you encounter interesting challenges involving string processing, timing, audio, user interaction, decoding, and accessibility.&lt;/p&gt;

&lt;p&gt;That makes Morse code more than just a historical communication system. It can also be a practical project for learning how software turns a simple concept into an interactive tool.&lt;/p&gt;

&lt;p&gt;If you want to experiment with Morse code directly in your browser, you can try the &lt;a href="https://quickmorse.com/" rel="noopener noreferrer"&gt;QuickMorse Morse Code Translator&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>seo</category>
      <category>css</category>
    </item>
  </channel>
</rss>
