<?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: Bharath Muppa</title>
    <description>The latest articles on DEV Community by Bharath Muppa (@bharathmuppa).</description>
    <link>https://dev.to/bharathmuppa</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F30784%2F6dfc1933-1638-461f-be9b-2313104e304a.jpeg</url>
      <title>DEV Community: Bharath Muppa</title>
      <link>https://dev.to/bharathmuppa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bharathmuppa"/>
    <language>en</language>
    <item>
      <title>Blockchain Beginner guide</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Wed, 21 May 2025 13:15:52 +0000</pubDate>
      <link>https://dev.to/entangledcognition/blockchain-beginner-guide-4m3o</link>
      <guid>https://dev.to/entangledcognition/blockchain-beginner-guide-4m3o</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Blockchain has evolved from a niche concept underpinning Bitcoin to a rich ecosystem of cryptocurrencies, smart contracts, decentralized finance (DeFi), non-fungible tokens (NFTs), Web3.0, and more. At first glance, terms like Bitcoin, Ethereum, Solana, ADA, NFT, DeFi, Web3.0, Binance, MetaMask, and MEW can feel overwhelming. This article breaks down core concepts, traces key milestones, explains why Bitcoin and base chains (Layer 1) were needed, and compares major platforms (Ethereum, Solana, Polygon, XRP) as well as the latest consensus algorithms.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Brief History &amp;amp; Interesting Facts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Early Inspirations (1991–2008)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1991&lt;/strong&gt;: Haber &amp;amp; Stornetta propose a tamper-evident timestamping scheme.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1998–2004&lt;/strong&gt;: “b-money,” “bit gold,” and “Reusable Proofs of Work” lay groundwork for distributed digital cash.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Bitcoin’s Genesis&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Oct 31, 2008&lt;/strong&gt;: Satoshi Nakamoto’s whitepaper introduces a peer-to-peer ledger, secured by Proof of Work and capped supply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jan 3, 2009&lt;/strong&gt;: Genesis block mined, embedding a headline on bank bailouts—signaling distrust of centralized finance.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Ethereum &amp;amp; Beyond&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2015&lt;/strong&gt;: Ethereum launches with smart contracts, spawning a new wave of dApps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2017–today&lt;/strong&gt;: Scalability challenges spur Layer 2 rollups and alternative Layer 1 chains (Solana, Cardano, Polkadot, Avalanche).&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why We Needed Bitcoin
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Trustless Transactions&lt;/strong&gt;: Eliminate banks and processors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Censorship Resistance&lt;/strong&gt;: Transact globally, regardless of local controls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digital Scarcity&lt;/strong&gt;: 21 million-coin cap makes Bitcoin “programmable gold.”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Financial Inclusion&lt;/strong&gt;: Unbanked users need only internet and a wallet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Immutable Ledger&lt;/strong&gt;: Transparent, auditable history without alteration.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Why Layer 1 Matters
&lt;/h2&gt;

&lt;p&gt;Layer 1 blockchains are the &lt;strong&gt;foundations&lt;/strong&gt; upon which everything else is built. They provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Security &amp;amp; Finality&lt;/strong&gt;
Native consensus (PoW, PoS, BFT) secures every transaction permanently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Availability&lt;/strong&gt;
Every node holds or can access the full transaction history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On-Chain Computation&lt;/strong&gt;
Smart contracts execute deterministically in a shared runtime (e.g., EVM, Solana VM).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Effects&lt;/strong&gt;
More users and developers on a single chain strengthen liquidity, tooling, and ecosystem growth.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without a robust Layer 1, Layer 2 solutions or tokens would lack a common source of truth, endangering security and decentralization. Layer 1 is where your “true” balances, contracts, and state transitions live.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Terminology Refresher
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node&lt;/strong&gt;: Participant storing/validating chain data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consensus Algorithm&lt;/strong&gt;: Protocol for agreeing on blocks (PoW, PoS, BFT).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Contract&lt;/strong&gt;: On-chain code that self-executes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;dApp&lt;/strong&gt;: Decentralized application built atop smart contracts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coin vs. Token&lt;/strong&gt;: Native currency vs. asset issued on another chain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gas&lt;/strong&gt;: Fee to process transactions or contracts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wallet&lt;/strong&gt;: Key-management interface (MetaMask, MEW).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CEX vs. DEX&lt;/strong&gt;: Centralized vs. on-chain exchange platforms.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Consensus Algorithms
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Proof of Work (PoW)&lt;/strong&gt;: Energy-intensive mining (Bitcoin).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proof of Stake (PoS)&lt;/strong&gt;: Validators lock tokens to propose/validate blocks (Ethereum, Cardano).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proof of History (PoH) + PoS&lt;/strong&gt;: Solana’s timestamped ledger for ultra-fast finality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Federated/BFT-style&lt;/strong&gt;: Trusted validator sets reach Byzantine-fault-tolerant agreement (XRP Ledger).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Layer 1 vs. Layer 2
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Layer 1 (L1)&lt;/strong&gt;: The base chain—handles security, data availability, on-chain execution.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Layer 2 (L2)&lt;/strong&gt;: Scalability overlays—state channels (Lightning), sidechains (Polygon PoS), rollups (Optimistic, ZK).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Why L2?&lt;/strong&gt; Lower fees, higher throughput, while inheriting L1’s security guarantees.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Comparing Major Layer 1 Platforms
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Consensus&lt;/th&gt;
&lt;th&gt;TPS&lt;/th&gt;
&lt;th&gt;Smart Contracts&lt;/th&gt;
&lt;th&gt;Native Token&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bitcoin&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PoW (SHA-256)&lt;/td&gt;
&lt;td&gt;~7&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;BTC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ethereum&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PoS (Casper)&lt;/td&gt;
&lt;td&gt;15–30&lt;/td&gt;
&lt;td&gt;Yes (EVM)&lt;/td&gt;
&lt;td&gt;ETH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Solana&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PoH + PoS&lt;/td&gt;
&lt;td&gt;~2,000&lt;/td&gt;
&lt;td&gt;Yes (Rust, C)&lt;/td&gt;
&lt;td&gt;SOL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cardano&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PoS (Ouroboros)&lt;/td&gt;
&lt;td&gt;~250&lt;/td&gt;
&lt;td&gt;Yes (Plutus)&lt;/td&gt;
&lt;td&gt;ADA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;XRP Ledger&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Federated Consensus&lt;/td&gt;
&lt;td&gt;~1,500&lt;/td&gt;
&lt;td&gt;Limited (Hooks API)&lt;/td&gt;
&lt;td&gt;XRP&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Global Adoption: How the World Is Embracing Blockchains
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Emerging Markets &amp;amp; Remittances&lt;/strong&gt;
– Users in Latin America, Africa, and Southeast Asia send cross-border funds cheaply via BTC or stablecoins, bypassing high remittance fees.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Central Bank Digital Currencies (CBDCs)&lt;/strong&gt;
– Over 100 nations are researching or piloting digital currencies to modernize payments (e.g., China’s e-CNY, Nigeria’s e-Naira).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise &amp;amp; Supply Chain&lt;/strong&gt;
– IBM’s Food Trust tracks produce from farm to retailer; Maersk’s TradeLens logs shipping events on a private chain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decentralized Finance (DeFi)&lt;/strong&gt;
– Billions in TVL (Total Value Locked) across lending (Aave), automated market makers (Uniswap), and yield aggregators (Yearn).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Art &amp;amp; Entertainment&lt;/strong&gt;
– Artists and game studios mint NFTs (digital art, in-game items), building new revenue models and fan engagement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regulatory &amp;amp; Institutional Interest&lt;/strong&gt;
– Large funds (BlackRock, Fidelity) have launched Bitcoin ETFs; regulators are crafting frameworks for custody, AML/KYC, and token classification.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Latest Innovations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DAG Protocols&lt;/strong&gt; (IOTA, Hedera): High throughput via graph-based ledgers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid Models&lt;/strong&gt;: PoW bootstrapping + PoS security or PoS + BFT finality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Knowledge Advances&lt;/strong&gt;: Private transactions, succinct proofs for rollups and layer 1s alike.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Blockchain’s journey—from a simple distributed linked list to a multi-layered global network—has been driven by the need for trustless value transfer, programmable scarcity, and open participation. Layer 1 chains form the bedrock that secures and coordinates every transaction and smart contract, while Layer 2 solutions and emerging innovations propel scalability. As enterprises, nations, and individual users worldwide adopt blockchain technology—whether for payments, DeFi, or digital identity—understanding these layers, their origins, and their real-world impact will help you navigate and leverage the next generation of the internet.&lt;/p&gt;

&lt;p&gt;Popcorn Time&lt;br&gt;
If you need more info about the blockchain or consensus algorithms watch these &lt;a href="https://www.youtube.com/watch?v=_160oMzblY8&amp;amp;list=PLSPHsfEaKku9-DW80RRab8Lww2tUr3TKI" rel="noopener noreferrer"&gt;playlist&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>nft</category>
      <category>token</category>
      <category>web3</category>
    </item>
    <item>
      <title>🔌 Demystifying ARPANET: The Spark Before the Web</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Wed, 21 May 2025 12:29:08 +0000</pubDate>
      <link>https://dev.to/entangledcognition/demystifying-arpanet-the-spark-before-the-web-4ci</link>
      <guid>https://dev.to/entangledcognition/demystifying-arpanet-the-spark-before-the-web-4ci</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Before the Web was woven, the world’s first packet-switched network — ARPANET — laid the foundation for everything to come.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  In the Shadow of the Cold War
&lt;/h2&gt;

&lt;p&gt;The year was 1969. America was racing to the moon, dodging nuclear paranoia, and pouring resources into scientific supremacy.&lt;/p&gt;

&lt;p&gt;The U.S. Department of Defense’s research agency, &lt;strong&gt;ARPA (Advanced Research Projects Agency)&lt;/strong&gt;, had one problem: how could scientists at distant universities &lt;strong&gt;share computer resources&lt;/strong&gt; in real-time?&lt;/p&gt;

&lt;p&gt;Back then, computers were massive, expensive, and isolated. If researchers at MIT wanted to run programs on a computer at Stanford, they’d often have to fly in or use slow telephone connections.&lt;/p&gt;

&lt;p&gt;So ARPA did something radical: it funded a new kind of network — one that could &lt;strong&gt;send digital data in packets&lt;/strong&gt; across multiple unreliable channels. The result: &lt;strong&gt;ARPANET&lt;/strong&gt;, the ancestor of the modern Internet.&lt;/p&gt;




&lt;h2&gt;
  
  
  The First Connection
&lt;/h2&gt;

&lt;p&gt;On &lt;strong&gt;October 29, 1969&lt;/strong&gt;, at 10:30 p.m., a UCLA student typed &lt;code&gt;login&lt;/code&gt; into a terminal to connect to a remote computer at Stanford.&lt;/p&gt;

&lt;p&gt;The system crashed after the first two letters — &lt;code&gt;lo&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;But history was made: the &lt;strong&gt;first inter-networked message&lt;/strong&gt; had been sent.&lt;/p&gt;

&lt;p&gt;Within months, ARPANET linked four key universities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UCLA&lt;/li&gt;
&lt;li&gt;Stanford Research Institute (SRI)&lt;/li&gt;
&lt;li&gt;UC Santa Barbara&lt;/li&gt;
&lt;li&gt;University of Utah&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The era of &lt;strong&gt;packet-switched networking&lt;/strong&gt; had begun.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Worked
&lt;/h2&gt;

&lt;p&gt;Unlike the circuit-switched phone system, ARPANET broke data into &lt;strong&gt;packets&lt;/strong&gt;, each containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A destination address&lt;/li&gt;
&lt;li&gt;Payload (the data)&lt;/li&gt;
&lt;li&gt;Sequence information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These packets traveled independently, hopped through routers (then called &lt;strong&gt;IMP&lt;/strong&gt;s – Interface Message Processors), and were &lt;strong&gt;reassembled at the destination&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This made ARPANET resilient to node failures — a key advantage in military thinking.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Protocol Before the Protocols
&lt;/h2&gt;

&lt;p&gt;Initially, ARPANET used &lt;strong&gt;NCP (Network Control Protocol)&lt;/strong&gt;, which allowed basic host-to-host communication and established the groundwork for reliable connections between machines. However, NCP lacked flexibility for larger-scale growth and didn't support addressing schemes that modern networking required.&lt;/p&gt;

&lt;p&gt;In response, the network transitioned in 1983 to &lt;strong&gt;TCP/IP (Transmission Control Protocol / Internet Protocol)&lt;/strong&gt; — a more modular, scalable protocol suite that separated how data was sent (IP) from how it was guaranteed and ordered (TCP). This upgrade made the network resilient, decentralized, and interoperable across different hardware and operating systems.&lt;/p&gt;

&lt;p&gt;With TCP/IP as the foundation, several important protocols emerged:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FTP (File Transfer Protocol)&lt;/strong&gt; – introduced in the early 1970s, it enabled users to upload and download files between computers remotely, using authenticated logins or anonymous access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telnet&lt;/strong&gt; – one of the earliest remote terminal protocols, it allowed users to log into another computer over ARPANET as if sitting at a local terminal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SMTP (Simple Mail Transfer Protocol)&lt;/strong&gt; – laid the foundation for email transmission between servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DNS (Domain Name System)&lt;/strong&gt; – introduced in 1984, it replaced numeric IP addresses with human-readable domain names.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These protocols collectively allowed researchers and early users to navigate, communicate, and transfer data long before the World Wide Web appeared.&lt;/p&gt;

&lt;p&gt;Every major system that followed — including email, FTP, Telnet, and eventually HTTP — was layered on top of this evolving protocol backbone. — email, FTP, Telnet, and eventually HTTP — was layered on top of this backbone.&lt;/p&gt;




&lt;h2&gt;
  
  
  Other Contenders in Parallel
&lt;/h2&gt;

&lt;p&gt;While ARPANET was the most successful and well-funded packet-switched network, it wasn’t the only attempt.&lt;/p&gt;

&lt;h3&gt;
  
  
  OGAS – The Soviet Network Vision (1960s–1980s)
&lt;/h3&gt;

&lt;p&gt;The Soviet Union had its own ambitious project: &lt;strong&gt;OGAS (National Automated System for Computation and Information Processing)&lt;/strong&gt;. Proposed by cyberneticist &lt;strong&gt;Victor Glushkov&lt;/strong&gt;, OGAS aimed to connect computers across the USSR to manage its economy in real-time.&lt;/p&gt;

&lt;p&gt;It was designed as a three-tier network with nodes at factories, regional hubs, and a central planning institute. Though visionary, OGAS was hindered by bureaucratic resistance, Cold War secrecy, and a lack of technological resources. It never moved beyond pilot stages.&lt;/p&gt;

&lt;h3&gt;
  
  
  CYCLADES – France’s Elegant Simplicity (1970s)
&lt;/h3&gt;

&lt;p&gt;Led by &lt;strong&gt;Louis Pouzin&lt;/strong&gt;, the French &lt;strong&gt;CYCLADES&lt;/strong&gt; network was a major influence on Internet design. It introduced the idea of &lt;strong&gt;end-to-end responsibility&lt;/strong&gt;, where intelligence lies in the endpoints, not the network — a concept that inspired the design of &lt;strong&gt;TCP/IP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Though CYCLADES lost funding in favor of France’s PTT-run Transpac, its architectural ideas endured.&lt;/p&gt;

&lt;h3&gt;
  
  
  German Academic Networks
&lt;/h3&gt;

&lt;p&gt;In West Germany, initiatives like &lt;strong&gt;WIN (Wissenschaftsnetz)&lt;/strong&gt; and later &lt;strong&gt;DFN (Deutsches Forschungsnetz)&lt;/strong&gt; connected universities and research institutes. They often collaborated with European networks like EARN (European Academic and Research Network), though their designs were layered over existing telecom infrastructure.&lt;/p&gt;

&lt;p&gt;While none of these projects scaled like ARPANET, they reflected a &lt;strong&gt;global push toward networked computing&lt;/strong&gt; and contributed ideas, talent, and urgency to the future Internet.&lt;/p&gt;

&lt;h2&gt;
  
  
  From Military Roots to Civilian Use
&lt;/h2&gt;

&lt;p&gt;Though ARPANET began as a defense project, its greatest contributions came in academia:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Email&lt;/strong&gt; emerged in the early 1970s and became the network’s killer app.&lt;/li&gt;
&lt;li&gt;Remote file transfer (FTP) enabled collaborative research.&lt;/li&gt;
&lt;li&gt;Open protocols encouraged interoperability and open standards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By the late 1980s, ARPANET was slowly being replaced by more commercial and international networks — but its DNA lived on.&lt;/p&gt;

&lt;p&gt;On &lt;strong&gt;February 28, 1990&lt;/strong&gt;, ARPANET was officially decommissioned.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Came After
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How NSFNET and TCP/IP Differed from ARPANET
&lt;/h3&gt;

&lt;p&gt;ARPANET laid the groundwork, but &lt;strong&gt;NSFNET&lt;/strong&gt; and &lt;strong&gt;TCP/IP&lt;/strong&gt; expanded and refined the architecture of global networking.&lt;/p&gt;

&lt;h4&gt;
  
  
  Connectivity Model:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ARPANET&lt;/strong&gt; used dedicated leased lines between a small number of nodes with &lt;strong&gt;IMP (Interface Message Processor)&lt;/strong&gt; routers. Its connectivity was &lt;strong&gt;limited and manually provisioned&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NSFNET&lt;/strong&gt; leveraged regional academic networks and higher-speed backbones. It introduced &lt;strong&gt;dynamic routing&lt;/strong&gt;, modular upgrades, and decentralized management.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Protocol Stack:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;ARPANET originally relied on &lt;strong&gt;NCP&lt;/strong&gt;, which lacked routing and robust addressing.&lt;/li&gt;
&lt;li&gt;TCP/IP provided a &lt;strong&gt;layered model&lt;/strong&gt; — IP for addressing and routing, TCP for reliable delivery — enabling scalable internetworking.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Access and Policy:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;ARPANET access was tightly controlled under military and academic grants.&lt;/li&gt;
&lt;li&gt;NSFNET &lt;strong&gt;intentionally opened&lt;/strong&gt; access to educational and eventually commercial entities — this shift &lt;strong&gt;enabled the birth of the public Internet&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Transition:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;By 1990, ARPANET had served its purpose.&lt;/li&gt;
&lt;li&gt;NSFNET took over, with TCP/IP becoming the universal language of the Internet.&lt;/li&gt;
&lt;li&gt;Routers replaced IMPs, and a wide array of networks began to &lt;strong&gt;autonomously interconnect&lt;/strong&gt;, forming what we now call the &lt;strong&gt;Internet&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As ARPANET faded, its foundational principles gave rise to the modern Internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  NSFNET and Internet Backbone (1985–1995)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The U.S. National Science Foundation created &lt;strong&gt;NSFNET&lt;/strong&gt;, a higher-capacity academic network.&lt;/li&gt;
&lt;li&gt;It linked universities and became the backbone for &lt;strong&gt;early Internet traffic&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Commercial use was prohibited at first but gradually opened up.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The TCP/IP Revolution (1983–1990)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;ARPANET officially adopted &lt;strong&gt;TCP/IP&lt;/strong&gt; on January 1, 1983 — a day now known as &lt;strong&gt;Flag Day&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;TCP/IP unified all research and military networks under a common language.&lt;/li&gt;
&lt;li&gt;This enabled the &lt;strong&gt;inter-network&lt;/strong&gt; — hence the term &lt;strong&gt;Internet&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Rise of the Modern Internet (1990–1995)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In 1990, &lt;strong&gt;Tim Berners-Lee&lt;/strong&gt; launched the &lt;strong&gt;World Wide Web&lt;/strong&gt; at CERN.&lt;/li&gt;
&lt;li&gt;By 1993, the first graphical web browser, &lt;strong&gt;Mosaic&lt;/strong&gt;, was released.&lt;/li&gt;
&lt;li&gt;The number of Internet hosts exploded from &lt;strong&gt;a few hundred thousand to millions&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Dot-Com Boom (1995–2000)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;NSFNET was retired, and the Internet was fully commercialized.&lt;/li&gt;
&lt;li&gt;Domains like &lt;code&gt;amazon.com&lt;/code&gt;, &lt;code&gt;google.com&lt;/code&gt;, and &lt;code&gt;ebay.com&lt;/code&gt; appeared.&lt;/li&gt;
&lt;li&gt;ISPs (Internet Service Providers) brought access to the masses.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Mobile &amp;amp; Cloud Era (2007–Present)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Smartphones turned the web into a mobile-first experience.&lt;/li&gt;
&lt;li&gt;Cloud computing (AWS, Azure, Google Cloud) redefined infrastructure.&lt;/li&gt;
&lt;li&gt;The Web now supports video streaming, real-time apps, social media, and global commerce.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From &lt;strong&gt;ARPANET's four-node experiment&lt;/strong&gt; to a &lt;strong&gt;global web of billions&lt;/strong&gt;, the Internet has evolved through cooperation, open protocols, and decades of iteration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NSFNET&lt;/strong&gt;: A more powerful network created by the National Science Foundation — precursor to the modern Internet backbone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tim Berners-Lee’s World Wide Web&lt;/strong&gt; (1990): Built on top of TCP/IP — made the net human-readable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commercial ISPs&lt;/strong&gt; and the &lt;strong&gt;Internet boom&lt;/strong&gt; of the mid-90s&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without ARPANET, none of these would exist.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the Internet Travels Across Oceans
&lt;/h2&gt;

&lt;p&gt;Today’s global internet relies heavily on &lt;strong&gt;undersea fiber-optic cables&lt;/strong&gt;, stretching tens of thousands of kilometers between continents.&lt;/p&gt;

&lt;h3&gt;
  
  
  How They're Built:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Laid by specialized ships, these cables rest on the ocean floor.&lt;/li&gt;
&lt;li&gt;At shallow depths, they're buried beneath the seabed for protection.&lt;/li&gt;
&lt;li&gt;Each cable contains multiple fiber pairs wrapped in layers of steel and waterproofing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Sharks Don’t Destroy Them:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In early days, sharks &lt;em&gt;did&lt;/em&gt; occasionally bite cables — possibly due to electromagnetic signals.&lt;/li&gt;
&lt;li&gt;Modern cables are reinforced with &lt;strong&gt;armored sheaths&lt;/strong&gt; to withstand pressure, bites, and anchors.&lt;/li&gt;
&lt;li&gt;Today, human activities (like fishing and earthquakes) are &lt;strong&gt;far more common causes&lt;/strong&gt; of damage than marine life.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These undersea arteries carry over &lt;strong&gt;95% of international data traffic&lt;/strong&gt; — making them the invisible foundation of modern connectivity.&lt;/p&gt;




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

&lt;p&gt;ARPANET was not the Web — it was &lt;strong&gt;the soil the Web grew in&lt;/strong&gt;. It showed that resilient, packet-switched communication over long distances was not just possible, but inevitable.&lt;/p&gt;

&lt;p&gt;It was a humble experiment, born out of academic need and military foresight. But it changed how we connect, communicate, and collaborate.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 Legacy Markers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🧠 The first message sent: "lo"&lt;/li&gt;
&lt;li&gt;🔗 The first four nodes formed the backbone of modern connectivity&lt;/li&gt;
&lt;li&gt;📡 TCP/IP Day (January 1, 1983) — when ARPANET officially switched to the protocols we use today&lt;/li&gt;
&lt;li&gt;🛑 ARPANET shutdown: February 28, 1990&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Written in honor of the engineers who connected four machines — and jumpstarted a planetary web.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Next Article &lt;a href="https://dev.to/entangledcognition/demystifying-www-and-the-magic-behind-it-all-fjn"&gt;Demystifying-www&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>www</category>
      <category>network</category>
      <category>computerscience</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🌐 Demystifying “www” — and the Magic Behind It All</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Wed, 21 May 2025 12:00:09 +0000</pubDate>
      <link>https://dev.to/entangledcognition/demystifying-www-and-the-magic-behind-it-all-fjn</link>
      <guid>https://dev.to/entangledcognition/demystifying-www-and-the-magic-behind-it-all-fjn</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A journey into how one man's frustration inside a particle lab created the foundation of the modern web.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Problem No One Wanted to Solve
&lt;/h2&gt;

&lt;p&gt;In 1989, deep within the sprawling scientific corridors of CERN in Geneva, Tim Berners-Lee faced a quiet but maddening challenge. Physicists were drowning in data — yet they had no shared way to access or link it.&lt;/p&gt;

&lt;p&gt;Information was locked inside incompatible systems. A document on a &lt;a href="https://www.stromasys.com/resources/understanding-the-vax-processors-architecture/#:~:text=VAX%20(Virtual%20Address%20eXtension)%20processor,set%20and%20virtual%20memory%20capacity.&amp;lt;br&amp;gt;%0A![Image%20description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bdyx35typzm5jl6qj717.png)" rel="noopener noreferrer"&gt;VAX&lt;/a&gt; machine couldn’t be easily opened by a UNIX terminal. Sharing findings required a combination of emails, FTP commands, and paper printouts. It was a fragmented world.&lt;/p&gt;

&lt;p&gt;Tim drafted a proposal: &lt;em&gt;"Information Management: A Proposal."&lt;/em&gt; It introduced a radical thought — using hypertext over the internet to interconnect documents. A web... a &lt;strong&gt;World Wide Web&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What the World Looked Like Before
&lt;/h2&gt;

&lt;p&gt;Before HTML, documents existed in a range of formats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Plain text (&lt;code&gt;.txt&lt;/code&gt;)&lt;/strong&gt; – the most common but unstructured format&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TeX/LaTeX&lt;/strong&gt; – used for academic and scientific publishing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PostScript (&lt;code&gt;.ps&lt;/code&gt;)&lt;/strong&gt; – a page description language for print-ready documents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DVI&lt;/strong&gt; – output format from TeX, used for display but not hyperlinking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SGML&lt;/strong&gt; – a powerful markup language used in publishing, but too complex for the web&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PDF&lt;/strong&gt; – introduced around 1993, but was not open or widespread yet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These formats lacked interconnectivity. Documents were isolated, static, and platform-specific. There was no way to link between them or browse them across systems. Hypertext brought the missing piece: non-linear navigation.&lt;/p&gt;

&lt;p&gt;To read a paper at CERN in 1988, you might:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Call a colleague to find where it’s stored&lt;/li&gt;
&lt;li&gt;Telnet into a remote server to navigate the directory structure or read a README&lt;/li&gt;
&lt;li&gt;Use FTP to download the actual file once you knew its exact location&lt;/li&gt;
&lt;li&gt;Open it with a compatible viewer (if you’re lucky)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Telnet was used to explore and find files interactively, while FTP was used to transfer them efficiently — especially large or binary files. This two-step process made even simple reading tasks cumbersome and error-prone.&lt;/p&gt;

&lt;p&gt;There were no links. No browsing. No shared language for content.&lt;/p&gt;

&lt;p&gt;This wasn't a problem just for CERN — it was a limitation of the entire Internet. People needed &lt;strong&gt;a better way to navigate knowledge&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Birth of Hypertext on the Net
&lt;/h2&gt;

&lt;p&gt;Tim was inspired by earlier pioneers like Ted Nelson, who had coined the term “hypertext” in 1965. Hypertext was simple: &lt;em&gt;text with links&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But what if those links could work across the entire world, over the internet?&lt;/p&gt;

&lt;p&gt;Tim envisioned a system built on three pillars:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML&lt;/strong&gt; – a language to structure documents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP&lt;/strong&gt; – a protocol to fetch those documents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;URL&lt;/strong&gt; – a global address to find each resource&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;He wrote the first HTML document:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;&lt;/span&gt;Welcome&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello, CERN!&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"page2.html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Next Page&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The First Server and a Label That Made History
&lt;/h2&gt;

&lt;p&gt;Tim didn’t stop at defining HTML. He coded the first &lt;strong&gt;HTTP server&lt;/strong&gt;, too. It ran on a NeXT workstation at CERN — a cube-shaped black machine from Steve Jobs’ company.&lt;/p&gt;

&lt;p&gt;Here’s what a simplified version of that server looked like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;send_response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;client_fd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Open HTML file and send content with HTTP headers&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Accept socket, read HTTP GET line&lt;/span&gt;
  &lt;span class="c1"&gt;// If "GET /a.html", serve file from disk&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server read incoming requests like &lt;code&gt;GET /a.html&lt;/code&gt;, opened the file from disk, and responded with a raw HTML document. The server itself didn’t “understand” HTML — it simply sent the content. &lt;strong&gt;The browser did the rendering.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🧪 A sticker on that NeXT computer read: &lt;em&gt;"This machine is a server. Do not power down!!"&lt;/em&gt; That machine served the first webpage ever.&lt;/p&gt;




&lt;h2&gt;
  
  
  Testing the Web — Without a Browser?
&lt;/h2&gt;

&lt;p&gt;Since no browser existed, Tim built that too. Using Objective-C, he created &lt;strong&gt;WorldWideWeb.app&lt;/strong&gt;, the first browser/editor in history.&lt;/p&gt;

&lt;p&gt;At that point, only machines capable of running NeXTSTEP could use the browser. So effectively, &lt;strong&gt;only Tim himself could see and interact with those first web pages&lt;/strong&gt; — until more browsers were developed for other platforms like X Window System and later Windows and Mac. The Web was functional, but its audience was limited to one.&lt;/p&gt;

&lt;p&gt;What made this browser remarkable wasn't just its ability to display HTML — it could also handle multiple protocols:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It parsed and rendered HTML visually, interpreting tags like &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It followed &lt;code&gt;http://&lt;/code&gt;, &lt;code&gt;ftp://&lt;/code&gt;, and &lt;code&gt;telnet://&lt;/code&gt; links differently&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP was handled with GET requests&lt;/li&gt;
&lt;li&gt;FTP links fetched anonymous files&lt;/li&gt;
&lt;li&gt;Telnet links launched external terminal sessions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Tim wrote the protocol logic, the rendering logic, and the link-handling flow all by hand — stitching together systems that weren’t designed to work together. His browser was more than a viewer — it was a &lt;strong&gt;universal translator for information&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🔗 You can explore a modern simulation of the browser at: &lt;a href="https://worldwideweb.cern.ch/browser" rel="noopener noreferrer"&gt;https://worldwideweb.cern.ch/browser&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The entire round-trip — from server to browser — was something Tim engineered end-to-end, often alone, and ahead of its time.&lt;/p&gt;




&lt;h2&gt;
  
  
  So, Where Did "www" Come From?
&lt;/h2&gt;

&lt;p&gt;The first website was hosted at &lt;code&gt;info.cern.ch&lt;/code&gt;, not &lt;code&gt;www.cern.ch&lt;/code&gt;. The “www” subdomain wasn’t part of Tim’s original vision.&lt;/p&gt;

&lt;p&gt;But as the web spread beyond CERN, organizations needed to separate services:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ftp.example.com&lt;/code&gt; for file transfers&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mail.example.com&lt;/code&gt; for email&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;www.example.com&lt;/code&gt; for web content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The “www” prefix became a convention — &lt;strong&gt;not a requirement&lt;/strong&gt;, just a label to mark "this is our web server."&lt;/p&gt;




&lt;h2&gt;
  
  
  When the Web Became Interactive
&lt;/h2&gt;

&lt;p&gt;Early HTML was static. Pages were read-only. But people wanted to search, sign up, submit data.&lt;/p&gt;

&lt;p&gt;By 1993–1994, Netscape and other browsers introduced &lt;strong&gt;HTML forms&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"/submit"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;button&amp;gt;&lt;/span&gt;Subscribe&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;HTTP evolved too:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support for &lt;code&gt;POST&lt;/code&gt; and &lt;code&gt;HEAD&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;MIME types&lt;/li&gt;
&lt;li&gt;Status codes like &lt;code&gt;404 Not Found&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The web became more than documents — it became &lt;strong&gt;interactive&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Came After
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1995&lt;/strong&gt;: JavaScript is born — enabling client-side interaction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1999&lt;/strong&gt;: AJAX enables background HTTP calls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2005&lt;/strong&gt;: Web 2.0 arrives — Gmail, Facebook, Google Maps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From documents to applications, the Web evolved in every direction — but its foundation still rests on &lt;strong&gt;HTML, HTTP, and URLs&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts: A Subdomain and a Dream
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;www.&lt;/code&gt; is just a subdomain. It was never essential — just helpful.&lt;br&gt;
But the ideas behind it? Those were revolutionary.&lt;/p&gt;

&lt;p&gt;The Web wasn't built by a tech giant or a marketing team. It was built by a curious mind, alone in an office at CERN, solving a simple but powerful problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎉 CERN Easter Eggs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📡 CERN is home to the &lt;strong&gt;Large Hadron Collider&lt;/strong&gt;, the world’s biggest science machine&lt;/li&gt;
&lt;li&gt;💻 The first webpage ever: &lt;a href="http://info.cern.ch" rel="noopener noreferrer"&gt;http://info.cern.ch&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🧠 Tim’s 1989 proposal was stamped by his boss as: &lt;em&gt;"Vague but exciting."&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Written in tribute to the man who clicked the first hyperlink on the World Wide Web — and quietly rewired the architecture of modern civilization.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>www</category>
      <category>javascript</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>32 bit vs 64 bit vs 128 bit</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Thu, 27 Jun 2024 20:31:54 +0000</pubDate>
      <link>https://dev.to/entangledcognition/32-bit-vs-64-bit-vs-128-bit-5d0i</link>
      <guid>https://dev.to/entangledcognition/32-bit-vs-64-bit-vs-128-bit-5d0i</guid>
      <description>&lt;h2&gt;
  
  
  Understanding 32-bit vs 64-bit vs 128-bit in Development
&lt;/h2&gt;

&lt;p&gt;In this article, we'll address some common questions you might have when buying a laptop, choosing an operating system, or downloading software.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is 32/64/128 bit?&lt;/li&gt;
&lt;li&gt;Does it correspond to the processor, OS, or software?&lt;/li&gt;
&lt;li&gt;How do you check compatibility?&lt;/li&gt;
&lt;li&gt;Why do they use only even bits and exclusively multiples of 8 in processing?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before answering these questions, let's take a brief look at the early days of computer manufacturing and its evolution.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Brief History of Microprocessors
&lt;/h2&gt;

&lt;p&gt;Leaving aside the debates about who first created the microprocessor, let's go with the widely accepted history of Intel's 4004, which was the first computer-on-a-chip (later called a microprocessor).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1972&lt;/strong&gt;: The Intel® 4004 processor, Intel’s first microprocessor, powered the Busicom calculator and paved the way for personal computers.
&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%2Fofcvy4idkdfay3toyo5h.jpg" alt="Intel 4004"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1975&lt;/strong&gt;: The Altair 8800 microcomputer, based on the Intel® 8080 microprocessor, was the first successful home or personal computer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1981&lt;/strong&gt;: The Intel® 8088 microprocessor was selected to power the IBM PC.&lt;/li&gt;
&lt;li&gt;Many other processors followed these initial chips.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key takeaway here is that the 4004 was a 4-bit chip, the 8008 was an 8-bit chip, and the 8086 was a 16-bit chip.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is 32/64/128 bit?
&lt;/h2&gt;

&lt;p&gt;In simple terms, it refers to the number of bits used in one CPU register. The CPU register is like a small storage area where the CPU keeps data it needs to access quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  32-bit Systems
&lt;/h3&gt;

&lt;p&gt;A 32-bit system means the CPU can handle 32 bits of data at once. It can address up to 4GB of RAM. This was common in older computers and some low-power devices today.&lt;/p&gt;

&lt;h3&gt;
  
  
  64-bit Systems
&lt;/h3&gt;

&lt;p&gt;A 64-bit system can handle 64 bits of data at once. It can address much more RAM, up to 16 exabytes (a theoretical limit far beyond today's needs). Most modern computers and operating systems are 64-bit because they can handle more data and perform better with large applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  128-bit Systems
&lt;/h3&gt;

&lt;p&gt;128-bit systems are not common in consumer devices yet. They can handle even more data and address an almost unlimited amount of RAM. These systems might be used in specialized applications like scientific computing, encryption, and advanced graphics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Processor, OS, or Software?
&lt;/h2&gt;

&lt;p&gt;The bit value can refer to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Processor&lt;/strong&gt;: The CPU's architecture (e.g., 32-bit or 64-bit).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operating System&lt;/strong&gt;: Whether the OS is designed for a 32-bit or 64-bit processor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Software&lt;/strong&gt;: Whether the application is built to run on a 32-bit or 64-bit OS.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How They Work Together
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A 32-bit OS can run on a 32-bit processor and use 32-bit software.&lt;/li&gt;
&lt;li&gt;A 64-bit OS can run on a 64-bit processor and use both 32-bit and 64-bit software.&lt;/li&gt;
&lt;li&gt;128-bit systems, when available, will likely follow similar compatibility rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Checking Compatibility
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Processor&lt;/strong&gt;: Check your CPU specs to see if it's 32-bit or 64-bit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operating System&lt;/strong&gt;: In the system settings, you can find if your OS is 32-bit or 64-bit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Software&lt;/strong&gt;: Software typically specifies if it requires a 32-bit or 64-bit OS.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Practical Steps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;On Windows, right-click on "This PC" or "My Computer" and select "Properties" to see system information.&lt;/li&gt;
&lt;li&gt;On macOS, click the Apple icon and select "About This Mac."&lt;/li&gt;
&lt;li&gt;For software, check the system requirements on the download page or packaging.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Even Bits and Multiples of 8?
&lt;/h2&gt;

&lt;p&gt;Processors use even bits and multiples of 8 because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Bus Width&lt;/strong&gt;: It matches the width of the data bus, allowing efficient data transfer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory Addressing&lt;/strong&gt;: It simplifies memory addressing and alignment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standardization&lt;/strong&gt;: It aligns with industry standards for data processing and storage.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Benefits of Using Multiples of 8
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Simplicity&lt;/strong&gt;: Makes designing hardware and software simpler.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatibility&lt;/strong&gt;: Ensures compatibility across different systems and devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Efficiency&lt;/strong&gt;: Improves the speed and efficiency of data processing.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Understanding the difference between 32-bit, 64-bit, and 128-bit systems helps you make informed decisions about your technology needs. Most modern systems use 64-bit technology, providing a good balance of performance and compatibility. As technology advances, we may see more 128-bit systems in specialized fields, offering even greater capabilities.&lt;/p&gt;

&lt;p&gt;By knowing these basics, you can better choose the right hardware and software for your tasks.&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>architecture</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Solving Style Issues: Angular Material MDC Migration Guide</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Mon, 19 Jun 2023 10:08:57 +0000</pubDate>
      <link>https://dev.to/bharathmuppa/complete-angular-mdc-migaration-guide-b3c</link>
      <guid>https://dev.to/bharathmuppa/complete-angular-mdc-migaration-guide-b3c</guid>
      <description>&lt;h2&gt;
  
  
  Angular Material MDC Migration
&lt;/h2&gt;

&lt;p&gt;After migrating to the latest Material Design Components (MDC), many projects, including ours, have encountered style-related issues. In this write-up, we will explain how we resolved them.&lt;/p&gt;

&lt;p&gt;We acknowledge that the core problem lies in creating components based on Material Components and modifying them to suit our specific use cases.&lt;/p&gt;

&lt;p&gt;Here are the steps we followed to migrate from Material Components to Material MDC Components.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: You can Choose legacy components, but anyways we decided to go with MDC Migration.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Steps for MDC Migration
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Upgrade Angular, Material, and run the mdc-migration script provided by the Material team.
&lt;/h4&gt;

&lt;p&gt;You can either copy this code and create a batch file to run it or execute each step individually.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@ECHO OFF
call npm i typescript@4.8.x --force
call npm i zone.js @angular/flex-layout@15.0.0-beta.42 @angular-eslint/builder@15.x @angular-eslint/eslint-plugin@15.x @angular-eslint/eslint-plugin-template@15.x @angular-eslint/schematics@15.x @angular-eslint/template-parser@15.x  --force
call npx ng update @angular/core@15 @angular/cli@15 --allow-dirty --force
call npx ng update @angular/material@15 --allow-dirty --force
call npx ng generate @angular/material:mdc-migration
PAUSE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Update your theme file
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@use&lt;/span&gt; &lt;span class="s2"&gt;'@angular/material'&lt;/span&gt; &lt;span class="n"&gt;as&lt;/span&gt; &lt;span class="n"&gt;mat&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;ec--mat-typography&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;mat&lt;/span&gt;&lt;span class="nc"&gt;.define-typography-config&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
    &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;font-family&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;aal-font-family&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
    &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;headline-4&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;mat&lt;/span&gt;&lt;span class="nc"&gt;.define-typography-level&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;aal-font-h1&lt;/span&gt;&lt;span class="o"&gt;...),&lt;/span&gt;
    &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;headline-3&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;mat&lt;/span&gt;&lt;span class="nc"&gt;.define-typography-level&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;aal-font-h2&lt;/span&gt;&lt;span class="o"&gt;...),&lt;/span&gt;
    &lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="nc"&gt;.more&lt;/span&gt; &lt;span class="nt"&gt;settings&lt;/span&gt;
&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="c"&gt;/* This is the new way of defining a theme from Angular 15 */&lt;/span&gt;
&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;ec--mat-light-theme&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;mat&lt;/span&gt;&lt;span class="nc"&gt;.define-light-theme&lt;/span&gt;&lt;span class="o"&gt;((&lt;/span&gt;
  &lt;span class="nt"&gt;color&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;
      &lt;span class="nt"&gt;primary&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;aal--mat-primary-color&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
      &lt;span class="nt"&gt;accent&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;aal--mat-accent-color&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
      &lt;span class="nt"&gt;warn&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;aal--mat-warn-color&lt;/span&gt;
  &lt;span class="o"&gt;),&lt;/span&gt;
  &lt;span class="nt"&gt;typography&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="nt"&gt;aal--mat-typography&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
  &lt;span class="nt"&gt;density&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;-1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nt"&gt;you&lt;/span&gt; &lt;span class="nt"&gt;can&lt;/span&gt; &lt;span class="nt"&gt;experiment&lt;/span&gt; &lt;span class="nt"&gt;with&lt;/span&gt; &lt;span class="nt"&gt;densities&lt;/span&gt; &lt;span class="nt"&gt;that&lt;/span&gt; &lt;span class="nt"&gt;suit&lt;/span&gt; &lt;span class="nt"&gt;your&lt;/span&gt; &lt;span class="nt"&gt;application&lt;/span&gt;
&lt;span class="o"&gt;));&lt;/span&gt;

&lt;span class="k"&gt;@include&lt;/span&gt; &lt;span class="n"&gt;mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;typography-hierarchy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;ec--mat-typography&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;@include&lt;/span&gt; &lt;span class="n"&gt;mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;core&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="c"&gt;/**
  It is important to include all component themes in the body
 */&lt;/span&gt;
&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="err"&gt;@include&lt;/span&gt; &lt;span class="err"&gt;mat.all-component-themes($aal--mat-light-theme);&lt;/span&gt;
    &lt;span class="err"&gt;@include&lt;/span&gt; &lt;span class="err"&gt;mat.button-density(-2);&lt;/span&gt; &lt;span class="err"&gt;//&lt;/span&gt; &lt;span class="err"&gt;these&lt;/span&gt; &lt;span class="err"&gt;densities&lt;/span&gt; &lt;span class="err"&gt;make&lt;/span&gt; &lt;span class="err"&gt;more&lt;/span&gt; &lt;span class="err"&gt;sense&lt;/span&gt; &lt;span class="err"&gt;for&lt;/span&gt; &lt;span class="err"&gt;my&lt;/span&gt; &lt;span class="err"&gt;project,&lt;/span&gt; &lt;span class="err"&gt;feel&lt;/span&gt; &lt;span class="err"&gt;free&lt;/span&gt; &lt;span class="err"&gt;to&lt;/span&gt; &lt;span class="err"&gt;experiment&lt;/span&gt;
    &lt;span class="err"&gt;@include&lt;/span&gt; &lt;span class="err"&gt;mat.icon-button-density(-2);&lt;/span&gt; &lt;span class="err"&gt;//&lt;/span&gt; &lt;span class="err"&gt;these&lt;/span&gt; &lt;span class="err"&gt;densities&lt;/span&gt; &lt;span class="err"&gt;make&lt;/span&gt; &lt;span class="err"&gt;more&lt;/span&gt; &lt;span class="err"&gt;sense&lt;/span&gt; &lt;span class="err"&gt;for&lt;/span&gt; &lt;span class="err"&gt;my&lt;/span&gt; &lt;span class="err"&gt;project,&lt;/span&gt; &lt;span class="err"&gt;feel&lt;/span&gt; &lt;span class="err"&gt;free&lt;/span&gt; &lt;span class="err"&gt;to&lt;/span&gt; &lt;span class="err"&gt;experiment&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;h4&gt;
  
  
  Search throughout your application and replace the following classes, if you have used them.
&lt;/h4&gt;

&lt;p&gt;Here is a comprehensive list of classes that are not automatically migrated by "ng generate @angular/material:mdc-migration"&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Old Class&lt;/th&gt;
&lt;th&gt;New Class&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;mat-tab&lt;/td&gt;
&lt;td&gt;mat-tab-label-active&lt;/td&gt;
&lt;td&gt;mdc-tab--active&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-tab-label-content&lt;/td&gt;
&lt;td&gt;mdc-tab__content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-tab-label-container&lt;/td&gt;
&lt;td&gt;mat-mdc-tab-label-container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt; mat-tab-list&lt;/td&gt;
&lt;td&gt;mat-mdc-tab-list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-tab-body-wrapper&lt;/td&gt;
&lt;td&gt;mat-mdc-tab-body-wrapper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-tab-label&lt;/td&gt;
&lt;td&gt;mat-mdc-tab&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-tab-header-pagination-controls-enabled&lt;/td&gt;
&lt;td&gt;mat-mdc-tab-header-pagination-controls-enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-tab-header-pagination&lt;/td&gt;
&lt;td&gt;mat-mdc-tab-header-pagination&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-tab-labels&lt;/td&gt;
&lt;td&gt;mat-mdc-tab-labels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mat-chip&lt;/td&gt;
&lt;td&gt;mat-chip-list&lt;/td&gt;
&lt;td&gt;mat-mdc-chip-list&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-chip-list-wrapper&lt;/td&gt;
&lt;td&gt;mat-chip-list-wrapper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mat-checkbox&lt;/td&gt;
&lt;td&gt;mat-checkbox-frame&lt;/td&gt;
&lt;td&gt;mdc-checkbox__checkmark&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-checkbox-label&lt;/td&gt;
&lt;td&gt;mdc-label&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-checkbox-checked&lt;/td&gt;
&lt;td&gt;mat-mdc-checkbox-checked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-checkbox-label&lt;/td&gt;
&lt;td&gt;mdc-label&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-checkbox-layout&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mat-button&lt;/td&gt;
&lt;td&gt;mat-button-focus-overlay&lt;/td&gt;
&lt;td&gt;mat-mdc-focus-indicator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mat-radio&lt;/td&gt;
&lt;td&gt;mat-radio-outer-circle&lt;/td&gt;
&lt;td&gt;mdc-radio__outer-circle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-radio-inner-circle&lt;/td&gt;
&lt;td&gt;mdc-radio__inner-circle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-radio-checked&lt;/td&gt;
&lt;td&gt;mat-mdc-radio-checked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-radio-label-content&lt;/td&gt;
&lt;td&gt;mdc-label&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-radio-label&lt;/td&gt;
&lt;td&gt;mdc -label&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mat-progress-bar&lt;/td&gt;
&lt;td&gt;mat-progress-bar-buffer&lt;/td&gt;
&lt;td&gt;mdc-linear-progress__buffer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mat-form-field&lt;/td&gt;
&lt;td&gt;mat-form-field-flex&lt;/td&gt;
&lt;td&gt;mat-mdc-form-field-flex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-form-field-wrapper&lt;/td&gt;
&lt;td&gt;mat-mdc-text-field-wrapper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-form-field-underline&lt;/td&gt;
&lt;td&gt;mdc-line-ripple&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-form-field-subscript-wrapper&lt;/td&gt;
&lt;td&gt;mat-mdc-form-field-subscript-wrapper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-form-field-prefix&lt;/td&gt;
&lt;td&gt;mat-mdc-form-field-text-prefix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-form-field-suffix&lt;/td&gt;
&lt;td&gt;mat-mdc-form-field-text-suffix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-form-field-infix&lt;/td&gt;
&lt;td&gt;mat-mdc-form-text-infix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-form-field-label&lt;/td&gt;
&lt;td&gt;mat-mdc-floating-label&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mat-dialog&lt;/td&gt;
&lt;td&gt;mat-dialog-container&lt;/td&gt;
&lt;td&gt;mdc-dialog__container&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-dialog-content&lt;/td&gt;
&lt;td&gt;mat-mdc-dialog-content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No Change&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-button-toggle&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-button-toggle-checked&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-button-toggle-disabled&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;mat-button-toggle-focus-overlay&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;It is highly likely that this setup may not be entirely comprehensive and depends on your project's settings. However, please feel free to add comments about your upgrades, as they may assist other projects.&lt;/p&gt;

</description>
      <category>angular</category>
      <category>mdcmigration</category>
      <category>material</category>
      <category>materialmdc</category>
    </item>
    <item>
      <title>Installing Java on Mac.</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Wed, 29 Mar 2023 11:51:09 +0000</pubDate>
      <link>https://dev.to/bharathmuppa/installing-java-on-mac-2827</link>
      <guid>https://dev.to/bharathmuppa/installing-java-on-mac-2827</guid>
      <description>&lt;p&gt;Java is a powerful programming language that can be used to develop a wide range of applications. If you're a developer or a student who needs to use Java, you'll need to install it on your Mac. &lt;/p&gt;

&lt;p&gt;In this article, we'll see how to install Java on macOS using SDKMAN, a popular tool for managing Java versions, and other alternatives to try out.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://sdkman.io/usage"&gt;SDKMan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://formulae.brew.sh/formula/openjdk"&gt;Home brew&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://asdf-vm.com/"&gt;asdf&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/shyiko/jabba"&gt;Jabba&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.jenv.be/"&gt;jEnv&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Which is better?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zrXUa7Lp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pce6d4jx32gyzy1bg349.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zrXUa7Lp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pce6d4jx32gyzy1bg349.png" alt="It deponds" width="880" height="820"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nope, not gonna say that. I will explain what worked for me.&lt;/p&gt;

&lt;p&gt;I have tried HomeBrew, asdf, and sdkman. Here is my analysis of those tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;HomeBrew&lt;/em&gt;&lt;/strong&gt; - Steep learning curve (formulae, cask, Tapping, unTapping). &lt;br&gt;
Worth spending time on if you are accepting home brew as your mac package manager and gonna use it for a long time, not for those who need only java installation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Asdf&lt;/em&gt;&lt;/strong&gt; - easy to use,  but community and contributors for the java plugin are less active compared to others.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;SDKMan&lt;/em&gt;&lt;/strong&gt; - Easy to use and active community. I preferred this. it is pretty straightforward. &lt;/p&gt;

&lt;h3&gt;
  
  
  Install using SDKMan
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Open the terminal and run &lt;code&gt;curl -s "https://get.sdkman.io" | bash&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Then run &lt;code&gt;source "$HOME/.sdkman/bin/sdkman-init.sh"&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Then run &lt;code&gt;sdk install java 20-tem&lt;/code&gt; to get the latest temurin version or just run &lt;code&gt;sdk install java&lt;/code&gt; to get the latest stable version of temurin.&lt;/li&gt;
&lt;li&gt;you can try &lt;code&gt;sdk list java&lt;/code&gt; for choosing different vendors and install accordingly.&lt;/li&gt;
&lt;li&gt;packages installed using SDK will be in &lt;code&gt;$HOME/.sdkman/candidates/java/current&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;It helped me to kick start my development on Mac as newbie to mac and hope it helps you too. &lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>java</category>
      <category>macos</category>
      <category>intellij</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Comprehensive Guide for Computer Science Grads</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Wed, 27 Jul 2022 14:11:53 +0000</pubDate>
      <link>https://dev.to/entangledcognition/comprehensive-guide-for-computer-science-grads-j5g</link>
      <guid>https://dev.to/entangledcognition/comprehensive-guide-for-computer-science-grads-j5g</guid>
      <description>&lt;p&gt;This is Blog series on Comprehensive Guide for Computer Science Grads Who are enthusiasts like me or more, who wants to know deep concepts and beauty of Computer Science.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Before introducing you to the articles of this series I would like to mention my learning process which might be helpful for some of you. &lt;/p&gt;

&lt;p&gt;There are 2 Essential facts in Computer Science.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Secret Mantra to understand any concept.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Create a simple Fundamental's List for yourself. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My fundamentals list 📜&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every program Which is written either in Java, C#, Ruby, Python, and javascript has to convert into machine code and executed by CPU.&lt;/li&gt;
&lt;li&gt;All Languages either it is  Java, C#, Ruby, Python, and javascript should have a grammar, A grammar lets us transform a program, which is normally represented as a linear sequence of ASCII characters, into a syntax tree.&lt;/li&gt;
&lt;li&gt;Every Javascript framework like Angular, React, Vue, Svelte has to be converted into a set of Javascript instructions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are a few more, But This is just for your understanding. Creating this kind of fundamentals list will help you breakdown any complex theories of your interest.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: It is also very important to update your fundamentals if there is any major update or mistakes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. Find your Heroes. 🦸&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;It's really important to choose people who inspire and motivate you. It can be someone from your school, university, twitter or some blogs.&lt;/p&gt;

&lt;p&gt;I would like to share my list&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://twitter.com/unclebobmartin" rel="noopener noreferrer"&gt;Uncle Bob&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/maxedapps" rel="noopener noreferrer"&gt;Maximilian Schwarzmüller&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/user/thenewboston/featured" rel="noopener noreferrer"&gt;The New Boston&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/MissPhilbin" rel="noopener noreferrer"&gt;Carrie anne&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/toddmotto" rel="noopener noreferrer"&gt;Todd Motto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/manekinekko" rel="noopener noreferrer"&gt;Wassim Chegam&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/DecodedFrontend" rel="noopener noreferrer"&gt;Dmytro Mezhenskyi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/loige" rel="noopener noreferrer"&gt;Luciano Mammino&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Frankly, I have a very long list of people who inspired me and motivates me(not necessarily a direct contact), but I don't want you to bother long list of mine.&lt;/p&gt;




&lt;p&gt;The intention of the series is to build your fundamentals list and start an investigation on your favorite area of interest&lt;/p&gt;

&lt;p&gt;Now I would like to introduce you to my articles, which are going to be part of blog series &lt;em&gt;"Comprehensive Guide for Computer Science Grads "&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Table Of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Ultimate Alchemy: Turning Sand into a Computer &lt;/li&gt;
&lt;li&gt;What is a Bit?&lt;/li&gt;
&lt;li&gt;What are Gates?&lt;/li&gt;
&lt;li&gt;
32 bit vs 64 bit &lt;/li&gt;
&lt;li&gt;CPU Bound vs IO Bound&lt;/li&gt;
&lt;li&gt;Introduction to Grammer&lt;/li&gt;
&lt;li&gt;Compiler vs Interpreter vs Transpilers&lt;/li&gt;
&lt;li&gt;History of programming Languages&lt;/li&gt;
&lt;li&gt;Arciteture Style vs Arcitecture patterns vs Design Patterns&lt;/li&gt;
&lt;li&gt;Programming Paradigms&lt;/li&gt;
&lt;li&gt;Functional Programming&lt;/li&gt;
&lt;li&gt;Object Oriented Programming&lt;/li&gt;
&lt;li&gt;
What are TDD, BDD, DDD  &lt;/li&gt;
&lt;li&gt;Process vs Threads&lt;/li&gt;
&lt;li&gt;Cryptography at high level&lt;/li&gt;
&lt;li&gt;Computer Networking&lt;/li&gt;
&lt;li&gt;What is Open power Architecture?&lt;/li&gt;
&lt;li&gt;Cloud Computing with GCP,Azure,AWS&lt;/li&gt;
&lt;li&gt;AI and Data Learning&lt;/li&gt;
&lt;li&gt;Which Platforms you should know&lt;/li&gt;
&lt;li&gt;
What is SEO &lt;/li&gt;
&lt;li&gt;IT Giants&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>computerscience</category>
      <category>beginners</category>
      <category>architecture</category>
      <category>programming</category>
    </item>
    <item>
      <title>Dynamic Tab Title in Angular</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Sun, 17 Jul 2022 17:25:19 +0000</pubDate>
      <link>https://dev.to/entangledcognition/dynamic-tab-title-in-angular-26jg</link>
      <guid>https://dev.to/entangledcognition/dynamic-tab-title-in-angular-26jg</guid>
      <description>&lt;p&gt;With Angular 14, Now we can generate dynamic tab titles with ease.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Title property in Routes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Use Case:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Users page with users as tab name.(Users)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Orders page with orders as tab name(Orders)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Then simply use title property in Routes as below&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Code
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;APP_ROUTES&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Routes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;component&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;UsersComponent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/orders&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;component&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;OrdersComponent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Orders&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;


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

&lt;/div&gt;
&lt;h2&gt;
  
  
  2. Title with Resolve
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Use Case:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Users page with current user name in tab name.(User- Bharath)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Orders page with order id in tab name.(Order Id:1)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Then we should create a service which implement &lt;code&gt;Resolve&lt;/code&gt; class from Router module as shown below.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Code:
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Injectable&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;providedIn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CustomTitleResolver&lt;/span&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;Resolve&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="nf"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="na"&gt;route&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ActivatedRouteSnapshot&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;RouterStateSnapshot&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nx"&gt;Observable&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Have fun with naming&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;&amp;lt;&amp;lt;project-name&amp;gt;&amp;gt; -&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;route&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;paramMap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;



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

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Update Routes with title property&lt;/em&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;APP_ROUTES&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Routes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/users/:id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;component&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;UsersComponent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;CustomTitleResolver&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/orders/:id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;component&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;OrdersComponent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;CustomTitleResolver&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;


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

&lt;/div&gt;
&lt;h2&gt;
  
  
  3. Title Strategy
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Use Case:
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;If you want a more generalized pattern, that will be applied **all over the application&lt;/em&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Prefixing a text to tab title.(Project X Users)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Suffixing a text to tab title.(Users Project X )&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Then create a service that extends &lt;code&gt;TitleStrategy&lt;/code&gt; and add it as Provider in AppModule.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Code
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Injectable&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;providedIn&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CustomTitleStrategy&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;TitleStrategy&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;readonly&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Title&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;super&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nx"&gt;override&lt;/span&gt; &lt;span class="nf"&gt;updateTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;routerState&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;RouterStateSnapshot&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;buildTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;routerState&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`myImpact (&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;)`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;myImpact&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


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

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Naming Strategy should be added as provider in app module, so that angular is aware that you have provided an alternative Naming strategy.&lt;/em&gt;&lt;/p&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;

&lt;p&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;NgModule&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;br&gt;
  &lt;span class="na"&gt;declarations&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;br&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;&lt;br&gt;
  &lt;span class="na"&gt;imports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;br&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;&lt;br&gt;
  &lt;span class="na"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;br&gt;
    &lt;span class="na"&gt;provide&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;TitleStrategy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;br&gt;
    &lt;span class="na"&gt;useClass&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;IAMTitleStrategy&lt;/span&gt;&lt;br&gt;
  &lt;span class="p"&gt;}],&lt;/span&gt;&lt;br&gt;
  &lt;span class="na"&gt;bootstrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;AppComponent&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;br&gt;
&lt;span class="p"&gt;})&lt;/span&gt;&lt;br&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;AppModule&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;br&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;/p&gt;

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

&lt;/div&gt;
&lt;h3&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Note&lt;br&gt;
&lt;/h3&gt;

&lt;p&gt;Depending on your use case, you can use either of these ways and also mix up both Resolve and naming Strategy like me &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%2Febhzkmn2i5h5yjqn757b.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%2Febhzkmn2i5h5yjqn757b.png" alt="Dynamic Tab titles using angular"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy coding 👨‍💻 !! &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>angular</category>
      <category>webdev</category>
      <category>dynamictabtitle</category>
    </item>
    <item>
      <title>Compile and Run C# programs without visual studio or any other IDE</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Wed, 01 Dec 2021 14:12:13 +0000</pubDate>
      <link>https://dev.to/entangledcognition/execute-c-programs-without-visual-studio-or-any-other-ide-4g6n</link>
      <guid>https://dev.to/entangledcognition/execute-c-programs-without-visual-studio-or-any-other-ide-4g6n</guid>
      <description>&lt;p&gt;In this Article, We are going to explore how to Compile and Run your C# programs without using any IDE.&lt;/p&gt;

&lt;p&gt;Even Before thinking of doing it, lets ask ourselves this simple question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;Why? Am I going back to stone age?&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Ans&lt;/strong&gt;: &lt;em&gt;No, Writing sample codes in any language without IDE and compiling it will help you understand the eco system better.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Lets move on to Implementation part.&lt;/p&gt;
&lt;h3&gt;
  
  
  Download and install.
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Download .NET Framework and install the dev packs.&lt;/li&gt;
&lt;li&gt;Then add C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (it can be any version you download) to environment path.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Step 2 will make csc (c sharp compiler) executable to be available to access.&lt;/p&gt;
&lt;h3&gt;
  
  
  Coding Part
&lt;/h3&gt;
&lt;h4&gt;
  
  
  1. Compile and Run Class A
&lt;/h4&gt;

&lt;p&gt;Open Notepad and copy class below and name it as &lt;code&gt;A.cs&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;
&lt;span class="c1"&gt;// C# program to print Hello World!&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;span class="c1"&gt;// namespace declaration&lt;/span&gt;
&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;HelloWorldApp&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="c1"&gt;// Class declaration&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="c1"&gt;// Main Method&lt;/span&gt;
    &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;Main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;

        &lt;span class="c1"&gt;// printing Hello World!&lt;/span&gt;
        &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="c1"&gt;// To prevents the screen from&lt;/span&gt;
        &lt;span class="c1"&gt;// running and closing quickly&lt;/span&gt;
        &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ReadKey&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Steps to compile and run the program&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open cmd&lt;/li&gt;
&lt;li&gt;Navigate to path and then run &lt;code&gt;csc A.cs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Then run command &lt;code&gt;A&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  2. Compile and Run Class A, which uses Class B
&lt;/h4&gt;

&lt;p&gt;Open notepad and copy below code and name it as A.cs&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// namespace declaration&lt;/span&gt;
&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;HelloWorldApp&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

&lt;span class="c1"&gt;// Class declaration&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Main Method&lt;/span&gt;
    &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;Main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// printing Hello World!&lt;/span&gt;
        &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;B&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startMusic&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="c1"&gt;// To prevents the screen from&lt;/span&gt;
        &lt;span class="c1"&gt;// running and closing quickly&lt;/span&gt;
        &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ReadKey&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;open notepad and copy below code and name it as B.cs&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// namespace declaration&lt;/span&gt;
&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;HelloWorldApp&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;B&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;startMusic&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
               &lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"I am in B"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;   
    &lt;span class="p"&gt;}&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 run the above steps as mentioned before to compile and run, you will see compile time error saying B not found.&lt;/p&gt;

&lt;p&gt;it is obvious, because we didn't create any assembly or sln in visual studio or other IDE that usually does most of the heavy lifting.&lt;/p&gt;

&lt;p&gt;So, we need to create dll for B and refer that dll while compiling A.(So that A knows there exists a library which goes by name B)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;New Steps to compile and run&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a dll for B using &lt;code&gt;csc /target:library B.cs&lt;/code&gt;(It generates B.dll file)&lt;/li&gt;
&lt;li&gt;Now compile A using &lt;code&gt;csc /r:B.dll A.cs&lt;/code&gt;(It generates A.exe file)&lt;/li&gt;
&lt;li&gt;Run exe using &lt;code&gt;A&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>csharp</category>
      <category>visualstudio</category>
      <category>beginners</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>CPU Bound vs I/O Bound</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Mon, 27 Sep 2021 17:00:15 +0000</pubDate>
      <link>https://dev.to/entangledcognition/cpu-bound-vs-i-o-bound-498i</link>
      <guid>https://dev.to/entangledcognition/cpu-bound-vs-i-o-bound-498i</guid>
      <description>&lt;p&gt;Before Understanding what is CPU Bound and IO Bound, I would like to touch the basic understanding of how CPU and IO work, then slowly dwell into the above concepts.&lt;/p&gt;

&lt;p&gt;There is a simple analogy to understand in a better way.  &lt;/p&gt;

&lt;p&gt;Let's assume you want to start a Huge Restaurant(computer).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are primarily 2 Requirements&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;you need a chef(s)&lt;/strong&gt; 👨‍🍳&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Warehouse for food Storage&lt;/strong&gt;🏭
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Hire a Chef (Buy CPU)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The chef is the one who is responsible for all your recipes.    &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%2Fi%2F5khlxlearu00n6fg8isp.gif" 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%2Fi%2F5khlxlearu00n6fg8isp.gif" alt="Giffy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Depending on your requirements, you have to hire a chef(CPU). If you spend more   🤑 you will get a master chef and he can add more recipes to the menu, cooks fast, reduce cost with his experience. &lt;/li&gt;
&lt;li&gt;Let's say your city is famous for Shrimps, So you have to hire a chef who is specialized in making different shrimps (GPU).&lt;/li&gt;
&lt;/ul&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%2Fi%2F32eykw241t6056sf276g.gif" 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%2Fi%2F32eykw241t6056sf276g.gif" alt="Big Bang Theory"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tasks of CPU&lt;/strong&gt; &lt;br&gt;
&lt;em&gt;1. Fetch instructions from memory&lt;/em&gt;&lt;br&gt;
&lt;em&gt;2. Decode into binary instructions&lt;/em&gt;&lt;br&gt;
&lt;em&gt;3. Execute action and move to next step&lt;/em&gt;&lt;br&gt;
&lt;em&gt;4. Write output to memory&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Establish a Delivery system.&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;💽 As we need to store all the groceries and food items required for recipes beforehand, we need warehouses (can be RAM, HardDisk, USB, Flash Drive) &lt;/li&gt;
&lt;li&gt;🚚 We also need a transport system to transport data (PCIe express, SATA, Data Bus).&lt;/li&gt;
&lt;li&gt;you also need to establish a connection with dealers at the market to get fresh food/shrimps at a low price. (Network calls, Mounted Drives) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ok, you are good to start a Restaurant now.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Let's think of 2 scenarios.&lt;/strong&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Your Restaurant becomes famous and getting more orders, so you need a chef to chop some millions of vegetables for a thousand orders. If your chef is slow you can't deliver what customers want on time, so you need a fast chef to chop all the vegetables required and prepare the recipe. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your chef needs a thousand food items and millions of groceries to prepare food. This is not the concern of the chef, this is the responsibility of all others it might be warehouse storage, market guys and transport persons. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I think it is quite a simple scenario. If yes you already understand what is CPU bound and IO Bound.&lt;/p&gt;

&lt;p&gt;If you didn't really understand the anaology..no need to worry, we can simplify it by Demystifying the analogy&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Analogy&lt;/th&gt;
&lt;th&gt;Reality&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Restaurant&lt;/td&gt;
&lt;td&gt;Whole Computer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chef&lt;/td&gt;
&lt;td&gt;Processor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4 handed Chef&lt;/td&gt;
&lt;td&gt;Quad-core Processor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recipes&lt;/td&gt;
&lt;td&gt;Threads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deliver system&lt;/td&gt;
&lt;td&gt;All other than processor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Special Shrimp Chef&lt;/td&gt;
&lt;td&gt;GPU or FPGA or TPU&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2F0ev1f4g1o6hn0pu53swa.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%2F0ev1f4g1o6hn0pu53swa.jpg" alt="Overview of processing units"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Without Analogy, in simple terms.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;CPU Bound&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;We can say a program/language is &lt;strong&gt;CPU Bound&lt;/strong&gt; if it has to&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;process more Data &lt;a href="https://computer.howstuffworks.com/microprocessor.htm" rel="noopener noreferrer"&gt;CPU&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;processing audio or video &lt;a href="https://computer.howstuffworks.com/graphics-card1.htm" rel="noopener noreferrer"&gt;GPU&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Processing vector instructions (&lt;a href="https://www.geekboots.com/story/what-is-vpu" rel="noopener noreferrer"&gt;VPU&lt;/a&gt;) &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example application&lt;/strong&gt;: &lt;em&gt;Photo Editors, Gaming, Video Editors&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;IO Bound&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;We can say a program/language is IO Bound if it has to do&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;file reading/writing&lt;/li&gt;
&lt;li&gt;Do a Network call or responds to more network calls&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example application&lt;/strong&gt;: &lt;em&gt;Chat applications, Feeds, Bank applications&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;It doesn't mean if an application is CPU bound, then it should not do any IO Operations and viceversa&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now everyone is on the same page and hopefully understood core concepts. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Now entering into an Opinionated Zone⚡&lt;/strong&gt;
&lt;/h2&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%2Fi%2F3ded72wplnmf4npu76e9.gif" 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%2Fi%2F3ded72wplnmf4npu76e9.gif" alt="Giphy"&gt;&lt;/a&gt;&lt;br&gt;
Lets put our knowledge into a matrix while choosing a language if you are asked to build an application.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;I am considering out of the box architecture of corresponding languages.
As every language has a possibility to use thread pools, multi processes, multi-threads.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;I want to exclude c and c++ because of their power and also theirs difficulty in creating the application for beginners.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Application&lt;/th&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chat app&lt;/td&gt;
&lt;td&gt;Node&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data-Intensive&lt;/td&gt;
&lt;td&gt;Java, c#&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Photoshop&lt;/td&gt;
&lt;td&gt;Java, c#&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Web Scrapping&lt;/td&gt;
&lt;td&gt;Python, Node&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Reference&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Credits for this analogy should be given to (David Xiang)[&lt;a href="https://twitter.com/davex_tech" rel="noopener noreferrer"&gt;https://twitter.com/davex_tech&lt;/a&gt;] and his book &lt;a href="https://www.amazon.com/dp/B07D5QNGVZ/r" rel="noopener noreferrer"&gt;Software Developer Life: Career, Learning, Coding, Daily Life, Stories&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=zphcsoSJMvM" rel="noopener noreferrer"&gt;Introduction to threading&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>computerscience</category>
      <category>operatingsystem</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>What are Logic Gates?</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Mon, 27 Sep 2021 16:51:37 +0000</pubDate>
      <link>https://dev.to/entangledcognition/what-are-logic-gates-3ahg</link>
      <guid>https://dev.to/entangledcognition/what-are-logic-gates-3ahg</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Pinch of History&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;George Boole, the son of a shoemaker, left school at sixteen and ended up a Professor of Mathematics at Queens College in Cork in Ireland&lt;/p&gt;

&lt;p&gt;In 1854 he wrote a book called An Investigation of the Laws of Thought which distilled the essence of logical thought down to terms like AND, OR, and NOT, or combinations of these. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/aEjzjLv-YjI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;So, What is the Relation between Logic Gates and George Bool? 🤔&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Boolean Logic&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Boolean Logic is at the core of all computing machines that humans ever worked with. Wonder why?&lt;/p&gt;

&lt;p&gt;By the time when computer scientists Decided to use binary system, There exists a well-established branch of mathematics which dealt with true or false values called Boolean algebra.&lt;/p&gt;

&lt;p&gt;In simple words "Logic Gates are a high-level abstraction of the circuit to perform a Boolean operation"&lt;/p&gt;

&lt;p&gt;As I mentioned in our &lt;a href="https://dev.to/entangledcognition/ultimate-alchemy-turning-sand-into-a-computer-a-comprehensive-guide-to-understand-computer-making-for-computer-grad-s-32e5"&gt;previous article&lt;/a&gt;, A circuit is made of transistors, capacitors and other electronic units. if you arrange a circuit in a specific order so that it performs a boolean function then this arrangement is called a Logic gate.&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%2Fi%2Fhxjag3auk0kmk5r0xtkv.gif" 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%2Fi%2Fhxjag3auk0kmk5r0xtkv.gif" alt="Created using kapwing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most of the developers already knew what are basic gates and how they work, So it is advisable for them to jump to Advanced Gate Concepts. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Each Gates will be represented in 3 ways based on the person who looks at it&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mathematical perspective - &lt;em&gt;Truth tables&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Software Perspective - &lt;em&gt;Gate Representation&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;electronic Perspective - &lt;em&gt;Circuit Representation&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Based on alignment there are 6 major gates&lt;/p&gt;

&lt;h2&gt;
  
  
  1. AND
&lt;/h2&gt;

&lt;p&gt;The AND gate is an electronic circuit that gives a high output (1) only if all its inputs are high.  A dot (.) is used to show the AND operation i.e. A.B&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%2Fi%2Fbs8ficxv1tygo6yth2eb.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%2Fi%2Fbs8ficxv1tygo6yth2eb.png" title="Extracted from https://www.101computing.net/" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. OR
&lt;/h2&gt;

&lt;p&gt;The OR gate is an electronic circuit that gives a high output (1) if one or more of its inputs are high.  A plus (+) is used to show the OR operation.&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%2Fi%2Fycqxfx3jn67j4oxrzetq.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%2Fi%2Fycqxfx3jn67j4oxrzetq.png" title="Extracted from https://www.101computing.net/" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. NAND
&lt;/h2&gt;

&lt;p&gt;This is a NOT-AND gate which is equal to an AND gate followed by a NOT gate.  The outputs of all NAND gates are high if any of the inputs are low. The symbol is an AND gate with a small circle on the output. The small circle represents inversion.&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%2Fi%2Fdc3pczurj3ar45cnbe2s.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%2Fi%2Fdc3pczurj3ar45cnbe2s.png" title="Extracted from https://www.101computing.net/" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. NOR
&lt;/h2&gt;

&lt;p&gt;This is a NOT-OR gate which is equal to an OR gate followed by a NOT gate.  The outputs of all NOR gates are low if any of the inputs are high.&lt;br&gt;
The symbol is an OR gate with a small circle on the output. The small circle represents inversion.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. XOR
&lt;/h2&gt;

&lt;p&gt;The 'Exclusive-OR' gate is a circuit which will give a high output if either, but not both, of its two inputs are high.  An encircled plus sign () is used to show the EOR operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. NOT
&lt;/h2&gt;

&lt;p&gt;The NOT gate is an electronic circuit that produces an inverted version of the input at its output.  It is also known as an inverter.  If the input variable is A, the inverted output is known as NOT A.  This is also shown as A', or A with a bar over the top, as shown at the outputs. The diagrams below show two ways that the NAND logic gate can be configured to produce a NOT gate. It can also be done using NOR logic gates in the same way.&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%2Fi%2Feaqpw5i3347hzr8bc7mk.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%2Fi%2Feaqpw5i3347hzr8bc7mk.png" title="Extracted from https://www.101computing.net/" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The NOT gate is an electronic circuit that produces an inverted version of the input at its output.&lt;/p&gt;

&lt;p&gt;This is a Unary Gate which means it takes only one input.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced Topics
&lt;/h2&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%2Fi%2F588xwxdaci9iv0fqkpsz.gif" 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%2Fi%2F588xwxdaci9iv0fqkpsz.gif" alt="Logic gates Conversation"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>beginners</category>
      <category>architecture</category>
      <category>programming</category>
    </item>
    <item>
      <title>What is a bit?</title>
      <dc:creator>Bharath Muppa</dc:creator>
      <pubDate>Mon, 27 Sep 2021 16:47:00 +0000</pubDate>
      <link>https://dev.to/entangledcognition/what-is-a-bit-51n7</link>
      <guid>https://dev.to/entangledcognition/what-is-a-bit-51n7</guid>
      <description>&lt;p&gt;All over Computer science, whomever you talk with, they keep saying about data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To store Data.&lt;/li&gt;
&lt;li&gt;Compute Data.&lt;/li&gt;
&lt;li&gt;Send/Request Data over Network.&lt;/li&gt;
&lt;li&gt;Predictions on Data.&lt;/li&gt;
&lt;li&gt;Represent Data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fundamental unit of this data is called a bit(&lt;strong&gt;B&lt;/strong&gt; inary dig &lt;strong&gt;IT&lt;/strong&gt; ). &lt;/p&gt;

&lt;p&gt;The State of Bit is always binary which means it can represent two values 0 or 1, true or false, charge presence or charge absence.&lt;/p&gt;

&lt;p&gt;Observe the gif once and start assuming there will be some kind of boxes in a computer that stores each bit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3tRFZ5T5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/258b8pa9scj0mzuzlvl9.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3tRFZ5T5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/258b8pa9scj0mzuzlvl9.gif" alt="Alt Text" width="689" height="340"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;📢 Let's ask Ourself few interesting questions&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;I have understood there will be some kind of box that stores the current charge but what is this made of?&lt;/li&gt;
&lt;li&gt;Why that box use Binary System instead of others like decimal or Hexa?&lt;/li&gt;
&lt;li&gt;What are the different memory units?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. What is this Bit made of ?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A Bit is an electric circuit with transistors and capacitors arranged in a specific way. &lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;Transistors are switches, but a special kind of Transistors called MOSFETS are used in volatile memories (SSD, HDD) and MOSFETS combined capacitors are used in RAM.&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;We will discuss the above concepts in detail across this series, Which will give you a clear picture of the inner workings of the Integrated circuit and memory architectures.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Topics to learn&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Memory cell architecture&lt;/li&gt;
&lt;li&gt;Volatile and Non-Volatile Memories.&lt;/li&gt;
&lt;li&gt;NAND flash vs NOR Flash&lt;/li&gt;
&lt;li&gt;Gates&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Why Binary ?&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Introduction to Number systems 🧮
&lt;/h3&gt;

&lt;p&gt;We, Humans, are very much fond of the decimal system and important question is we never know how we used to it. Instead of long history, just think we used to it because of Egyptian and &lt;a href="https://medium.com/@rahulyadavca/indian-mathematics-mathematics-in-indus-valley-civilization-harappa-civilization-4d1ef95cb674"&gt;indus-valley&lt;/a&gt; civilizations. &lt;/p&gt;

&lt;p&gt;In the decimal (base-10) numbering system, the digits are the elements of the set {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.&lt;/p&gt;

&lt;p&gt;Eg: 1024.8 - {4 is one's digit, 2 is at &lt;strong&gt;ten's&lt;/strong&gt; digit,0 is in hundreds digit and, 1 is at thousands digit,8 is at &lt;strong&gt;tenths&lt;/strong&gt; digit}&lt;/p&gt;

&lt;p&gt;In the binary number system, the digits are the elements of the set {0, 1}. This system is used by computers because the two digits can represent the logic low and high states. The term "binary digit" is compressed to " bit " in computer parlance. &lt;/p&gt;

&lt;p&gt;Eg: 1,0,11,00,10,01&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3OQW1fkV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1kz0mkksise2q8dj1iqu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3OQW1fkV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1kz0mkksise2q8dj1iqu.jpg" alt="Computer Scientists" width="880" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There was a time when computer scientists have to choose a number system and opt for a binary system because of vast study on those systems by above great personalities(&lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=Hljir_TyTEw"&gt;George Bool&lt;/a&gt; and &lt;a href="https://www.youtube.com/watch?v=6eWkAOiPk6g"&gt;Leibniz&lt;/a&gt;&lt;/strong&gt;) and also due to the limitations in electronics at that point of time.  &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;3. Different memory units.&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Now we can use the above acquired knowledge to build bytes, MegaBytes, GigaBytes and so on.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Storage&lt;/th&gt;
&lt;th&gt;Unit&lt;/th&gt;
&lt;th&gt;Possible No of states&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 memory unit&lt;/td&gt;
&lt;td&gt;1 bit&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;1&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4b&lt;/td&gt;
&lt;td&gt;1 Nibble&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;4&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8b&lt;/td&gt;
&lt;td&gt;1 Byte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;8&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024B&lt;/td&gt;
&lt;td&gt;1 KiloByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;8192&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024KB&lt;/td&gt;
&lt;td&gt;1 MegaByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;8388608&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024MB&lt;/td&gt;
&lt;td&gt;1 GigaByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;8589934592&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024GB&lt;/td&gt;
&lt;td&gt;1 TeraByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;8796093022208&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024TB&lt;/td&gt;
&lt;td&gt;1 PetaByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;9007199254740992&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024PB&lt;/td&gt;
&lt;td&gt;1 ExaByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;9223372036854776000&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024EB&lt;/td&gt;
&lt;td&gt;1 ZettaByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;9.44473296573929e+21&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024ZB&lt;/td&gt;
&lt;td&gt;1 YottaByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;9.671406556917033e+24&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024YB&lt;/td&gt;
&lt;td&gt;1 BrontoByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;Huge number&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1024BB&lt;/td&gt;
&lt;td&gt;1 GeopByte&lt;/td&gt;
&lt;td&gt;&lt;span&gt;2&lt;sup&gt;Even Huge number&lt;/sup&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;br&gt;
There is a difference in representing bit(&lt;strong&gt;b&lt;/strong&gt;) and Byte(&lt;strong&gt;B&lt;/strong&gt;)&lt;br&gt;
whenever your network provider says your download speed is 80Mbps.&lt;br&gt;
&lt;em&gt;it doesn't mean 80 MegaBytes per second, it means 80 Megabits per second that counts to 10 MBps.&lt;/em&gt; &lt;br&gt;
That's how they fool Hard earning people.🤐&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/coderscorner/what-exactly-is-in-a-1-bit-of-digital-memory-d5395f9001a6"&gt;What exactly is one digital bit ?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://en.wikipedia.org/wiki/Memory_cell_(computing)"&gt;Memory cell&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>computerscience</category>
      <category>beginners</category>
      <category>architecture</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
