Forwarded from Database Labdon
🔵 عنوان مقاله
pg_auto_reindexer 1.5: Automatic B-Tree Reindexing Tool
🟢 خلاصه مقاله:
مقالهی مورد بررسی به ارائه یک اسکریپت میپردازد که قادر به شناسایی و بازنمایهسازی (ریایندکسینگ) شاخصهای B-tree ورمدار با استفاده از REINDEX CONCURRENTLY است که حداقل قفلگذاری را به همراه دارد. این فرآیند اجازه میدهد تا بهبود کارایی دسترسی و استفاده از دادههای موجود در پایگاه داده بدون تأثیر منفی قابل توجه بر دسترسی کاربران در زمان اجرای بازنمایهسازی انجام پذیرد. اسکریپت به نحوی طراحی شده است که میتواند به طور خودکار شاخصهایی که نیاز به بازنمایهسازی دارند را تعیین کرده و فرآیند را با تمرکز بر کاهش زمان بلوکه شدن اجرا کند. این یک نوآوری مهم در مدیریت پایگاههای داده است که میتواند به بهینهسازی عملکردهای مرتبط با زمان و همینطور کاهش هزینههای نگهداری سیستم کمک کند.
🟣لینک مقاله:
https://postgresweekly.com/link/170671/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
pg_auto_reindexer 1.5: Automatic B-Tree Reindexing Tool
🟢 خلاصه مقاله:
مقالهی مورد بررسی به ارائه یک اسکریپت میپردازد که قادر به شناسایی و بازنمایهسازی (ریایندکسینگ) شاخصهای B-tree ورمدار با استفاده از REINDEX CONCURRENTLY است که حداقل قفلگذاری را به همراه دارد. این فرآیند اجازه میدهد تا بهبود کارایی دسترسی و استفاده از دادههای موجود در پایگاه داده بدون تأثیر منفی قابل توجه بر دسترسی کاربران در زمان اجرای بازنمایهسازی انجام پذیرد. اسکریپت به نحوی طراحی شده است که میتواند به طور خودکار شاخصهایی که نیاز به بازنمایهسازی دارند را تعیین کرده و فرآیند را با تمرکز بر کاهش زمان بلوکه شدن اجرا کند. این یک نوآوری مهم در مدیریت پایگاههای داده است که میتواند به بهینهسازی عملکردهای مرتبط با زمان و همینطور کاهش هزینههای نگهداری سیستم کمک کند.
🟣لینک مقاله:
https://postgresweekly.com/link/170671/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
GitHub
GitHub - vitabaks/pg_auto_reindexer: Automatic reindexing of PostgreSQL indexes (bloat cleanup).
Automatic reindexing of PostgreSQL indexes (bloat cleanup). - vitabaks/pg_auto_reindexer
Forwarded from 𓄂 Bardia 𓆃
چه زیبا گفت امیر کبیر ،بزرگمرد تاریخ ایران زمین :
یا سخنی داشته باش دلپذیر ، یا دلی داشته باش سخن پذیر ...
یا سخنی داشته باش دلپذیر ، یا دلی داشته باش سخن پذیر ...
❤13
Forwarded from Linux Labdon
🔵 عنوان مقاله
postmarketOS 25.06 Linux Mobile OS Brings Support for New Devices and systemd
🟢 خلاصه مقاله:
نسخه جدید توزیع موبایلی postmarketOS 25.06 اکنون برای دانلود در دسترس است و بر پایهی Alpine Linux 3.22 ساخته شدهاست. این نسخه جدید شامل پشتیبانی از دستگاههای جدید و ویژگیهای تازه، بهروزرسانی اجزاء نرمافزاری و موارد دیگر میباشد. در این بهروزرسانی، تمرکز اصلی بر افزایش تعداد دستگاههای سازگار با توزیع و عرضه ویژگیهای جدید برای بهبود تجربه کاربری بوده است. علاوه بر این، اصلاحات و بهینهسازیهای متعددی بر روی مولفههای مختلف نرمافزاری انجام شده است تا استفاده از postmarketOS راحتتر و کارآمدتر از پیش باشد. این توزیع موبایلی به عنوان یکی از گزینههای برتر برای استفاده در دستگاههای قدیمیتر و جدید مطرح است که به دنبال امنیت بیشتر و حفظ حریم خصوصی هستند.
🟣لینک مقاله:
https://9to5linux.com/postmarketos-25-06-linux-mobile-os-brings-support-for-new-devices-and-systemd
➖➖➖➖➖➖➖➖
👑 @Linux_Labdon
postmarketOS 25.06 Linux Mobile OS Brings Support for New Devices and systemd
🟢 خلاصه مقاله:
نسخه جدید توزیع موبایلی postmarketOS 25.06 اکنون برای دانلود در دسترس است و بر پایهی Alpine Linux 3.22 ساخته شدهاست. این نسخه جدید شامل پشتیبانی از دستگاههای جدید و ویژگیهای تازه، بهروزرسانی اجزاء نرمافزاری و موارد دیگر میباشد. در این بهروزرسانی، تمرکز اصلی بر افزایش تعداد دستگاههای سازگار با توزیع و عرضه ویژگیهای جدید برای بهبود تجربه کاربری بوده است. علاوه بر این، اصلاحات و بهینهسازیهای متعددی بر روی مولفههای مختلف نرمافزاری انجام شده است تا استفاده از postmarketOS راحتتر و کارآمدتر از پیش باشد. این توزیع موبایلی به عنوان یکی از گزینههای برتر برای استفاده در دستگاههای قدیمیتر و جدید مطرح است که به دنبال امنیت بیشتر و حفظ حریم خصوصی هستند.
🟣لینک مقاله:
https://9to5linux.com/postmarketos-25-06-linux-mobile-os-brings-support-for-new-devices-and-systemd
➖➖➖➖➖➖➖➖
👑 @Linux_Labdon
9to5Linux
postmarketOS 25.06 Linux Mobile OS Brings Support for New Devices and systemd - 9to5Linux
postmarketOS 25.06 mobile distribution is now available for download based on Alpine Linux 3.22 and featuring support for new devices.
❤1🍾1
Forwarded from Database Labdon
🔵 عنوان مقاله
Missed POSETTE 2025? Now Watch All 42 Talks on Demand
🟢 خلاصه مقاله:
مقالهای که مرور شد به تشریح رویداد POSETTE: An Event for Postgres پرداخته است. این رویداد بصورت رایگان و مجازی توسط تیم Postgres در مایکروسافت برگزار شده است. در این رویداد، ۴۵ متخصص از اکوسیستم PostgreSQL به بحث و تبادل نظر پیرامون آخرین قابلیتها، نکات کلیدی عملکرد، و کاربردهای واقعی PostgreSQL پرداختهاند. این جلسه فرصتی بوده برای توسعهدهندگان تا با آخرین دستاوردها و پیشرفتها در عرصهی PostgreSQL آشنا شوند در حالی که تجربهها و دانش خود را در محیطی مجازی به اشتراک گذاشتهاند. این رویداد نویدبخش ارائهی دانش فنی و استراتژیهای بهروز در استفاده از این پایگاه دادهی قدرتمند است.
🟣لینک مقاله:
https://postgresweekly.com/link/170645/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Missed POSETTE 2025? Now Watch All 42 Talks on Demand
🟢 خلاصه مقاله:
مقالهای که مرور شد به تشریح رویداد POSETTE: An Event for Postgres پرداخته است. این رویداد بصورت رایگان و مجازی توسط تیم Postgres در مایکروسافت برگزار شده است. در این رویداد، ۴۵ متخصص از اکوسیستم PostgreSQL به بحث و تبادل نظر پیرامون آخرین قابلیتها، نکات کلیدی عملکرد، و کاربردهای واقعی PostgreSQL پرداختهاند. این جلسه فرصتی بوده برای توسعهدهندگان تا با آخرین دستاوردها و پیشرفتها در عرصهی PostgreSQL آشنا شوند در حالی که تجربهها و دانش خود را در محیطی مجازی به اشتراک گذاشتهاند. این رویداد نویدبخش ارائهی دانش فنی و استراتژیهای بهروز در استفاده از این پایگاه دادهی قدرتمند است.
🟣لینک مقاله:
https://postgresweekly.com/link/170645/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
POSETTE
POSETTE: An Event for Postgres 2025
POSETTE 2025 is a wrap, but you can still watch all the talks! POSETTE: An Event for Postgres is a virtual and free developer event that happened on June 10-12 in 2025. Watch any or all of the 42 talks to learn what you can do with the world’s most advanced…
❤1
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Unlock 66% better price-performance with new M4 VMs for memory-intensive workloads (4 minute read)
🟢 خلاصه مقاله:
گوگل کلود اخیراً مدل جدیدی از ماشینهای مجازی با عنوان Compute Engine M4 را رونمایی کرده که بهینهسازی شده برای کارکردهای حافظهای با عملکرد بالا است. این ماشین مجازی جدید میتواند تا 224 vCPU و 6TB حافظه DDR5 را پشتیبانی کند. M4 عملکرد قیمت به نسبت بهتری تا 2.44 برابر نسبت به نسلهای قبلی ارائه میدهد و از ذخیرهسازی پیشرفته Hyperdisk بهره میبرد. این ویژگیها M4 را یک راهحل قدرتمند برای کاربرانی که به حافظه بالا و قدرت پردازشی زیاد نیاز دارند، تبدیل میکند، که امکان پیادهسازی و اجرای برنامهها و دیتابیسهای عظیم را در محیط ابری فراهم میآورد. این پیشرفتها در عملکرد و ظرفیت به کاربران اجازه میدهد تا به صورت کارآمدتر و مقرون به صرفهتر برنامههای کلان داده و یادگیری ماشینی خود را به اجرا درآورند.
🟣لینک مقاله:
https://cloud.google.com/blog/products/compute/m4-vms-are-designed-for-memory-intensive-workloads-like-sap?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Unlock 66% better price-performance with new M4 VMs for memory-intensive workloads (4 minute read)
🟢 خلاصه مقاله:
گوگل کلود اخیراً مدل جدیدی از ماشینهای مجازی با عنوان Compute Engine M4 را رونمایی کرده که بهینهسازی شده برای کارکردهای حافظهای با عملکرد بالا است. این ماشین مجازی جدید میتواند تا 224 vCPU و 6TB حافظه DDR5 را پشتیبانی کند. M4 عملکرد قیمت به نسبت بهتری تا 2.44 برابر نسبت به نسلهای قبلی ارائه میدهد و از ذخیرهسازی پیشرفته Hyperdisk بهره میبرد. این ویژگیها M4 را یک راهحل قدرتمند برای کاربرانی که به حافظه بالا و قدرت پردازشی زیاد نیاز دارند، تبدیل میکند، که امکان پیادهسازی و اجرای برنامهها و دیتابیسهای عظیم را در محیط ابری فراهم میآورد. این پیشرفتها در عملکرد و ظرفیت به کاربران اجازه میدهد تا به صورت کارآمدتر و مقرون به صرفهتر برنامههای کلان داده و یادگیری ماشینی خود را به اجرا درآورند.
🟣لینک مقاله:
https://cloud.google.com/blog/products/compute/m4-vms-are-designed-for-memory-intensive-workloads-like-sap?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Google Cloud Blog
M4 VMs are designed for memory-intensive workloads like SAP | Google Cloud Blog
Compute Engine M4 VMs are designed for workloads like SAP HANA, SQL Server, and in-memory analytics that benefit from a high memory-to-core ratio.
❤1👍1🔥1
🎬 استخدام – تولید ویدیو با کمک هوش مصنوعی (AI Video Creator)
درود به همه 🙌
ما بهدنبال یک فرد خلاق و مسلط هستیم که بتونه با استفاده از ابزارهای هوش مصنوعی، ویدیوهای حرفهای و جذاب تولید کنه.
🧠 مهارتهای موردنیاز:
آشنایی کامل با ابزارهای ساخت ویدیو مبتنی بر هوش مصنوعی
توانایی پرامپتنویسی حرفهای برای تولید محتوای حرفه های ویدیویی با AI
درک خوب از اصول تدوین، داستانپردازی تصویری و خلاقیت در تولید محتوا
آشنایی با مفاهیم پایه تولید محتوا در شبکههای اجتماعی
🌍 همکاری بهصورت دورکاری / پروژهای
📩 اگر فکر میکنی میتونی این نقش رو به خوبی اجرا کنی، به شماره زیر توی واتساب یا تلگرام پیام بفرستید
+989355167911
درود به همه 🙌
ما بهدنبال یک فرد خلاق و مسلط هستیم که بتونه با استفاده از ابزارهای هوش مصنوعی، ویدیوهای حرفهای و جذاب تولید کنه.
🧠 مهارتهای موردنیاز:
آشنایی کامل با ابزارهای ساخت ویدیو مبتنی بر هوش مصنوعی
توانایی پرامپتنویسی حرفهای برای تولید محتوای حرفه های ویدیویی با AI
درک خوب از اصول تدوین، داستانپردازی تصویری و خلاقیت در تولید محتوا
آشنایی با مفاهیم پایه تولید محتوا در شبکههای اجتماعی
🌍 همکاری بهصورت دورکاری / پروژهای
📩 اگر فکر میکنی میتونی این نقش رو به خوبی اجرا کنی، به شماره زیر توی واتساب یا تلگرام پیام بفرستید
+989355167911
❤2
🔵 عنوان مقاله
Fullstack without Frameworks
🟢 خلاصه مقاله:
ماکسیمیلیانو فیرتمن با ترکیب جاوا اسکریپت و زبان برنامهنویسی گو، دورهای ویدئویی را ارائه داده است که در آن به ساخت برنامههای وب با عملکرد بالا از ابتدا پرداخته میشود. این دوره شامل آموزشهایی در مورد اجزای وب، مسیریابی دینامیکی در سمت مشتری، احراز هویت، ثبت وقایع و موارد دیگر است. شرکتکنندگان در این دوره، درک جامعی از نحوه یکپارچهسازی جاوا اسکریپت و گو برای ایجاد برنامههای وب با کارایی بسیار بالا کسب میکنند.
🟣لینک مقاله:
https://golangweekly.com/link/170926/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Fullstack without Frameworks
🟢 خلاصه مقاله:
ماکسیمیلیانو فیرتمن با ترکیب جاوا اسکریپت و زبان برنامهنویسی گو، دورهای ویدئویی را ارائه داده است که در آن به ساخت برنامههای وب با عملکرد بالا از ابتدا پرداخته میشود. این دوره شامل آموزشهایی در مورد اجزای وب، مسیریابی دینامیکی در سمت مشتری، احراز هویت، ثبت وقایع و موارد دیگر است. شرکتکنندگان در این دوره، درک جامعی از نحوه یکپارچهسازی جاوا اسکریپت و گو برای ایجاد برنامههای وب با کارایی بسیار بالا کسب میکنند.
🟣لینک مقاله:
https://golangweekly.com/link/170926/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Frontendmasters
Fullstack Without Frameworks | Vanilla JS + Go on Frontend Masters
Code a high-performance fullstack app from scratch! Skip the framework while creating a modern web app with Vanilla JavaScript and a rock-solid backend JSON API with Go.
❤3
🔵 عنوان مقاله
Finding Performance Problems by Diffing Two Go Profiles
🟢 خلاصه مقاله:
**
ابزار پروفایلینگ pprof گو قابلیت مقایسه دو پروفایل اجرایی را دارد که این امکان را برای برنامه نویسان فراهم میآورد تا تفاوتهای عملکردی بین دو حالت از برنامههایشان را شناسایی کنند. این ابزار توسط تیم دولت برای شناسایی یک پارامتر به اشتباه سختافزاری شده که باعث ایجاد هزینههای سنگین در تولید جداول سیستم شده بود، به کار گرفته شد. با تشخیص و اصلاح این پارامتر، تیم دولت توانست عملکرد نرمافزار خود را بهینهسازی کند و هزینههای محاسباتی غیرضروری را کاهش دهد.
🟣لینک مقاله:
https://golangweekly.com/link/170928/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Finding Performance Problems by Diffing Two Go Profiles
🟢 خلاصه مقاله:
**
ابزار پروفایلینگ pprof گو قابلیت مقایسه دو پروفایل اجرایی را دارد که این امکان را برای برنامه نویسان فراهم میآورد تا تفاوتهای عملکردی بین دو حالت از برنامههایشان را شناسایی کنند. این ابزار توسط تیم دولت برای شناسایی یک پارامتر به اشتباه سختافزاری شده که باعث ایجاد هزینههای سنگین در تولید جداول سیستم شده بود، به کار گرفته شد. با تشخیص و اصلاح این پارامتر، تیم دولت توانست عملکرد نرمافزار خود را بهینهسازی کند و هزینههای محاسباتی غیرضروری را کاهش دهد.
🟣لینک مقاله:
https://golangweekly.com/link/170928/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Finding performance problems by diffing two Go profiles
Learn how to debug tricky performance issues by diffing two pprof Go profiles.
❤1
🔵 عنوان مقاله
How to Store Go Pointers from (Go) Assembly
🟢 خلاصه مقاله:
آسمبلر زبان برنامهنویسی Go بخش عمیق اما کمتر شناخته شدهای از ابزارهای Go است که به برنامهنویسان امکان میدهد تا به طور مستقیم با محیط اجرایی Go ارتباط برقرار کرده و برنامههای سطح پایین بنویسند. استفاده از این آسمبلر ممکن است برای اکثر توسعهدهندگان Go ضروری نباشد، اما داشتن دانش و منابع در این زمینه میتواند بسیار مفید باشد. این امکانات به برنامهنویسان اجازه میدهد تا تواناییهای Go را به حداکثر برسانند و عملکرد برنامههای خود را بهینه کنند.
🟣لینک مقاله:
https://golangweekly.com/link/170930/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How to Store Go Pointers from (Go) Assembly
🟢 خلاصه مقاله:
آسمبلر زبان برنامهنویسی Go بخش عمیق اما کمتر شناخته شدهای از ابزارهای Go است که به برنامهنویسان امکان میدهد تا به طور مستقیم با محیط اجرایی Go ارتباط برقرار کرده و برنامههای سطح پایین بنویسند. استفاده از این آسمبلر ممکن است برای اکثر توسعهدهندگان Go ضروری نباشد، اما داشتن دانش و منابع در این زمینه میتواند بسیار مفید باشد. این امکانات به برنامهنویسان اجازه میدهد تا تواناییهای Go را به حداکثر برسانند و عملکرد برنامههای خود را بهینه کنند.
🟣لینک مقاله:
https://golangweekly.com/link/170930/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
mazzo.li
How to store Go pointers from assembly
The standard Go toolchain comes with an assembler out of the box. Said assembler is highly idiosyncratic, using syntax inherited from Plan 9 and choosing its own names for platform-specific instructions and registers. But it's great to have it readily available.…
❤3
🔴قابلیت Synthetic time for testing ویژگی های جدید گولنگ نسخه 1.25
⏱️ چی هست این Synthetic Time؟
قطعهای از کد که زمان واقعی (real-time) استفاده میکنه—مثلاً `time.Sleep(60*time.Second)`—در تست، باعث میشه نتایج:
* کند (شصت ثانیهای وسط تست منتظر شیم؟!)
* غیرقابل اعتماد (وابسته به scheduler واقعی و بار سیستم)
این ویژگی
---
🔧 نحوه استفاده با مثال
مثال تابع با تأخیر و timeout:
تست timeout بدون معطلی:
در این تست:
* تابع درون
*این clock از جنس مصنوعیه؛ بدون انتظار، بعد از بلاک شدن goroutine روی select، زمان مصنوعی ۶۰ ثانیه جلو میره و timeout فعال میشه—امتحان با سرعت و قابل اعتماد
---
⚙️ قابلیت
این متد اجازه میده تا:
1. کدی با goroutine اجرا بشه،
2. منتظر بشیم همه goroutineها بلاک بشن،
3. سپس دقیقاً بررسی انجام بشه،
4. و ادامهٔ تست.
مثل این مثال:
این تضمین میکنه که قبل از ادامه تست، همه goroutineها به نقطهٔ بلاک رسیده باشن
---
✅ جمعبندی & پیشنهاد
*این Go 1.25 با
* فقط کافیه تابع تست رو داخل
*این
* ویژگی در نسخه RC هست و باید ویژگی
➖➖➖➖➖➖➖➖
👑 @gopher_academy
⏱️ چی هست این Synthetic Time؟
قطعهای از کد که زمان واقعی (real-time) استفاده میکنه—مثلاً `time.Sleep(60*time.Second)`—در تست، باعث میشه نتایج:
* کند (شصت ثانیهای وسط تست منتظر شیم؟!)
* غیرقابل اعتماد (وابسته به scheduler واقعی و بار سیستم)
این ویژگی
testing/synctest
این مشکل رو با فراهم کردن یک "زمان مصنوعی" حل میکنه—زمان فقط وقتی جلو میره که goroutineها بلاک بشن، و همه چی بلافاصله و به صورت دترمینیستیک اجرا میشه ---
🔧 نحوه استفاده با مثال
مثال تابع با تأخیر و timeout:
func Read(in chan int) (int, error) {
select {
case v := <-in:
return v, nil
case <-time.After(60 * time.Second):
return 0, fmt.Errorf("timeout")
}
}
تست timeout بدون معطلی:
import "testing/synctest"
func TestReadTimeout(t *testing.T) {
synctest.Test(t, func(t *testing.T) {
ch := make(chan int)
_, err := Read(ch)
if err == nil {
t.Fatal("expected timeout, got nil")
}
})
}
در این تست:
* تابع درون
synctest.Test
اجرا میشه.*این clock از جنس مصنوعیه؛ بدون انتظار، بعد از بلاک شدن goroutine روی select، زمان مصنوعی ۶۰ ثانیه جلو میره و timeout فعال میشه—امتحان با سرعت و قابل اعتماد
---
⚙️ قابلیت
synctest.Wait()
این متد اجازه میده تا:
1. کدی با goroutine اجرا بشه،
2. منتظر بشیم همه goroutineها بلاک بشن،
3. سپس دقیقاً بررسی انجام بشه،
4. و ادامهٔ تست.
مثل این مثال:
func TestWait(t *testing.T) {
synctest.Test(t, func(t *testing.T) {
done := make(chan struct{})
go func() {
time.Sleep(time.Second)
close(done)
}()
synctest.Wait()
<-done
})
}
این تضمین میکنه که قبل از ادامه تست، همه goroutineها به نقطهٔ بلاک رسیده باشن
---
✅ جمعبندی & پیشنهاد
*این Go 1.25 با
testing/synctest
تست زمانمحور و همزمان را سریع، مطمئن و ساده میکند.* فقط کافیه تابع تست رو داخل
synctest.Test
(یا Run
) بنویسید.*این
Wait()
هم برای سناریوهای چندgoroutine مفیده.* ویژگی در نسخه RC هست و باید ویژگی
GOEXPERIMENT=synctest
رو هنگام اجرای go test
فعال کنید➖➖➖➖➖➖➖➖
👑 @gopher_academy
❤3👍3🔥1🍾1
🔵 عنوان مقاله
Charm Fang: A CLI Starter Kit for Cobra Apps
🟢 خلاصه مقاله:
انتشار جدید Charm همیشه مورد توجه توسعه دهندگان قرار میگیرد، زیرا آنها کتابخانههای فوقالعاده و خوب طراحی شدهای ایجاد میکنند. فنگ، که یک لایه افزوده به فریمورک کبرا است، امکانات جدیدی مانند خروجیها و پیامهای خطای بهبود یافته، صفحات راهنما، پشتیبانی از تکمیل خودکار دستورات، و دیگر بهبودیهای کاربری برای برنامههای کاربری خط فرمان (CLI) اضافه میکند. از آنجایی که فنگ جدید است، فعلاً مستندات آن محدود است، اما کد نمونهای که ارائه شده راهنمایی مفیدی برای استفاده بهینه از این امکانات جدید فراهم میکند.
🟣لینک مقاله:
https://golangweekly.com/link/170940/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Charm Fang: A CLI Starter Kit for Cobra Apps
🟢 خلاصه مقاله:
انتشار جدید Charm همیشه مورد توجه توسعه دهندگان قرار میگیرد، زیرا آنها کتابخانههای فوقالعاده و خوب طراحی شدهای ایجاد میکنند. فنگ، که یک لایه افزوده به فریمورک کبرا است، امکانات جدیدی مانند خروجیها و پیامهای خطای بهبود یافته، صفحات راهنما، پشتیبانی از تکمیل خودکار دستورات، و دیگر بهبودیهای کاربری برای برنامههای کاربری خط فرمان (CLI) اضافه میکند. از آنجایی که فنگ جدید است، فعلاً مستندات آن محدود است، اما کد نمونهای که ارائه شده راهنمایی مفیدی برای استفاده بهینه از این امکانات جدید فراهم میکند.
🟣لینک مقاله:
https://golangweekly.com/link/170940/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - charmbracelet/fang: The CLI starter kit
The CLI starter kit. Contribute to charmbracelet/fang development by creating an account on GitHub.
👍2
🔵 عنوان مقاله
Eliminating Dead Code in Go Projects
🟢 خلاصه مقاله:
در سال 2023، تیم توسعهدهنده زبان برنامهنویسی Go ابزاری بنام "deadcode tool" را منتشر کرد که به شناسایی کدهای غیرقابل دسترس یا مرده در پروژههای نرمافزاری کمک میکند. این ابزار با اسکن کدهای Go، قسمتهایی که هرگز اجرا نمیشوند را شناسایی کرده و به توسعهدهندگان در حذف آنها کمک میکند. استفاده از این ابزار موجب بهبود عملکرد و خوانایی برنامهها شده و بازخورد مثبتی از جامعه توسعهدهندگان دریافت کرده است. این ابزار همچنین در بهینهسازی سیستمهای قدیمی و در زمان بازنویسیهای اساسی بسیار مفید است.
🟣لینک مقاله:
https://golangweekly.com/link/170933/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Eliminating Dead Code in Go Projects
🟢 خلاصه مقاله:
در سال 2023، تیم توسعهدهنده زبان برنامهنویسی Go ابزاری بنام "deadcode tool" را منتشر کرد که به شناسایی کدهای غیرقابل دسترس یا مرده در پروژههای نرمافزاری کمک میکند. این ابزار با اسکن کدهای Go، قسمتهایی که هرگز اجرا نمیشوند را شناسایی کرده و به توسعهدهندگان در حذف آنها کمک میکند. استفاده از این ابزار موجب بهبود عملکرد و خوانایی برنامهها شده و بازخورد مثبتی از جامعه توسعهدهندگان دریافت کرده است. این ابزار همچنین در بهینهسازی سیستمهای قدیمی و در زمان بازنویسیهای اساسی بسیار مفید است.
🟣لینک مقاله:
https://golangweekly.com/link/170933/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
mfbmina.dev
Eliminating dead code in Go projects
As the software we work on grows, the code tends to undergo various changes and refactorings. During this process, we might simply forget pieces of code that were once used but no longer make sense in …
❤3
Gopher Academy
🔴قابلیت Synthetic time for testing ویژگی های جدید گولنگ نسخه 1.25 ⏱️ چی هست این Synthetic Time؟ قطعهای از کد که زمان واقعی (real-time) استفاده میکنه—مثلاً `time.Sleep(60*time.Second)`—در تست، باعث میشه نتایج: * کند (شصت ثانیهای وسط تست منتظر شیم؟!)…
🔴قابلیت json/v2 ویژگی های جدید گولنگ نسخه 1.25
در Go 1.25، بستهٔ `json/v2` (همراه با
یک نسخهٔ اساسی و پیشرفتهتر نسبت به
🔑 مزایای کلیدی
1. انعطافپذیری در Marshal/Unmarshal
* دیگر محدود به یک رفتار یکنواخت نیستید؛ با
2. افزایش قابلتوجه در سرعت
* بهویژه در عملیات خواندن (unmarshal)، تا ۱۰ برابر سریعتر از نسخهٔ فعلی گزارش شده است .
3. این API جدید برای تولید و مصرف جریانهای داده
* امکان مستقیم خواندن از
4. ویژگیهای جدید همچون برچسبهای سفارشی و رفتار پیشفرض بهبود یافته
* امکانات گستردهای برای تنظیم سفارشی JSON وجود دارد (برچسبها، inlining، skip کردن فیلدها و غیره) .
✨ یک مثال مفهومی
فرض کنید میخواهید برای بولینها (
در این مثال:
*
*
* و رشتهٔ
📌 وضعیت کنونی و توصیهها
*این Experimental: این ویژگی آزمایشی است و باید با
* نسخه فعلی
* توصیه شده: پروژههایی که وابسته به عملکرد JSON هستند، با فعالسازی این flag تست شوند تا مشکلات ناسازگاری احتمالی شناسایی شود .
---
✅ جمعبندی
*این
* با قابلیتهایی مانند سفارشیسازی عمیق Marshal/Unmarshal و I/O مستقیم همراه است.
* هنوز آزمایشیست؛ اگر پروژهای دارید که نیاز به performance یا JSON پیچیدهتری دارد، توصیه میشود با
➖➖➖➖➖➖➖➖
👑 @gopher_academy
در Go 1.25، بستهٔ `json/v2` (همراه با
jsontext
) معرفی شده استیک نسخهٔ اساسی و پیشرفتهتر نسبت به
encoding/json
قبلی که با فعالسازی آزمایشی از طریق متغیر محیطی GOEXPERIMENT=jsonv2
کار میکند 🔑 مزایای کلیدی
json/v2
1. انعطافپذیری در Marshal/Unmarshal
* دیگر محدود به یک رفتار یکنواخت نیستید؛ با
MarshalToFunc
و UnmarshalFromFunc
میتوانید رفتار سفارشی خود را برای هر نوع داده بنویسید 2. افزایش قابلتوجه در سرعت
* بهویژه در عملیات خواندن (unmarshal)، تا ۱۰ برابر سریعتر از نسخهٔ فعلی گزارش شده است .
3. این API جدید برای تولید و مصرف جریانهای داده
* امکان مستقیم خواندن از
io.Reader
و نوشتن به io.Writer
فراهم شده (MarshalWrite
, UnmarshalRead
) بدون نیاز به شیء Encoder/Decoder جداگانه.4. ویژگیهای جدید همچون برچسبهای سفارشی و رفتار پیشفرض بهبود یافته
* امکانات گستردهای برای تنظیم سفارشی JSON وجود دارد (برچسبها، inlining، skip کردن فیلدها و غیره) .
✨ یک مثال مفهومی
فرض کنید میخواهید برای بولینها (
bool
) بهجای true
/false
از کاراکترهای ویژه مثل ✓
و ✗
استفاده کنید.import (
"fmt"
"encoding/json/v2"
"encoding/json/v2/jsontext"
)
// Marshal custom برای bool:
boolMarshaler := json.MarshalToFunc(
func(enc *jsontext.Encoder, val bool) error {
if val {
return enc.WriteToken(jsontext.String("✓"))
}
return enc.WriteToken(jsontext.String("✗"))
},
)
// Marshal برای stringهای شبیه bool:
strMarshaler := json.MarshalToFunc(
func(enc *jsontext.Encoder, val string) error {
if val == "on" || val == "true" {
return enc.WriteToken(jsontext.String("✓"))
}
if val == "off" || val == "false" {
return enc.WriteToken(jsontext.String("✗"))
}
return json.SkipFunc
},
)
marshalers := json.JoinMarshalers(boolMarshaler, strMarshaler)
vals := []any{true, "off", "hello"}
data, err := json.Marshal(vals, json.WithMarshalers(marshalers))
fmt.Println(string(data), err)
// خروجی: ["✓","✗","hello"]
در این مثال:
*
true
به ✓
*
"off"
به ✗
* و رشتهٔ
"hello"
به حالت پیشفرض تبدیل میشود 📌 وضعیت کنونی و توصیهها
*این Experimental: این ویژگی آزمایشی است و باید با
GOEXPERIMENT=jsonv2
فعال شود* نسخه فعلی
encoding/json
وقتی flag فعال باشد از json/v2
استفاده میکند و عملکرد قدیمی حفظ شده تا سازگاری کامل برقرار شود ([github.com][5]).* توصیه شده: پروژههایی که وابسته به عملکرد JSON هستند، با فعالسازی این flag تست شوند تا مشکلات ناسازگاری احتمالی شناسایی شود .
---
✅ جمعبندی
*این
json/v2
در Go 1.25 یک نسخهی کاملاً بازطراحیشده است: سریعتر، انعطافپذیرتر و پیشرفتهتر.* با قابلیتهایی مانند سفارشیسازی عمیق Marshal/Unmarshal و I/O مستقیم همراه است.
* هنوز آزمایشیست؛ اگر پروژهای دارید که نیاز به performance یا JSON پیچیدهتری دارد، توصیه میشود با
GOEXPERIMENT=jsonv2
امتحانش کنید.➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔥7👍3❤1
🔵 عنوان مقاله
BillionMail 3.0: Open Source Email Marketing Platform
🟢 خلاصه مقاله:
مقاله به بررسی یک سرویس سرور ایمیل و ارسال نامهخبری/ایمیل میپردازد که با زبان برنامهنویسی Go کار میکند. این نرمافزار تحت لیسانس AGPL منتشر شده است. کد منبع این پروژه نیز در GitHub قابل دسترسی است، که این امکان را برای توسعهدهندگان فراهم میکند تا در پروژه مشارکت یا آن را تغییر دهند. استفاده از زبان Go این اطمینان را به کاربران میدهد که نرمافزار با کارایی بالا و عملکرد قابل اعتمادی ارائه دهد.
🟣لینک مقاله:
https://golangweekly.com/link/170948/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
BillionMail 3.0: Open Source Email Marketing Platform
🟢 خلاصه مقاله:
مقاله به بررسی یک سرویس سرور ایمیل و ارسال نامهخبری/ایمیل میپردازد که با زبان برنامهنویسی Go کار میکند. این نرمافزار تحت لیسانس AGPL منتشر شده است. کد منبع این پروژه نیز در GitHub قابل دسترسی است، که این امکان را برای توسعهدهندگان فراهم میکند تا در پروژه مشارکت یا آن را تغییر دهند. استفاده از زبان Go این اطمینان را به کاربران میدهد که نرمافزار با کارایی بالا و عملکرد قابل اعتمادی ارائه دهد.
🟣لینک مقاله:
https://golangweekly.com/link/170948/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Billionmail
a Free MailServer, NewsLetter and Marketing tools
Set up your own open-source mail server with BillionMail for free and start using a powerful SMTP mail server for your emails.
❤2
🔵 عنوان مقاله
Unregistry: Push Docker Images Directly to Remote Servers
🟢 خلاصه مقاله:
این مقاله به بررسی یک رجیستری تصویر کانتینر سبک وزن میپردازد که قادر است تصاویر را مستقیماً از ذخیرهسازی دیمون Docker خود ذخیره و ارائه دهد. استفاده از ذخیرهسازی دیمون Docker برای ریجستری، سرعت و کاهش تاخیر را به همراه دارد، زیرا نیازی به انتقال تصاویر از طریق شبکه نیست. حتی یکی از خالقان Docker نیز این طرح را تحسین کرده و آن را جالب توصیف کرده است. این مدل میتواند به ویژه در محیطهایی که سرعت و راحتی توسعهدهندگان اولویت دارد، مفید باشد.
🟣لینک مقاله:
https://golangweekly.com/link/170944/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Unregistry: Push Docker Images Directly to Remote Servers
🟢 خلاصه مقاله:
این مقاله به بررسی یک رجیستری تصویر کانتینر سبک وزن میپردازد که قادر است تصاویر را مستقیماً از ذخیرهسازی دیمون Docker خود ذخیره و ارائه دهد. استفاده از ذخیرهسازی دیمون Docker برای ریجستری، سرعت و کاهش تاخیر را به همراه دارد، زیرا نیازی به انتقال تصاویر از طریق شبکه نیست. حتی یکی از خالقان Docker نیز این طرح را تحسین کرده و آن را جالب توصیف کرده است. این مدل میتواند به ویژه در محیطهایی که سرعت و راحتی توسعهدهندگان اولویت دارد، مفید باشد.
🟣لینک مقاله:
https://golangweekly.com/link/170944/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - psviderski/unregistry: Push docker images directly to remote servers without an external registry
Push docker images directly to remote servers without an external registry - psviderski/unregistry
❤1👍1
🔵 عنوان مقاله
makefile-graph: Turn a Makefile into a Graph
🟢 خلاصه مقاله:
این مقاله درباره ابزاری بحث میکند که هم به عنوان کتابخانه و هم ابزار CLI قابل استفاده است و برای تحلیل Makefileها طراحی شده است. این ابزار، وابستگیهای میان مختلف هدفهای تعیین شده در Makefileها را میخواند و آنها را به شکل گراف درآورده تا توسط ابزار گرافیکی Graphviz dot نمایش داده شود. ویژگی دوگانه بودن این ابزار به همراه قابلیت نمایش تصویری، تحلیل و بهینهسازی فرایندهای ساخت نرمافزار را برای توسعهدهندگان آسانتر میکند.
🟣لینک مقاله:
https://golangweekly.com/link/170946/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
makefile-graph: Turn a Makefile into a Graph
🟢 خلاصه مقاله:
این مقاله درباره ابزاری بحث میکند که هم به عنوان کتابخانه و هم ابزار CLI قابل استفاده است و برای تحلیل Makefileها طراحی شده است. این ابزار، وابستگیهای میان مختلف هدفهای تعیین شده در Makefileها را میخواند و آنها را به شکل گراف درآورده تا توسط ابزار گرافیکی Graphviz dot نمایش داده شود. ویژگی دوگانه بودن این ابزار به همراه قابلیت نمایش تصویری، تحلیل و بهینهسازی فرایندهای ساخت نرمافزار را برای توسعهدهندگان آسانتر میکند.
🟣لینک مقاله:
https://golangweekly.com/link/170946/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - dnaeon/makefile-graph: Turn your Makefile into a graph
Turn your Makefile into a graph. Contribute to dnaeon/makefile-graph development by creating an account on GitHub.
❤1👍1
خیلی جالبه، سازنده flask (از فریمورک های معروف پایتون) خودش پیشنهاد میکنه پروژه های جدید بکندی رو با گولنگ بنویسید!
https://lucumr.pocoo.org/2025/6/12/agentic-coding/
I've evaluated agent performance across different languages my workload, and if you can choose your language, I strongly recommend Go for new backend projects
https://lucumr.pocoo.org/2025/6/12/agentic-coding/
I've evaluated agent performance across different languages my workload, and if you can choose your language, I strongly recommend Go for new backend projects
👍9❤5🍾2
🔵 عنوان مقاله
JSON Evolution in Go: From V1 to V2
🟢 خلاصه مقاله:
با ارائه بسته JSON v2 در نسخه 1.25 زبان برنامه نویسی Go که قرار است در ماه آگوست منتشر شود، ویژگیهای جدید و بهبودهای قابل توجهی معرفی شدهاند. این بهروزرسانی شامل افزودن برچسبهای زمینهی جدید، تغییرات در تنظیمات پیشفرض مارشالکردن، استفاده از رابطهای برنامهنویسی API های جریانی، و دیگر امکانات است که برای تسهیل کار با دادههای JSON در Go طراحی شدهاند. یکی از مهمترین پیشرفتها، بهبود قابل توجه در فرآیند آنمارشالکردن است که تا ده برابر سریعتر از نسخهای قبلی گزارش شده است، که این باعث افزایش کارایی و کاهش مصرف منابع در برنامههای کاربردی میشود.
🟣لینک مقاله:
https://golangweekly.com/link/170927/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
JSON Evolution in Go: From V1 to V2
🟢 خلاصه مقاله:
با ارائه بسته JSON v2 در نسخه 1.25 زبان برنامه نویسی Go که قرار است در ماه آگوست منتشر شود، ویژگیهای جدید و بهبودهای قابل توجهی معرفی شدهاند. این بهروزرسانی شامل افزودن برچسبهای زمینهی جدید، تغییرات در تنظیمات پیشفرض مارشالکردن، استفاده از رابطهای برنامهنویسی API های جریانی، و دیگر امکانات است که برای تسهیل کار با دادههای JSON در Go طراحی شدهاند. یکی از مهمترین پیشرفتها، بهبود قابل توجه در فرآیند آنمارشالکردن است که تا ده برابر سریعتر از نسخهای قبلی گزارش شده است، که این باعث افزایش کارایی و کاهش مصرف منابع در برنامههای کاربردی میشود.
🟣لینک مقاله:
https://golangweekly.com/link/170927/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
antonz.org
JSON evolution in Go: from v1 to v2
Reviewing the key changes in json/v2.
👍2❤1
🔵 عنوان مقاله
Cloud66's Go Stack in 2025
🟢 خلاصه مقاله:
مقاله به بررسی انتخابهای تیم برنامهنویسی Go در مورد بستههای مختلفی که فرایند توسعه آنها را بهینه کرده است میپردازد. این بخشها شامل مدیریت تنظیمات، چهارچوب CLI، چارچوب HTTP، ORM و تزریق وابستگی و مدیریت چرخه حیات میباشد. هدف از انتخاب این ابزارها، افزایش کارایی و نگهداری آسانتر سرویسهای وب، مدیریت موثر تر تنظیمات و محیطهای برنامه، و همچنین بهبود قابلیت توسعه و نگهداری پایگاههای داده و کدبیس است.
🟣لینک مقاله:
https://golangweekly.com/link/170929/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Cloud66's Go Stack in 2025
🟢 خلاصه مقاله:
مقاله به بررسی انتخابهای تیم برنامهنویسی Go در مورد بستههای مختلفی که فرایند توسعه آنها را بهینه کرده است میپردازد. این بخشها شامل مدیریت تنظیمات، چهارچوب CLI، چارچوب HTTP، ORM و تزریق وابستگی و مدیریت چرخه حیات میباشد. هدف از انتخاب این ابزارها، افزایش کارایی و نگهداری آسانتر سرویسهای وب، مدیریت موثر تر تنظیمات و محیطهای برنامه، و همچنین بهبود قابلیت توسعه و نگهداری پایگاههای داده و کدبیس است.
🟣لینک مقاله:
https://golangweekly.com/link/170929/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Cloud 66
Our Golang Stack in 2025
Build, deploy and manage your applications on any cloud or your own servers.
❤1
🔵 عنوان مقاله
'Go Should Be More Opinionated'
🟢 خلاصه مقاله:
یک توسعهدهنده پیشنهاد داده است که زبان برنامهنویسی Go باید در مورد چیدمان برنامهها نظریات مشخصتری داشته باشد. این بیانیه بیانگر نظر عمومی توسعهدهندگانی است که خواهان راهنماییها و استانداردسازیهای بیشتر در معماری برنامهها هستند تا تنظیم پروژهها را بهبود ببخشد و نگهداری کد را آسانتر کند. مطالب مربوط به معماری و چیدمان برنامهها همواره در خبرنامههای موضوعی محبوبیت داشته و باعث شده است که جامعه توسعهدهندگان در مورد بهترین شیوههای ممکن و جهتگیریهای آتی برنامهنویسی گفتگو و تبادل نظر کنند.
🟣لینک مقاله:
https://golangweekly.com/link/170932/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
'Go Should Be More Opinionated'
🟢 خلاصه مقاله:
یک توسعهدهنده پیشنهاد داده است که زبان برنامهنویسی Go باید در مورد چیدمان برنامهها نظریات مشخصتری داشته باشد. این بیانیه بیانگر نظر عمومی توسعهدهندگانی است که خواهان راهنماییها و استانداردسازیهای بیشتر در معماری برنامهها هستند تا تنظیم پروژهها را بهبود ببخشد و نگهداری کد را آسانتر کند. مطالب مربوط به معماری و چیدمان برنامهها همواره در خبرنامههای موضوعی محبوبیت داشته و باعث شده است که جامعه توسعهدهندگان در مورد بهترین شیوههای ممکن و جهتگیریهای آتی برنامهنویسی گفتگو و تبادل نظر کنند.
🟣لینک مقاله:
https://golangweekly.com/link/170932/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
eltonminetto.dev
Go should be more opinionated
One of the perks of being a Google Developer Expert is the incredible opportunities it provides.
❤3