MoreRSS

site iconThe Practical DeveloperModify

A constructive and inclusive social network for software developers.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of The Practical Developer

Introduction to MS Excel for Data Analytics

2026-01-25 05:20:51

Computing has advanced over time and is now essential across industries to help organizations make better decisions and boost profits through data analysis. A simple tool like Microsoft Excel serves as an excellent starting point for analyzing various datasets, including medical records, sales data, student performance, and social media metrics.

Data Analysis Basics

Data analysis involves examining, cleaning, organizing, and interpreting data to uncover useful insights, identify patterns, and support decision-making.

Why Clean Your Data?

  • Ensures high integrity by removing biases.
  • Enables correct use of formulas.
  • Aligns with the problem statement.
  • Maximizes use of complete sample size.

Types of Data Analysis

  1. Prescriptive - Uses historical data to recommend actions.
  2. Predictive - Analyzes past patterns to forecast the future.
  3. Diagnostic - Explains why something is happening.

Common Excel Terms

  • Workbook - The entire Excel file containing multiple sheets.

  • Cell - The smallest "box" where data is entered (e.g., A1).

  • Column - Vertical groups of cells, labeled A, B, C... at the top.

  • Row - Horizontal groups of cells, labeled 1, 2, 3... on the left.

  • Dataset - A collection of related data organized for analysis.

Basic Excel Functions

Formulas must start with =. They can include numbers, cell references (A1, B2), operators (+, -, *, /), and functions.

  1. MAX & MIN - Find maximum/minimum values in a range.
    Image

  2. LEN - Returns the length of text.
    Image

  3. TRIM - Removes leading/trailing spaces.
    Image

  4. CONCATENATE (or CONCAT) - Joins text strings.
    Image

  5. AVERAGE - Calculates the mean of a range.
    Image

Logical Functions

Logical functions test conditions and return results based on TRUE/FALSE.

1. IF & IFS

  • IF: =IF(logical_test, value_if_true, value_if_false)
  • IFS: Multiple conditions =IFS(condition1, result1, condition2, result2, ...)

Examples:

=IF(G2>30,"OLD","YOUNG")
=IFS(G2>50,"OLD", G2>40,"ABOVE-MEDIUM", G2>30,"MEDIUM","YOUNG")

2. AND & OR

  • AND: All conditions must be true.
  • OR: Any condition can be true.

Examples:

=IF(AND(G2>40,E2>70000),"H--R","OTHERS")
=IF(OR(G2>40,E2>70000),"H--R","OTHERS")

3. NOT

Negates a condition: =NOT(logical_test) or use <>.

Other operators: <, >, =, <>, <=, >=.

Data Filtering & Sorting

  • Sorting: Arranges data (A-Z, newest-oldest, etc.).
  • Filtering: Shows data meeting specific conditions.

Filter Function Example:

=FILTER(A2:F10, D2:D10="HR")

Pivot Tables

Pivot tables summarize, sort, count, and reorganize data. They convert rows to columns and perform calculations (Max, Min, Average, etc.).

Pivot Table Example

Data Visualization

Data visualization uses charts (bar, line, pie, scatter plots) to reveal patterns and relationships.

Charts Example

Benefits:

  • Quick pattern identification
  • Better storytelling with data
  • Enhanced decision-making

Excel Dashboards

An Excel Dashboard consolidates key visuals (PivotTables, charts, slicers) into one interactive screen for at-a-glance insights.

Dashboard Example

Key Components:

  • PivotTables for dynamic summaries
  • Charts for visual impact
  • Slicers for interactivity
  • Clean layout design

ML ALGOS List

2026-01-25 05:11:27

नीचे Machine Learning ke lagbhag sabhi major algorithms ko category-wise list kiya gaya hai. (Practical duniya me “sabhi” ka matlab hota hai commonly used + academically important algorithms.)

1️⃣ Supervised Learning Algorithms

(Labelled data hota hai)

🔹 Regression Algorithms

  • Linear Regression
  • Multiple Linear Regression
  • Polynomial Regression
  • Ridge Regression
  • Lasso Regression
  • Elastic Net
  • Bayesian Regression
  • Quantile Regression
  • Support Vector Regression (SVR)
  • Decision Tree Regression
  • Random Forest Regression
  • Gradient Boosting Regression
  • XGBoost Regression
  • LightGBM Regression
  • CatBoost Regression

🔹 Classification Algorithms

  • Logistic Regression
  • Naive Bayes
    • Gaussian NB
    • Multinomial NB
    • Bernoulli NB
  • K-Nearest Neighbors (KNN)
  • Support Vector Machine (SVM)
  • Decision Tree
  • Random Forest
  • Extra Trees (Extremely Randomized Trees)
  • Gradient Boosting
  • AdaBoost
  • XGBoost
  • LightGBM
  • CatBoost
  • Linear Discriminant Analysis (LDA)
  • Quadratic Discriminant Analysis (QDA)
  • Perceptron
  • Passive Aggressive Classifier

2️⃣ Unsupervised Learning Algorithms

(Label nahi hota)

🔹 Clustering Algorithms

  • K-Means
  • K-Medoids
  • Hierarchical Clustering
    • Agglomerative
    • Divisive
  • DBSCAN
  • HDBSCAN
  • Mean Shift
  • Gaussian Mixture Model (GMM)
  • Spectral Clustering
  • OPTICS
  • BIRCH
  • Affinity Propagation

🔹 Dimensionality Reduction

  • Principal Component Analysis (PCA)
  • Kernel PCA
  • Linear Discriminant Analysis (LDA)
  • t-SNE
  • UMAP
  • Independent Component Analysis (ICA)
  • Autoencoders
  • Factor Analysis
  • Truncated SVD

🔹 Association Rule Learning

  • Apriori Algorithm
  • FP-Growth
  • Eclat

3️⃣ Semi-Supervised Learning

  • Label Propagation
  • Label Spreading
  • Self Training
  • Co-Training
  • Semi-Supervised SVM

4️⃣ Reinforcement Learning Algorithms

🔹 Value-Based

  • Q-Learning
  • SARSA
  • Deep Q Network (DQN)
  • Double DQN
  • Dueling DQN

🔹 Policy-Based

  • REINFORCE
  • Policy Gradient

🔹 Actor-Critic

  • A2C
  • A3C
  • DDPG
  • TD3
  • PPO
  • SAC

5️⃣ Ensemble Learning Techniques

  • Bagging
  • Boosting
  • Stacking
  • Voting Classifier
  • Random Forest
  • Gradient Boosting

6️⃣ Neural Network Based Algorithms

(Deep Learning ML ka hi part hai)

🔹 Basic

  • Artificial Neural Network (ANN)
  • Multilayer Perceptron (MLP)

🔹 Advanced

  • Convolutional Neural Network (CNN)
  • Recurrent Neural Network (RNN)
  • LSTM
  • GRU
  • Transformer
  • Graph Neural Network (GNN)

7️⃣ Anomaly / Outlier Detection

  • Isolation Forest
  • One-Class SVM
  • Local Outlier Factor (LOF)
  • Elliptic Envelope
  • Autoencoder based anomaly detection

8️⃣ Probabilistic & Statistical Models

  • Hidden Markov Model (HMM)
  • Conditional Random Field (CRF)
  • Bayesian Networks
  • Markov Chain

9️⃣ Online Learning Algorithms

  • Stochastic Gradient Descent (SGD)
  • Online Perceptron
  • Hoeffding Tree

📌 Note:

  • Industry me sabse zyada use hone wale: 👉 Linear/Logistic Regression, Random Forest, XGBoost, SVM, Neural Networks
  • Exams / Interviews ke liye: 👉 KNN, Naive Bayes, Decision Tree, Clustering, PCA

Agar aap chaho to main:

  • 🔹 sirf Deep Learning algorithms
  • 🔹 exam-oriented short list
  • 🔹 Python ke sath algorithms
  • 🔹 kaunsa algorithm kab use kare

bhi bana sakta hoon 🙂

Prompt:

kaunsa algorithm kab use kare

ye bhi batatao

Response:

ठीक है 🙂

नीचे “kaunsa Machine Learning algorithm kab use kare” ko simple decision guide + examples ke saath samjha raha hoon.

1️⃣ Data ke type ke hisaab se algorithm

🔹 Numerical data (numbers)

  • Linear Regression → relation linear ho
  • Polynomial Regression → curve type relation
  • Random Forest / XGBoost → complex patterns, best accuracy

👉 Example: House price prediction

🔹 Categorical data (class / label)

  • Logistic Regression → simple & fast
  • Naive Bayes → text data (spam detection)
  • Decision Tree → explainable model
  • Random Forest / XGBoost → high accuracy

👉 Example: Spam vs Not Spam

2️⃣ Dataset size ke hisaab se

🔹 Chhota dataset (<10k rows)

  • KNN
  • Naive Bayes
  • SVM
  • Decision Tree

⚠️ Deep Learning avoid karo (overfitting hota hai)

🔹 Medium dataset (10k – 1M)

  • Random Forest
  • Gradient Boosting
  • XGBoost
  • LightGBM

🔹 Bahut bada dataset (>1M)

  • SGD
  • Linear / Logistic Regression
  • Neural Networks
  • Online Learning algorithms

3️⃣ Problem type ke hisaab se

🔹 Regression problem (number predict karna)

Situation Best Algorithm
Linear relation Linear Regression
Outliers present Ridge / Lasso
Non-linear Random Forest
High accuracy chahiye XGBoost

🔹 Classification problem (class predict)

Condition Algorithm
Binary classification Logistic Regression
Text classification Naive Bayes
High dimension SVM
Interpretability Decision Tree
Best accuracy XGBoost / RF

4️⃣ Unlabelled data (Clustering)

🔹 Clustering

Data Algorithm
Well-separated clusters K-Means
Noise present DBSCAN
Unknown clusters Hierarchical
Probabilistic GMM

👉 Example: Customer segmentation

5️⃣ Dimensionality zyada ho

  • PCA → features kam karne ke liye
  • t-SNE / UMAP → visualization
  • Autoencoders → deep features

👉 Example: Image / gene data

6️⃣ Time series data

  • ARIMA
  • SARIMA
  • LSTM
  • GRU
  • Prophet

👉 Example: Stock price, weather

7️⃣ Text / NLP problems

  • Naive Bayes
  • Logistic Regression + TF-IDF
  • Word2Vec
  • LSTM
  • Transformers (BERT, GPT)

👉 Example: Sentiment analysis

8️⃣ Image data

  • CNN
  • ResNet
  • EfficientNet
  • Vision Transformers

👉 Example: Face recognition

9️⃣ Real-time / streaming data

  • Online SGD
  • Hoeffding Tree
  • Reinforcement Learning

👉 Example: Recommendation system

🔟 Reinforcement Learning kab use kare?

  • Environment + reward ho
  • Agent decision leta ho

👉 Example: Game AI, Robotics

🧠 Golden Rule (Interview Friendly)

1️⃣ Simple model se start karo

2️⃣ Overfitting check karo

3️⃣ Ensemble try karo

4️⃣ Deep Learning tab hi jab data zyada ho

Agar chaho to main:

  • Flowchart bana du (algorithm selection)
  • Real-world projects ke examples
  • Interview Q&A
  • Python code examples

bas bolo 👍

The Offline-First Struggle: How I Built a Robust Sync Engine for Flutter (SynapseLink)

2026-01-25 05:07:44

Introduction: Building a robust offline-first application is more than just caching data; it's about managing consistency. After struggling with manual sync logic in complex ERP-style apps, I decided to build a standard solution.

Meet SynapseLink v1.0.3: An Enterprise-Grade Offline Sync Engine that bridges the gap between Hive and Dio.

Key Technical Insights:

Intelligent Batching: Groups multiple offline actions into a single API request upon reconnection to save battery and server resources.

Auth-Aware Engine: Automatically pauses the sync queue when a 401 error occurs and resumes once the token is refreshed.

Deep Merge Resolution: A logic-heavy conflict resolver that ensures the most recent nested data is preserved.

Get Involved: The project is fully Open Source and I’d love to hear your feedback on the architecture.

📦 Pub.dev: https://pub.dev/packages/synapse_link

🚀 GitHub: https://github.com/wisamidis/synapse-links

💬 Discord: Connect with me at Vortex Shadow.

Silent Failures Most Metrics Don’t See

2026-01-25 05:07:20

I was filling out a survey on my phone.

It wasn’t short. Five minutes in, maybe more, I was only about a quarter of the way through.

Then it happened. A small, accidental scroll. The page refreshed.

Everything was gone.

No error. No warning. No recovery. Just an empty form.

I closed the page. I didn’t complain. I didn’t try again. I simply gave up.

This kind of failure is easy to dismiss. It doesn’t look like a bug. Nothing crashes. Nothing breaks loudly.

And yet, from the user’s perspective, everything just failed.

A quiet problem in modern web apps

Data loss in web forms is not a new problem. But in modern applications, it has become strangely invisible.

The issue did not disappear. It shifted.

Today’s web apps are used more on mobile, across unstable networks, with aggressive browser lifecycle management. Forms are longer, more complex, often multi-step, and users are interrupted constantly.

The result is not necessarily more bugs, but more opportunities for normal human behavior to cause silent data loss.

Most teams measure what breaks loudly: server errors, crashes, failed payments, validation errors. Dashboards are full of red bars and alerts. When something goes wrong at scale, we usually know.

What we almost never measure is what disappears quietly.

Absence of evidence is not evidence of absence.

— Carl Sagan

There are very few modern, maintained, and simple solutions dedicated to protecting user-entered data in web forms. Existing approaches tend to fall into three categories:

  • Legacy libraries that are no longer actively maintained
  • Heavy solutions that require deep integration or framework-specific setups
  • Partial fixes that do not reflect real usage patterns, especially on mobile

Yet form data loss is still happening. Frequently. Silently.

Silence is not satisfaction

In customer experience research, this pattern is well documented.

Multiple studies consistently show that only a small minority of dissatisfied users ever complain directly to a company. The vast majority do not escalate the issue, do not provide feedback, and do not explain what went wrong.

Instead, they leave.

Visible complaints therefore represent only a thin surface layer of actual frustration. Beneath each one sits a much larger volume of silent abandonments that never appear in dashboards, metrics, or support tickets.

The blind spot in product metrics

Product teams are not careless. They are usually very good at measuring what is visible.

Errors are tracked. Crashes are logged. Performance regressions show up quickly. When something breaks in a noisy way, it leaves a trace.

Data loss rarely does.

When a user refreshes a page, closes a tab, or loses a form because the browser crashed, nothing necessarily looks wrong from the system’s point of view. No error is thrown. No alert fires. No red line appears on a dashboard.

The user simply leaves.

From the product’s perspective, nothing failed. From the user’s perspective, everything did.

That gap is the blind spot Savior was built for.

Why Savior exists

I did not build Savior to optimize performance charts or polish UX details. I built it because people are human.

They get interrupted. They mis-scroll. They reload a tab without thinking. Browsers crash. Phones do what phones do.

None of this is exceptional. It is everyday behavior.

Savior exists as a local safety net for those moments. It quietly keeps form data around so that a brief interruption does not wipe out several minutes of effort.

For the user, it removes a small but very real source of frustration. For the product, it prevents a failure that would otherwise leave no trace at all.

No jargon. No ceremony. Just protection where things usually go wrong.

A quiet conclusion

Savior exists because data loss is common, frustrating, and almost always silent.

If you have ever lost form data and quietly gave up, this is exactly why Savior exists.

Savior Core is an open-source library for basic form persistence.

Savior SafeState Recovery adds deterministic recovery for crashes and edge cases.

More at https://www.zippers.dev

The Vibe Coding Hangover: Why I’m Returning to Engineering Rigor in 2026

2026-01-25 05:04:37

We all got drunk on 1-prompt apps in 2025. Now, the technical debt is calling, and it’s time to sober up.
Let’s be real: 2025 was one long, glorious party for developers. When Andrej Karpathy coined “Vibe Coding,” we all felt the magic. For a moment, it felt like the “end of syntax” had actually arrived . We were shipping full-stack apps with a single prompt, “vibing” with our LLMs, and pretending the code didn’t exist.
But it’s January 2026, and the hangover is brutal.
Now engineers spend more time helping teams rescue “Vibe-coded” projects that hit the complexity wall. It starts with a demo that looks like magic, but within three months, it turns into a “Black Box” that no one — not even the person who prompted it — can explain . If you can’t explain your code, you don’t own it; you’re just a passenger in a car with no brakes.

The Rise of “Slopsquatting” and Refactoring Hell
The biggest shock of 2026 isn’t that AI makes mistakes — it’s that those mistakes are now being weaponized. Have you heard of Slopsquatting? Attackers are now registering malicious packages on NPM and PyPI that have names LLMs frequently “hallucinate”.
If you’re blindly clicking “Accept All” in Cursor or Windsurf, you might be importing malware directly into your production environment without even knowing the package exists.
Beyond security, we’re seeing a “Technical Debt Tsunami”.
Vibe-coded software often ignores modularity and optimized queries. What looks clean in a chat window is costing companies tens of thousands of dollars in unnecessary cloud compute because the AI wrote a “brute force” solution that doesn’t scale.
Moving to the “Head Chef” Model
In 2026, the best engineers I know have stopped being “prompt monkeys” and started being Head Chefs.
The AI is your kitchen staff. It can chop the onions and prep the sauce (the boilerplate), but you must design the menu (the architecture) and taste every dish before it leaves the kitchen (the review). Even Linus Torvalds, who recently admitted to vibe-coding a visualizer for his audio projects, kept the reins tight on the actual logic.
The 2026 Rulebook for Agentic AI
To build systems that actually survive their first 1,000 users, you need a framework. This is how we’re doing it now:

  1. Architecture by Contract (YAML/JSON): Never ask an AI to "build a system." Give it a YAML file that defines your domain model, security boundaries, and API schemas first.

  2. Model Context Protocol (MCP) is the new USB-C: Stop writing "glue code." Use MCP to connect your agents to your databases and tools in a standardized, secure way.

  3. Sequential Prompting: Don't dump 50 requirements at once. Break it down: Domain -> Auth -> Logic -> Integrations. Validate at every step.

Engineering isn't dead. It just got a lot more interesting. We’re moving from writing lines to designing systems. Less "vibes," more rigor.

Resources:
(https://modelcontextprotocol.io/specification/) – The open standard for connecting AI agents to real-world data.

(https://www.veracode.com/resources/analyst-reports/2025-genai-code-security-report) – Why 45% of AI-generated code is a security risk.

(https://thenewstack.io/the-head-chef-model-for-ai-assisted-development/) – Redefining the role of the engineer in the agentic era.

(https://www.langchain.com/langgraph) – How to build agents that actually follow a plan.

(https://medium.com/elementor-engineers/cursor-rules-best-practices-for-developers-16a438a4935c) – Training your agent to behave like a teammate, not a "yes-man".

I built a data grid with web components – here's what I learned

2026-01-25 05:01:04

A while back I needed a data grid for a project. You know the drill – looked at AG Grid (too heavy, enterprise pricing), TanStack Table (great but headless, didn't want to build all the UI), various React/Vue-specific options (locked into one framework).

I was also working across multiple projects – some Angular, some React, some just vanilla JS. The idea of maintaining different grid implementations for each was... not appealing.

So I did what any reasonable developer does: I spent way more time building my own thing than I would have spent just using an existing solution. 😅

The idea

Web components have been "almost ready" for years, but they're actually pretty solid now. Custom elements, CSS nesting, adoptedStyleSheets – the browser APIs are there.

So I built @toolbox-web/grid:

<tbw-grid></tbw-grid>

<script type="module">
  import '@toolbox-web/grid';

  const grid = document.querySelector('tbw-grid');
  grid.columns = [
    { field: 'name', header: 'Name' },
    { field: 'email', header: 'Email' },
  ];
  grid.rows = data;
</script>

No framework. Just a custom element. Works in React, Angular, Vue, or plain HTML.

What's in it

The basics you'd expect:

  • Sorting, filtering, inline editing
  • Column resizing, reordering, pinning
  • Row selection (single, multi, range)
  • Row virtualization (handles 100k+ rows)

And some stuff I needed for specific projects:

  • Row grouping and tree data
  • Master-detail panels
  • Clipboard support (copy/paste)
  • Undo/redo for edits
  • CSV/Excel export

Everything is a plugin, so you only ship what you use. The core is pretty small (~40KB gzipped with common plugins).

Things I learned building this

Shadow DOM is a pain

I started with Shadow DOM for style encapsulation. Seemed like the "right" way. But:

  • Users couldn't style the grid with their existing CSS
  • Server-side rendering was a mess
  • DevTools debugging was awkward

Switched to light DOM with CSS nesting. You get scoping without the isolation headaches.

One render loop to rule them all

Early versions had render calls scattered everywhere. Change a property? Render. Resize a column? Render. Sort? Render. This caused layout thrashing and flickering.

Now everything goes through a single scheduler:

state change → queue → batch → one RAF → render

Doesn't matter how many things change in a frame, there's one render pass.

Plugins are just classes

I went back and forth on the plugin architecture. Ended up with simple classes:

class MyPlugin extends BaseGridPlugin<MyConfig> {
  readonly name = 'myPlugin';

  processRows(rows) {
    // transform data before render
    return rows;
  }

  afterRender() {
    // do stuff with the DOM
  }
}

Constructor injection for config, lifecycle hooks for different phases. Nothing fancy, but it works well.

Framework adapters

The raw custom element works everywhere, but framework-specific wrappers make life nicer.

React:

import { DataGrid } from '@toolbox-web/grid-react';

<DataGrid
  rows={employees}
  gridConfig={{
    columns: [
      { field: 'name' },
      { field: 'status', renderer: (ctx) => <Badge value={ctx.value} /> },
    ],
  }}
/>

Angular:

<tbw-grid [rows]="data" [gridConfig]="config">
  <tbw-grid-column field="status">
    <my-badge *tbwRenderer="let value" [status]="value" />
  </tbw-grid-column>
</tbw-grid>

You get proper types, native component renderers, and framework-idiomatic APIs.

Rough comparison

Just for context – not trying to say mine is "better", they're different tools:

@toolbox-web/grid AG Grid TanStack Table
Bundle ~40KB ~500KB ~15KB (headless)
UI included Yes Yes No
Framework Any Wrappers React/Vue/Solid
License MIT MIT + paid MIT

AG Grid is way more mature and feature-complete. TanStack is brilliant if you want full control over rendering. This sits somewhere in between – batteries included but not as heavy.

Try it out

It's MIT licensed, free, no tracking, no enterprise upsell. Just a thing I built that might be useful to others.

npm install @toolbox-web/grid

Would love feedback, bug reports, or feature ideas. I'm actively working on it and trying to make it as useful as possible.

What data grid do you use? Curious what features people actually care about.