🔵 عنوان مقاله 
♟️ Introducing Chess V2: A New Chess Library
🟢 خلاصه مقاله:
 
این مقاله یک کتابخانه منحصر بهفرد را توصیف میکند که قابلیتهای اصلی لازم برای توسعه نرمافزارهای مربوط به شطرنج را پیادهسازی کرده است. کتابخانه از تولید حرکات، تجزیهوتحلیل موقعیتها در صفحه شطرنج و پشتیبانی از قالب ضبط بازیهای شطرنج یعنی نوتاسیون بازی قابل حمل (PGN) پشتیبانی میکند. همچنین، یک نمونه برنامه نوشته شده در زبان برنامهنویسی Go وجود دارد که به کاربران امکان میدهد بازی را علیه یک حریف غیرماهر کامپیوتری تجربه کنند. کل پروژه در مخزن GitHub قابل دسترسی و همکاری است.
🟣لینک مقاله:
https://golangweekly.com/link/170571/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  ♟️ Introducing Chess V2: A New Chess Library
🟢 خلاصه مقاله:
این مقاله یک کتابخانه منحصر بهفرد را توصیف میکند که قابلیتهای اصلی لازم برای توسعه نرمافزارهای مربوط به شطرنج را پیادهسازی کرده است. کتابخانه از تولید حرکات، تجزیهوتحلیل موقعیتها در صفحه شطرنج و پشتیبانی از قالب ضبط بازیهای شطرنج یعنی نوتاسیون بازی قابل حمل (PGN) پشتیبانی میکند. همچنین، یک نمونه برنامه نوشته شده در زبان برنامهنویسی Go وجود دارد که به کاربران امکان میدهد بازی را علیه یک حریف غیرماهر کامپیوتری تجربه کنند. کل پروژه در مخزن GitHub قابل دسترسی و همکاری است.
🟣لینک مقاله:
https://golangweekly.com/link/170571/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🔵 عنوان مقاله 
OpenTelemetry for Go: Measuring the Overhead
🟢 خلاصه مقاله:
 
در مطالعهای که نیکولای انجام داده، تأثیر ثبت لاگ بر منابع سیستمی در برنامهها مورد بررسی قرار گرفته است. لاگ کردن که برای ردیابی فعالیتها و عیبیابی ضروری است، میتواند منابع قابل توجهی را مصرف کند و به کارایی برنامه آسیب بزند. نیکولای با انجام بنچمارکهایی، میزان دقیق مصرف منابع توسط فرآیند لاگ کردن را اندازهگیری کرده تا متوجه شود که آیا فواید آن از هزینههای مربوط به مصرف منابع بیشتر است. نتایج این تحقیق میتواند به توسعهدهندگان کمک کند تا تعادل بهتری بین عمق لاگ کردن و کارایی منابع برقرار کنند.
🟣لینک مقاله:
https://golangweekly.com/link/170565/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  OpenTelemetry for Go: Measuring the Overhead
🟢 خلاصه مقاله:
در مطالعهای که نیکولای انجام داده، تأثیر ثبت لاگ بر منابع سیستمی در برنامهها مورد بررسی قرار گرفته است. لاگ کردن که برای ردیابی فعالیتها و عیبیابی ضروری است، میتواند منابع قابل توجهی را مصرف کند و به کارایی برنامه آسیب بزند. نیکولای با انجام بنچمارکهایی، میزان دقیق مصرف منابع توسط فرآیند لاگ کردن را اندازهگیری کرده تا متوجه شود که آیا فواید آن از هزینههای مربوط به مصرف منابع بیشتر است. نتایج این تحقیق میتواند به توسعهدهندگان کمک کند تا تعادل بهتری بین عمق لاگ کردن و کارایی منابع برقرار کنند.
🟣لینک مقاله:
https://golangweekly.com/link/170565/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Coroot
  
  OpenTelemetry for Go: measuring the overhead
  We benchmarked the overhead of OpenTelemetry in a high-load Go application and compared it to eBPF-based instrumentation. The results may surprise you - tracing adds cost, but it’s not always a dealbreaker
❤1
  🔵 عنوان مقاله 
Complete Go for Professional Developers
🟢 خلاصه مقاله:
 
این مقاله به بررسی ساخت APIهای درجهیک تولید با استفاده از زبان برنامهنویسی گو میپردازد، زبانی که توسط غولهای فناوری به کار گرفته میشود و برای کاربرد روزانه توسط یک مهندس ماشین یادگیری در Twitch آموزش داده میشود. در این مقاله رویکردهایی برای اتصال به پایگاه دادهی پستگرس، پیادهسازی احراز هویت و نوشتن تستهای کاربردی که اهمیت واقعی دارند، مورد تاکید است. این مقاله همچنین بر اهمیت تستهای معنیدار که بر عملکرد و کیفیت API تمرکز دارد تاکید میکند و عینک بینایی بصیرتهای عملی نویسنده را به اشتراک میگذارد.
🟣لینک مقاله:
https://golangweekly.com/link/170557/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  Complete Go for Professional Developers
🟢 خلاصه مقاله:
این مقاله به بررسی ساخت APIهای درجهیک تولید با استفاده از زبان برنامهنویسی گو میپردازد، زبانی که توسط غولهای فناوری به کار گرفته میشود و برای کاربرد روزانه توسط یک مهندس ماشین یادگیری در Twitch آموزش داده میشود. در این مقاله رویکردهایی برای اتصال به پایگاه دادهی پستگرس، پیادهسازی احراز هویت و نوشتن تستهای کاربردی که اهمیت واقعی دارند، مورد تاکید است. این مقاله همچنین بر اهمیت تستهای معنیدار که بر عملکرد و کیفیت API تمرکز دارد تاکید میکند و عینک بینایی بصیرتهای عملی نویسنده را به اشتراک میگذارد.
🟣لینک مقاله:
https://golangweekly.com/link/170557/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Frontendmasters
  
  Become a Professional Go Developer | Build Complete APIs with Authentication, Docker & Postgres
  Learn Go by building a real application from scratch! Create scalable APIs, connect to Postgres with Docker, implement authentication, and build a production-ready backend with Go’s most powerful features.
  🔵 عنوان مقاله 
Dealing with Race Conditions in Go
🟢 خلاصه مقاله:
 
آنتون مقالات بسیار مفیدی در مورد برنامهنویسی موازی در زبان Go نوشته است. در آخرین مقالهاش، به مبحث پیچیده شرایط مسابقه پرداخته و خطرات عملیات "بررسی-سپس-تنظیم"، استراتژیهای "مقایسهوتنظیم"، الگوهای "بستن" که نیاز به تکرار ندارند، هشدارهای "TryLock"، و معماری پردازشگر "بدون اشتراک" مبتنی بر کانال را مورد بررسی قرار داده است. این مطالب به برنامهنویسان کمک میکند تا با مشکلات مربوط به دسترسی همزمان به دادهها بهتر مقابله کنند و برنامههای کارآمدتری بسازند.
🟣لینک مقاله:
https://golangweekly.com/link/170558/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  Dealing with Race Conditions in Go
🟢 خلاصه مقاله:
آنتون مقالات بسیار مفیدی در مورد برنامهنویسی موازی در زبان Go نوشته است. در آخرین مقالهاش، به مبحث پیچیده شرایط مسابقه پرداخته و خطرات عملیات "بررسی-سپس-تنظیم"، استراتژیهای "مقایسهوتنظیم"، الگوهای "بستن" که نیاز به تکرار ندارند، هشدارهای "TryLock"، و معماری پردازشگر "بدون اشتراک" مبتنی بر کانال را مورد بررسی قرار داده است. این مطالب به برنامهنویسان کمک میکند تا با مشکلات مربوط به دسترسی همزمان به دادهها بهتر مقابله کنند و برنامههای کارآمدتری بسازند.
🟣لینک مقاله:
https://golangweekly.com/link/170558/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
antonz.org
  
  Gist of Go: Race conditions
  Keep the system state correct by any means necessary.
  Forwarded from Bardia & Erfan
  
ای شب از مهتاب تو روشن شده
روی خاک از آب تو گلشن شده
ای خلیج فارس، ای نام بلند
ای شکوهت مثل الوند و سهند
ای غرورت مظهر پایندگی
نام تو دیباچه بالندگی
روی خاک از آب تو گلشن شده
ای خلیج فارس، ای نام بلند
ای شکوهت مثل الوند و سهند
ای غرورت مظهر پایندگی
نام تو دیباچه بالندگی
🕊4❤2🔥1🎉1
  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 & Erfan
چه زیبا گفت امیر کبیر ،بزرگمرد تاریخ ایران زمین :
یا سخنی داشته باش دلپذیر ، یا دلی داشته باش سخن پذیر ...
یا سخنی داشته باش دلپذیر ، یا دلی داشته باش سخن پذیر ...
❤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
❤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/v21. انعطافپذیری در 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