Forwarded from Gopher Academy
🔵 عنوان مقاله
Fibratus: Windows Kernel Exploration and Observability Tool
🟢 خلاصه مقاله:
فایبراتوس یک ابزار کاوش و Observability برای کرنل Windows است که اکنون بر «تشخیص، محافظت و شکار ترفندهای مهاجم» تمرکز دارد. این ابزار رویدادهای سیستمی مانند file I/O و درخواستهای شبکه را جمعآوری میکند و با اسکن حافظه، تصویری دقیق از رفتار برنامهها ارائه میدهد. چنین دیدی به تیمهای امنیتی کمک میکند الگوهای مشکوک را شناسایی کنند، هشدارهای مهم را اولویت بدهند و در شکار تهدیدها و رسیدگی به رخدادها سریعتر عمل کنند. فایبراتوس همچنین برای توسعهدهندگان و تیمهای IT که به درک عمیقتر از رفتار برنامهها روی Windows نیاز دارند مفید است و از طریق مخزن GitHub در دسترس است.
#Fibratus #Windows #Kernel #Observability #ThreatHunting #Security #MemoryScanning
🟣لینک مقاله:
https://golangweekly.com/link/174657/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Fibratus: Windows Kernel Exploration and Observability Tool
🟢 خلاصه مقاله:
فایبراتوس یک ابزار کاوش و Observability برای کرنل Windows است که اکنون بر «تشخیص، محافظت و شکار ترفندهای مهاجم» تمرکز دارد. این ابزار رویدادهای سیستمی مانند file I/O و درخواستهای شبکه را جمعآوری میکند و با اسکن حافظه، تصویری دقیق از رفتار برنامهها ارائه میدهد. چنین دیدی به تیمهای امنیتی کمک میکند الگوهای مشکوک را شناسایی کنند، هشدارهای مهم را اولویت بدهند و در شکار تهدیدها و رسیدگی به رخدادها سریعتر عمل کنند. فایبراتوس همچنین برای توسعهدهندگان و تیمهای IT که به درک عمیقتر از رفتار برنامهها روی Windows نیاز دارند مفید است و از طریق مخزن GitHub در دسترس است.
#Fibratus #Windows #Kernel #Observability #ThreatHunting #Security #MemoryScanning
🟣لینک مقاله:
https://golangweekly.com/link/174657/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Python Hints
پیام دادید یک راهکار یا ... برای اینکه تست کنیم معماری که استفاده کردیم واقعاً
سوال جالبی بود و هیچوقت به این فکر نکرده بودم که چطوری میشه؛ یک تست سریع راه انداخت، اما بنظرم بهترین جواب هم توی خود ویژگیهای
تمام سرویسها اگر که باهم اجرا بشه؛ سیستم باید کار کنه!
اما اگر هر سرویس رو خاموش کنید (مثلاً برای ۵ دقیقه) باقی سرویسها باید بدون مشکل کار کنند، وقتی بعد از ۵ دقیقه اون سرویس خاموش شده رو روشن کردید، سیستم باید کامل کار کنه.
مثال: فرآیند خرید محصول (انسانی)
ثبت سفارش - تایید موجودی - تایید سفارش و صدور فاکتور - پرداخت - تایید پرداخت - آماده سازی - ارسال.
توی این فرآیند اگر واحد تایید موجودی؛ همه باهم رفته باشند ناهار، واحدهای دیگه از کار نمیافته!
ثبت سفارشات همگی انجام میشه، و واحدهای بعد از تایید موجودی هم تمام کارهایی که از قبل براشون ارسال شده رو انجام میدند اما کار جدید نخواهند داشت.
حالا بعد از ناهار که این واحد بر میگرده؛ اینطوری نیست که ثبت سفارشات به مشتریها گفته باشه چون واحد تأیید موجودی نیستند پس من سفارش نمیگیرم ازت؛ سفارشات رو یادداشت کردند وقتی واحد تأیید موجودی بر میگرده به یکباره همرو باهم بهشون تحویل میده.
خلاصه؛ یک بررسی سریع این هست، هرکدوم از سرویسهای شمارو که من برای ۵ دقیقه خاموش کنم، تمامی باقی سرویسها باید بتونند به درستی کارهای خودشون رو انجام بدند.
پ.ن:
سعی کردم مثالم خیلی ساده باشه (چون خودشون ذکر کردند جونیور هستند)
microservice هست یا Distributed monolothic پیشنهاد میدید ؟ سوال جالبی بود و هیچوقت به این فکر نکرده بودم که چطوری میشه؛ یک تست سریع راه انداخت، اما بنظرم بهترین جواب هم توی خود ویژگیهای
microservice هست: تمام سرویسها اگر که باهم اجرا بشه؛ سیستم باید کار کنه!
اما اگر هر سرویس رو خاموش کنید (مثلاً برای ۵ دقیقه) باقی سرویسها باید بدون مشکل کار کنند، وقتی بعد از ۵ دقیقه اون سرویس خاموش شده رو روشن کردید، سیستم باید کامل کار کنه.
مثال: فرآیند خرید محصول (انسانی)
ثبت سفارش - تایید موجودی - تایید سفارش و صدور فاکتور - پرداخت - تایید پرداخت - آماده سازی - ارسال.
توی این فرآیند اگر واحد تایید موجودی؛ همه باهم رفته باشند ناهار، واحدهای دیگه از کار نمیافته!
ثبت سفارشات همگی انجام میشه، و واحدهای بعد از تایید موجودی هم تمام کارهایی که از قبل براشون ارسال شده رو انجام میدند اما کار جدید نخواهند داشت.
حالا بعد از ناهار که این واحد بر میگرده؛ اینطوری نیست که ثبت سفارشات به مشتریها گفته باشه چون واحد تأیید موجودی نیستند پس من سفارش نمیگیرم ازت؛ سفارشات رو یادداشت کردند وقتی واحد تأیید موجودی بر میگرده به یکباره همرو باهم بهشون تحویل میده.
خلاصه؛ یک بررسی سریع این هست، هرکدوم از سرویسهای شمارو که من برای ۵ دقیقه خاموش کنم، تمامی باقی سرویسها باید بتونند به درستی کارهای خودشون رو انجام بدند.
پ.ن:
سعی کردم مثالم خیلی ساده باشه (چون خودشون ذکر کردند جونیور هستند)
Forwarded from DevTwitter | توییت برنامه نویسی
کلاد سونت ۴.۵ اومد با عنوان بهترین مدل کدنویسی در جهان.
رکوردهاش هم توی بنچمارکها جالبه، بیشتر جاها عملکرد بالاتر از Opus 4.1.
اکستنشن Claude for Chrome هم برای کسایی که توی لیست انتظار بودن در دسترس قرار گرفت.
یه ویژگی ساخت فایل هم به چتبات اضافه شده و میتونه براتون اسلاید و داک بسازه.
واکنشها خوب بوده و میگن بیشترین جهش عملکرد رو از زمان معرفی Sonnet 3.6 داشته.
این مدل میتونه بیشتر از ۳۰ ساعت به صورت خودکار روی پروژههای چند مرحلهای کار کنه. برای Opus 4 عددش ۷ ساعت هست، این نیاز نظارت رو کم میکنه و رسما بیش از ۱ روز میتونه خودکار فعالیت خودشرو ادامه بده.
@DevTwitter | <Soroush Ahmadi/>
رکوردهاش هم توی بنچمارکها جالبه، بیشتر جاها عملکرد بالاتر از Opus 4.1.
اکستنشن Claude for Chrome هم برای کسایی که توی لیست انتظار بودن در دسترس قرار گرفت.
یه ویژگی ساخت فایل هم به چتبات اضافه شده و میتونه براتون اسلاید و داک بسازه.
واکنشها خوب بوده و میگن بیشترین جهش عملکرد رو از زمان معرفی Sonnet 3.6 داشته.
این مدل میتونه بیشتر از ۳۰ ساعت به صورت خودکار روی پروژههای چند مرحلهای کار کنه. برای Opus 4 عددش ۷ ساعت هست، این نیاز نظارت رو کم میکنه و رسما بیش از ۱ روز میتونه خودکار فعالیت خودشرو ادامه بده.
@DevTwitter | <Soroush Ahmadi/>
Forwarded from محتوای آزاد سهراب (Sohrab)
خب توی این ویدئو چون روی گوشیم پارچ موبایل رو داشتم و دیدم از گرفتن یک سرور بهصرفه تره برای مقاصد آموزشی، روی اون به صورت لوکال با استفاده از داکر نکستکلود رو نصب کردم و انداختمش پشت ریورس پروکسی
یک سری مشکلات هم خوردم وسطش که حل کردم و توی ویدئو توضیح دادم چطور میشه حلشون کرد.
تماشا از یوتوب
تماشا از پیرتوب (توصیه شده)
تماشا از آپارات
@SohrabContents
یک سری مشکلات هم خوردم وسطش که حل کردم و توی ویدئو توضیح دادم چطور میشه حلشون کرد.
تماشا از یوتوب
تماشا از پیرتوب (توصیه شده)
تماشا از آپارات
@SohrabContents
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥
Found 10 new trending repositories:
1. server by nextcloud
📝 ☁️ Nextcloud server, a safe home for all your data
💻 PHP | ⭐ 30,942 | 🌟 Today: 17
🔗 Link
2. fastapi by fastapi
📝 FastAPI framework, high performance, easy to learn, fast to code, ready for production
💻 Python | ⭐ 90,001 | 🌟 Today: 72
🔗 Link
3. guia-entrevistas-de-programacion by DevCaress
📝 No description available
💻 Star | ⭐ 6,013 | 🌟 Today: 84
🔗 Link
4. claude-agent-sdk-python by anthropics
📝 No description available
💻 Python | ⭐ 1,350 | 🌟 Today: 178
🔗 Link
5. anime by juliangarnier
📝 JavaScript animation engine
💻 JavaScript | ⭐ 64,172 | 🌟 Today: 157
🔗 Link
6. claude-code by anthropics
📝 Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and he...
💻 TypeScript | ⭐ 34,784 | 🌟 Today: 298
🔗 Link
7. devops-exercises by bregman-arie
📝 Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack...
💻 Python | ⭐ 78,674 | 🌟 Today: 112
🔗 Link
8. PDFMathTranslate by Byaidu
📝 PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL...
💻 Python | ⭐ 28,057 | 🌟 Today: 134
🔗 Link
9. Handy by cjpais
📝 A free, open source, and extensible speech-to-text application that works completely offline.
💻 TypeScript | ⭐ 932 | 🌟 Today: 67
🔗 Link
10. SDWebImage by SDWebImage
📝 Asynchronous image downloader with cache support as a UIImageView category
💻 Objective-C | ⭐ 25,559 | 🌟 Today: 7
🔗 Link
🔘 @github_trending_daily
Found 10 new trending repositories:
1. server by nextcloud
📝 ☁️ Nextcloud server, a safe home for all your data
💻 PHP | ⭐ 30,942 | 🌟 Today: 17
🔗 Link
2. fastapi by fastapi
📝 FastAPI framework, high performance, easy to learn, fast to code, ready for production
💻 Python | ⭐ 90,001 | 🌟 Today: 72
🔗 Link
3. guia-entrevistas-de-programacion by DevCaress
📝 No description available
💻 Star | ⭐ 6,013 | 🌟 Today: 84
🔗 Link
4. claude-agent-sdk-python by anthropics
📝 No description available
💻 Python | ⭐ 1,350 | 🌟 Today: 178
🔗 Link
5. anime by juliangarnier
📝 JavaScript animation engine
💻 JavaScript | ⭐ 64,172 | 🌟 Today: 157
🔗 Link
6. claude-code by anthropics
📝 Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and he...
💻 TypeScript | ⭐ 34,784 | 🌟 Today: 298
🔗 Link
7. devops-exercises by bregman-arie
📝 Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack...
💻 Python | ⭐ 78,674 | 🌟 Today: 112
🔗 Link
8. PDFMathTranslate by Byaidu
📝 PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL...
💻 Python | ⭐ 28,057 | 🌟 Today: 134
🔗 Link
9. Handy by cjpais
📝 A free, open source, and extensible speech-to-text application that works completely offline.
💻 TypeScript | ⭐ 932 | 🌟 Today: 67
🔗 Link
10. SDWebImage by SDWebImage
📝 Asynchronous image downloader with cache support as a UIImageView category
💻 Objective-C | ⭐ 25,559 | 🌟 Today: 7
🔗 Link
🔘 @github_trending_daily
Forwarded from Laravel News
Profiling Laravel: How to Find Hidden Performance Killers https://laravel-news.com/profiling-laravel-how-to-find-hidden-performance-killers
Laravel News
Profiling Laravel: How to Find Hidden Performance Killers - Laravel News
Your dashboard loads in 150ms with more than 400 database queries - but you'd never know without proper profiling. Learn how to use Laravel Telescope to uncover N+1 queries, identify bottlenecks, and see exactly what your application is doing behind the scenes.…
Forwarded from Laravel News
Infinite Scroll in Inertia v2.2 https://laravel-news.com/infinite-scroll-in-inertia-v22
Laravel News
Infinite Scroll in Inertia v2.2 - Laravel News
The Laravel team released Inertia v2.2 with a new <InfiniteScroll/> component. This component will likely be a huge timesaver if you've ever built an infinite scroll feature by hand.
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 در اجرای رسمی مکانسیم ماشه, روسیه یک فروند هواپیمای آنتونوف ۱۲۴ حامل محموله های نظامی به ایران فرستاد.
#خبر
@TheRaymondDev
#خبر
@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 دیدار گیلومِرو راوچ، مدیرعامل شرکت Vercel، با بنیامین نتانیاهو نخستوزیر اسرائیل در تاریخ ۲۸ سپتامبر ۲۰۲۵ باعث واکنشهای منفی کاربران شد.
گزارشها نشان میدهد که توسعه دهندگان حسابهای خود را در Vercel حذف کرده یا قصد مهاجرت به سرویس های دیگر دارند. بسیاری این اقدام را سیاسی دانسته و در توییتر خواستار تحریم سرویس Vercel شدند.
#خبر
@TheRaymondDev
گزارشها نشان میدهد که توسعه دهندگان حسابهای خود را در Vercel حذف کرده یا قصد مهاجرت به سرویس های دیگر دارند. بسیاری این اقدام را سیاسی دانسته و در توییتر خواستار تحریم سرویس Vercel شدند.
#خبر
@TheRaymondDev
X (formerly Twitter)
vercel - Search / X
The latest posts on vercel. Read what people are saying and join the conversation.
Forwarded from DevTwitter | توییت برنامه نویسی
توی این ویدیو یه سری از مواردی که وقتی میخوایم یه کدی رو بزاریم توی گیتهاب، لازم میشه رو گفتم...
مثل اینا:
- لزوم داشتن gitignore اگر فایلی داریم که نمیخوایم بره تو گیت
- لروم داشتن env برای توکنها که نرن تو گیت
- یا مثلا داشتن requirements.txt مخصوصا برای پروژههای پایتونی که راحتتر لانچ بشن توسط افراد...
- در آخر هم یه مقداری streamlit بازی کردیم...
https://www.youtube.com/watch?v=v4Hm98Q3eEI&list=PLwUWEGKy5kyP7pUFE-vPDDtXgQ8Ty4ohd&index=5
پ.ن: این ویدیو فاز AI نداره و یه طورایی بیشتر سمت برنامهنویسی و ایناست خلاصه...
@DevTwitter | <ًRyan Heida/>
مثل اینا:
- لزوم داشتن gitignore اگر فایلی داریم که نمیخوایم بره تو گیت
- لروم داشتن env برای توکنها که نرن تو گیت
- یا مثلا داشتن requirements.txt مخصوصا برای پروژههای پایتونی که راحتتر لانچ بشن توسط افراد...
- در آخر هم یه مقداری streamlit بازی کردیم...
https://www.youtube.com/watch?v=v4Hm98Q3eEI&list=PLwUWEGKy5kyP7pUFE-vPDDtXgQ8Ty4ohd&index=5
پ.ن: این ویدیو فاز AI نداره و یه طورایی بیشتر سمت برنامهنویسی و ایناست خلاصه...
@DevTwitter | <ًRyan Heida/>
Forwarded from محتوای آزاد سهراب (Sohrab)
با اینکه بیاسدی عملاً نمیتونه توی ساختار wsl اجرا بشه، ولی ناممکن هارو ممکن کردند.
https://github.com/BalajeS/WSL-For-FreeBSD
الان میتونید توی ویندوز بیاسدی بزنید.
(عکس از کانال فری بیاسدی)
@SohrabContents
https://github.com/BalajeS/WSL-For-FreeBSD
الان میتونید توی ویندوز بیاسدی بزنید.
(عکس از کانال فری بیاسدی)
@SohrabContents
Forwarded from کانال مهرداد لینوکس
📄 دستور rmdir در لینوکس (دستور rd و rm)
✅ دستور rmdir برای حذف دایرکتوری خالی در لینوکس استفاده میشه.
اگر دایرکتوری فایل یا زیرشاخه داشته باشه، rmdir کار نمیکنه و خطا میده.
اپشنهای متداول:
👉 همهی مسیرهای خالی (code, src, project) حذف میشن.
🔥 ترفندها و تکنیکهای ترکیبی
1️⃣ حذف همهی دایرکتوریهای خالی یک مسیر را پیدا و حذف کرد:
5️⃣ پاکسازی پروژههای قدیمی:
💡 نکته:
rmdir فقط روی دایرکتوری خالی کار میکنه.
برای حذف دایرکتوریهای غیرخالی باید از rm -r استفاده کنید (با احتیاط ⚠️).
✅ دستور rd در بعضی linux ها یک alias است
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
✅ دستور rmdir برای حذف دایرکتوری خالی در لینوکس استفاده میشه.
اگر دایرکتوری فایل یا زیرشاخه داشته باشه، rmdir کار نمیکنه و خطا میده.
اپشنهای متداول:
rmdir testdir حذف یک دایرکتوری خالی
rmdir dir1 dir2 dir3 حذف چند دایرکتوری
mkdir -p project/src/code
rmdir -p project/src/code حذف تو در تو
👉 همهی مسیرهای خالی (code, src, project) حذف میشن.
🔥 ترفندها و تکنیکهای ترکیبی
با دستور find بهتر میتوانید پوشه های خالی را پیدا و حذف کنید
1️⃣ حذف همهی دایرکتوریهای خالی یک مسیر را پیدا و حذف کرد:
find . -type d -empty -delete
5️⃣ پاکسازی پروژههای قدیمی:
find ~/projects -type d -empty -print -exec rmdir {} \;💡 نکته:
rmdir فقط روی دایرکتوری خالی کار میکنه.
برای حذف دایرکتوریهای غیرخالی باید از rm -r استفاده کنید (با احتیاط ⚠️).
✅ دستور rd در بعضی linux ها یک alias است
rd is an alias for rmdir
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
Forwarded from Geek Alerts
شرکت بازیسازی الکترونیک آرتز (EA)، که همه ما اون رو با بازیهایی مثل «Madden NFL»، «Battlefield» و «The Sims» میشناسیم، به عربستان و جرد کوشنر، داماد ترامپ به مبلغ ۵۵ میلیارد دلار فروخته شده و احتمالا این فرایند خرید تا سال ۲۰۲۷ تکمیل بشه.
صندوق سرمایهگذاری عربستان (PIF) از قبل هم مالک حدود ۱۰ درصد از سهام EA هست ولی اینجا یه شرکت مشترک با سیلور لیک و افینیتی پارتنرز برای خرید بقیه سهام تاسیس کردن و سهم خودشون رو هم به این شرکت میارن. واکنش بازار سهام مثبت بوده که با توجه به خرید هر سهم ۲۱۰ دلار کاملا طبیعی هست. [L]
🤓 @geekalerts
صندوق سرمایهگذاری عربستان (PIF) از قبل هم مالک حدود ۱۰ درصد از سهام EA هست ولی اینجا یه شرکت مشترک با سیلور لیک و افینیتی پارتنرز برای خرید بقیه سهام تاسیس کردن و سهم خودشون رو هم به این شرکت میارن. واکنش بازار سهام مثبت بوده که با توجه به خرید هر سهم ۲۱۰ دلار کاملا طبیعی هست. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
دوره MCP مایکروسافت | زیرنویس فارسی
یوتیوب
https://youtu.be/Vr1vMyyIdzM?si=TEuNuXjEJhuE4fQG
آپارات (نیم بها)
https://www.aparat.com/v/azkvpjg
@DevTwitter | <Hamed Heydarian/>
یوتیوب
https://youtu.be/Vr1vMyyIdzM?si=TEuNuXjEJhuE4fQG
آپارات (نیم بها)
https://www.aparat.com/v/azkvpjg
@DevTwitter | <Hamed Heydarian/>
Forwarded from AI Labdon
کلاد سونت ۴.۵ اومد با عنوان بهترین مدل کدنویسی در جهان.
رکوردهاش هم توی بنچمارکها جالبه، بیشتر جاها عملکرد بالاتر از Opus 4.1.
اکستنشن Claude for Chrome هم برای کسایی که توی لیست انتظار بودن در دسترس قرار گرفت.
یه ویژگی ساخت فایل هم به چتبات اضافه شده و میتونه براتون اسلاید و داک بسازه.
واکنشها خوب بوده و میگن بیشترین جهش عملکرد رو از زمان معرفی Sonnet 3.6 داشته.
این مدل میتونه بیشتر از ۳۰ ساعت به صورت خودکار روی پروژههای چند مرحلهای کار کنه. برای Opus 4 عددش ۷ ساعت هست، این نیاز نظارت رو کم میکنه و رسما بیش از ۱ روز میتونه خودکار فعالیت خودشرو ادامه بده.
<Soroush Ahmadi/>
رکوردهاش هم توی بنچمارکها جالبه، بیشتر جاها عملکرد بالاتر از Opus 4.1.
اکستنشن Claude for Chrome هم برای کسایی که توی لیست انتظار بودن در دسترس قرار گرفت.
یه ویژگی ساخت فایل هم به چتبات اضافه شده و میتونه براتون اسلاید و داک بسازه.
واکنشها خوب بوده و میگن بیشترین جهش عملکرد رو از زمان معرفی Sonnet 3.6 داشته.
این مدل میتونه بیشتر از ۳۰ ساعت به صورت خودکار روی پروژههای چند مرحلهای کار کنه. برای Opus 4 عددش ۷ ساعت هست، این نیاز نظارت رو کم میکنه و رسما بیش از ۱ روز میتونه خودکار فعالیت خودشرو ادامه بده.
<Soroush Ahmadi/>
Forwarded from tech-afternoon (Amin Mesbahi)
🔥 🐘 انتشار PostgreSQL 18، و اهمیت تغییراتش!
طبق روال سالهای گذشته حوالی سپتامبر ریلیز نسخه جدید PostgreSQL انجام شد. حالا چرا این نسخه برای برخی سیستمها میتونه قابل توجه و مهم باشه؟
- تغییرات انقلابی در I/O (Asyn I/O):
بالاخره! این قابلیت اومد و سرعت عملیات Read رو «تا» ۳ برابر افزایش میده! معطلیهای CPU برای I/O خیلی کمتر میشه و برای کارهای مثل VACUUM و اسکنهای بزرگ، تاثیرش چشمگیره (من روی نسخههای پیشنمایش تست کردم و عالی بود).
- پشتیبانی از UUIDv7:
برای توسعهدهندهها این شاید خیلی مهم باشه! (اگر دوست دارید در مورد انواع UUIDها بیشتر توضیح بدم:🤪 )
پشتیبانی Native از UUIDv7 یعنی Primary Keyها به صورت گلوبال یونیک میشن و هم چون بر اساس زمان مرتب هستن، عملکرد ایندکس B-tree به شکل چشمگیری بهتر میشه. (یعنی Page Split بی مورد نداریم!)
- قابلیت Virtual Generated Columns:
حالا ستونهای محاسباتی بهصورت پیشفرض مجازی هستن، یعنی فقط موقع خوانش محاسبه میشن و فضای دیسک رو اشغال نمیکنن. (البته اگه لازم باشه، میتونید همچنان STORED هم تعریف کنین).
افزودن NOT NULL بدون Downtime: کابوس اضافه کردن NOT NULL به جدولهای بزرگ تموم شد! حالا میشه قید NOT NULL رو بهصورت NOT VALID اضافه کنیم و بلافاصله برای ردیفهای جدید اعمال بشه. اعتبارسنجی ردیفهای موجود رو هم میتونیم بعداً بدون قفل کامل جدول انجام بدیم.
- امکان Skip Scan برای B-tree:
یه بهبود عالی برای بهینهسازی کوئری؛ اگه توی ایندکسهای چند ستونی، ستون اول رو در WHERE فیلتر نکرده باشیم، باز هم ایندکس کار میکنه و کوئریهای تحلیلی/گزارشگیری خیلی سریعتر میشن.
- امکان RETURNING هوشمند:
حالا میشه توی یک دستور UPDATE یا DELETE به هر دو مقدار قدیمی (OLD) و جدید (NEW) یک ستون در بخش RETURNING دسترسی داشته باشیم.
- آپگرید آسونتر:
قابلیت حفظ Planner Statistics حین آپگرید با pg_upgrade باعث میشه دیتابیس جدید خیلی سریعتر به پرفورمنس دلخواه برگرده.
طبق روال سالهای گذشته حوالی سپتامبر ریلیز نسخه جدید PostgreSQL انجام شد. حالا چرا این نسخه برای برخی سیستمها میتونه قابل توجه و مهم باشه؟
- تغییرات انقلابی در I/O (Asyn I/O):
بالاخره! این قابلیت اومد و سرعت عملیات Read رو «تا» ۳ برابر افزایش میده! معطلیهای CPU برای I/O خیلی کمتر میشه و برای کارهای مثل VACUUM و اسکنهای بزرگ، تاثیرش چشمگیره (من روی نسخههای پیشنمایش تست کردم و عالی بود).
- پشتیبانی از UUIDv7:
برای توسعهدهندهها این شاید خیلی مهم باشه! (اگر دوست دارید در مورد انواع UUIDها بیشتر توضیح بدم:
پشتیبانی Native از UUIDv7 یعنی Primary Keyها به صورت گلوبال یونیک میشن و هم چون بر اساس زمان مرتب هستن، عملکرد ایندکس B-tree به شکل چشمگیری بهتر میشه. (یعنی Page Split بی مورد نداریم!)
- قابلیت Virtual Generated Columns:
حالا ستونهای محاسباتی بهصورت پیشفرض مجازی هستن، یعنی فقط موقع خوانش محاسبه میشن و فضای دیسک رو اشغال نمیکنن. (البته اگه لازم باشه، میتونید همچنان STORED هم تعریف کنین).
افزودن NOT NULL بدون Downtime: کابوس اضافه کردن NOT NULL به جدولهای بزرگ تموم شد! حالا میشه قید NOT NULL رو بهصورت NOT VALID اضافه کنیم و بلافاصله برای ردیفهای جدید اعمال بشه. اعتبارسنجی ردیفهای موجود رو هم میتونیم بعداً بدون قفل کامل جدول انجام بدیم.
- امکان Skip Scan برای B-tree:
یه بهبود عالی برای بهینهسازی کوئری؛ اگه توی ایندکسهای چند ستونی، ستون اول رو در WHERE فیلتر نکرده باشیم، باز هم ایندکس کار میکنه و کوئریهای تحلیلی/گزارشگیری خیلی سریعتر میشن.
- امکان RETURNING هوشمند:
حالا میشه توی یک دستور UPDATE یا DELETE به هر دو مقدار قدیمی (OLD) و جدید (NEW) یک ستون در بخش RETURNING دسترسی داشته باشیم.
- آپگرید آسونتر:
قابلیت حفظ Planner Statistics حین آپگرید با pg_upgrade باعث میشه دیتابیس جدید خیلی سریعتر به پرفورمنس دلخواه برگرده.
اگر جزو افرادی هستین که به مهاجرت به PostgreSQL فکر میکنید، یه تعداد کارتهای شستهرُفته برای مهاجرت از SQL Server به PostgreSQL با هشتگ #MSSQL_to_PGSQL توی کانال داریم (کارتهای قرمز رنگ از بخش تصاویر هم قابل پیدا کردنه)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
خیلیا رو دیدم که سالهاست با git کار میکنن ولی هنوز فرق بین merge و rabase رو نمیدونن توی این پست میخام راجب این دو مورد توضیح بدم
وقتی میخوای تغییرات یک برنچ رو به برنچ دیگه بیاری، معمولاً بین دو دستور انتخاب داری:
Merge
-تغییرات رو ادغام میکنه.
-یک merge commit جدید میسازه.
-تاریخچه واقعی حفظ میشه، ولی کمی شلوغتر میشه.
Rebase
-تغییراتت رو روی آخرین commit مقصد بازنویسی میکنه.
-تاریخچه خطی و مرتب میشه.
-اما تاریخچه واقعی تغییر میکنه (روی برنچ تیمی خطرناک).
در کل بهتره برای برنچهای شخصی قبل از merge به main از rebase استفاده کنی تا تاریخچه تمیز باشه.
برای برنچهای مشترک تیمی از merge استفاده کن تا تاریخچه تغییر نکنه و همه چیز شفاف بمونه.
@DevTwitter | <Amirreza Sajadiyan/>
وقتی میخوای تغییرات یک برنچ رو به برنچ دیگه بیاری، معمولاً بین دو دستور انتخاب داری:
Merge
-تغییرات رو ادغام میکنه.
-یک merge commit جدید میسازه.
-تاریخچه واقعی حفظ میشه، ولی کمی شلوغتر میشه.
Rebase
-تغییراتت رو روی آخرین commit مقصد بازنویسی میکنه.
-تاریخچه خطی و مرتب میشه.
-اما تاریخچه واقعی تغییر میکنه (روی برنچ تیمی خطرناک).
در کل بهتره برای برنچهای شخصی قبل از merge به main از rebase استفاده کنی تا تاریخچه تمیز باشه.
برای برنچهای مشترک تیمی از merge استفاده کن تا تاریخچه تغییر نکنه و همه چیز شفاف بمونه.
@DevTwitter | <Amirreza Sajadiyan/>
Forwarded from محتوای آزاد سهراب (Sohrab)
خب WSL2 کلاً چطور کار میکنه که من گفتم ناممکنه؟
اول از همه باید ببینیم که اولین نسخش چطور کار میکرده.
در نسخهی اول WSL، ویندوز بهجای اجرای یک کرنل لینوکس واقعی، لایهای از ترجمهی syscall پیادهسازی کرده بود. وقتی یک برنامهی لینوکسی فراخوان سیستمی مثل open() یا read() را صدا میزد، این فراخوانها مستقیماً به توابع هستهی ویندوز (NT API) مانند NtCreateFile یا NtReadFile ترجمه میشدن.
حالا WSL2 چه فرقی داره؟
توی این نسخه، مایکروسافت از یک ماشین مجازی بسیار سبک (Utility VM) مبتنی بر Hyper-V استفاده میکند که داخلش یک کرنل واقعی لینوکس بوت میشه. این کرنل برای ارتباط مستقیم با ویندوز پچ شده تا از طریق پروتکلهایی مانند 9p و virtio بتواند فایلسیستم، شبکه، حافظه و سایر منابع را با سیستم میزبان به اشتراک بذاره.
از اونجایی که این ماشینمجازی یک کرنل لینوکس واقعی رو اجرا میکند، تمام ABI و syscallها باید دقیقاً با لینوکس سازگار باشند. برای همین نمیشه سیستمعاملی مثل FreeBSD رو مستقیماً اجرا کرد.
چون با عکس محدودیت متن میخوریم فنیترش رو میرم پست بعدی.
@SohrabContents
اول از همه باید ببینیم که اولین نسخش چطور کار میکرده.
در نسخهی اول WSL، ویندوز بهجای اجرای یک کرنل لینوکس واقعی، لایهای از ترجمهی syscall پیادهسازی کرده بود. وقتی یک برنامهی لینوکسی فراخوان سیستمی مثل open() یا read() را صدا میزد، این فراخوانها مستقیماً به توابع هستهی ویندوز (NT API) مانند NtCreateFile یا NtReadFile ترجمه میشدن.
حالا WSL2 چه فرقی داره؟
توی این نسخه، مایکروسافت از یک ماشین مجازی بسیار سبک (Utility VM) مبتنی بر Hyper-V استفاده میکند که داخلش یک کرنل واقعی لینوکس بوت میشه. این کرنل برای ارتباط مستقیم با ویندوز پچ شده تا از طریق پروتکلهایی مانند 9p و virtio بتواند فایلسیستم، شبکه، حافظه و سایر منابع را با سیستم میزبان به اشتراک بذاره.
از اونجایی که این ماشینمجازی یک کرنل لینوکس واقعی رو اجرا میکند، تمام ABI و syscallها باید دقیقاً با لینوکس سازگار باشند. برای همین نمیشه سیستمعاملی مثل FreeBSD رو مستقیماً اجرا کرد.
چون با عکس محدودیت متن میخوریم فنیترش رو میرم پست بعدی.
@SohrabContents