Find the code you need
Search through tutorials, code snippets, and development resources
ما هو حقن التبعيات (Dependency Injection)؟
حقن التبعيات ليس مجرد تقنية، بل هو نمط يُسهم في بناء أنظمة نظيفة، قابلة للتوسّع، وسهلة الصيانة. اعتماد هذا الأسلوب يرفع من جودة العمل، ويمنح المطور قدرة أكبر على التحكم في هيكلة التطبيق، خاصةً في الأنظمة الكبيرة أو المعتمدة على خدمات متعددة.
إذا كنت تعمل على تطبيق معقّد أو تستخدم إطاراً حديثاً، فإن تطبيق حقن التبعيات يعد خطوة أساسية لبناء بنية متينة ومرنة.
How to Stop SSH From Timing Out
On your local machine, edit or create:
nano ~/.ssh/configHow to Translate URLs in React (2025 Guide)
For full SEO benefits in translated URLs:
Use a framework like Next.js for SSR with dynamic routes
Globalization in React (2025 Trends & Best Practices)
Globalization in web development is the process of designing and building applications that support multiple languages, regional settings, currencies, and cultural preferences — making your app ready for a global audience.
In 2025, React globalization goes beyond just i18n (internationalization). It includes:
Implementing Internationalization (i18n) in a Large React Application (2025 Guide)
Use the useTranslation hook:
import React from 'react';
import { useTranslation } from 'react-i18next';
const Home = () => {
const { t, i18n } = useTranslation();
const changeLanguage = (lng) => {
i18n.changeLanguage(lng);
};
const today = new Date();
const price = 199.99;
return (
<div className="p-4">
<h1>{t('welcome')}</h1>
<div className="mt-4">
<strong>{t('language')}:</strong>
<button onClick={() => changeLanguage('en')} className="ml-2">EN</button>
<button onClick={() => changeLanguage('fr')} className="ml-2">FR</button>
</div>
<p>{t('date_example', { date: today })}</p>
<p>{t('price_example', { price })}</p>
</div>
);
};
export default Home;Building Micro-Frontends with Webpack Module Federation (2025 Guide)
Micro-frontends allow different teams to work independently on isolated UI components, which are then stitched together at runtime. This enables:
- Faster deployment cycles
- Independent scaling of frontend parts
- Team autonomy across tech stacks (e.g., React, Vue, Angular)
State Management Beyond Redux: Using Zustand for Scalable React Apps
import create from 'zustand';
const useStore = create((set) => ({
count: 0,
increase: () => set((state) => ({ count: state.count + 1 })),
decrease: () => set((state) => ({ count: state.count - 1 })),
})); import React from 'react';
import useStore from './store';
function Counter() {
const { count, increase, decrease } = useStore();
return (
<div>
<h1>{count}</h1>
<button onClick={increase}>Increase</button>
<button onClick={decrease}>Decrease</button>
</div>
);
}
export default Counter;Mastering React Rendering Performance with Memoization and Context
const increment = useCallback(() => setCount(c => c + 1), []);Implementing these practices ensures that only components dependent on specific context values re-render when those values change.([Medium][7])
How to Disable MySQL Password Validation on Ubuntu 25.04
MySQL 8+ includes a password validation plugin (validate_password) that enforces strong password rules by default. If you're working in a local development environment and want to disable this feature to allow simpler passwords (e.g., password, 123456), follow this safe step-by-step tutorial.
sudo mysqlHow to Move the MySQL Data Directory to a New Location on Ubuntu 25.04
Find the line:
datadir = /var/lib/mysqlHow to Install PHP, MySQL, and phpMyAdmin on Ubuntu 25.04 (LAMP Stack Setup Guide)
Then reload your shell configuration:
source ~/.bashrcHow to Fix NVIDIA Driver Issues on Ubuntu (Dell Vostro 3521)
You’ll see something like:
00:02.0 VGA compatible controller: Intel Corporation ...
Kernel driver in use: i915
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce MX350]
Kernel driver in use: nouveauAvoiding Memory Leaks in C++ Without Smart Pointers
void legacyFunction(char* data);
void useLegacyAPI() {
ScopedArray<char> buffer(new char[512]);
legacyFunction(buffer.get());
}Even without smart pointers, you can manage memory safely in C++ using the RAII pattern. This approach:
Deep Copy in C++: How to Avoid Shallow Copy Pitfalls
When your class uses raw pointers:
- Avoid shallow copies.
- Always implement deep copy logic.
- Follow the Rule of Three (or Rule of Five).
- Prefer
std::string,std::vector, or smart pointers in modern C++.
Protect Your Forms Like a Pro: Anti-Spam Techniques That Actually Work
// web.php
Route::post('/contact', [ContactController::class, 'submit'])->middleware('throttle:3,1');
// ContactController
public function submit(Request $request) {
if ($request->has('fake_field')) return abort(403); // honeypot
if (now()->diffInSeconds(session('form_start_time')) < 3) return abort(403); // timing
// other checks...
}And in Blade:
Build a Custom Rate Limiter in Node.js with Redis
After 100 requests within an hour, you’ll get:
{
"error": "Too many requests. Try later."
}Arduino Basics: A Step-by-Step Tutorial
Open the Arduino IDE and enter the following code:
// Arduino LED Blink Example
// The setup function runs once when you press reset or power the board.
void setup() {
// Initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// The loop function runs repeatedly forever.
void loop() {
digitalWrite(13, HIGH); // Turn the LED on (HIGH is the voltage level)
delay(1000); // Wait for one second (1000 milliseconds)
digitalWrite(13, LOW); // Turn the LED off by making the voltage LOW
delay(1000); // Wait for one second
}
Building a Real-Time Object Detection Web App with TensorFlow.js and p5.js
Create a new file called sketch.js in your project folder. We’ll use p5.js to access the webcam and display the video on a canvas:
let video;
let detector;
let detections = [];
function setup() {
// Create the canvas to match the video dimensions
createCanvas(640, 480);
// Capture video from the webcam
video = createCapture(VIDEO);
video.size(640, 480);
video.hide();
// Load the pre-trained COCO-SSD model
cocoSsd.load().then(model => {
detector = model;
console.log("Model Loaded!");
// Begin detecting objects every frame
detectObjects();
});
}
function detectObjects() {
detector.detect(video.elt).then(results => {
detections = results;
// Continue detection in a loop
detectObjects();
});
}
function draw() {
// Draw the video
image(video, 0, 0);
// Draw detection boxes and labels if available
if (detections) {
for (let i = 0; i < detections.length; i++) {
let object = detections[i];
stroke(0, 255, 0);
strokeWeight(2);
noFill();
rect(object.bbox[0], object.bbox[1], object.bbox[2], object.bbox[3]);
noStroke();
fill(0, 255, 0);
textSize(16);
text(object.class, object.bbox[0] + 4, object.bbox[1] + 16);
}
}
}Building a Cross-Platform Desktop App with Tauri and Svelte: A Step-by-Step Tutorial
To install the Tauri CLI globally, run:
npm install -g @tauri-apps/cliImplementing a Domain-Specific Language (DSL) with LLVM and C++
After generating LLVM IR, we optimize it using LLVM’s pass managers. The above optimizeModule function demonstrates adding a few standard optimization passes. In 2025, you might incorporate cutting-edge passes or even machine learning–based tuning for further enhancements.
To compile the IR to machine code, consider using LLVM’s JIT (via LLVM’s ORC JIT APIs) or emitting an object file that can be linked into a larger application.