Build Distributed Systems from Scratch
Learn distributed systems the hard way, by implementing real algorithms.
Progress from basic message passing to consensus protocols through hands-on, Maelstrom-compatible challenges.
———
- Build Real Systems
- Progressive Learning
- Hands-on Coding
- Concept Explanations
———
https://www.builddistributedsystem.com
❤4
🚨 CRITICAL: Active supply chain attack on axios -- one of npm's most depended-on packages.
The latest axios@1.14.1 now pulls in plain-crypto-js@4.2.1, a package that did not exist before today. This is a live compromise.
This is textbook supply chain installer malware. axios has 100M+ weekly downloads. Every npm install pulling the latest version is potentially compromised right now.
Socket AI analysis confirms this is malware. plain-crypto-js is an obfuscated dropper/loader that:
• Deobfuscates embedded payloads and operational strings at runtime
• Dynamically loads fs, os, and execSync to evade static analysis
• Executes decoded shell commands
• Stages and copies payload files into OS temp and Windows ProgramData directories
• Deletes and renames artifacts post-execution to destroy forensic evidence
If you use axios, pin your version immediately and audit your lockfiles. Do not upgrade.
The latest axios@1.14.1 now pulls in plain-crypto-js@4.2.1, a package that did not exist before today. This is a live compromise.
This is textbook supply chain installer malware. axios has 100M+ weekly downloads. Every npm install pulling the latest version is potentially compromised right now.
Socket AI analysis confirms this is malware. plain-crypto-js is an obfuscated dropper/loader that:
• Deobfuscates embedded payloads and operational strings at runtime
• Dynamically loads fs, os, and execSync to evade static analysis
• Executes decoded shell commands
• Stages and copies payload files into OS temp and Windows ProgramData directories
• Deletes and renames artifacts post-execution to destroy forensic evidence
If you use axios, pin your version immediately and audit your lockfiles. Do not upgrade.
❤2
الفرق بين SQL و NoSQL؟ 🤔
.
.
خلال رحلتك في عالم البرمجة، أكيد سمعت عن قواعد البيانات (Database) وعرفت إن فيه نوعين مشهورين: SQL و NoSQL، بس إيه الفرق بينهم؟
———
📌 الـ SQL - قواعد بيانات علائقية (Relational Databases)
- بتستخدم جداول (Tables) زي الإكسل كده، كل جدول فيه أعمدة وصفوف، وبيكون فيه علاقات بين الجداول.
- بتستخدم لغة SQL (Structured Query Language) عشان تعمل استعلامات على البيانات (SELECT, INSERT, UPDATE, DELETE).
- مثالية للبيانات المنظمة والمترابطة، زي الحسابات البنكية، بيانات الموظفين، والمخازن.
- أمثلة عليها: MySQL, PostgreSQL, SQL Server, Oracle.
———
📍 مثال سريع:
لو عندك جدول اسمه Users، ممكن تجيب كل المستخدمين اللي أعمارهم فوق 25 سنة بكود زي ده:
———
📌 الـ NoSQL - قواعد بيانات غير علائقية (Non-Relational Databases)
- ملهاش جداول ثابتة زي SQL، بتستخدم طرق تخزين مختلفة زي المستندات (Documents)، الـ (Key-Value)، الـ (Wide-Column)، أو الرسوم البيانية (Graph).
- مش بتحتاج مخطط ثابت (Schema-less)، يعني ممكن تخزن بيانات غير متناسقة بدون مشاكل.
- مناسبة للبيانات اللي بتتغير باستمرار والأنظمة اللي بتحتاج سرعة عالية وقابلية توسع كبيرة، زي مواقع التواصل الاجتماعي وأنظمة التحليل الفوري.
- أمثلة عليها: MongoDB (بتستخدم الـ Documents)، Redis (بتستخدم Key-Value)، Cassandra (بتستخدم Wide-Column).
———
📍 مثال سريع:
في MongoDB، لو عندك مجموعة (Collection) اسمها Users، وعاوز تجيب المستخدمين اللي أعمارهم فوق 25 سنة، هتستخدم استعلام زي ده:
———
أستخدم أي نوع في المشروع؟ 🤔
✅ الـ SQL مناسب لو عندك بيانات مترابطة وعاوز تضمن التكامل بينها.
✅ الـ NoSQL مناسب لو عندك بيانات غير منظمة، أو بتحتاج تتوسع بسرعة، أو عندك عمليات قراءة وكتابة ضخمة.
.
.
خلال رحلتك في عالم البرمجة، أكيد سمعت عن قواعد البيانات (Database) وعرفت إن فيه نوعين مشهورين: SQL و NoSQL، بس إيه الفرق بينهم؟
———
📌 الـ SQL - قواعد بيانات علائقية (Relational Databases)
- بتستخدم جداول (Tables) زي الإكسل كده، كل جدول فيه أعمدة وصفوف، وبيكون فيه علاقات بين الجداول.
- بتستخدم لغة SQL (Structured Query Language) عشان تعمل استعلامات على البيانات (SELECT, INSERT, UPDATE, DELETE).
- مثالية للبيانات المنظمة والمترابطة، زي الحسابات البنكية، بيانات الموظفين، والمخازن.
- أمثلة عليها: MySQL, PostgreSQL, SQL Server, Oracle.
———
📍 مثال سريع:
لو عندك جدول اسمه Users، ممكن تجيب كل المستخدمين اللي أعمارهم فوق 25 سنة بكود زي ده:
SELECT * FROM Users WHERE age > 25;———
📌 الـ NoSQL - قواعد بيانات غير علائقية (Non-Relational Databases)
- ملهاش جداول ثابتة زي SQL، بتستخدم طرق تخزين مختلفة زي المستندات (Documents)، الـ (Key-Value)، الـ (Wide-Column)، أو الرسوم البيانية (Graph).
- مش بتحتاج مخطط ثابت (Schema-less)، يعني ممكن تخزن بيانات غير متناسقة بدون مشاكل.
- مناسبة للبيانات اللي بتتغير باستمرار والأنظمة اللي بتحتاج سرعة عالية وقابلية توسع كبيرة، زي مواقع التواصل الاجتماعي وأنظمة التحليل الفوري.
- أمثلة عليها: MongoDB (بتستخدم الـ Documents)، Redis (بتستخدم Key-Value)، Cassandra (بتستخدم Wide-Column).
———
📍 مثال سريع:
في MongoDB، لو عندك مجموعة (Collection) اسمها Users، وعاوز تجيب المستخدمين اللي أعمارهم فوق 25 سنة، هتستخدم استعلام زي ده:
db.Users.find({ "age": { $gt: 25 } })———
أستخدم أي نوع في المشروع؟ 🤔
✅ الـ SQL مناسب لو عندك بيانات مترابطة وعاوز تضمن التكامل بينها.
✅ الـ NoSQL مناسب لو عندك بيانات غير منظمة، أو بتحتاج تتوسع بسرعة، أو عندك عمليات قراءة وكتابة ضخمة.
❤8
What is HTTP Caching?
An effective way to improve load performance because it reduces unnecessary network requests.
❤2
إزاي تكتب Commit Message بطريقة صحيحة؟ ✅
.
.
الـ Commit في Git تعتبر "لحظة حفظ" للتغييرات اللي عملتها في مشروعك. يعني لو فيه حاجة حصلت وحبيت ترجع لها بعدين، تقدر تلاقي الـ Commit ده. لكن عشان يكون شغلك مميز، لازم تعمل Commit صح. 💡
———
1- اعمل Commit صغير ومنظم
لازم الـ Commit يكون خاص بتغيير معين أو ميزة معينة، يعني متعملش Commit كبير جدًا فيه شوية حاجات مش مترابطة. خليك دايمًا مركز في حاجة واحدة، زي "إصلاح bug في الصفحة الرئيسية" أو "إضافة زر جديد للتسجيل".
2- اكتب رسالة Commit واضحة
رسالة الـ Commit هي اللي هتشرح للناس (وأنت كمان بعد مدة) إيه اللي اتحسن أو اتغير في الكود. خلي الرسالة مختصرة وواضحة.
مهم جدًا إن الرسالة تكون واضحة علشان لو حد رجع لها بعد فترة، يعرف التغيير ده كان بخصوص إيه.
3- استخدم صيغة الزمن الحاضر
خلي الرسالة مكتوبة في الزمن الحاضر. يعني لو هتكتب عن إضافة ميزة جديدة، اكتب "Add new feature" بدل "Added new feature". دايمًا خلي الكلام بسيط ومباشر.
4- افصل بين التغييرات باستخدام أكثر من Commit
متعملش Commit لكل حاجة مع بعض. يعني لو عدلت على أكثر من جزء في المشروع، خلي كل Commit له حاجة واحدة، كده لو حصل مشكلة في حاجة معينة، هتكون عارف الـ Commit اللي تسبب فيها.
5- متعملش Commit للـ Files المؤقتة أو اللي فيها بيانات سرية
زي ملفات الـ logs أو الملفات المؤقتة (node_modules أو build folders). خلي الملفات دي في الـ gitignore علشان Git ما يضيفها مع الـ Commits بتاعتك.
———
قبل ما تعمل الـ Commit، دايمًا اعمل مراجعة للتغييرات اللي عملتها باستخدام git status أو git diff. كده هتكون متأكد إنك مش ناسي حاجة أو فيه حاجة غلط.
———
#دقيقة_برمجة
.
.
الـ Commit في Git تعتبر "لحظة حفظ" للتغييرات اللي عملتها في مشروعك. يعني لو فيه حاجة حصلت وحبيت ترجع لها بعدين، تقدر تلاقي الـ Commit ده. لكن عشان يكون شغلك مميز، لازم تعمل Commit صح. 💡
———
1- اعمل Commit صغير ومنظم
لازم الـ Commit يكون خاص بتغيير معين أو ميزة معينة، يعني متعملش Commit كبير جدًا فيه شوية حاجات مش مترابطة. خليك دايمًا مركز في حاجة واحدة، زي "إصلاح bug في الصفحة الرئيسية" أو "إضافة زر جديد للتسجيل".
2- اكتب رسالة Commit واضحة
رسالة الـ Commit هي اللي هتشرح للناس (وأنت كمان بعد مدة) إيه اللي اتحسن أو اتغير في الكود. خلي الرسالة مختصرة وواضحة.
مهم جدًا إن الرسالة تكون واضحة علشان لو حد رجع لها بعد فترة، يعرف التغيير ده كان بخصوص إيه.
3- استخدم صيغة الزمن الحاضر
خلي الرسالة مكتوبة في الزمن الحاضر. يعني لو هتكتب عن إضافة ميزة جديدة، اكتب "Add new feature" بدل "Added new feature". دايمًا خلي الكلام بسيط ومباشر.
4- افصل بين التغييرات باستخدام أكثر من Commit
متعملش Commit لكل حاجة مع بعض. يعني لو عدلت على أكثر من جزء في المشروع، خلي كل Commit له حاجة واحدة، كده لو حصل مشكلة في حاجة معينة، هتكون عارف الـ Commit اللي تسبب فيها.
5- متعملش Commit للـ Files المؤقتة أو اللي فيها بيانات سرية
زي ملفات الـ logs أو الملفات المؤقتة (node_modules أو build folders). خلي الملفات دي في الـ gitignore علشان Git ما يضيفها مع الـ Commits بتاعتك.
———
قبل ما تعمل الـ Commit، دايمًا اعمل مراجعة للتغييرات اللي عملتها باستخدام git status أو git diff. كده هتكون متأكد إنك مش ناسي حاجة أو فيه حاجة غلط.
———
#دقيقة_برمجة
❤7
What To Know in JavaScript (2026 Edition) 💯
https://frontendmasters.com/blog/what-to-know-in-javascript-2026-edition
❤1
CSS nesting is now Baseline 🎉
Write nested selectors directly in CSS — just like Sass, but natively.
.card {
color: black;
&:hover { color: blue; }
.title { font-weight: bold; }
}No preprocessor needed.
———
Learn more 👇
https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Nesting
MDN Web Docs
CSS nesting - CSS | MDN
The CSS nesting module defines a syntax for nesting selectors, providing the ability to nest one style rule inside another, with the selector of the child rule relative to the selector of the parent rule.
👏2