Forwarded from DevTwitter | توییت برنامه نویسی
یه سایتی هست به اسم «موزه طراحی وب» که نسخههای قدیمی وبسایتها و اپهای معروف رو جمع کرده.
اینها اولین نسخههای Windows 98 و توییتر هستند.
نوستالژی خالص
https://webdesignmuseum.org
@DevTwitter | <Mohammad/>
اینها اولین نسخههای Windows 98 و توییتر هستند.
نوستالژی خالص
https://webdesignmuseum.org
@DevTwitter | <Mohammad/>
Forwarded from DevTwitter | توییت برنامه نویسی
تجربهٔ شگفتانگیز و مفید یک میلیون نود کوبرنیتیز:
https://github.com/bchess/k8s-1m
@DevTwitter | <Amiria/>
https://github.com/bchess/k8s-1m
@DevTwitter | <Amiria/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
Gist of Go: Atomics
🟢 خلاصه مقاله:
در Go، atomics مجموعهای از عملیات سطحپایین در بسته sync/atomic هستند که امکان دسترسی thread-safe و lock-free به مقادیر حافظه مشترک را میدهند. آنها برای متغیرهای ساده (مثل شمارندهها، فلگهای وضعیت، و تعویض ایمن یک اشارهگر پیکربندی) بسیار سریع و مناسباند و با Load/Store، Add/Swap و CAS رابطههای happens-before لازم را تضمین میکنند. وقتی نیاز به حفظ ناهمبستگیهای چندفیلدی دارید یا بهروزرسانی چندمرحلهای میخواهید، استفاده از mutex یا کانالها شفافتر و کمخطرتر است. از اختلاط دسترسی atomic و non-atomic به یک متغیر خودداری کنید، به همترازی و false sharing توجه کنید، و برای دادههای read-mostly از atomic.Value بهره ببرید. نتیجه: در سناریوهای محدود، همزمانی بدون mutex واقعا شدنی است—به شرط رعایت دقیق مدل حافظه و الگوهای درست.
#golang #concurrency #atomics #lockfree #CAS #multithreading #memorymodel
🟣لینک مقاله:
https://golangweekly.com/link/175632/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Gist of Go: Atomics
🟢 خلاصه مقاله:
در Go، atomics مجموعهای از عملیات سطحپایین در بسته sync/atomic هستند که امکان دسترسی thread-safe و lock-free به مقادیر حافظه مشترک را میدهند. آنها برای متغیرهای ساده (مثل شمارندهها، فلگهای وضعیت، و تعویض ایمن یک اشارهگر پیکربندی) بسیار سریع و مناسباند و با Load/Store، Add/Swap و CAS رابطههای happens-before لازم را تضمین میکنند. وقتی نیاز به حفظ ناهمبستگیهای چندفیلدی دارید یا بهروزرسانی چندمرحلهای میخواهید، استفاده از mutex یا کانالها شفافتر و کمخطرتر است. از اختلاط دسترسی atomic و non-atomic به یک متغیر خودداری کنید، به همترازی و false sharing توجه کنید، و برای دادههای read-mostly از atomic.Value بهره ببرید. نتیجه: در سناریوهای محدود، همزمانی بدون mutex واقعا شدنی است—به شرط رعایت دقیق مدل حافظه و الگوهای درست.
#golang #concurrency #atomics #lockfree #CAS #multithreading #memorymodel
🟣لینک مقاله:
https://golangweekly.com/link/175632/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
antonz.org
Gist of Go: Atomics
Concurrent-safe operations without explicit synchronization.
Forwarded from Woland's Linux Journal (Woland)
مخزن عظیمی از کتابهای برنامهنویسی رایگان به تمامی زبانهای جهان!
این مخزن با ۳۷۳.۰۰۰ ستاره لیست کاملی از کتابهای برنامهنویسی رایگان رو توی خودش جمع کرده که شامل کتابهای فارسی هم میشه.
👉🔗 free-programming-books
#کتاب
#معرفی
این مخزن با ۳۷۳.۰۰۰ ستاره لیست کاملی از کتابهای برنامهنویسی رایگان رو توی خودش جمع کرده که شامل کتابهای فارسی هم میشه.
👉🔗 free-programming-books
#کتاب
#معرفی
Forwarded from کانال مهرداد لینوکس
📄 دستور strings در لینوکس
✅ استخراج رشتههای متنیِ قابلچاپ از داخل فایلهای باینری 😎
کاربرد؟
🔥مهندسی معکوس،پیدا کردن نام توابع، پیامهای خطا، library names.
🔥کشف URLها، توکنها
🔥بررسی فایلهای خراب یا بدافزار (اولین قدم قبل از دیباگ عمیق).
🔹 مثالهای پایه
⚙️ آپشنهای مهم
-n <num> یا --bytes=<num> : حداقل طول رشته .
-t <o|d|x> : نمایش offset رشته
-e <encoding> : تعیین encoding
-f : چاپ نام فایل قبل از خروجی.
-a : اسکن تمام بخشها .
🔥 ترفندهای ترکیبی و خلاقانه
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
✅ استخراج رشتههای متنیِ قابلچاپ از داخل فایلهای باینری 😎
کاربرد؟
🔥مهندسی معکوس،پیدا کردن نام توابع، پیامهای خطا، library names.
🔥کشف URLها، توکنها
🔥بررسی فایلهای خراب یا بدافزار (اولین قدم قبل از دیباگ عمیق).
🔹 مثالهای پایه
strings a.out # استخراج همه رشتهه
strings /bin/ls | less # خروجی طولانی
strings -n 6 file.bin # رشتههای طول
strings -t x file.bin # offset به صورت hex
strings -f file1 file2 # قبل خروجی نام فایل
⚙️ آپشنهای مهم
-n <num> یا --bytes=<num> : حداقل طول رشته .
-t <o|d|x> : نمایش offset رشته
-e <encoding> : تعیین encoding
-f : چاپ نام فایل قبل از خروجی.
-a : اسکن تمام بخشها .
🔥 ترفندهای ترکیبی و خلاقانه
strings binary | grep -E 'https?://|https://' # URL
strings binary | grep -iE 'token|key|password|passwd' # توکن
strings -t x binary | grep -i 'API_KEY' # offset
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
Forwarded from DevTwitter | توییت برنامه نویسی
این ریپو توسط خود گیتهاب چند روز پیش منتشر شده که کارکرد مشابه داره.
«یه جعبهابزار متنباز برای تمرکز روی هدف محصول و نتیجهی قابل پیشبینی — بهجای نوشتن همهچیز از صفر با Vibe Coding»
https://github.com/github/spec-kit
@DevTwitter | <Mohammad/>
«یه جعبهابزار متنباز برای تمرکز روی هدف محصول و نتیجهی قابل پیشبینی — بهجای نوشتن همهچیز از صفر با Vibe Coding»
https://github.com/github/spec-kit
@DevTwitter | <Mohammad/>
Forwarded from ⚝ (امیرحسین پناهےفر)
داشتم یه استوری در رابطه با پترن های مطرحی که واسه دیپلوی میکروسرویس وجود داره تو مدیوم میخوندم به نظرم دونستنش مفیده.
- Microservices — Deployment Patterns
- Microservices — Deployment Patterns
Medium
Microservices — Deployment Patterns
What are deployment patterns ?
Forwarded from ⚝ (امیرحسین پناهےفر)
الگوی Canary Deployment (استقرار قناری) 🐤
این الگو شامل استقرار نسخه جدید برای درصد کوچکی از کاربران نهایی است تا مشکلات احتمالی پیش از انتشار گسترده شناسایی شوند.
- مزایای کلیدی: امکان انجام تست عملکرد در محیط تولید با کاربران واقعی، برگشت سریع و امن (Rollback) به نسخه قبلی و هزینه اجرای کمتر در مقایسه با الگوی Blue/Green.
- ملاحظات و معایب: پیادهسازی این الگو میتواند پیچیده باشد و نیاز مبرمی به ابزارهای پیشرفته مانیتورینگ برای رصد دقیق عملکرد گروه کوچک کاربران دارد.
این الگو شامل استقرار نسخه جدید برای درصد کوچکی از کاربران نهایی است تا مشکلات احتمالی پیش از انتشار گسترده شناسایی شوند.
- مزایای کلیدی: امکان انجام تست عملکرد در محیط تولید با کاربران واقعی، برگشت سریع و امن (Rollback) به نسخه قبلی و هزینه اجرای کمتر در مقایسه با الگوی Blue/Green.
- ملاحظات و معایب: پیادهسازی این الگو میتواند پیچیده باشد و نیاز مبرمی به ابزارهای پیشرفته مانیتورینگ برای رصد دقیق عملکرد گروه کوچک کاربران دارد.
Forwarded from ⚝ (امیرحسین پناهےفر)
الگوی Blue/Green Deployment (آبی/سبز) 🔵🟢
در این روش، نسخه جدید بهصورت موازی با نسخه فعال (آبی) نصب میشود و پس از تأیید نهایی، انتقال کامل ترافیک به نسخه جدید (سبز) انجام میگیرد.
- مزایای کلیدی: استقرار بدون توقف (Zero Downtime)، سادگی در بازگشت به عقب و ریسک کنترلشده در فرآیند بهروزرسانی.
- ملاحظات و معایب: هزینه عملیاتی بالاتر به دلیل نیاز به نگهداری و تأمین منابع برای دو محیط Production کامل بهصورت همزمان.
در این روش، نسخه جدید بهصورت موازی با نسخه فعال (آبی) نصب میشود و پس از تأیید نهایی، انتقال کامل ترافیک به نسخه جدید (سبز) انجام میگیرد.
- مزایای کلیدی: استقرار بدون توقف (Zero Downtime)، سادگی در بازگشت به عقب و ریسک کنترلشده در فرآیند بهروزرسانی.
- ملاحظات و معایب: هزینه عملیاتی بالاتر به دلیل نیاز به نگهداری و تأمین منابع برای دو محیط Production کامل بهصورت همزمان.
Forwarded from ⚝ (امیرحسین پناهےفر)
الگوی Dark Launching (راهاندازی تاریک) 🌑
این الگو شامل فعالسازی ویژگیهای جدید برای یک گروه محدود و پنهان از کاربران با استفاده از Feature Toggle/Flag است. کاربران از وجود این ویژگی مطلع نیستند.
- مزایای کلیدی: امکان بررسی زیرساختی سیستم و جمعآوری دادههای عملکردی قبل از مواجهه عمومی، و بازگشت پذیری آسان از طریق خاموش کردن Feature Flag.
- ملاحظات و معایب: چالشهای دیباگینگ میکروسرویسها در محیطهای پنهان و نیاز به مدیریت قوی Feature Toggle توسط تیم توسعه برای جلوگیری از سردرگمی.
این الگو شامل فعالسازی ویژگیهای جدید برای یک گروه محدود و پنهان از کاربران با استفاده از Feature Toggle/Flag است. کاربران از وجود این ویژگی مطلع نیستند.
- مزایای کلیدی: امکان بررسی زیرساختی سیستم و جمعآوری دادههای عملکردی قبل از مواجهه عمومی، و بازگشت پذیری آسان از طریق خاموش کردن Feature Flag.
- ملاحظات و معایب: چالشهای دیباگینگ میکروسرویسها در محیطهای پنهان و نیاز به مدیریت قوی Feature Toggle توسط تیم توسعه برای جلوگیری از سردرگمی.
Forwarded from ⚝ (امیرحسین پناهےفر)
الگوی A/B Testing (تست A/B) 🅰️🅱️
در این روش، دو یا چند نسخه از یک ویژگی بهصورت تصادفی به کاربران نشان داده میشود تا با تحلیل دادهها، بهترین عملکرد مشخص گردد.
- مزایای کلیدی: کسب دادههای واقعی و قابل اعتماد برای تصمیمگیری، بهبود مستمر تجربه کاربری (UX) و ارزیابی کمی ایدههای جدید.
- ملاحظات و معایب: نیاز به منابع و زمان زیاد برای اجرا و تحلیل، و این روش عدم تضمین بهبود مشکلات اساسی سیستم را به همراه دارد و تنها برای اهداف مشخص طراحی مناسب است.
در این روش، دو یا چند نسخه از یک ویژگی بهصورت تصادفی به کاربران نشان داده میشود تا با تحلیل دادهها، بهترین عملکرد مشخص گردد.
- مزایای کلیدی: کسب دادههای واقعی و قابل اعتماد برای تصمیمگیری، بهبود مستمر تجربه کاربری (UX) و ارزیابی کمی ایدههای جدید.
- ملاحظات و معایب: نیاز به منابع و زمان زیاد برای اجرا و تحلیل، و این روش عدم تضمین بهبود مشکلات اساسی سیستم را به همراه دارد و تنها برای اهداف مشخص طراحی مناسب است.
Forwarded from کانال مهرداد لینوکس
✅حل مشکل انتخاب Multi cursor selection در لینوکس Mint یا Ubuntu
ℹ️در Ubuntu یا Mint کلید های ترکیبی Ctrl+Click برای انتقال یا resize پنجره سیستم در نظر گرفته شده
🚫در Vscode این کلید برای multi-cursor که کار نمیکند
😎پیشنهاد میکنم در تنظیمات Settings و Windows این ترکیب را عوض کنید بعید میدانم استفاده زیاد داشته باشد
پیشنهاد بهتری دارید؟
ℹ️در Ubuntu یا Mint کلید های ترکیبی Ctrl+Click برای انتقال یا resize پنجره سیستم در نظر گرفته شده
گزارش شد در Ubuntu کلید ترکیبی
ctrl + alt + کلیک
کار میکند ، قبل تغییر تست کنید
🚫در Vscode این کلید برای multi-cursor که کار نمیکند
😎پیشنهاد میکنم در تنظیمات Settings و Windows این ترکیب را عوض کنید بعید میدانم استفاده زیاد داشته باشد
پیشنهاد بهتری دارید؟
Forwarded from Gopher Academy
🔵 عنوان مقاله
CPU Cache-Friendly Data Structures in Go: 10x Speed with Same Algorithm
🟢 خلاصه مقاله:
** این مقاله نشان میدهد که در Go میتوان بدون تغییر الگوریتم و فقط با بهینهسازی نحوهٔ دسترسی به حافظه، به بهبودهایی تا ۱۰ برابر رسید. ایدهٔ اصلی این است که با بهرهگیری از محلیّت در CPU و نگه داشتن دادههای «داغ» در حافظهٔ پیوسته، تعداد cache miss به شدت کم میشود. راهکارهای کلیدی شامل استفاده از sliceهای پیوسته بهجای ساختارهای پر از pointer، فشردهسازی و چیدمان درست فیلدهای struct، انتخاب آگاهانه بین AoS و SoA، کاهش تخصیصها و استفاده از sync.Pool برای بازاستفادهٔ حافظه، و اجتناب از false sharing در برنامههای همزمان است. اندازهگیری با ابزارهای benchmark و pprof کمک میکند ببینیم گلوگاه واقعاً از کجاست. نتیجهٔ عملی طبق تجربهٔ Serge Skoredin: با حفظ همان منطق، تنها با طراحی cache‑friendly در Go میتوان جهشهای بزرگ کارایی بهدست آورد.
#Go #Golang #CPUCache #Performance #DataStructures #SystemsProgramming #Optimization #LowLatency
🟣لینک مقاله:
https://golangweekly.com/link/175636/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
CPU Cache-Friendly Data Structures in Go: 10x Speed with Same Algorithm
🟢 خلاصه مقاله:
** این مقاله نشان میدهد که در Go میتوان بدون تغییر الگوریتم و فقط با بهینهسازی نحوهٔ دسترسی به حافظه، به بهبودهایی تا ۱۰ برابر رسید. ایدهٔ اصلی این است که با بهرهگیری از محلیّت در CPU و نگه داشتن دادههای «داغ» در حافظهٔ پیوسته، تعداد cache miss به شدت کم میشود. راهکارهای کلیدی شامل استفاده از sliceهای پیوسته بهجای ساختارهای پر از pointer، فشردهسازی و چیدمان درست فیلدهای struct، انتخاب آگاهانه بین AoS و SoA، کاهش تخصیصها و استفاده از sync.Pool برای بازاستفادهٔ حافظه، و اجتناب از false sharing در برنامههای همزمان است. اندازهگیری با ابزارهای benchmark و pprof کمک میکند ببینیم گلوگاه واقعاً از کجاست. نتیجهٔ عملی طبق تجربهٔ Serge Skoredin: با حفظ همان منطق، تنها با طراحی cache‑friendly در Go میتوان جهشهای بزرگ کارایی بهدست آورد.
#Go #Golang #CPUCache #Performance #DataStructures #SystemsProgramming #Optimization #LowLatency
🟣لینک مقاله:
https://golangweekly.com/link/175636/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
skoredin.pro
CPU Cache-Friendly Data Structures in Go: 10x Speed
False sharing killed our performance. Data-oriented design saved it.
Forwarded from Gopher Academy
☝️☝️☝️☝️☝️☝️☝️☝️☝️
❌این پست اپدیت میشود ❌
🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم.
درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمی
❌این پست اپدیت میشود ❌
🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go میپردازیم.
درک درست از ساختار حافظه به شما کمک میکند عملکرد برنامههایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمی
Forwarded from DevTwitter | توییت برنامه نویسی
اینها یه سری Ruleهای خیلی ساده است که من استفاده می کنم موقعی که می خوام با AI کد برای Rust تولید کنم.
حتما به این روش GitHub Spec-Kit یه نگاهی بیاندازید.
https://github.com/github/spec-kit
@DevTwitter | <Von Datawarehausen/>
حتما به این روش GitHub Spec-Kit یه نگاهی بیاندازید.
https://github.com/github/spec-kit
@DevTwitter | <Von Datawarehausen/>
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥
Found 8 new trending repositories:
1. yaak by mountain-loop
📝 The most intuitive desktop API client. Organize and execute REST, GraphQL, WebSockets, Server Sent E...
💻 TypeScript | ⭐ 8,240 | 🌟 Today: 177
🔗 Link
2. skyvern by Skyvern-AI
📝 Automate browser-based workflows with LLMs and Computer Vision
💻 Python | ⭐ 14,658 | 🌟 Today: 25
🔗 Link
3. terminal by microsoft
📝 The new Windows Terminal and the original Windows console host, all in the same place!
💻 C++ | ⭐ 100,545 | 🌟 Today: 16
🔗 Link
4. micrograd by karpathy
📝 A tiny scalar-valued autograd engine and a neural net library on top of it with PyTorch-like API
💻 Jupyter Notebook | ⭐ 13,004 | 🌟 Today: 40
🔗 Link
5. chat-ui by huggingface
📝 Open source codebase powering the HuggingChat app
💻 TypeScript | ⭐ 9,290 | 🌟 Today: 25
🔗 Link
6. SpacetimeDB by clockworklabs
📝 Multiplayer at the speed of light
💻 Rust | ⭐ 17,710 | 🌟 Today: 10
🔗 Link
7. qBittorrent by qbittorrent
📝 qBittorrent BitTorrent client
💻 C++ | ⭐ 33,410 | 🌟 Today: 13
🔗 Link
8. OpenVoice by myshell-ai
📝 Instant voice cloning by MIT and MyShell. Audio foundation model.
💻 Python | ⭐ 34,741 | 🌟 Today: 35
🔗 Link
🔘 @github_trending_daily
Found 8 new trending repositories:
1. yaak by mountain-loop
📝 The most intuitive desktop API client. Organize and execute REST, GraphQL, WebSockets, Server Sent E...
💻 TypeScript | ⭐ 8,240 | 🌟 Today: 177
🔗 Link
2. skyvern by Skyvern-AI
📝 Automate browser-based workflows with LLMs and Computer Vision
💻 Python | ⭐ 14,658 | 🌟 Today: 25
🔗 Link
3. terminal by microsoft
📝 The new Windows Terminal and the original Windows console host, all in the same place!
💻 C++ | ⭐ 100,545 | 🌟 Today: 16
🔗 Link
4. micrograd by karpathy
📝 A tiny scalar-valued autograd engine and a neural net library on top of it with PyTorch-like API
💻 Jupyter Notebook | ⭐ 13,004 | 🌟 Today: 40
🔗 Link
5. chat-ui by huggingface
📝 Open source codebase powering the HuggingChat app
💻 TypeScript | ⭐ 9,290 | 🌟 Today: 25
🔗 Link
6. SpacetimeDB by clockworklabs
📝 Multiplayer at the speed of light
💻 Rust | ⭐ 17,710 | 🌟 Today: 10
🔗 Link
7. qBittorrent by qbittorrent
📝 qBittorrent BitTorrent client
💻 C++ | ⭐ 33,410 | 🌟 Today: 13
🔗 Link
8. OpenVoice by myshell-ai
📝 Instant voice cloning by MIT and MyShell. Audio foundation model.
💻 Python | ⭐ 34,741 | 🌟 Today: 35
🔗 Link
🔘 @github_trending_daily
Forwarded from متخصص وردپرس | پوینا
افزایش سرعت سرچ وردپرس و ووکامرس تا ۱۰ برابر
یکی از مشکلات اصلی سایتهای فروشگاهی بزرگ در وردپرس، کند بودن جستجوست. دلیلش اینه که وردپرس برای جستجو از دیتابیس SQL استفاده میکنه و با کوئریهایی مثل LIKE '%keyword%' پردازش سنگینی روی CPU انجام میده.
اما با نصب افزونه
wordpress.org/plugins/elasticpress
زیرساخت جستجو به چیزی شبیه NoSQL تغییر میکنه و سرعت جستجو تا ۱۰ برابر (و گاهی حتی ۱۰۰ برابر) افزایش پیدا میکنه — در حد چند میلیثانیه
پلاگین بالا دادهها رو بهصورت JSON ایندکس میکنه و نتایج رو مستقیماً از موتور جستجوی حرفهای این ElasticPress برمیگردونه.
ما برای سایتهای بزرگ همیشه از این افزونه استفاده میکنیم،
و بعد از نصبش فشار CPU بهقدری کم میشه که انگار سایت اختصاصی و بهینهسازیشده نوشتیم
@poinair پوینا
یکی از مشکلات اصلی سایتهای فروشگاهی بزرگ در وردپرس، کند بودن جستجوست. دلیلش اینه که وردپرس برای جستجو از دیتابیس SQL استفاده میکنه و با کوئریهایی مثل LIKE '%keyword%' پردازش سنگینی روی CPU انجام میده.
اما با نصب افزونه
wordpress.org/plugins/elasticpress
زیرساخت جستجو به چیزی شبیه NoSQL تغییر میکنه و سرعت جستجو تا ۱۰ برابر (و گاهی حتی ۱۰۰ برابر) افزایش پیدا میکنه — در حد چند میلیثانیه
پلاگین بالا دادهها رو بهصورت JSON ایندکس میکنه و نتایج رو مستقیماً از موتور جستجوی حرفهای این ElasticPress برمیگردونه.
ما برای سایتهای بزرگ همیشه از این افزونه استفاده میکنیم،
و بعد از نصبش فشار CPU بهقدری کم میشه که انگار سایت اختصاصی و بهینهسازیشده نوشتیم
@poinair پوینا