<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://lms.ahmedhaies.com</loc>
<lastmod>2026-04-19T15:58:57.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/courses</loc>
<lastmod>2026-04-19T15:58:57.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/offers</loc>
<lastmod>2026-04-19T15:58:57.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog</loc>
<lastmod>2026-04-19T15:58:57.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/about</loc>
<lastmod>2026-04-19T15:58:57.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/faq</loc>
<lastmod>2026-04-19T15:58:57.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/contact</loc>
<lastmod>2026-04-19T15:58:57.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/privacy</loc>
<lastmod>2026-04-19T15:58:57.746Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/bloom-filters-بالعربي-اعرف-لو-العنصر-موجود-في-مليون-سجل-بـ-1mb-بس</loc>
<lastmod>2026-04-19T15:20:01.356Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/typescript-discriminated-unions-امنع-bugs-الـ-runtime-بخانة-tag</loc>
<lastmod>2026-04-19T12:04:08.443Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/python-matchcase-امتى-يستحق-إنه-يستبدل-ifelif-في-كودك</loc>
<lastmod>2026-04-19T11:23:13.059Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/event-loop-في-javascript-ليه-settimeoutfn-0-بيشتغل-بعد-promise</loc>
<lastmod>2026-04-19T11:20:33.484Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/web-workers-في-javascript-شغل-حسابات-ثقيلة-بدون-ما-تجمد-الـ-ui</loc>
<lastmod>2026-04-19T11:20:15.849Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/javascript-proxy-اعمل-reactive-state-بـ-20-سطر-بدل-vue</loc>
<lastmod>2026-04-19T11:11:53.767Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/abortcontroller-إلغاء-طلبات-fetch-قبل-ما-تأكل-ذاكرة-المتصفح</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/big-o-notation-بالعربي-إزاي-تعرف-إن-الكود-هيقع-قبل-ما-يدخل-production</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/sql-window-functions-احسب-ranking-و-running-total-في-query-واحدة</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/sql-window-functions-احسب-running-total-وranking-بدون-self-join</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/typescript-generics-دالة-واحدة-لكل-الأنواع-من-غير-any</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/python-decorators-أضف-logging-و-caching-بدون-تعديل-الدالة</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/debounce-و-throttle-في-javascript-الفرق-اللي-بيوفرلك-90-من-طلبات-الـ-api</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/python-generators-ليه-range108-مش-بيفجر-الذاكرة</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/promiseall-ضد-promiseallsettled-الفرق-اللي-بيكسر-الـ-production</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/cve-2026-4747-ثغرة-freebsd-nfs-عمرها-17-سنة-خطوات-الاستجابة-خلال-24-ساعة</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/bun-1312-webview-cron-جوا-الـ-runtime-اختصر-حاويتين-من-stackك</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/mythos-5-لقى-bug-عمره-27-سنة-في-openbsd-تأثيره-على-كودك</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/claude-managed-agents-نزلت-8-أبريل-تستضيف-agentك-ولا-تبنيه-بإيدك</loc>
<lastmod>2026-04-18T21:29:11.444Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
<url>
<loc>https://lms.ahmedhaies.com/blog/gh-skill-نزل-16-أبريل-قرارك-بالظبط-متى-تعتمد-عليه</loc>
<lastmod>2026-04-19T10:30:13.480Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.75</priority>
</url>
</urlset>
