<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[origin]]></title><description><![CDATA[One Idea Can Change Everything.]]></description><link>https://codeaashu.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/65e39040f57cda771a52aa7a/879ab403-868b-4146-9823-1f4103d2635a.png</url><title>origin</title><link>https://codeaashu.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 06:41:48 GMT</lastBuildDate><atom:link href="https://codeaashu.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to build your own LLM from scratch in 5 Stages: exact pipeline behind GPT and Claude]]></title><description><![CDATA[I pulled apart how large language models are actually built - the entire pipeline behind ChatGPT, Claude, and Gemini - and compressed it into one map.
Bookmark this. Save it. By the end you will under]]></description><link>https://codeaashu.hashnode.dev/how-to-build-your-own-llm-from-scratch-in-5-stages-exact-pipeline-behind-gpt-and-claude</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/how-to-build-your-own-llm-from-scratch-in-5-stages-exact-pipeline-behind-gpt-and-claude</guid><category><![CDATA[AI]]></category><category><![CDATA[llm]]></category><category><![CDATA[AI models]]></category><category><![CDATA[claude]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[engineering]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Mon, 22 Jun 2026 12:09:58 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/65e39040f57cda771a52aa7a/5a7a61b9-2069-4293-bbc0-2bee123cd958.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I pulled apart how large language models are actually built - the entire pipeline behind ChatGPT, Claude, and Gemini - and compressed it into one map.</p>
<p>Bookmark this. Save it. By the end you will understand the exact five-stage path from raw internet text to a model that answers like an assistant.</p>
<p><strong>Stay ahead in AI &amp; Tech → Connect on 𝕏</strong> <a href="https://x.com/warrioraashuu">warrioraashuu</a></p>
<p>That is not hyperbole. Most people think building an LLM is about the architecture. The core lesson here is that the architecture is the part that matters least.</p>
<hr />
<h2>The lie everyone believes about LLMs</h2>
<p>Ask most people how you build a model like Claude and they will say "transformers." As if the secret is the neural network design.</p>
<p>It is not. The transformer architecture is largely standardized and freely published. Every major lab uses roughly the same building blocks. If architecture were the moat, everyone would have GPT-4.</p>
<p>Here is the line that reframes everything: in practice it is data, evaluation, and systems that make or break a model - not architectural tweaks. The best models are not just trained. They are engineered.</p>
<img src="https://media.licdn.com/dms/image/v2/D5612AQGbHvfyLg5i6Q/article-inline_image-shrink_1500_2232/B56Z7u88m1IoAY-/0/1782125417310?e=1783555200&amp;v=beta&amp;t=KyS9-PvzKblCRUQdvkMHVrTZI4sNoRrn3u4TC8FLe3s" alt="Article content" style="display:block;margin:0 auto" />

<p>So this guide is built around what actually matters. Five stages. The architecture is a footnote inside Stage 1. The other four are where real models are won and lost.</p>
<hr />
<h3><strong>1 - Pretraining - teach model language itself.</strong></h3>
<p>Everything starts with one deceptively simple objective: predict the next word. This is autoregressive language modeling. Given a sequence of words, the model learns the probability distribution of what comes next.</p>
<p>Do this across enough text and the model absorbs grammar, facts, and reasoning patterns - not because anyone taught them, but because predicting the next word well requires them.</p>
<img src="https://media.licdn.com/dms/image/v2/D5612AQEISMZOWxA3Mg/article-inline_image-shrink_1500_2232/B56Z7u.WwoIUAQ-/0/1782125786906?e=1783555200&amp;v=beta&amp;t=5y7Gg8uqcC23sfHtH3LTUj66J4W0_1Vi4HoMPs0Okkw" alt="Article content" style="display:block;margin:0 auto" />

<blockquote>
<p>Tokenization comes first</p>
</blockquote>
<p>Before the model sees text, the text is broken into tokens. The standard method is Byte-Pair Encoding (BPE), and its logic shapes everything downstream.</p>
<img src="https://media.licdn.com/dms/image/v2/D5612AQEgWDBS5-24lg/article-inline_image-shrink_1500_2232/B56Z7u_ofZKUAQ-/0/1782126121552?e=1783555200&amp;v=beta&amp;t=ewzvTnnDDOt30e6dXletem83PPKFmZPsZIX27c7tSIY" alt="Article content" style="display:block;margin:0 auto" />

<p><strong>The architecture - the part that matters least</strong></p>
<p>The model is a transformer. That is essentially it for this section, and that is the point. You do not win by inventing a cleverer transformer. You win at the other four stages.</p>
<p>The lecture proves it with scaling curves: transformers simply have a better constant and slope than LSTMs - pick the standard tool and move on.</p>
<hr />
<h3>2 - Data - where models are actually won.</h3>
<p>If architecture matters least, data matters most. This is the stage that separates a good model from a mediocre one, and the one most people underestimate.</p>
<p>The pipeline starts with Common Crawl - a scrape of the public web so large it is measured in petabytes: 250 billion pages, over a million gigabytes. But raw web data is filthy.</p>
<p>Turning it into training material is a brutal multi-step filter.</p>
<img src="https://media.licdn.com/dms/image/v2/D5612AQFGnIt0bkzsDQ/article-inline_image-shrink_1500_2232/B56Z7vAPOEH4AQ-/0/1782126280534?e=1783555200&amp;v=beta&amp;t=VD-DQd3TfdOfTBhiaum40g4xVXVLBbbAobgcK3AThAo" alt="Article content" style="display:block;margin:0 auto" />

<p><strong>The processing pipeline looks like this:</strong></p>
<ul>
<li><p>Extract text from HTML - handling special cases like math and boilerplate.</p>
</li>
<li><p>Filter undesirable content - NSFW, harmful, personal data.</p>
</li>
<li><p>Deduplicate by URL, document, and line - the web repeats endlessly (headers, footers, menus).</p>
</li>
<li><p>Heuristic filtering - remove low-quality docs by word count, outlier tokens, dirty tokens.</p>
</li>
<li><p>Model-based filtering - predict whether a page could be referenced by Wikipedia.</p>
</li>
<li><p>Data mix - classify into categories (code, books, entertainment) and reweight domains using scaling laws.</p>
</li>
</ul>
<p>The refrain worth burning in: data quality trumps quantity. Collecting data well is the key part of practical LLM work - and the most secretive.</p>
<blockquote>
<p>Collecting data well is ~the key to a practical LLM - and the most guarded secret in the field.</p>
</blockquote>
<p>Closed datasets dwarf open ones: LLaMA 3 trained on 15 trillion tokens; GPT-4 on an estimated 13 trillion.</p>
<hr />
<h3>3 - Scaling laws - spend compute optimally.</h3>
<p>You have 10,000 GPUs for a month. What model do you train? Bigger, or trained on more data? Guessing wastes millions. Scaling laws answer it predictably.</p>
<p>The empirical finding: more data and larger models reliably mean better performance, and you can predict a model's performance from its size and data before training it.</p>
<p>The modern pipeline tunes hyperparameters on small models, then extrapolates up the curve to the one huge final run.</p>
<img src="https://media.licdn.com/dms/image/v2/D5612AQGn-SzG4i_mHA/article-inline_image-shrink_1000_1488/B56Z7vBzEEIgAI-/0/1782126689333?e=1783555200&amp;v=beta&amp;t=-5cmDFQ8CQZ_mx3fr199D7HF0NRqAp2c6LSdGqsydH4" alt="Article content" style="display:block;margin:0 auto" />

<p><strong>The famous Chinchilla answer:</strong> roughly 20 tokens of training data per parameter is compute-optimal. But that is for training cost alone.</p>
<p>Once you account for the cost of running the model - inference - the practical ratio rises sharply, past 150 tokens per parameter. You train a smaller model on far more data because you pay to run it millions of times.</p>
<p>And the meta-lesson, the "bitter lesson": don't over-complicate. Do the simple things and scale them. In the long run, the only thing that matters is leveraging computation.</p>
<hr />
<h3>4 - Post-training - turn a predictor into an assistant.</h3>
<p>After pretraining you have something powerful but useless for chat. It completes text, but it does not know it is supposed to answer you.</p>
<p>Ask it a question and it might reply with three more questions - a perfectly plausible next-word continuation.</p>
<img src="https://media.licdn.com/dms/image/v2/D5612AQGWwVdfc30_Bg/article-inline_image-shrink_1000_1488/B56Z7vBQ3CIoAM-/0/1782126548954?e=1783555200&amp;v=beta&amp;t=zECUPL8vg3HQLWHDyGi19hSAA9QPHoG9HFvoxfZhseo" alt="Article content" style="display:block;margin:0 auto" />

<blockquote>
<p>Supervised Fine-Tuning (SFT)</p>
</blockquote>
<p>You show the model thousands of examples - a prompt followed by a good response - and it learns to imitate that pattern. This is behavior cloning, and it was the key step from GPT-3 to ChatGPT.</p>
<p>The surprising part: you need very little data. A few thousand examples is enough, because SFT only teaches the format of a good answer - the knowledge is already in the pretrained model.</p>
<p>The Alpaca project even generated its data with another LLM: 52,000 instruction-response pairs, used to fine-tune a LLaMA 7B into a capable assistant.</p>
<blockquote>
<p>RLHF - align with human preference</p>
</blockquote>
<p>SFT has three problems: it is bound by human ability, it teaches hallucination (cloning a "correct" answer the model doesn't actually know teaches it to make things up), and ideal answers are expensive. RLHF fixes this by optimizing for preference, not imitation.</p>
<p>The model generates two answers. A human picks the better one. Those preferences train a reward model, and the LLM is optimized to maximize that reward - classically with PPO.</p>
<p>A simpler modern alternative, DPO, reaches comparable quality with plain supervised learning and is now standard in the open-source community.</p>
<img src="https://media.licdn.com/dms/image/v2/D5612AQEAuWi4AhQoOg/article-inline_image-shrink_1000_1488/B56Z7vC6bEH4AQ-/0/1782126982308?e=1783555200&amp;v=beta&amp;t=fd7iKo5jt_Q8EKk675Z-qvZnXCmC6DfF7LfR-Jt1ppk" alt="Article content" style="display:block;margin:0 auto" />

<hr />
<h3>5 - Evaluation &amp; systems - prove it works, make it feasible.</h3>
<p>Two things wrap around the whole pipeline. Skip either and you do not have a real model.</p>
<blockquote>
<p>Evaluation: measuring something open-ended</p>
</blockquote>
<p>During pretraining the metric is perplexity - how many tokens the model is "hesitating" between. Between 2017 and 2023, the best models dropped from hesitating among ~70 tokens to fewer than 10. But perplexity breaks after alignment, so evaluation shifts to benchmarks and comparisons:</p>
<ul>
<li><p>MMLU &amp; HELM - task suites with gold answers across many domains. MMLU is the most trusted pretraining benchmark.</p>
</li>
<li><p>Chatbot Arena - humans blind-compare two models and vote; 300K+ votes power an Elo leaderboard.</p>
</li>
<li><p>AlpacaEval - an LLM judges other LLMs. 98% correlation with Chatbot Arena, under 3 minutes and under $10 - but it has biases, like favoring longer answers.</p>
</li>
</ul>
<p>The honest takeaway: evaluating an aligned model is genuinely hard, and no single number captures it. The same model can score 0.637 or 0.488 on MMLU depending only on the prompt format.</p>
<blockquote>
<p>Systems: making training physically possible</p>
</blockquote>
<p>Everyone is bottlenecked by compute - GPUs are expensive, scarce, and physically limited by communication speed. A 7B model needs ~112GB just to train naively. So the systems layer is not optional; it is what makes the whole thing feasible:</p>
<ul>
<li><p>Low precision - 16-bit (bf16) instead of 32-bit, halving memory and boosting speed.</p>
</li>
<li><p>Operator fusion &amp; tiling - minimize slow trips to global memory; FlashAttention alone gives a ~1.7x end-to-end speedup.</p>
</li>
<li><p>Data parallelism - split the dataset across GPUs (sharding optimizer state with ZeRO to save memory).</p>
</li>
<li><p>Model parallelism - split the model across GPUs by layer (pipeline) or by matrix (tensor).</p>
</li>
<li><p>Sparsity - Mixture of Experts: more parameters, same FLOPs, by activating only a subset per token.</p>
</li>
</ul>
<img src="https://media.licdn.com/dms/image/v2/D5612AQE6Ae5j-5pXnw/article-inline_image-shrink_1500_2232/B56Z7vECB3IoAQ-/0/1782127274681?e=1783555200&amp;v=beta&amp;t=7_7mfo5IEOGxz923iNjlEhSs6KjHMLdnOqW0fsXKsLI" alt="Article content" style="display:block;margin:0 auto" />

<blockquote>
<p>What this whole pipeline teaches</p>
</blockquote>
<p>Walk back through the five stages and the thesis is undeniable. Architecture - the part everyone obsesses over - got the least attention. Data, scaling, alignment, evaluation, and systems are where every real decision gets made.</p>
<p>That is why two labs with the same architecture produce wildly different models. <strong>The architecture is shared. Everything that matters is not.</strong></p>
<hr />
<p><strong>The mistakes that sink LLM projects</strong></p>
<ul>
<li><p>Obsessing over architecture. The most copied, least differentiating part of the stack.</p>
</li>
<li><p>Treating data as a commodity. Dirty data caps your ceiling no matter the compute. Quality over quantity.</p>
</li>
<li><p>Skipping the Chinchilla math. A model too big for its data is undertrained and wastes compute.</p>
</li>
<li><p>Stopping at SFT. A fine-tuned model imitates; without RLHF or DPO it never learns what people prefer.</p>
</li>
<li><p>Trusting perplexity after alignment. Post-training changes the distribution - perplexity stops being meaningful.</p>
</li>
</ul>
<hr />
<h2>Conclusion:</h2>
<blockquote>
<p>A great model is not trained. It is engineered.</p>
</blockquote>
<p>Most people will keep believing that building an LLM is about the architecture, keep reading transformer explainers, and keep missing where the real work happens.</p>
<p>The ones who understand the pipeline will see it clearly: language modeling, then clean data, then optimal scaling, then alignment, then honest evaluation on efficient systems. Five stages. The architecture is one paragraph of one of them.</p>
<p>Pick one stage you have been ignoring, probably data or evaluation. Go deep on it. That is where the difference lives.</p>
<hr />
<h3>Closing</h3>
<p>If you found this useful, be sure to follow me <a href="https://hashnode.com/@aashuu" class="user-mention" data-type="mention" title="aashuu ✦">aashuu ✦</a></p>
<p>I publish 3–4 articles each week, breaking down the latest innovations in Tech, AI, and Business.</p>
<p>Stay ahead in AI &amp; Tech → Connect on 𝕏 <a href="https://x.com/warrioraashuu">warrioraashuu</a></p>
]]></content:encoded></item><item><title><![CDATA[Fable 5 (Mythos) Prompting Masterclass by Anthropic]]></title><description><![CDATA[TLDR: Anthropic just published the official playbook for prompting the most powerful AI model on earth — I translated it.
Most people won’t read this guide (it’s buried in the API docs), which is writ]]></description><link>https://codeaashu.hashnode.dev/fable-5-mythos-prompting-masterclass-by-anthropic</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/fable-5-mythos-prompting-masterclass-by-anthropic</guid><category><![CDATA[AI]]></category><category><![CDATA[#anthropic]]></category><category><![CDATA[claude]]></category><category><![CDATA[fable 5]]></category><category><![CDATA[#PromptEngineering]]></category><category><![CDATA[technology]]></category><category><![CDATA[AI models]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Sat, 13 Jun 2026 08:40:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/65e39040f57cda771a52aa7a/bc066835-132a-4449-a03c-d67cca43c7ed.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>TLDR: Anthropic just published the official playbook for prompting the most powerful AI model on earth — I translated it.</p>
<p>Most people won’t read this guide (it’s buried in the API docs), which is written for developers, and the average Claude user will bounce off it in 30 seconds due to its density.</p>
<p>This article is the plain English version.</p>
<p>Claude Fable 5, also known as Mythos, is a fundamentally different model from everything Anthropic has shipped before. The way you think about prompting structure needs to completely change.</p>
<p>Here’s everything that you need to know.</p>
<h3><strong>Table of Contents</strong></h3>
<p>I: What Makes Fable 5 (Mythos) Different</p>
<p>II: How to Prompt Fable Properly</p>
<p>III: Optimal Prompting Structure for Fable 5 (+/loops)</p>
<p>IV: What to Watch Out For (caveats)</p>
<p>For reference, this is the playbook I’ve translated. Feel free to review it in-depth and verify my analysis:</p>
<img src="https://miro.medium.com/v2/resize:fit:1400/1*221aSYkWnH1a9bQ54wNaBg.png" alt="" style="display:block;margin:0 auto" />

<p><a href="https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-fable-5">https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-fable-5</a></p>
<hr />
<h2>What Makes Fable 5 (Mythos) Different</h2>
<p>A brief overview of the fundamental changes in Fable 5 (Mythos) — important context</p>
<p><strong>1 - Run Time</strong></p>
<p>Every Claude model before Fable 5 worked in relatively short bursts.</p>
<p>Claude Fable 5 is meant to sustain output over extended periods to complete multi-day, goal-directed tasks.</p>
<p>This is one of the biggest shifts. Fable 5 is meant for fully autonomous work (paired with /goal or /loop).</p>
<p><strong>2 - It Gets Things Right First Time</strong></p>
<p>One of the most reported early observations from people using Fable 5 is how rarely they need to iterate. Early testers reported single-pass implementations of systems that previously took days of iteration.</p>
<p><strong>3 - Clarifying Questions</strong></p>
<p>To execute autonomous work loops accurately, Fable 5 may ask a series of clarifying questions before it kicks off its autonomous run.</p>
<p><strong>4 - Agent Management</strong></p>
<p>Fable 5 is built to manage multiple parallel subagents at once (spinning up 50+ agents for complex tasks).</p>
<p><strong>5 - It “Sees” Better</strong></p>
<p>Claude Fable 5 interprets dense technical images, web applications, and detailed screenshots with substantially higher accuracy.</p>
<p>For anyone using Claude to analyse charts, screenshots, documents, or visual data, the improvement here is meaningful.</p>
<p><strong>6 - Coding + Security Audits</strong></p>
<p>It’s no secret that Fable is a coding genius. This new model is especially powerful for codebase review and debugging.</p>
<img src="https://miro.medium.com/v2/resize:fit:1400/0*I0ZeC3gZNFUg9Y0U" alt="" style="display:block;margin:0 auto" />

<p>TLDR: You need to think of Fable as a collaboration/consultant partner that leads your work. It is meant to be a genius.</p>
<hr />
<h2>II: How to Prompt Fable Properly</h2>
<p><strong>1 - Match Your Effort Level to the Task</strong></p>
<p>Effort is the primary control for the trade-off between intelligence, latency, and cost on Claude Fable 5.</p>
<p>It is recommended to use high as the default for most tasks, with xhigh for the most capability-sensitive work.</p>
<p>Think of it like hiring a consultant. You don’t need them running at full capacity to answer a simple question.</p>
<p><strong>The practical guide:</strong></p>
<p>Low or medium: Quick questions, simple rewrites, basic research, anything conversational</p>
<p>High: Default</p>
<p>Xhigh: Your hardest problems. Complex builds, multi-step analysis, anything where quality is non-negotiable</p>
<p>Ultracode: Full autonomous orchestration with Dynamic Workflows (more on this later)</p>
<p><strong>2 - Tell It Why, Not Just What</strong></p>
<p>Fable 5 cannot perform solely on instructions, unlike other models. It needs the “why” behind things, which is why it asks many clarifying questions.</p>
<p>Context lets it connect the task to relevant information rather than inferring intent on its own.</p>
<p>The formula Anthropic recommends:</p>
<p>PROMPT STRUCTURE</p>
<p><em>“I’m working on [the larger task] for [who it’s for]. They need [what the output enables]. With that in mind: [your actual request].”</em></p>
<p><strong><em>3 -</em> Keep Instructions Short</strong></p>
<p>This feels counterintuitive, but it’s one of the most important adjustments to make when moving to Fable 5.</p>
<p>A short brief instruction is as effective as listing each pattern. Over-engineering your prompts on Fable 5 can actually degrade output quality because you’re constraining a model that would have figured out the right approach on its own.</p>
<p><strong>4 - Tell It When to Stop and Check In</strong></p>
<p>Fable 5 is built to run autonomously. Which means if you don’t define the checkpoints, it will define them itself. Sometimes that’s fine. For important or sensitive work, you want to set the boundaries explicitly.</p>
<p>Use this instruction when you want Fable 5 to run autonomously but stop at the right moments:</p>
<p><strong>CHECKPOINT PROMPT</strong></p>
<p><em>“Pause for me only when the work genuinely requires my input: a destructive or irreversible action, a real scope change, or something only I can provide. Otherwise, keep going and report back when done.”</em></p>
<p><strong>5 - Build It a Memory System</strong></p>
<p>Claude Fable 5 performs particularly well when it can record lessons from previous runs and reference them. Provide a place to write notes, as simple as a markdown file.</p>
<p>The instruction Anthropic recommends for your memory file:</p>
<h2>MEMORY INSTRUCTION</h2>
<p><em>“Store one lesson per file with a one-line summary at the top. Record corrections and confirmed approaches alike, including why they mattered. Don’t save what the repo or chat history already records. Update an existing note rather than creating a duplicate. Delete notes that turn out to be wrong.”</em></p>
<hr />
<h3>Optimal Prompting Structure for Fable 5 (+/loops)</h3>
<p>The exact framework you should use for most prompts (combining all the tips above)</p>
<p>General Structure</p>
<p>Every high-quality Fable 5 prompt has four components:</p>
<ol>
<li><p>Context: Files, data, and so on.</p>
</li>
<li><p>Request: What you actually want done.</p>
</li>
<li><p>Output format: Exactly how you want the result delivered.</p>
</li>
<li><p>Constraints: What Fable 5 must not assume on its own</p>
</li>
</ol>
<p>Put together, it looks like this:</p>
<pre><code class="language-plaintext">OPTIMAL PROMPT STRUCTURE
"I'm working on [the larger task] for [who it's for]. 
They need [what the output enables].
Request: [your specific ask in one clear sentence]
Output format: [exactly how you want the result 
structured and delivered]
Constraints: [what must not happen on 
the way to the result]"
</code></pre>
<p>/loops</p>
<p>/loop is one of the most powerful ways to use this new model.</p>
<p>If you’re unfamiliar, setting a /loop just allows your AI to work without manual intervention.</p>
<p>You should structure your /loop prompts like this:</p>
<pre><code class="language-plaintext">/loop &lt;time interval&gt; + goal
</code></pre>
<p>Example: /loop 15 minutes, check if my build is passing, and notify me if it fails.</p>
<p>To stop a loop:</p>
<p>/loop stop [loop name]</p>
<hr />
<h2><strong>What to Watch Out For</strong></h2>
<p><em>Some things to keep in mind when using Fable 5</em></p>
<ul>
<li>It Runs Longer Than You Expect</li>
</ul>
<p>This is one of the largest shifts teams encounter when adjusting to Claude Fable 5. Individual requests for hard tasks can run for many minutes at higher-effort settings.</p>
<ul>
<li>It Can Go Beyond What You Asked For</li>
</ul>
<p>Fable 5 is proactive by design. Claude Fable 5 can occasionally take unrequested actions. Use check-ins/loops to combat this.</p>
<ul>
<li>Your Old Prompts May Work Against You</li>
</ul>
<p>If you have saved skills or project instructions built for other models like Claude Opus 4.8 or earlier, they may actually produce worse results on Fable 5 than a simple fresh prompt would. Start fresh.</p>
<ul>
<li>Decline Cybersecurity and Life Sciences Requests (and more)</li>
</ul>
<p>Fable may hallucinate, and decline prompts you think are “safe.”</p>
<ul>
<li>It Can Occasionally Stop Early</li>
</ul>
<p>If this happens, a simple “go ahead and do it end-to-end” is enough to get it moving again.</p>
<ul>
<li>Token Costs Are Higher</li>
</ul>
<p>And of course, this is an insanely expensive model. Available on paid plans until June 22; after that, all access will be via API costs.</p>
<hr />
<h2><strong>Closing</strong></h2>
<p>If you found this useful, be sure to follow me <a href="https://hashnode.com/@aashuu" class="user-mention" data-type="mention" title="aashuu ✦">aashuu ✦</a></p>
<p>I publish daily articles that break down the latest innovations in Tech, AI, and Business.</p>
<p>For valuable content ✦ Connect on 𝕏 → <a href="http://x.com/warrioraashuu">x.com/warrioraashuu</a></p>
]]></content:encoded></item><item><title><![CDATA[It’s official ✦ Google Summer of Code 2026 is coming]]></title><description><![CDATA[Yes, it’s official ✦ Google Summer of Code 2026 is coming
🗓 Key dates:Applications open: March 16, 2026Applications close: March 31, 2026  
And if you are still planning to “start in March”… you’re already late.  
The application period is NOT the p...]]></description><link>https://codeaashu.hashnode.dev/its-official-google-summer-of-code-2026-is-coming</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/its-official-google-summer-of-code-2026-is-coming</guid><category><![CDATA[Open Source]]></category><category><![CDATA[gsoc]]></category><category><![CDATA[gsoc2026]]></category><category><![CDATA[Collaboration]]></category><category><![CDATA[Developer]]></category><category><![CDATA[Career]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Thu, 04 Dec 2025 11:57:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1764848857854/f41bee5e-ea92-430e-b379-c6e3741e9415.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Yes, it’s official ✦ Google Summer of Code 2026 is coming</p>
<p>🗓 Key dates:<br />Applications open: March 16, 2026<br />Applications close: March 31, 2026  </p>
<p>And if you are still planning to “start in March”… you’re already late.  </p>
<p>The application period is NOT the preparation period.  </p>
<p>As a GSoC 2025 contributor, I’ve seen firsthand how much this program can accelerate your learning, network, and career. It was a turning point for me, and I want more people from my network to experience that.  </p>
<p>Here’s what I’d do if I were starting today for GSoC 2026:  </p>
<p>1️⃣ Start TODAY, not in March<br />Don’t wait for the official org list.<br />Most orgs participate every year.<br />Pick 2–3 orgs &amp; start exploring their ecosystem and see which ones align with your skills (web dev, systems, ML, security, etc.).  </p>
<p>2️⃣ Observe before you contribute<br />- Join their Slack, Discord, IRC, GitHub discussions, whatever they use.<br />- Just watch how they talk, how they solve issues, how PRs are reviewed.<br />This will teach you more than any YouTube “GSoC roadmap” video.  </p>
<p>3️⃣ Start with “small but visible”<br />- Fix a typo.<br />- Improve a README.<br />- Refactor a tiny function.<br />- Add missing documentation.<br />- A “good first issue”<br />It’s not about “showing skills”…<br />It’s about showing you can collaborate.<br />These get your name on the board and show you are active.  </p>
<p>4️⃣ Think in terms of a proposal from day one<br />While you contribute, keep a running document of:<br />- Problems you notice in the project<br />- Possible improvements<br />- Links to your PRs and discussions<br />Good proposals don’t come from templates.<br />They come from actually understanding the codebase, talking to mentors, and solving real issues.  </p>
<p>✦ If you’re serious about GSoC 2026…</p>
<p>Let’s connect on LinkedIn:<br /><a target="_blank" href="https://www.linkedin.com/in/ashutoshkumaraashu/">https://www.linkedin.com/in/ashutoshkumaraashu/</a><br />I’ll also be sharing more resources, templates, and my honest learnings from GSoC 2025 very soon.</p>
]]></content:encoded></item><item><title><![CDATA[DevDisplay - Paradise For Developers!]]></title><description><![CDATA[The First Global Platform for Developers to Fulfill All Their Tech Needs.

⚡Imagine One Platform for Global Developers to Fulfill All The Tech Needs! ⚡



💡
Whatever you need as a developer, DevDisplay has it all.



Opportunities

Resources

Projec...]]></description><link>https://codeaashu.hashnode.dev/devdisplay-paradise-for-developers</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/devdisplay-paradise-for-developers</guid><category><![CDATA[DevDisplay]]></category><category><![CDATA[Paradise For Developers]]></category><category><![CDATA[developers]]></category><category><![CDATA[Tools for Developers]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Sun, 06 Apr 2025 11:32:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1743937127890/0730c597-9b31-49b7-bb04-dba723c8b758.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-the-first-global-platform-for-developers-to-fulfill-all-their-tech-needs">The First Global Platform for Developers to Fulfill All Their Tech Needs.</h2>
<blockquote>
<h3 id="heading-imagine-one-platform-for-global-developers-to-fulfill-all-the-tech-needs">⚡Imagine One Platform for Global Developers to Fulfill All The Tech Needs! ⚡</h3>
</blockquote>
<hr />
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Whatever you need as a developer, DevDisplay has it all.</div>
</div>

<ul>
<li><h3 id="heading-opportunities">Opportunities</h3>
</li>
<li><h3 id="heading-resources">Resources</h3>
</li>
<li><h3 id="heading-project-showcase">Project Showcase</h3>
</li>
<li><h3 id="heading-portfolio-ideas">Portfolio Ideas</h3>
</li>
<li><h3 id="heading-resume-building">Resume Building</h3>
</li>
<li><h3 id="heading-ai-tools-hub">AI Tools Hub</h3>
</li>
<li><h3 id="heading-industry-trends">Industry Trends</h3>
</li>
<li><h3 id="heading-ai-career-guide">AI Career Guide</h3>
</li>
<li><h3 id="heading-portfolio-builder">Portfolio Builder</h3>
</li>
<li><h3 id="heading-idea-submission">Idea Submission</h3>
</li>
<li><h3 id="heading-journey-showcase">Journey Showcase</h3>
</li>
<li><h3 id="heading-design-display">Design Display</h3>
</li>
<li><h3 id="heading-dev-discussions">Dev Discussions</h3>
</li>
<li><h3 id="heading-devdisplay-ui-library">DevDisplay UI Library</h3>
</li>
<li><h3 id="heading-devdisplay-compiler">DevDisplay Compiler</h3>
</li>
<li><h3 id="heading-devdisplay-competitions">DevDisplay Competitions</h3>
</li>
<li><h3 id="heading-developer-marketplace">Developer Marketplace</h3>
</li>
<li><h3 id="heading-devdisplay-ecommerce">DevDisplay Ecommerce</h3>
</li>
</ul>
<hr />
<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">We believe innovation is limitless...✦</div>
</div>

<p>Suggest new features you'd love to see on DevDisplay! As a tech enthusiast and developer, you're encouraged to think beyond—think outside the box. Suggest and add new, innovative features that could revolutionize the tech world and make a difference in the tech ecosystem. If you spot a gap in the tech industry, DevDisplay can be the solution. You can also give us brutal and honest feedback—Roast Us! It helps us improve and make DevDisplay even better. Here, your ideas matter, your code matters—you matter.</p>
<h2 id="heading-developers-lets-enter-to-the-paradise-devdisplayhttpswwwdevdisplayorg">Developers let’s enter to the Paradise - <a target="_blank" href="https://www.devdisplay.org/">DevDisplay</a></h2>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://github.com/codeaashu/DevDisplay">https://github.com/codeaashu/DevDisplay</a></div>
]]></content:encoded></item><item><title><![CDATA[How does the internet work?]]></title><description><![CDATA[Table of contents

🤔 What is the Internet ?

🚠 Wires, Cables and Wifi

📭 IP Addresses and DNS

📦 Packets, Routing & Reliability

🌐 HTTP and HTML

🔑 Encryption and Public Key

🃏 CyberSecurity and Crime


Since the explosive growth of web-based ...]]></description><link>https://codeaashu.hashnode.dev/how-does-the-internet-work</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/how-does-the-internet-work</guid><category><![CDATA[internet]]></category><category><![CDATA[how internet works]]></category><category><![CDATA[web]]></category><category><![CDATA[how web works]]></category><category><![CDATA[http]]></category><category><![CDATA[dns]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Sun, 07 Jul 2024 19:02:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1720378011518/aa361f81-54cb-4944-be0c-2b1d32fb52bc.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-table-of-contents"><strong>Table of contents</strong></h2>
<ul>
<li><p><a target="_blank" href="https://codeaashu.hashnode.dev/how-does-the-internet-work#heading-what-is-the-internet">🤔 What is the Internet ?</a></p>
</li>
<li><p><a target="_blank" href="https://codeaashu.hashnode.dev/how-does-the-internet-work#heading-wires-cables-and-wifi">🚠 Wires, Cables and Wifi</a></p>
</li>
<li><p><a target="_blank" href="https://codeaashu.hashnode.dev/how-does-the-internet-work#heading-ip-addresses-and-dns">📭 IP Addresses and DNS</a></p>
</li>
<li><p><a target="_blank" href="https://codeaashu.hashnode.dev/how-does-the-internet-work#heading-packets-routing-amp-reliability">📦 Packets, Routing &amp; Reliability</a></p>
</li>
<li><p><a target="_blank" href="https://codeaashu.hashnode.dev/how-does-the-internet-work#heading-http-and-html">🌐 HTTP and HTML</a></p>
</li>
<li><p><a target="_blank" href="https://codeaashu.hashnode.dev/how-does-the-internet-work#heading-encryption-and-public-key">🔑 Encryption and Public Key</a></p>
</li>
<li><p><a target="_blank" href="https://codeaashu.hashnode.dev/how-does-the-internet-work#heading-cybersecurity-and-crime">🃏 CyberSecurity and Crime</a></p>
</li>
</ul>
<p>Since the explosive growth of web-based applications, every developer stands to benefit from understanding how the Internet works. Through this article and its accompanying introductory series of short videos about the Internet from <a target="_blank" href="https://code.org/"><strong>code.org</strong></a>, you will learn the basics of the Internet and how it works. After going through this article, you will be able to answer the following questions:</p>
<ol>
<li><p>What is the Internet?</p>
</li>
<li><p>How does the information move on the internet?</p>
</li>
<li><p>How do the networks talk to each other and the protocols involved?</p>
</li>
<li><p>What’s the relationship between packets, routers, and reliability?</p>
</li>
<li><p>HTTP and the HTML - How are you viewing this webpage in your browser?</p>
</li>
<li><p>How is the information transfer on the internet made secure?</p>
</li>
<li><p>What is cybersecurity and what are some common internet crimes?</p>
</li>
</ol>
<h3 id="heading-what-is-the-internet">🤔 What is the Internet ?</h3>
<p>The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols. In the video below, Vint Cerf, one of the “fathers of the internet,” explains the history of how the Internet works and how no one person or organization is really in charge of it.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/Dxcc6ycZ73M">https://youtu.be/Dxcc6ycZ73M</a></div>
<p> </p>
<h3 id="heading-wires-cables-and-wifi">🚠 Wires, Cables and Wifi</h3>
<p>Information on the Internet moves from one computer to another in the form of bits over various mediums, including Ethernet cables, fiber optic cables, and wireless signals (i.e., radio waves). In the video linked below, you will learn about the different mediums for data transfer on the Internet and the pros and cons for each.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/ZhEf7e4kopM">https://youtu.be/ZhEf7e4kopM</a></div>
<p> </p>
<h3 id="heading-ip-addresses-and-dns">📭 IP Addresses and DNS</h3>
<p>Now that you know about the physical medium for the data transfer over the internet, it’s time to learn about the protocols involved. How does the information traverse from one computer to another in this massive global network of computers?</p>
<p>In the video below, you will get a brief introduction to IP, DNS, and how these protocols make the Internet work.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/5o8CwafCxnU">https://youtu.be/5o8CwafCxnU</a></div>
<p> </p>
<h3 id="heading-packets-routing-amp-reliability">📦 Packets, Routing &amp; Reliability</h3>
<p>Information transfer on the Internet from one computer to another does not need to follow a fixed path; in fact, it may change paths during the transfer. This information transfer is done in the form of packets and these packets may follow different routes depending on certain factors.</p>
<p>In this video, you will learn about how the packets of information are routed from one computer to another to reach the destination.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/AYdF7b3nMto">https://youtu.be/AYdF7b3nMto</a></div>
<p> </p>
<h3 id="heading-http-and-html">🌐 HTTP and HTML</h3>
<p>HTTP is the standard protocol by which webpages are transferred over the Internet. The video below is a brief introduction to HTTP and how web browsers load websites for you.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/kBXQZMmiA4s">https://youtu.be/kBXQZMmiA4s</a></div>
<p> </p>
<h3 id="heading-encryption-and-public-key">🔑 Encryption and Public Key</h3>
<p>Cryptography is what keeps our communication secure on the Internet. In this short video, you will learn the basics of cryptography, SSL/TLS, and how they help make the communication on the Internet secure.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/ZghMPWGXexs">https://youtu.be/ZghMPWGXexs</a></div>
<p> </p>
<h3 id="heading-cybersecurity-and-crime">🃏 CyberSecurity and Crime</h3>
<p>Cybersecurity refers to the protective measures against criminal activity accomplished through using a network, technological devices, and the <a target="_blank" href="http://internet.in/"><strong>internet.In</strong></a> this video, you will learn about the basics of cybersecurity and common cyber crimes.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://youtu.be/AuYNXgO_f3Y">https://youtu.be/AuYNXgO_f3Y</a></div>
<p> </p>
<p>And that wraps it up for this article.</p>
<p>To learn more about the Internet, go through the episodes of <a target="_blank" href="http://howdns.works/"><strong>howdns.works</strong></a> and read this <a target="_blank" href="https://hacks.mozilla.org/2018/05/a-cartoon-intro-to-dns-over-https/"><strong>cartoon intro to DNS over HTTP</strong></a>.</p>
<p><strong>&amp; all set! 👍🏻</strong></p>
<p>Let's 💌 Connect on 👉🏻 <a target="_blank" href="https://www.linkedin.com/in/ashutoshkumaraashu/">LinkedIn</a> 🌐 <a target="_blank" href="https://twitter.com/warrior_aashuu">Twitter X</a> 🚀 for make a Productive Community. It will cost nothing...</p>
]]></content:encoded></item><item><title><![CDATA[OTP  Verification using Python]]></title><description><![CDATA[Introduction:
In this project, we have made an OTP verification System with Help of various libraries. First of all, we made use of Tkinter for creating the GUI for our project. Next to that, to generate the random Numbers as OTP we used a random mod...]]></description><link>https://codeaashu.hashnode.dev/otp-verification-using-python</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/otp-verification-using-python</guid><category><![CDATA[codeaashu]]></category><category><![CDATA[Python]]></category><category><![CDATA[python projects]]></category><category><![CDATA[python beginner]]></category><category><![CDATA[python programming]]></category><category><![CDATA[python blog]]></category><category><![CDATA[python articles]]></category><category><![CDATA[Python 3]]></category><category><![CDATA[Hashnode]]></category><category><![CDATA[viral ]]></category><category><![CDATA[#viral #explorepage #trending #explore #instagram #tiktok #love #like #follow #instagood #likeforlikes #memes #music #followforfollowback #fyp #viralvideos #lfl #photography #likes #viralpost #indonesia #instadaily #india #model #cute #k #style #foryou #fashion #art]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Thu, 04 Jul 2024 10:34:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1720088110257/d152b9d6-345c-4617-be17-aa3a7a69e689.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4 id="heading-introduction"><strong>Introduction:</strong></h4>
<p>In this project, we have made an OTP verification System with Help of various libraries. First of all, we made use of <a target="_blank" href="https://docs.python.org/3/library/tkinter.html">Tkinter</a> for creating the GUI for our project. Next to that, to generate the random Numbers as OTP we used a <a target="_blank" href="https://docs.python.org/3/library/random.html">random</a> module. At last, forgetting and checking the OTP we used an API <a target="_blank" href="https://www.twilio.com/docs/libraries/python">Twilio</a>.</p>
<p>A random number will be sent to the stated mobile number with the help of the API and then our project will check whether the OTP is valid or not, and thus this will build an OTP Verification Project using Python.</p>
<h4 id="heading-explanation"><strong>Explanation:</strong></h4>
<p>The main objectives that need to be fulfilled while making this projects are:</p>
<ul>
<li><p>Creating a GUI for this project</p>
</li>
<li><p>Generating a random number as OTP</p>
</li>
<li><p>Sending the OTP to the stated Mobile number</p>
</li>
<li><p>Checking whether the OTP is valid or not</p>
</li>
<li><p>Resending the OTP</p>
</li>
</ul>
<p>We will work on these objectives step by step to complete this project.</p>
<p>First of all, creating a GUI for our project will make use of the “<strong>tkinter”</strong> module, from <strong>“future. moves”</strong> we will import the module. The most major step is to create the instance of the tkinter frame i.e. tk(). This will help to display the window and manage all the components of the tkinter application. In addition to this, with the help of <strong>“.title()” &amp; “.geometry()”</strong> we will set the title and dimensions for the window. With this, we will also draw the Canvas for OTP Verification with the help of <strong>“.canvas()”</strong> and by using <strong>“.place()”</strong> we will provide the dimensions as parameters for placing our canvas.</p>
<h4 id="heading-source-code"><strong>Source Code:</strong></h4>
<pre><code class="lang-python"><span class="hljs-comment"># Importing the libraries</span>
<span class="hljs-keyword">import</span> twilio.rest
<span class="hljs-keyword">import</span> random
<span class="hljs-keyword">from</span> future.moves <span class="hljs-keyword">import</span> tkinter
<span class="hljs-keyword">from</span> tkinter <span class="hljs-keyword">import</span> messagebox

<span class="hljs-comment"># Creating Window</span>
root = tkinter.Tk()
root.title(<span class="hljs-string">"OTP Verification"</span>)
root.geometry(<span class="hljs-string">"600x550"</span>)

<span class="hljs-comment"># Twilio account details</span>
account_sid = <span class="hljs-string">""</span>
auth_token = <span class="hljs-string">""</span>


<span class="hljs-comment"># resend the OTP</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">resendOTP</span>():</span>
    n = random.randint(<span class="hljs-number">1000</span>, <span class="hljs-number">9999</span>)
    client = twilio.rest.Client(account_sid, auth_token)
    client.messages.create(to=[<span class="hljs-string">""</span>], from_=<span class="hljs-string">" "</span>, body=n)


<span class="hljs-comment"># Checking the OTP</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">checkOTP</span>():</span>
    <span class="hljs-keyword">global</span> n
    <span class="hljs-keyword">try</span>:
        user_input = int(user.get(<span class="hljs-number">1.0</span>, <span class="hljs-string">"end01c"</span>))
        <span class="hljs-keyword">if</span> user_input == n:
            messagebox.showinfo(<span class="hljs-string">"showinfo"</span>, <span class="hljs-string">"Login Success"</span>)
            n = <span class="hljs-string">"done"</span>
        <span class="hljs-keyword">elif</span> n == <span class="hljs-string">"done"</span>:
            messagebox.showinfo(<span class="hljs-string">"showinfo"</span>, <span class="hljs-string">"Already entered"</span>)
        <span class="hljs-keyword">else</span>:
            messagebox.showinfo(<span class="hljs-string">"showinfo"</span>, <span class="hljs-string">"wrong OTP"</span>)
    <span class="hljs-keyword">except</span>:
        messagebox.showinfo(<span class="hljs-string">"showinfo"</span>, <span class="hljs-string">"Invalid OTP"</span>)


<span class="hljs-comment"># Drawing the canvas</span>
c = tkinter.Canvas(root, bg=<span class="hljs-string">"white"</span>, width=<span class="hljs-number">400</span>, height=<span class="hljs-number">300</span>)
c.place(x=<span class="hljs-number">100</span>, y=<span class="hljs-number">60</span>)

<span class="hljs-comment"># Label widget</span>
login = tkinter.Label(root, text=<span class="hljs-string">"OTP Verification"</span>, font=<span class="hljs-string">"bold,20"</span>, bg=<span class="hljs-string">"white"</span>)
login.place(x=<span class="hljs-number">210</span>, y=<span class="hljs-number">90</span>)

<span class="hljs-comment"># Entry widget</span>
user = tkinter.Text(root, borderwidth=<span class="hljs-number">2</span>, wrap=<span class="hljs-string">"word"</span>, width=<span class="hljs-number">29</span>, height=<span class="hljs-number">2</span>)
user.place(x=<span class="hljs-number">190</span>, y=<span class="hljs-number">160</span>)

<span class="hljs-comment"># Sending the otp</span>
n = random.randint(<span class="hljs-number">1000</span>, <span class="hljs-number">9999</span>)
client = twilio.rest.Client(account_sid, auth_token)
client.messages.create(to=[<span class="hljs-string">""</span>], from_=<span class="hljs-string">""</span>, body=n)

<span class="hljs-comment"># Submit button</span>
submit_button = tkinter.Button(root, text=<span class="hljs-string">"Submit"</span>, command=checkOTP(), font=(<span class="hljs-string">'bold'</span>, <span class="hljs-number">15</span>))
submit_button.place(x=<span class="hljs-number">258</span>, y=<span class="hljs-number">250</span>)

<span class="hljs-comment"># Resend Button</span>
resend_button = tkinter.Button(root, text=<span class="hljs-string">"Resend OTP"</span>, command=resendOTP(), font=(<span class="hljs-string">"bold"</span>, <span class="hljs-number">15</span>))
resend_button.place(x=<span class="hljs-number">240</span>, y=<span class="hljs-number">400</span>)

<span class="hljs-comment"># Event Loop</span>
root.mainloop()
</code></pre>
<p>We will create a submit button and resend button with the help of <strong>“.Buttons()”</strong>  to trigger the submit and resend command. With the help of this module, we will create the label widget stating OTP verification and an entry widget to provide space for the user to write.</p>
<p>After doing so we will see that our GUI will get ready for the project. Now, to provide the actual functionality we will use API i.e. Twilio.</p>
<p>In this, firstly we will use the <strong>“random. randint()”</strong> of the random module to generate the random number which will later be considered as OTP.</p>
<p>The next step is to send the OTP. For this process, firstly you have to make a <a target="_blank" href="https://www.twilio.com/login">Twilio account</a></p>
<p>After this, you will be provided with an account sid and auth token. With the help of <strong>“twilio.rest.Client(account sid, auth token)”</strong> you will first allow your query to metadata. For sending the message we will use <strong>“client. messages.create(to=[“”], from_=” “, body=” “)”</strong> . And all of this functionality is stated under UDF <strong>resendOTP()</strong></p>
<p>The next step is to check the OTP. For this, firstly we will store the user input and now will run a try and except block in which under the try block we will compare that if user input is the same as the generated random number then a message box will appear stating login successfully and the random number stored variable will get updated. And again if the user entered the same OTP then the message box will say that the user has already logged in and finally when the user will enter the wrong OTP then the message box will throw the message of invalid OTP. The syntax for the message box is <strong>“messagebox. showinfo ()”.</strong> All of this is covered under UDF <strong>checkOTP().</strong></p>
<p>After entering the OTP the user can click the submit button and if he/she wants the OTP again then the one can click on the Resend OTP button. In the end, we will run a mainloop for all the functionalities to get executed.</p>
<h4 id="heading-output"><strong>Output</strong></h4>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1720088361815/4b6c41c8-14a0-4fad-aa66-e943add19b6d.png" alt class="image--center mx-auto" /></p>
<p><strong>&amp; all set! 👍🏻</strong></p>
<p>Let's 💌 Connect on 👉🏻 <a target="_blank" href="https://www.linkedin.com/in/ashutoshkumaraashu/">LinkedIn</a> 🌐 <a target="_blank" href="https://twitter.com/warrior_aashuu/">Twitter X</a> 🚀 for make a Productive Community. It will cost nothing...</p>
]]></content:encoded></item><item><title><![CDATA[Basic User Authentication System in C]]></title><description><![CDATA[Introduction:

Introduce the concept of user authentication systems.

Mention the importance of user authentication in software applications.

Briefly describe the purpose and functionality of the code.


Code Overview:

Explain the purpose of each h...]]></description><link>https://codeaashu.hashnode.dev/basic-user-authentication-system-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/basic-user-authentication-system-in-c</guid><category><![CDATA[c project]]></category><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[C programming language]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><category><![CDATA[User Authentication]]></category><category><![CDATA[College Project]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Tue, 11 Jun 2024 06:57:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1718088683855/78657024-fe1c-40d7-b0f4-ac5dc3d3862e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction:</strong></h3>
<ul>
<li><p>Introduce the concept of user authentication systems.</p>
</li>
<li><p>Mention the importance of user authentication in software applications.</p>
</li>
<li><p>Briefly describe the purpose and functionality of the code.</p>
</li>
</ul>
<h3 id="heading-code-overview"><strong>Code Overview:</strong></h3>
<ul>
<li><p>Explain the purpose of each header file included (<code>stdio.h</code>, <code>stdlib.h</code>, <code>string.h</code>).</p>
</li>
<li><p>Define the maximum number of users, maximum username length, and maximum password length using <code>#define</code>.</p>
</li>
<li><p>Define a structure <code>User</code> to store user information (username and password).</p>
</li>
<li><p>Declare an array of <code>User</code> structs to hold user data and a variable <code>numUsers</code> to track the number of registered users.</p>
</li>
</ul>
<h3 id="heading-functions"><strong>Functions:</strong></h3>
<p><strong>Signup Function:</strong></p>
<ol>
<li><p>Check if the maximum user limit has been reached.</p>
</li>
<li><p>Prompt the user to enter a username and password.</p>
</li>
<li><p>Store the user's information in the array of users.</p>
</li>
<li><p>Increment <code>numUsers</code> and display a success message.</p>
</li>
</ol>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">signup</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Code for signup function</span>
}
</code></pre>
<p><strong>Login Function</strong></p>
<ol>
<li><p>Prompt the user to enter their username and password.</p>
</li>
<li><p>Iterate through the array of users to find a matching username and password.</p>
</li>
<li><p>If found, display a success message; otherwise, indicate a failed login.</p>
</li>
</ol>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">login</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Code for login function</span>
}
</code></pre>
<h3 id="heading-title-building-a-basic-user-authentication-system-in-c"><strong>Title: Building a Basic User Authentication System in C</strong></h3>
<p><strong>Subtitle: A Beginner's Guide to Building a Secure User Authentication System in C</strong></p>
<p><strong>Introduction</strong></p>
<ul>
<li><p>Introduce the concept of user authentication systems.</p>
</li>
<li><p>Mention the importance of user authentication in software applications.</p>
</li>
<li><p>Briefly describe the purpose and functionality of the code.</p>
</li>
</ul>
<p><strong>Code Overview</strong></p>
<ul>
<li><p>Explain the purpose of each header file included (<code>stdio.h</code>, <code>stdlib.h</code>, <code>string.h</code>).</p>
</li>
<li><p>Define the maximum number of users, maximum username length, and maximum password length using <code>#define</code>.</p>
</li>
<li><p>Define a structure <code>User</code> to store user information (username and password).</p>
</li>
<li><p>Declare an array of <code>User</code> structs to hold user data and a variable <code>numUsers</code> to track the number of registered users.</p>
</li>
</ul>
<p><strong>Functions</strong></p>
<ol>
<li><p><strong>Signup Function</strong></p>
<ul>
<li><p>Check if the maximum user limit has been reached.</p>
</li>
<li><p>Prompt the user to enter a username and password.</p>
</li>
<li><p>Store the user's information in the array of users.</p>
</li>
<li><p>Increment <code>numUsers</code> and display a success message.</p>
</li>
</ul>
</li>
</ol>
<pre><code class="lang-c">        <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">signup</span><span class="hljs-params">()</span> </span>{
            <span class="hljs-comment">// Code for signup function</span>
        }
</code></pre>
<ol start="2">
<li><p><strong>Login Function</strong></p>
<ul>
<li><p>Prompt the user to enter their username and password.</p>
</li>
<li><p>Iterate through the array of users to find a matching username and password.</p>
</li>
<li><p>If found, display a success message; otherwise, indicate a failed login.</p>
</li>
</ul>
</li>
</ol>
<pre><code class="lang-c">      <span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">login</span><span class="hljs-params">()</span> </span>{
          <span class="hljs-comment">// Code for login function</span>
      }
</code></pre>
<p><strong>Main Function:</strong></p>
<ol>
<li><p>Present a menu to the user with options for signup, login, and exit.</p>
</li>
<li><p>Handle user input using a do-while loop and a switch statement.</p>
</li>
<li><p>Call the appropriate functions based on the user's choice.</p>
</li>
</ol>
<pre><code class="lang-c"><span class="hljs-function">Explain
<span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-keyword">int</span> choice, accountNumber, toAccount;
    <span class="hljs-keyword">float</span> amount;

    <span class="hljs-keyword">do</span> {
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"\nBanking System Menu:\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"1. Create Account\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"2. Deposit\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"3. Withdraw\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"4. Transfer\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"5. View Transactions\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"6. Exit\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Enter your choice: "</span>);
        <span class="hljs-built_in">scanf</span>(<span class="hljs-string">"%d"</span>, &amp;choice);
}
</code></pre>
<h3 id="heading-conclusion"><strong>Conclusion:</strong></h3>
<ol>
<li><p>Summarize the purpose and functionality of the code.</p>
</li>
<li><p>Highlight the importance of user authentication in software development.</p>
</li>
<li><p>Encourage further exploration and customization of the code for real-world applications.</p>
</li>
</ol>
<h3 id="heading-final-thoughts"><strong>Final Thoughts:</strong></h3>
<ul>
<li><p>Share any additional resources or references related to user authentication in C.</p>
</li>
<li><p>Invite feedback and questions from readers.</p>
</li>
</ul>
<hr />
<p>Does this layout with the code functions presented in a more attractive format work for your blog post?</p>
]]></content:encoded></item><item><title><![CDATA[Building a Basic Banking System in C]]></title><description><![CDATA[Table of contents

Introduction:

Code Overview:

Functions:

Deposit Function

Withdraw Function

Transfer Function

View Transactions Function

Main Function

Conclusion

Output:


Introduction:

Discuss the importance of banking systems in managin...]]></description><link>https://codeaashu.hashnode.dev/building-a-basic-banking-system-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/building-a-basic-banking-system-in-c</guid><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[C programming language]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><category><![CDATA[C projects]]></category><category><![CDATA[banking technology]]></category><category><![CDATA[banking system]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Sat, 08 Jun 2024 07:43:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717828655150/1f6b30db-ae31-410e-afd5-33f140471bee.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-table-of-contents"><strong>Table of contents</strong></h2>
<ul>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-introduction">Introduction:</a></p>
</li>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-code-overview">Code Overview:</a></p>
</li>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-functions">Functions:</a></p>
</li>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-deposit-function">Deposit Function</a></p>
</li>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-withdraw-function">Withdraw Function</a></p>
</li>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-transfer-function">Transfer Function</a></p>
</li>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-view-transactions-function">View Transactions Function</a></p>
</li>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-main-function">Main Function</a></p>
</li>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-conclusion">Conclusion</a></p>
</li>
<li><p><a target="_blank" href="https://sudeep449.hashnode.dev/title-building-a-basic-banking-system-in-c#heading-output">Output:</a></p>
</li>
</ul>
<h3 id="heading-introduction"><strong>Introduction:</strong></h3>
<ul>
<li><p>Discuss the importance of banking systems in managing financial transactions.</p>
</li>
<li><p>Introduce the concept of a basic banking system implemented in C.</p>
</li>
<li><p>Outline the functionalities to be covered in the code.</p>
</li>
</ul>
<h3 id="heading-code-overview"><strong>Code Overview:</strong></h3>
<ul>
<li><p>Explain the purpose of each header file included (<code>stdio.h</code>, <code>stdlib.h</code>, <code>string.h</code>).</p>
</li>
<li><p>Define constants for maximum accounts and maximum transactions.</p>
</li>
<li><p>Define structures for transactions and accounts, including arrays to store transaction history.</p>
</li>
</ul>
<h3 id="heading-functions"><strong>Functions:</strong></h3>
<ul>
<li><p><strong>Create Account Function</strong></p>
<ul>
<li><p>Create a new account with a unique account number, name, and zero balance.</p>
</li>
<li><p>Add the account to the accounts array.</p>
</li>
</ul>
</li>
</ul>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">createAccount</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Code for createAccount function</span>
}
</code></pre>
<h3 id="heading-deposit-function"><strong>Deposit Function</strong></h3>
<ul>
<li><p>Add a specified amount to the balance of a given account.</p>
</li>
<li><p>Record the deposit transaction in the account's transaction history.</p>
</li>
</ul>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">deposit</span><span class="hljs-params">(<span class="hljs-keyword">int</span> accountNumber, <span class="hljs-keyword">float</span> amount)</span> </span>{
    <span class="hljs-comment">// Code for deposit function</span>
}
</code></pre>
<h3 id="heading-withdraw-function"><strong>Withdraw Function</strong></h3>
<ul>
<li><p>Deduct a specified amount from the balance of a given account.</p>
</li>
<li><p>Check for sufficient balance before processing the withdrawal.</p>
</li>
<li><p>Record the withdrawal transaction in the account's transaction history.</p>
<pre><code class="lang-c">      <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">withdraw</span><span class="hljs-params">(<span class="hljs-keyword">int</span> accountNumber, <span class="hljs-keyword">float</span> amount)</span> </span>{
          <span class="hljs-comment">// Code for withdraw function</span>
      }
</code></pre>
</li>
</ul>
<h3 id="heading-transfer-function"><strong>Transfer Function</strong></h3>
<ul>
<li><p>Transfer a specified amount from one account to another.</p>
</li>
<li><p>Check for sufficient balance in the sender's account before processing the transfer.</p>
</li>
<li><p>Record transfer transactions in both sender and recipient accounts' transaction histories.</p>
</li>
</ul>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">transfer</span><span class="hljs-params">(<span class="hljs-keyword">int</span> fromAccount, <span class="hljs-keyword">int</span> toAccount, <span class="hljs-keyword">float</span> amount)</span> </span>{
    <span class="hljs-comment">// Code for transfer function</span>
}
</code></pre>
<h3 id="heading-view-transactions-function"><strong>View Transactions Function</strong></h3>
<ul>
<li>Display the transaction history for a given account.</li>
</ul>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">viewTransactions</span><span class="hljs-params">(<span class="hljs-keyword">int</span> accountNumber)</span> </span>{
    <span class="hljs-comment">// Code for viewTransactions function</span>
}
</code></pre>
<h3 id="heading-main-function"><strong>Main Function</strong></h3>
<ol>
<li><p>Present a menu to the user with options for banking operations.</p>
</li>
<li><p>Handle user input using a do-while loop and a switch statement.</p>
</li>
<li><p>Call the appropriate functions based on the user's choice.</p>
</li>
</ol>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Code for main function</span>
}
</code></pre>
<h3 id="heading-conclusion"><strong>Conclusion</strong></h3>
<ul>
<li><p>Summarize the functionalities and capabilities of the basic banking system implemented in C.</p>
</li>
<li><p>Discuss potential enhancements or additional features that could be added to the system.</p>
</li>
</ul>
<p>Encourage further exploration and customization of the code for practical applications</p>
<hr />
<p>Does this structure with the code functions presented in a more attractive format suit your blog post about the banking system in C?</p>
<h2 id="heading-output">Output:</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717832513390/b6dec53a-2774-4731-8ac5-9c91b2d48ae7.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717832465117/0303ea5f-c9c4-42fb-9ea9-15c37afb71cb.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717832479312/a255ac6c-6a70-4039-bff5-18adfa66780b.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Simple Database Management in C]]></title><description><![CDATA[Introduction

Discuss the significance of databases in data organization.

Introduce the code's purpose in managing basic databases.


Code Overview

Define structures for columns and tables.

Implement functions for creating tables, inserting data, ...]]></description><link>https://codeaashu.hashnode.dev/simple-database-management-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/simple-database-management-in-c</guid><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[C programming language]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><category><![CDATA[C projects]]></category><category><![CDATA[DBMS]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Sat, 08 Jun 2024 05:29:48 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717823403778/4b581cb8-c460-4a82-8410-cb3129784ce9.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<ul>
<li><p>Discuss the significance of databases in data organization.</p>
</li>
<li><p>Introduce the code's purpose in managing basic databases.</p>
</li>
</ul>
<h3 id="heading-code-overview"><strong>Code Overview</strong></h3>
<ul>
<li><p>Define structures for columns and tables.</p>
</li>
<li><p>Implement functions for creating tables, inserting data, and selecting data.</p>
</li>
</ul>
<h3 id="heading-functions"><strong>Functions</strong></h3>
<ul>
<li><p><strong>Create Table</strong></p>
<ul>
<li>Creates a new table with specified columns.</li>
</ul>
</li>
</ul>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">createTable</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Code for createTable function</span>
}
</code></pre>
<h3 id="heading-insert-data"><strong>Insert Data</strong></h3>
<ul>
<li>Inserts data into a specified table.</li>
</ul>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">insertData</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Code for insertData function</span>
}
</code></pre>
<h3 id="heading-select-data"><strong>Select Data</strong></h3>
<ul>
<li>Displays data from a specified table.</li>
</ul>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">selectData</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Code for selectData function</span>
}
</code></pre>
<h3 id="heading-main-function"><strong>Main Function</strong></h3>
<ul>
<li><p>Presents a menu for database operations.</p>
</li>
<li><p>Handles user input and calls appropriate functions.</p>
</li>
</ul>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Code for main function</span>
}
</code></pre>
<h3 id="heading-in-short"><strong>In Short:</strong></h3>
<ul>
<li><p>Implements basic database management functionalities in C.</p>
</li>
<li><p>Users can create tables, insert data, and view data easily.</p>
</li>
<li><p>Code is structured for simplicity and efficiency in managing databases.</p>
</li>
<li><p>Summarizes the code's purpose and functionalities.</p>
</li>
<li><p>Encourages further exploration and customization of the code for specific database needs.</p>
</li>
</ul>
<hr />
<p>Is this brief blog with code snippets suitable for your needs?</p>
<h2 id="heading-output">Output:</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717824344698/96cdca17-b358-42c5-bdc3-6b44407a3429.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717824387283/0f1e56d1-a982-47ff-8879-7394e2d5d9ce.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Understanding Huffman Coding in C]]></title><description><![CDATA[Introduction:

Briefly explain Huffman coding and its importance in data compression.

Code Overview:

Define structures for nodes and the min heap.

Implement functions for creating nodes, min heap operations, and building the Huffman tree.


Functi...]]></description><link>https://codeaashu.hashnode.dev/understanding-huffman-coding-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/understanding-huffman-coding-in-c</guid><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[C programming language]]></category><category><![CDATA[c program]]></category><category><![CDATA[C projects]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Sat, 08 Jun 2024 05:07:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717822884379/9b0d0759-40b0-4f58-b150-b5ad16bd07df.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction:</strong></h3>
<ul>
<li>Briefly explain Huffman coding and its importance in data compression.</li>
</ul>
<h3 id="heading-code-overview"><strong>Code Overview:</strong></h3>
<ul>
<li><p>Define structures for nodes and the min heap.</p>
</li>
<li><p>Implement functions for creating nodes, min heap operations, and building the Huffman tree.</p>
</li>
</ul>
<h3 id="heading-functions"><strong>Functions:</strong></h3>
<ul>
<li><p><strong>Create Node</strong></p>
<ul>
<li>Creates a new node with specified data and frequency.</li>
</ul>
</li>
</ul>
<pre><code class="lang-c"><span class="hljs-function">struct Node* <span class="hljs-title">createNode</span><span class="hljs-params">(<span class="hljs-keyword">char</span> data, <span class="hljs-keyword">int</span> frequency)</span> </span>{
    <span class="hljs-comment">// Code for createNode function</span>
}
</code></pre>
<h3 id="heading-min-heap-operations"><strong>Min Heap Operations</strong></h3>
<pre><code class="lang-c">Explain<span class="hljs-comment">// Functions for min heap operations</span>
<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">swapNode</span><span class="hljs-params">(struct Node** a, struct Node** b)</span></span>;
<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">minHeapify</span><span class="hljs-params">(struct MinHeap* minHeap, <span class="hljs-keyword">int</span> idx)</span></span>;
<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">isSizeOne</span><span class="hljs-params">(struct MinHeap* minHeap)</span></span>;
<span class="hljs-function">struct Node* <span class="hljs-title">extractMin</span><span class="hljs-params">(struct MinHeap* minHeap)</span></span>;
<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">insertMinHeap</span><span class="hljs-params">(struct MinHeap* minHeap, struct Node* node)</span></span>;
<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">buildMinHeap</span><span class="hljs-params">(struct MinHeap* minHeap)</span></span>;
</code></pre>
<h3 id="heading-build-huffman-tree">Build Huffman Tree</h3>
<pre><code class="lang-c"><span class="hljs-function">struct Node* <span class="hljs-title">buildHuffmanTree</span><span class="hljs-params">(<span class="hljs-keyword">char</span> data[], <span class="hljs-keyword">int</span> frequency[], <span class="hljs-keyword">int</span> size)</span> </span>{
    <span class="hljs-comment">// Code for buildHuffmanTree function</span>
}
</code></pre>
<h3 id="heading-print-huffman-codes"><strong>Print Huffman Codes</strong></h3>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">printCodes</span><span class="hljs-params">(struct Node* root, <span class="hljs-keyword">int</span> arr[], <span class="hljs-keyword">int</span> top)</span> </span>{
    <span class="hljs-comment">// Code for printCodes function</span>
}
</code></pre>
<h3 id="heading-main-function">Main Function:</h3>
<ul>
<li><p>Initializes data and frequency arrays.</p>
</li>
<li><p>Calls the Huffman coding function and prints the codes.</p>
</li>
</ul>
<p><strong>In Short:</strong></p>
<ul>
<li><p>Demonstrates Huffman coding in C for data compression.</p>
</li>
<li><p>Utilizes a min heap to build the Huffman tree efficiently.</p>
</li>
<li><p>Prints the Huffman codes for characters based on their frequencies.</p>
</li>
</ul>
<p><strong>Conclusion</strong></p>
<ul>
<li><p>Summarizes the code's purpose in generating Huffman codes.</p>
</li>
<li><p>Discusses the role of Huffman coding in efficient data representation.</p>
</li>
</ul>
<p><strong>Final Thoughts</strong></p>
<ul>
<li>Encourages further exploration of data compression techniques and algorithms.</li>
</ul>
<hr />
<p>Is this brief explanation with code snippets sufficient for your needs regarding Huffman coding in C?</p>
<h2 id="heading-output">Output:</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717823161997/06842c19-b526-4f90-bb95-44cf76f6a6f6.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Building a Library Management System in C]]></title><description><![CDATA[Introduction
 Explain the purpose of the Library Management System and its importance in organizing library resources efficiently.
Code Overview
 Provide an overview of the code structure and key functionalities of the Library Management System:

Str...]]></description><link>https://codeaashu.hashnode.dev/building-a-library-management-system-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/building-a-library-management-system-in-c</guid><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[C programming language]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Fri, 07 Jun 2024 13:29:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717765838301/1088477c-ee83-4361-8088-904adacaa780.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ol>
<li><h2 id="heading-introduction"><strong>Introduction</strong></h2>
<p> Explain the purpose of the Library Management System and its importance in organizing library resources efficiently.</p>
<h3 id="heading-code-overview">Code Overview</h3>
<p> Provide an overview of the code structure and key functionalities of the Library Management System:</p>
<ul>
<li><p><strong>Structures:</strong> Define the <code>Book</code> structure to store book details.</p>
</li>
<li><p><strong>Functions:</strong> Explain the functions for adding, displaying, deleting, updating, issuing, returning books, and generating reports.</p>
</li>
</ul>
</li>
</ol>
<h3 id="heading-functions">Functions</h3>
<h4 id="heading-add-book">Add Book</h4>
<p>Allows users to add new books to the library.</p>
<ol start="2">
<li><pre><code class="lang-c">  <span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">addBook</span><span class="hljs-params">()</span> </span>{
      <span class="hljs-comment">// Implementation for adding a book</span>
  }
</code></pre>
<h4 id="heading-display-books">Display Books</h4>
<p> Displays the list of books in the library.</p>
</li>
</ol>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">displayBooks</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for displaying books</span>
}
</code></pre>
<h3 id="heading-delete-book">Delete book</h3>
<p>Enables users to delete a book from the library.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">deleteBook</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for deleting a book</span>
}
</code></pre>
<h3 id="heading-update-book">Update Book</h3>
<p>Allows users to update the details of a book.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">updateBook</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for updating a book</span>
}
</code></pre>
<h3 id="heading-issue-book">Issue Book</h3>
<p>Enables users to issue a book from the library.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">issueBook</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for issuing a book</span>
}
</code></pre>
<h3 id="heading-return-book">Return Book</h3>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">returnBook</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for returning a book</span>
}
</code></pre>
<h3 id="heading-generate-report">Generate report</h3>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">generateReport</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for generating a report</span>
}
</code></pre>
<h3 id="heading-main-function">Main Function</h3>
<p>Contains the menu-driven interface for interacting with the Library Management System.</p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Summarize the functionality of the Library Management System and its benefits in organizing library resources effectively.</p>
<h3 id="heading-final-thoughts">Final Thoughts</h3>
<p>Encourage readers to explore and customize the code for additional features and functionalities.</p>
<hr />
<p>This structure provides a comprehensive overview of the Library Management System code and its functionalities in a structured and informative manner.</p>
<h2 id="heading-output">Output:</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717766762600/2c6a4aa5-2591-4533-aae3-487b773db31b.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717766832097/f54c88ef-6f2f-4cd5-9917-0727727f5f25.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717766911781/8c3fc159-3082-48da-872b-5fe08491c87e.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Building a Number Guessing Game in C]]></title><description><![CDATA[Introduction
Introduce the Number Guessing Game and its objective to guess a random number within a specified range.
Code Overview
Explain the code structure and key functionalities of the Number Guessing Game:

Random Number Generation: Use rand() a...]]></description><link>https://codeaashu.hashnode.dev/building-a-number-guessing-game-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/building-a-number-guessing-game-in-c</guid><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[C programming language]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Fri, 07 Jun 2024 13:07:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717747496642/bbb572ce-3719-4a2b-9730-0ea53e65c165.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>Introduce the Number Guessing Game and its objective to guess a random number within a specified range.</p>
<h3 id="heading-code-overview">Code Overview</h3>
<p>Explain the code structure and key functionalities of the Number Guessing Game:</p>
<ul>
<li><p><strong>Random Number Generation:</strong> Use <code>rand()</code> and <code>srand(time(0))</code> to generate a random number between 1 and 100.</p>
</li>
<li><p><strong>Guessing Mechanism:</strong> Implement the guessing logic and track the number of attempts.</p>
</li>
</ul>
<h3 id="heading-main-function">Main Function</h3>
<pre><code class="lang-c"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;stdio.h&gt;</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;stdlib.h&gt;</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;time.h&gt;</span></span>

<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Variable declarations</span>
    <span class="hljs-keyword">int</span> number, guess, attempts = <span class="hljs-number">0</span>;
    srand(time(<span class="hljs-number">0</span>)); <span class="hljs-comment">// Seed the random number generator</span>

    <span class="hljs-comment">// Generate a random number between 1 and 100</span>
    number = rand() % <span class="hljs-number">100</span> + <span class="hljs-number">1</span>;

    <span class="hljs-comment">// Game introduction</span>
    <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Welcome to the Guessing Game!\n"</span>);
    <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Guess a number between 1 and 100\n"</span>);

    <span class="hljs-comment">// Guessing loop</span>
    <span class="hljs-keyword">do</span> {
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Enter your guess: "</span>);
        <span class="hljs-built_in">scanf</span>(<span class="hljs-string">"%d"</span>, &amp;guess);
        attempts++;

        <span class="hljs-comment">// Compare the guess with the random number</span>
        <span class="hljs-keyword">if</span> (guess &gt; number) {
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Too high! Try again.\n"</span>);
        } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (guess &lt; number) {
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Too low! Try again.\n"</span>);
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Congratulations! You guessed the number in %d attempts.\n"</span>, attempts);
        }
    } <span class="hljs-keyword">while</span> (guess != number);

    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}
</code></pre>
<h3 id="heading-explanation">Explanation</h3>
<ul>
<li><p><strong>Random Number Generation:</strong> Seed the random number generator using <code>srand(time(0))</code> and generate a random number between 1 and 100.</p>
</li>
<li><p><strong>Game Loop:</strong> Prompt the user to guess the number and provide feedback based on their guess (too high, too low, or correct).</p>
</li>
<li><p><strong>Victory Condition:</strong> Display a congratulatory message when the user guesses the number correctly and indicate the number of attempts.</p>
</li>
</ul>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Summarize the functionality of the Number Guessing Game and its entertainment value as a simple yet engaging game.</p>
<h3 id="heading-final-thoughts">Final Thoughts</h3>
<p>Encourage readers to explore and modify the game, such as changing the range of numbers or adding features like a high-score tracker.</p>
<hr />
<p>This structure provides a clear explanation of the Number Guessing Game code and its functionality, making it accessible and informative for readers.</p>
<h3 id="heading-output">Output:</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717765527537/73cd4a73-180a-42f8-936d-959d3b609aab.jpeg" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Building an OTP-Based Login System in C]]></title><description><![CDATA[Introduction
Introduce the concept of an OTP-based login system and its importance in enhancing security for user authentication.
Code Overview
Explain the structure of the code and its key components:

User Structure: Define a structure to store use...]]></description><link>https://codeaashu.hashnode.dev/building-an-otp-based-login-system-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/building-an-otp-based-login-system-in-c</guid><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[c program]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><category><![CDATA[OTP Verification]]></category><category><![CDATA[OTP sms service]]></category><category><![CDATA[OTP]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Fri, 07 Jun 2024 07:56:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717746322596/8ecdc09e-f7e6-40b0-89ff-9b7bc767b6ec.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>Introduce the concept of an OTP-based login system and its importance in enhancing security for user authentication.</p>
<h3 id="heading-code-overview">Code Overview</h3>
<p>Explain the structure of the code and its key components:</p>
<ul>
<li><p><strong>User Structure:</strong> Define a structure to store user phone numbers, OTPs, and OTP verification status.</p>
</li>
<li><p><strong>Functions:</strong> Implement functions for user signup, OTP generation, and login authentication.</p>
</li>
</ul>
<h3 id="heading-functions">Functions</h3>
<h4 id="heading-signup">Signup</h4>
<p>Allows users to sign up by entering their phone number.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">signup</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for user signup</span>
}
</code></pre>
<h4 id="heading-generate-otp">Generate OTP</h4>
<p>Generates a random 4-digit OTP for a user.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">generateOTP</span><span class="hljs-params">(struct User *user)</span> </span>{
    <span class="hljs-comment">// Implementation for OTP generation</span>
}
</code></pre>
<h4 id="heading-login">Login</h4>
<p>Enables users to log in using their phone number and OTP verification.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">login</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for user login</span>
}
</code></pre>
<h3 id="heading-main-function">Main Function</h3>
<p>Contains the menu-driven interface for user interaction:</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Main function code</span>
}
</code></pre>
<h3 id="heading-explanation">Explanation</h3>
<ul>
<li><p><strong>Signup:</strong> Allows users to register by entering their phone numbers.</p>
</li>
<li><p><strong>OTP Generation:</strong> Generates a random 4-digit OTP for user verification.</p>
</li>
<li><p><strong>Login:</strong> Verifies user login using the generated OTP.</p>
</li>
</ul>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Summarize the functionality of the OTP-based login system and its benefits in enhancing security for user authentication.</p>
<h3 id="heading-final-thoughts">Final Thoughts</h3>
<p>Encourage readers to explore advanced authentication mechanisms and security practices for robust user authentication systems.</p>
<hr />
<p>This structure provides a clear explanation of the OTP-based login system code and its functionality, making it informative and accessible for readers interested in user authentication in C programming.</p>
<h2 id="heading-output">Output:</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717746848639/85c9ebaf-6843-4c89-85c0-d69f83c46279.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Creating a Simple Snake Game in C]]></title><description><![CDATA[Introduction
Introduce the concept of the Snake game and its popularity as a classic arcade game. Explain that the blog will guide readers through creating a basic version of the Snake game in C.
Code Overview
Explain the structure of the code and it...]]></description><link>https://codeaashu.hashnode.dev/creating-a-simple-snake-game-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/creating-a-simple-snake-game-in-c</guid><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[c program]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Fri, 07 Jun 2024 07:40:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717745146238/8efc2aca-941a-4a90-ad4e-93cc1f677c9e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>Introduce the concept of the Snake game and its popularity as a classic arcade game. Explain that the blog will guide readers through creating a basic version of the Snake game in C.</p>
<h3 id="heading-code-overview">Code Overview</h3>
<p>Explain the structure of the code and its key components:</p>
<ul>
<li><p><strong>Setup:</strong> Initialize game variables such as snake position, length, food position, and gameover status.</p>
</li>
<li><p><strong>Draw:</strong> Display the game screen, including the snake, food, walls, and game instructions.</p>
</li>
<li><p><strong>Input:</strong> Handle user input to control the snake's movement using WASD or arrow keys.</p>
</li>
<li><p><strong>Logic:</strong> Implement game logic for snake movement, food consumption, collision detection with walls, and self-collision detection.</p>
</li>
<li><p><strong>Main Function:</strong> Manage the game loop and interactions between setup, draw, input, and logic functions.</p>
</li>
</ul>
<h3 id="heading-functions">Functions</h3>
<h4 id="heading-setup"><strong>Setup</strong></h4>
<p>Initialize game variables such as snake position, length, food position, and gameover status.</p>
<pre><code class="lang-c">c
</code></pre>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">setup</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for game setup</span>
}
</code></pre>
<h4 id="heading-draw"><strong>Draw</strong></h4>
<p>Display the game screen, including the snake, food, walls, and game instructions.</p>
<pre><code class="lang-c">c
</code></pre>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">draw</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for drawing game screen</span>
}
</code></pre>
<p>I<strong>nput</strong></p>
<p>Handle user input to control the snake's movement using WASD or arrow keys.</p>
<pre><code class="lang-c">c
</code></pre>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">input</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for handling user input</span>
}
</code></pre>
<h4 id="heading-logic"><strong>Logic</strong></h4>
<p>Implement game logic for snake movement, food consumption, collision detection with walls, and self-collision detection.</p>
<pre><code class="lang-c">c
</code></pre>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">logic</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for game logic</span>
}
</code></pre>
<h3 id="heading-main-function"><strong>Main Function</strong></h3>
<p>Contains the game loop to continuously update and render the game until the gameover condition is met.</p>
<pre><code class="lang-c">c
</code></pre>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Main function code</span>
}
</code></pre>
<h3 id="heading-explanation"><strong>Explanation</strong></h3>
<ul>
<li><p><strong>Setup:</strong> Initializes game variables and positions for starting the game.</p>
</li>
<li><p><strong>Draw:</strong> Displays the game screen with the snake, food, walls, and instructions.</p>
</li>
<li><p><strong>Input:</strong> Handles user input to control the snake's movement.</p>
</li>
<li><p><strong>Logic:</strong> Implements game rules for snake movement, food consumption, and collision detection.</p>
</li>
<li><p><strong>Main Function:</strong> Manages the game loop and interactions between different game components.</p>
</li>
</ul>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Summarize the implementation of the Snake game in C and encourage readers to explore further enhancements and features.</p>
<h3 id="heading-final-thoughts">Final Thoughts</h3>
<p>Encourage readers to experiment with adding features like score tracking, levels, and graphical improvements to enhance the game experience.</p>
<hr />
<p>This structure provides a clear explanation of the Snake game code and its functionality, making it informative and accessible for readers interested in game development in C programming.</p>
<h2 id="heading-output">Output:</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717745929117/289bed33-72a2-4e19-967d-79a11aa57e7f.avif" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Building a Student Grade Tracker in C]]></title><description><![CDATA[Introduction
Introduce the concept of a Student Grade Tracker and its importance in educational institutions. Explain that the blog will guide readers through creating a basic version of a Student Grade Tracker in C.
Code Overview
Explain the structu...]]></description><link>https://codeaashu.hashnode.dev/building-a-student-grade-tracker-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/building-a-student-grade-tracker-in-c</guid><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[C programming language]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Fri, 07 Jun 2024 06:15:05 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717739075602/401561e3-81b6-4c6c-81dd-6ce63b88fb42.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>Introduce the concept of a Student Grade Tracker and its importance in educational institutions. Explain that the blog will guide readers through creating a basic version of a Student Grade Tracker in C.</p>
<h3 id="heading-code-overview"><strong>Code Overview</strong></h3>
<p>Explain the structure of the code and its key components:</p>
<ul>
<li><p><strong>Structures:</strong> Define structures for subjects and students to store grades and student information.</p>
</li>
<li><p><strong>Functions:</strong> Implement functions for adding students, updating grades, calculating GPA, and generating reports.</p>
</li>
<li><p><strong>Main Function:</strong> Manage the program's menu-driven interface and user interactions.</p>
</li>
</ul>
<h3 id="heading-functions"><strong>Functions</strong></h3>
<h4 id="heading-add-student">Add Student</h4>
<p>Allows users to add a new student along with their subject grades.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">addStudent</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for adding a new student</span>
}
</code></pre>
<h4 id="heading-calculate-gpa"><strong>Calculate GPA</strong></h4>
<p>Calculates the GPA for a given student based on their subject grades.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">calculateGPA</span><span class="hljs-params">(struct Student *student)</span> </span>{
    <span class="hljs-comment">// Implementation for calculating GPA</span>
}
</code></pre>
<h4 id="heading-update-grades"><strong>Update Grades</strong></h4>
<p>Allows users to update grades for a specific student.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">updateGrades</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for updating grades</span>
}
</code></pre>
<h4 id="heading-generate-report"><strong>Generate Report</strong></h4>
<p>Generates a report displaying students' names and their respective GPAs.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">generateReport</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Implementation for generating report</span>
}
</code></pre>
<h3 id="heading-main-function"><strong>Main Function</strong></h3>
<p>Contains the program's main logic and menu-driven interface.</p>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Main function code</span>
}
</code></pre>
<h3 id="heading-explanation"><strong>Explanation</strong></h3>
<ul>
<li><p><strong>Add Student:</strong> Allows users to add new students and their grades.</p>
</li>
<li><p><strong>Calculate GPA:</strong> Calculates GPA based on subject grades for each student.</p>
</li>
<li><p><strong>Update Grades:</strong> Allows users to update grades for existing students.</p>
</li>
<li><p><strong>Generate Report:</strong> Displays a report of students' names and GPAs.</p>
</li>
<li><p><strong>Main Function:</strong> Manages the program's menu and user interactions.</p>
</li>
</ul>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Summarize the implementation of the Student Grade Tracker in C and its functionality. Encourage readers to explore enhancements such as adding more features and improving the user interface.</p>
<h3 id="heading-final-thoughts"><strong>Final Thoughts</strong></h3>
<p>Encourage readers to use this code as a foundation for building more advanced student management systems with additional functionalities.</p>
<hr />
<p>This structured blog post provides a clear explanation of the Student Grade Tracker code and its functionalities, making it accessible for readers interested in developing educational tools using C programming.</p>
<h2 id="heading-output">Output:</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717740744227/71e396cb-bdd8-4645-9b18-5d45e3b32530.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717740768965/4ff1ec49-2053-4798-bacb-747ee300cecc.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item><item><title><![CDATA[Building a Voting System in C]]></title><description><![CDATA[Introduction
Introduce the concept of a Voting System and its significance in elections or polls. Explain that the blog will guide readers through creating a basic version of a Voting System in C.
Code Overview
Explain the structure of the code and i...]]></description><link>https://codeaashu.hashnode.dev/building-a-voting-system-in-c</link><guid isPermaLink="true">https://codeaashu.hashnode.dev/building-a-voting-system-in-c</guid><category><![CDATA[C]]></category><category><![CDATA[c programming]]></category><category><![CDATA[C programming language]]></category><category><![CDATA[voting]]></category><category><![CDATA[C Programming, Coding, Programming, Control Flow, Conditional Statements, if Statement, if-else Statement, else-if Ladder, switch Statement, Decision Making, Beginners, Learning C, Coding Tips, Code Examples, Coding Practice, Coding Challenges, C Language, Programming Basics, Coding Education, Code Development, Software Development, C Programming Concepts, Code Debugging, Algorithm, Logic, Coding Standards, Coding Community, C Coding Guidelines, C Programming Practices, C Coding Style]]></category><dc:creator><![CDATA[aashuu ✦]]></dc:creator><pubDate>Thu, 06 Jun 2024 18:26:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1717696385510/22219663-538d-4118-8172-43d4a9b0aea4.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction</strong></h3>
<p>Introduce the concept of a Voting System and its significance in elections or polls. Explain that the blog will guide readers through creating a basic version of a Voting System in C.</p>
<h3 id="heading-code-overview"><strong>Code Overview</strong></h3>
<p>Explain the structure of the code and its key components:</p>
<ul>
<li><p><strong>Structures:</strong> Define a structure for candidates to store their names and votes.</p>
</li>
<li><p><strong>Main Function:</strong> Contains the main logic for managing candidates, voters, and voting results.</p>
</li>
</ul>
<h3 id="heading-implementation"><strong>Implementation</strong></h3>
<h4 id="heading-candidate-structure"><strong>Candidate Structure</strong></h4>
<pre><code class="lang-c"><span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">Candidate</span> {</span>
    <span class="hljs-keyword">char</span> name[<span class="hljs-number">50</span>];
    <span class="hljs-keyword">int</span> votes;
};
</code></pre>
<h4 id="heading-main-function"><strong>Main Function</strong></h4>
<pre><code class="lang-c"><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{
    <span class="hljs-comment">// Main function code</span>
}
</code></pre>
<h4 id="heading-voting-process"><strong>Voting Process</strong></h4>
<ul>
<li><p><strong>Input:</strong> Collect the number of candidates and voters, and their respective names.</p>
</li>
<li><p><strong>Voting:</strong> Allow voters to choose a candidate and record their votes.</p>
</li>
<li><p><strong>Tallying Votes:</strong> Count the votes for each candidate and determine the winner.</p>
</li>
</ul>
<h3 id="heading-conclusion"><strong>Conclusion</strong></h3>
<p>Summarize the implementation of the Voting System in C and its functionality. Discuss the importance of fair and accurate voting systems in various contexts.</p>
<h3 id="heading-final-thoughts"><strong>Final Thoughts</strong></h3>
<p>Encourage readers to explore enhancements such as adding more features like candidate details, voter authentication, or graphical interfaces to improve the Voting System.</p>
<p>This structured blog post provides a clear explanation of the Voting System code and its functionalities, making it accessible for readers interested in developing voting applications using C programming.</p>
<p>ChatGPT can make mistakes. Consider checking important information.</p>
<h2 id="heading-output"><strong>Output:</strong></h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1717698004353/849c6e80-5f65-48ec-9f16-af2362680ef1.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item></channel></rss>