🔵 عنوان مقاله
go-torch: Torch-Like Deep Learning Framework in Go
🟢 خلاصه مقاله:
go-torch یک فریمورک متنباز برای یادگیری عمیق است که با الهام از Torch ساخته شده و بهطور کامل در خود زبان Go پیادهسازی شده است. این پروژه با فراهمکردن اجزای اصلی مانند تنسور، لایهها و ابزارهای آموزش، تجربهای آشنا و در عین حال بومیِ Go ارائه میدهد. چون بهصورت pure Go است، بهسادگی در سرویسها و کدهای Go ادغام میشود، استقرار را آسان میکند و از مزیتهای همروندی و قابلحمل بودن Go بهره میبرد. هدف آن فراهمکردن مسیری روان برای ساخت و آموزش شبکههای عصبی در اکوسیستم Go و جذب مشارکت جامعه برای گسترش قابلیتهاست.
#Go #Golang #DeepLearning #MachineLearning #Torch #OpenSource #AIFramework #MLTools
🟣لینک مقاله:
https://golangweekly.com/link/175989/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go-torch: Torch-Like Deep Learning Framework in Go
🟢 خلاصه مقاله:
go-torch یک فریمورک متنباز برای یادگیری عمیق است که با الهام از Torch ساخته شده و بهطور کامل در خود زبان Go پیادهسازی شده است. این پروژه با فراهمکردن اجزای اصلی مانند تنسور، لایهها و ابزارهای آموزش، تجربهای آشنا و در عین حال بومیِ Go ارائه میدهد. چون بهصورت pure Go است، بهسادگی در سرویسها و کدهای Go ادغام میشود، استقرار را آسان میکند و از مزیتهای همروندی و قابلحمل بودن Go بهره میبرد. هدف آن فراهمکردن مسیری روان برای ساخت و آموزش شبکههای عصبی در اکوسیستم Go و جذب مشارکت جامعه برای گسترش قابلیتهاست.
#Go #Golang #DeepLearning #MachineLearning #Torch #OpenSource #AIFramework #MLTools
🟣لینک مقاله:
https://golangweekly.com/link/175989/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - Abinesh-Mathivanan/go-torch: torch like deep learning framework in Go
torch like deep learning framework in Go. Contribute to Abinesh-Mathivanan/go-torch development by creating an account on GitHub.
👍1
🔵 عنوان مقاله
SFTPGo 2.7: A Full Featured File Transfer Solution
🟢 خلاصه مقاله:
این نسخه از SFTPGo 2.7 یک سرور انتقال فایل مبتنی بر Go است که پروتکلهای SFTP، HTTP/S، FTP/S و WebDAV را در یک راهکار یکپارچه ارائه میدهد. تمرکز آن بر پیکربندی منعطف و کنترل دقیق دسترسی است تا مدیران بتوانند سیاستها، مسیرها و رفتار کاربران را مطابق نیاز تنظیم کنند. نقطهقوت اصلی، تعامل با storageهای ابری است؛ میتوان backendهایی مانند Amazon S3، Google Cloud Storage و Azure Blob را مانند پوشههای محلی در اختیار کلاینتها گذاشت و همان داده را همزمان از چند پروتکل ارائه کرد. امنیت انتقال با TLS و رمزنگاری مدرن تضمین میشود و ثبت رویدادها نیز برای نظارت و انطباق در دسترس است. نسخه 2.7 بر پایداری و بلوغ خط v2 تأکید دارد و گزینهای مناسب برای نوسازی جریانهای انتقال فایل و پلزدن میان کلاینتهای قدیمی و زیرساختهای cloud-first است.
#SFTPGo #SFTP #FTP #WebDAV #GoLang #CloudStorage #FileTransfer #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/176312/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
SFTPGo 2.7: A Full Featured File Transfer Solution
🟢 خلاصه مقاله:
این نسخه از SFTPGo 2.7 یک سرور انتقال فایل مبتنی بر Go است که پروتکلهای SFTP، HTTP/S، FTP/S و WebDAV را در یک راهکار یکپارچه ارائه میدهد. تمرکز آن بر پیکربندی منعطف و کنترل دقیق دسترسی است تا مدیران بتوانند سیاستها، مسیرها و رفتار کاربران را مطابق نیاز تنظیم کنند. نقطهقوت اصلی، تعامل با storageهای ابری است؛ میتوان backendهایی مانند Amazon S3، Google Cloud Storage و Azure Blob را مانند پوشههای محلی در اختیار کلاینتها گذاشت و همان داده را همزمان از چند پروتکل ارائه کرد. امنیت انتقال با TLS و رمزنگاری مدرن تضمین میشود و ثبت رویدادها نیز برای نظارت و انطباق در دسترس است. نسخه 2.7 بر پایداری و بلوغ خط v2 تأکید دارد و گزینهای مناسب برای نوسازی جریانهای انتقال فایل و پلزدن میان کلاینتهای قدیمی و زیرساختهای cloud-first است.
#SFTPGo #SFTP #FTP #WebDAV #GoLang #CloudStorage #FileTransfer #DevOps
🟣لینک مقاله:
https://golangweekly.com/link/176312/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Sftpgo
SFTP & FTP as a Managed Service (SaaS) and On-premise
Fully featured and highly configurable SFTP server with HTTP/S Web UI, FTP/S and WebDAV - As a Managed Service, On-premise, Cloud, Hybrid Cloud - Data at Rest Encryption, S3, Google Cloud, Azure Blob.
❤1
🔵 عنوان مقاله
Fantasy: Build Flexible AI Agents with Go
🟢 خلاصه مقاله:
با تمرکز بر ساخت ایجنتهای هوش مصنوعی انعطافپذیر در Go، ابزار Fantasy از سوی Charm معرفی شده است. این ابزار یکی از اجزای اصلی پشت Crush است، اما میتوان آن را بهصورت مستقل برای ساخت ایجنتهای مجهز به ابزار در Go بهکار گرفت. هدف Fantasy ارائه رویکردی ماژولار و قابل ترکیب است تا توسعهدهندگان بتوانند رفتار ایجنت را سفارشی کنند، ابزارها و سرویسها را متصل کنند و در عین حال در چارچوب کاری Go باقی بمانند.
#Go #Golang #AI #AIAgents #Charm #Crush #DevTools #AgentFramework
🟣لینک مقاله:
https://golangweekly.com/link/176311/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Fantasy: Build Flexible AI Agents with Go
🟢 خلاصه مقاله:
با تمرکز بر ساخت ایجنتهای هوش مصنوعی انعطافپذیر در Go، ابزار Fantasy از سوی Charm معرفی شده است. این ابزار یکی از اجزای اصلی پشت Crush است، اما میتوان آن را بهصورت مستقل برای ساخت ایجنتهای مجهز به ابزار در Go بهکار گرفت. هدف Fantasy ارائه رویکردی ماژولار و قابل ترکیب است تا توسعهدهندگان بتوانند رفتار ایجنت را سفارشی کنند، ابزارها و سرویسها را متصل کنند و در عین حال در چارچوب کاری Go باقی بمانند.
#Go #Golang #AI #AIAgents #Charm #Crush #DevTools #AgentFramework
🟣لینک مقاله:
https://golangweekly.com/link/176311/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - charmbracelet/fantasy: Build AI agents with Go. Multiple providers, multiple models, one API 🧙
Build AI agents with Go. Multiple providers, multiple models, one API 🧙 - charmbracelet/fantasy
👍1
🔵 عنوان مقاله
google/jsonschema-go
🟢 خلاصه مقاله:
این مقاله دو کتابخانه Go برای کار با JSON Schema را مقایسه میکند: google/jsonschema-go و مخزن شخصی Ian Lance Taylor با نام ianlancetaylor/jsonschema. تمرکز اصلی بر کاربردهای عملی مانند اعتبارسنجی در زمان اجرا، همترازی قراردادهای داده میان سرویسها، و در صورت نیاز، تولید کد برای انواع Go است. بهجای معرفی یک برنده قطعی، مجموعهای از معیارهای انتخاب پیشنهاد میشود: پوشش استاندارد (کلیدواژهها، فرمتها، و ارجاعات $ref)، کیفیت گزارش خطا، کارایی در بارهای واقعی، قابلیت سفارشیسازی، و نشانههای پایداری و نگهداشت پروژه. همچنین سازگاری با فرآیندهای CI، نحوه حل $ref در فایلها و URLها، و میزان تطبیق با ابزارهای رایج Go بررسی میشود. جمعبندی مقاله عملی است: هر دو گزینه قابل اتکا هستند و انتخاب نهایی باید بر اساس نیازهای خاص تیم—سادگی رابط، گستره امکانات، یا الزامات یکپارچهسازی—انجام شود.
#Go #JSONSchema #GoLang #OpenSource #Validation #CodeGeneration #GitHub
🟣لینک مقاله:
https://golangweekly.com/link/176346/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
google/jsonschema-go
🟢 خلاصه مقاله:
این مقاله دو کتابخانه Go برای کار با JSON Schema را مقایسه میکند: google/jsonschema-go و مخزن شخصی Ian Lance Taylor با نام ianlancetaylor/jsonschema. تمرکز اصلی بر کاربردهای عملی مانند اعتبارسنجی در زمان اجرا، همترازی قراردادهای داده میان سرویسها، و در صورت نیاز، تولید کد برای انواع Go است. بهجای معرفی یک برنده قطعی، مجموعهای از معیارهای انتخاب پیشنهاد میشود: پوشش استاندارد (کلیدواژهها، فرمتها، و ارجاعات $ref)، کیفیت گزارش خطا، کارایی در بارهای واقعی، قابلیت سفارشیسازی، و نشانههای پایداری و نگهداشت پروژه. همچنین سازگاری با فرآیندهای CI، نحوه حل $ref در فایلها و URLها، و میزان تطبیق با ابزارهای رایج Go بررسی میشود. جمعبندی مقاله عملی است: هر دو گزینه قابل اتکا هستند و انتخاب نهایی باید بر اساس نیازهای خاص تیم—سادگی رابط، گستره امکانات، یا الزامات یکپارچهسازی—انجام شود.
#Go #JSONSchema #GoLang #OpenSource #Validation #CodeGeneration #GitHub
🟣لینک مقاله:
https://golangweekly.com/link/176346/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
pkg.go.dev
jsonschema package - github.com/ianlancetaylor/jsonschema - Go Packages
Package jsonschema implements JSON schemas.
🔵 عنوان مقاله
From 19 Hours to Under a Second: Building a Blazing-Fast TCP Scanner in Go
🟢 خلاصه مقاله:
با یک روایت عملی، مقاله توضیح میدهد چگونه یک اسکنر ساده TCP که ۱۹ ساعت طول میکشید، با بازطراحی در Go به ابزاری «زیر یک ثانیه» تبدیل شد. ابتدا نشان میدهد چرا اسکن مبتنیبر net.Dial حتی با همزمانی محدود گرفتار زمانهای انتظار، محدودیت FD و سربار syscall میشود. سپس با گذار از اتصالهای کامل به اسکن SYN، ساخت بستهها، فیلترکردن پاسخها با BPF، و نگهداری وضعیت سبکوزن، سربار کرنل و زمانبندی به شدت کاهش مییابد. بهینهسازیهایی مانند batch کردن ارسال/دریافت، پیشاختصاص بافرها، کاهش تخصیصها با sync.Pool، و حلقههای رویدادی کارا (epoll/kqueue) همراه با تنظیمات سیستم (ulimit، بافرهای سوکتی و sysctl) throughput را به حداکثر میرساند. با پروفایلکردن مداوم (pprof) و راستیآزمایی با ابزاری مانند Nmap، هم دقت و هم کارایی تضمین میشود. خروجی نهایی: الگوی عملی برای ساخت ابزارهای پرسرعت شبکه در Go—ترکیبی از انتخاب مدل درست (SYN بهجای connect)، کاهش سربارها، batch کردن، اندازهگیری پیوسته، و پایبندی به اصول ایمنی و اخلاق اسکن. این مطلب در Golang Weekly برجسته شده است.
#Go #Golang #TCP #PortScanning #Networking #Performance #Concurrency #SystemsProgramming
🟣لینک مقاله:
https://golangweekly.com/link/176335/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
From 19 Hours to Under a Second: Building a Blazing-Fast TCP Scanner in Go
🟢 خلاصه مقاله:
با یک روایت عملی، مقاله توضیح میدهد چگونه یک اسکنر ساده TCP که ۱۹ ساعت طول میکشید، با بازطراحی در Go به ابزاری «زیر یک ثانیه» تبدیل شد. ابتدا نشان میدهد چرا اسکن مبتنیبر net.Dial حتی با همزمانی محدود گرفتار زمانهای انتظار، محدودیت FD و سربار syscall میشود. سپس با گذار از اتصالهای کامل به اسکن SYN، ساخت بستهها، فیلترکردن پاسخها با BPF، و نگهداری وضعیت سبکوزن، سربار کرنل و زمانبندی به شدت کاهش مییابد. بهینهسازیهایی مانند batch کردن ارسال/دریافت، پیشاختصاص بافرها، کاهش تخصیصها با sync.Pool، و حلقههای رویدادی کارا (epoll/kqueue) همراه با تنظیمات سیستم (ulimit، بافرهای سوکتی و sysctl) throughput را به حداکثر میرساند. با پروفایلکردن مداوم (pprof) و راستیآزمایی با ابزاری مانند Nmap، هم دقت و هم کارایی تضمین میشود. خروجی نهایی: الگوی عملی برای ساخت ابزارهای پرسرعت شبکه در Go—ترکیبی از انتخاب مدل درست (SYN بهجای connect)، کاهش سربارها، batch کردن، اندازهگیری پیوسته، و پایبندی به اصول ایمنی و اخلاق اسکن. این مطلب در Golang Weekly برجسته شده است.
#Go #Golang #TCP #PortScanning #Networking #Performance #Concurrency #SystemsProgramming
🟣لینک مقاله:
https://golangweekly.com/link/176335/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
docs.serviceradar.cloud
From 19 Hours to Under a Second: Building a Blazing-Fast TCP Scanner in Go | ServiceRadar
How ServiceRadar turned a 19-hour TCP discovery job into a sub-second SYN scan by leaning on raw sockets, BPF, and Go assembly.
🔵 عنوان مقاله
Go's Release Cycle and Process as Go 1.26 Progresses
🟢 خلاصه مقاله:
با نزدیکشدن به انتشار Go 1.26، فرآیند انتشار این زبان وارد مرحله حساس میشود. طبق برنامه، تاریخ “development freeze” برای ۲۶ نوامبر تعیین شده است؛ یعنی از این زمان هیچ قابلیت جدیدی برای Go 1.26 پذیرفته نمیشود و تمرکز پروژه بر رفع باگها، بهبود کارایی، مستندسازی و آزمون است. نسخههای beta و RC برای آزمایش جامعه منتشر میشوند تا مشکلات واقعی سریعتر شناسایی و رفع شوند.
برای توسعهدهندگان، این یعنی تغییراتی که تا موعد یادشده آماده نشوند، به چرخه بعدی (مثلاً Go 1.27) منتقل خواهند شد. پیشنهاد میشود پروژهها و کتابخانهها، ساختها و تستهای خود را با پیشانتشارهای Go 1.26 اجرا کنند و هر گونه مشکل را سریع گزارش دهند تا در نسخه نهایی رفع شود. این انضباط در “فریز” ویژگیها و محدودکردن تغییرات پرریسک، مسیر انتشار پایدار و قابلپیشبینی Go را تضمین میکند.
#Go #Golang #Go126 #ReleaseCycle #DevelopmentFreeze #SoftwareRelease #ProgrammingLanguages #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/176301/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go's Release Cycle and Process as Go 1.26 Progresses
🟢 خلاصه مقاله:
با نزدیکشدن به انتشار Go 1.26، فرآیند انتشار این زبان وارد مرحله حساس میشود. طبق برنامه، تاریخ “development freeze” برای ۲۶ نوامبر تعیین شده است؛ یعنی از این زمان هیچ قابلیت جدیدی برای Go 1.26 پذیرفته نمیشود و تمرکز پروژه بر رفع باگها، بهبود کارایی، مستندسازی و آزمون است. نسخههای beta و RC برای آزمایش جامعه منتشر میشوند تا مشکلات واقعی سریعتر شناسایی و رفع شوند.
برای توسعهدهندگان، این یعنی تغییراتی که تا موعد یادشده آماده نشوند، به چرخه بعدی (مثلاً Go 1.27) منتقل خواهند شد. پیشنهاد میشود پروژهها و کتابخانهها، ساختها و تستهای خود را با پیشانتشارهای Go 1.26 اجرا کنند و هر گونه مشکل را سریع گزارش دهند تا در نسخه نهایی رفع شود. این انضباط در “فریز” ویژگیها و محدودکردن تغییرات پرریسک، مسیر انتشار پایدار و قابلپیشبینی Go را تضمین میکند.
#Go #Golang #Go126 #ReleaseCycle #DevelopmentFreeze #SoftwareRelease #ProgrammingLanguages #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/176301/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
Go Wiki: Go-Release-Cycle - The Go Programming Language
👍1
🔵 عنوان مقاله
their favorite Go related blog posts of all time.
🟢 خلاصه مقاله:
این شماره جدید از خبرنامه Golang Weekly فهرستی منتخب از «بهترین پستهای وبلاگی مرتبط با Go» را گرد آورده است؛ مجموعهای منسجم که بهجای فهرست صرفِ لینکها، مسیر مطالعهای ارائه میدهد برای درک اصول ماندگار Go. موضوعات کلیدی مانند همروندی با goroutine و channel، خطاپرداری شفاف، استفاده از interface و ترکیبپذیری، آزموننویسی و ابزارها، همچنین بهینهسازی کارایی، پروفایلینگ و مدیریت حافظه پوشش داده میشوند. هر انتخاب با توضیحی کوتاه درباره ارزش ماندگارش و اینکه به درد چه کسی و چه مسئلهای میخورد همراه است؛ نوآموزان میتوانند آن را نقشه راه یادگیری بدانند و باتجربهها نیز برای بازبینی مبانی و دیدگاههای عمیقتر از آن بهره ببرند. این گردآوری تصویری از مسیر بلوغ جامعه Go نیز ارائه میکند؛ از نوشتههای اولیه که روحیه طراحی زبان را شکل دادند تا جمعبندیهای اخیر که بر تجربههای تولیدی تکیه دارند—مجموعهای برای نشانگذاری، اشتراک با تیم و رجوعهای مکرر.
#Go #Golang #GolangWeekly #Programming #SoftwareEngineering #Concurrency #GoTips #DevCommunity
🟣لینک مقاله:
https://golangweekly.com/link/176329/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
their favorite Go related blog posts of all time.
🟢 خلاصه مقاله:
این شماره جدید از خبرنامه Golang Weekly فهرستی منتخب از «بهترین پستهای وبلاگی مرتبط با Go» را گرد آورده است؛ مجموعهای منسجم که بهجای فهرست صرفِ لینکها، مسیر مطالعهای ارائه میدهد برای درک اصول ماندگار Go. موضوعات کلیدی مانند همروندی با goroutine و channel، خطاپرداری شفاف، استفاده از interface و ترکیبپذیری، آزموننویسی و ابزارها، همچنین بهینهسازی کارایی، پروفایلینگ و مدیریت حافظه پوشش داده میشوند. هر انتخاب با توضیحی کوتاه درباره ارزش ماندگارش و اینکه به درد چه کسی و چه مسئلهای میخورد همراه است؛ نوآموزان میتوانند آن را نقشه راه یادگیری بدانند و باتجربهها نیز برای بازبینی مبانی و دیدگاههای عمیقتر از آن بهره ببرند. این گردآوری تصویری از مسیر بلوغ جامعه Go نیز ارائه میکند؛ از نوشتههای اولیه که روحیه طراحی زبان را شکل دادند تا جمعبندیهای اخیر که بر تجربههای تولیدی تکیه دارند—مجموعهای برای نشانگذاری، اشتراک با تیم و رجوعهای مکرر.
#Go #Golang #GolangWeekly #Programming #SoftwareEngineering #Concurrency #GoTips #DevCommunity
🟣لینک مقاله:
https://golangweekly.com/link/176329/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Reddit
From the golang community on Reddit
Explore this post and more from the golang community
❤1👍1
🔵 عنوان مقاله
Timezones as Types: Making Time Safer to Use in Go?
🟢 خلاصه مقاله:
** این مقاله ایده Timezones as Types را بررسی میکند؛ رویکردی که در آن اطلاعات منطقه زمانی بهصورت مستقیم در نوع دادهها کدگذاری میشود. نویسنده، سازنده go-meridian، نشان میدهد چگونه میتوان با مدلکردن timezoneها در سطح نوع، از ترکیب نادرست زمانها جلوگیری کرد تا خطاها بهجای زمان اجرا، در مرحله کامپایل آشکار شوند.
go-meridian بهجای تکیه بر متغیرهای بدون نوع مشخص، زمان را به نوعی گره میزند که منطقه زمانی را نیز در بر دارد؛ بنابراین اگر دو مقدار با منطقههای متفاوت بدون تبدیل صریح ترکیب شوند، کد اصلاً کامپایل نمیشود. این کار خطاهای رایجی مانند دستکمگرفتن تغییرات DST، ابهام در زمانهای محلی، یا تبدیلهای ضمنی از/به UTC را کاهش میدهد و خوانایی و صراحت کد را بهبود میبخشد.
این کتابخانه با سبک Go و بسته time سازگار است، تبدیلهای صریح را در نقاط مرزی اجبار میکند و به تیمها کمک میکند دادههای ورودی را زودهنگام به زمانهای با نوع صحیح تبدیل کنند. هرچند ممکن است اندکی صراحت بیشتر در امضاها و تبدیلها لازم باشد، اما دستاورد آن قراردادهای واضحتر، ایمنی بالاتر و نگهداری آسانتر کدهای حساس به زمان است.
#Go #Golang #Timezone #TypeSafety #StaticTyping #goMeridian #TimeHandling #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/176302/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Timezones as Types: Making Time Safer to Use in Go?
🟢 خلاصه مقاله:
** این مقاله ایده Timezones as Types را بررسی میکند؛ رویکردی که در آن اطلاعات منطقه زمانی بهصورت مستقیم در نوع دادهها کدگذاری میشود. نویسنده، سازنده go-meridian، نشان میدهد چگونه میتوان با مدلکردن timezoneها در سطح نوع، از ترکیب نادرست زمانها جلوگیری کرد تا خطاها بهجای زمان اجرا، در مرحله کامپایل آشکار شوند.
go-meridian بهجای تکیه بر متغیرهای بدون نوع مشخص، زمان را به نوعی گره میزند که منطقه زمانی را نیز در بر دارد؛ بنابراین اگر دو مقدار با منطقههای متفاوت بدون تبدیل صریح ترکیب شوند، کد اصلاً کامپایل نمیشود. این کار خطاهای رایجی مانند دستکمگرفتن تغییرات DST، ابهام در زمانهای محلی، یا تبدیلهای ضمنی از/به UTC را کاهش میدهد و خوانایی و صراحت کد را بهبود میبخشد.
این کتابخانه با سبک Go و بسته time سازگار است، تبدیلهای صریح را در نقاط مرزی اجبار میکند و به تیمها کمک میکند دادههای ورودی را زودهنگام به زمانهای با نوع صحیح تبدیل کنند. هرچند ممکن است اندکی صراحت بیشتر در امضاها و تبدیلها لازم باشد، اما دستاورد آن قراردادهای واضحتر، ایمنی بالاتر و نگهداری آسانتر کدهای حساس به زمان است.
#Go #Golang #Timezone #TypeSafety #StaticTyping #goMeridian #TimeHandling #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/176302/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Matthewhalpern
Timezones as Types: Making Time Safer to Use in Go | Matthew Halpern
Introducing go-meridian: a library that makes timezones first-class in Golang programs.
❤1
🔵 عنوان مقاله
on using JSON schemas in Go
🟢 خلاصه مقاله:
** این مقاله به مزایای استفاده از JSON Schema برای تعریف، اعتبارسنجی و مستندسازی دادههای JSON در Go میپردازد و نشان میدهد چطور میتوان این رویکرد را در یک جریان کاری «schema-first» بهصورت عملی پیاده کرد. محور بحث، نگاشت دقیق قابلیتهای JSON Schema به انواع ایستا در Go است؛ از چالشهایی مانند فیلدهای اختیاری، additionalProperties، enumها، nullability و ترکیبگرهایی مثل oneOf/anyOf/allOf تا تصمیمهای طراحی میان رویکردهای مبتنی بر reflection در زمان اجرا و code generation در زمان ساخت. مقاله سپس به کار انجامشده در Google، بهویژه در مخزن google/jsonschema-go، اشاره میکند که هدفش ارائه نگاشت پایدار schema↔type، اعتبارسنجی سریع و گزارش خطای قابل اتکا است. در ادامه، مخزن ianlancetaylor/jsonschema نیز معرفی میشود و نقاط همگرایی و تفاوتهای رویکردی آن بیان میگردد. در پایان، مسیرهای آینده مانند همگرایی بهتر با OpenAPI، تقویت codegen برای ویژگیهای پیشرفته، راهبردهای تکامل schema و یکپارچگی عمیقتر با ابزارها مطرح میشود تا توسعه مبتنی بر Schema در Go هم قابل اتکا و هم خوشتجربه باشد.
#Go #JSONSchema #Google #golang #APIs #Validation #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/176345/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
on using JSON schemas in Go
🟢 خلاصه مقاله:
** این مقاله به مزایای استفاده از JSON Schema برای تعریف، اعتبارسنجی و مستندسازی دادههای JSON در Go میپردازد و نشان میدهد چطور میتوان این رویکرد را در یک جریان کاری «schema-first» بهصورت عملی پیاده کرد. محور بحث، نگاشت دقیق قابلیتهای JSON Schema به انواع ایستا در Go است؛ از چالشهایی مانند فیلدهای اختیاری، additionalProperties، enumها، nullability و ترکیبگرهایی مثل oneOf/anyOf/allOf تا تصمیمهای طراحی میان رویکردهای مبتنی بر reflection در زمان اجرا و code generation در زمان ساخت. مقاله سپس به کار انجامشده در Google، بهویژه در مخزن google/jsonschema-go، اشاره میکند که هدفش ارائه نگاشت پایدار schema↔type، اعتبارسنجی سریع و گزارش خطای قابل اتکا است. در ادامه، مخزن ianlancetaylor/jsonschema نیز معرفی میشود و نقاط همگرایی و تفاوتهای رویکردی آن بیان میگردد. در پایان، مسیرهای آینده مانند همگرایی بهتر با OpenAPI، تقویت codegen برای ویژگیهای پیشرفته، راهبردهای تکامل schema و یکپارچگی عمیقتر با ابزارها مطرح میشود تا توسعه مبتنی بر Schema در Go هم قابل اتکا و هم خوشتجربه باشد.
#Go #JSONSchema #Google #golang #APIs #Validation #OpenSource
🟣لینک مقاله:
https://golangweekly.com/link/176345/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍1
🔵 عنوان مقاله
Go's Green Tea Garbage Collector
🟢 خلاصه مقاله:
** در Go 1.25 یک garbage collector آزمایشی به نام Green Tea معرفی شده که با هدف کاهش تأخیر و نوسان، بهبود کارایی و مصرف حافظه، و مقیاسپذیری بهتر ارائه میشود. این قابلیت فعلاً بهصورت opt-in و از طریق فلگهای مستند در release notes فعال میشود و پیشفرض نیست. نتایج اولیه بسته به بار کاری میتواند متفاوت باشد؛ در صورت پسرفت میتوان به GC فعلی بازگشت. تیم Go با تکیه بر بازخورد و سنجش میدانی، در نسخههای بعدی آن را بهبود میدهد و در صورت موفقیت، میتواند بر راهبرد آینده GC در Go اثر بگذارد.
#Go #Golang #GreenTea #GarbageCollection #Go125 #MemoryManagement #Performance #Runtime
🟣لینک مقاله:
https://golangweekly.com/link/176318/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go's Green Tea Garbage Collector
🟢 خلاصه مقاله:
** در Go 1.25 یک garbage collector آزمایشی به نام Green Tea معرفی شده که با هدف کاهش تأخیر و نوسان، بهبود کارایی و مصرف حافظه، و مقیاسپذیری بهتر ارائه میشود. این قابلیت فعلاً بهصورت opt-in و از طریق فلگهای مستند در release notes فعال میشود و پیشفرض نیست. نتایج اولیه بسته به بار کاری میتواند متفاوت باشد؛ در صورت پسرفت میتوان به GC فعلی بازگشت. تیم Go با تکیه بر بازخورد و سنجش میدانی، در نسخههای بعدی آن را بهبود میدهد و در صورت موفقیت، میتواند بر راهبرد آینده GC در Go اثر بگذارد.
#Go #Golang #GreenTea #GarbageCollection #Go125 #MemoryManagement #Performance #Runtime
🟣لینک مقاله:
https://golangweekly.com/link/176318/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
go.dev
The Green Tea Garbage Collector - The Go Programming Language
Go 1.25 includes a new experimental garbage collector, Green Tea.
🎙️ عنوان پادکست:
An episode as short as the name of a unix command
خلاصه پادکست:
این اپیزود کوتاه بهروزترین خبرها را پوشش میدهد: انتشار نسخههای Go 1.25.3 و 1.24.9، و مرور بلاگ Thea Heinen دربارهی کشف یک باگ در کامپایلر arm64 زبان Go. همچنین دربارهی پیشرفت پشتیبانی zsh و بهبودهای مرتبط با sh صحبت میشود، و خبر یک Go meetup و ضبط زنده اپیزود در San Francisco اعلام میگردد. در بخش Lightning، به qjs (یک JavaScript runtime مدرن و امن بدون CGO برای برنامههای Go) و Kaizen (تماشای انیمه از ترمینال) میپردازیم. در پایان از مخاطبان برای حمایت از پادکست در Patreon دعوت میشود.
#Go #Golang #arm64 #Unix #zsh #JavaScript #qjs #Podcast
An episode as short as the name of a unix command
خلاصه پادکست:
این اپیزود کوتاه بهروزترین خبرها را پوشش میدهد: انتشار نسخههای Go 1.25.3 و 1.24.9، و مرور بلاگ Thea Heinen دربارهی کشف یک باگ در کامپایلر arm64 زبان Go. همچنین دربارهی پیشرفت پشتیبانی zsh و بهبودهای مرتبط با sh صحبت میشود، و خبر یک Go meetup و ضبط زنده اپیزود در San Francisco اعلام میگردد. در بخش Lightning، به qjs (یک JavaScript runtime مدرن و امن بدون CGO برای برنامههای Go) و Kaizen (تماشای انیمه از ترمینال) میپردازیم. در پایان از مخاطبان برای حمایت از پادکست در Patreon دعوت میشود.
#Go #Golang #arm64 #Unix #zsh #JavaScript #qjs #Podcast
👍1🔥1
🔵 عنوان مقاله
How We Saved 70% CPU and 60% Memory in Refinery’s Go Code
🟢 خلاصه مقاله:
**تیم Refinery روی یک سرویس مهم مبتنی بر Go با مصرف بالای CPU و Memory کار میکرد و با پروفایلینگ دقیق (pprof، tracing و بنچمارکهای انتهابهانتها) گلوگاههای واقعی را پیدا کرد. بیشترین صرفهجویی با حذف کارهای غیرضروری بهدست آمد: حذف پردازشها و serialization تکراری، دوری از reflection در مسیرهای داغ، جایگزینی JSON در hot path با دسترسی مستقیم/کدگذاری ساده، پیشاختصاص slices/maps و بازاستفاده از بافرها برای کاهش allocation و فشار GC. در همروندی، بهجای goroutineهای بدونمهار، از worker poolهای محدود و backpressure استفاده شد، کارها batch و دادهها تا حد امکان stream شدند تا قفلزنی و جابهجایی زمینه کاهش یابد. همچنین چند حلقه O(n^2) با ایندکسگذاری مبتنی بر map/set جایگزین شد، نتایج گران با cache کردن تکرار نشد و الگوهای I/O با خواندن/نوشتن تجمیعی بهینه شدند. در نهایت با تکیه بر allocationهای روی stack، استفاده از sync.Pool و روشهای zero-copy، نیاز به GC پایین آمد. نتیجه: حدود 70% کاهش مصرف CPU و 60% کاهش Memory همراه با بهبود تاخیرهای p95/p99. درس کلیدی: بهینهسازی اغلب یعنی کمتر کار کردن—اندازهگیری کن، کار زائد را حذف کن و سادهسازی را تکرار کن.
#Go #Golang #Performance #Profiling #CPU #Memory #Optimization #pprof
🟣لینک مقاله:
https://golangweekly.com/link/176624/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How We Saved 70% CPU and 60% Memory in Refinery’s Go Code
🟢 خلاصه مقاله:
**تیم Refinery روی یک سرویس مهم مبتنی بر Go با مصرف بالای CPU و Memory کار میکرد و با پروفایلینگ دقیق (pprof، tracing و بنچمارکهای انتهابهانتها) گلوگاههای واقعی را پیدا کرد. بیشترین صرفهجویی با حذف کارهای غیرضروری بهدست آمد: حذف پردازشها و serialization تکراری، دوری از reflection در مسیرهای داغ، جایگزینی JSON در hot path با دسترسی مستقیم/کدگذاری ساده، پیشاختصاص slices/maps و بازاستفاده از بافرها برای کاهش allocation و فشار GC. در همروندی، بهجای goroutineهای بدونمهار، از worker poolهای محدود و backpressure استفاده شد، کارها batch و دادهها تا حد امکان stream شدند تا قفلزنی و جابهجایی زمینه کاهش یابد. همچنین چند حلقه O(n^2) با ایندکسگذاری مبتنی بر map/set جایگزین شد، نتایج گران با cache کردن تکرار نشد و الگوهای I/O با خواندن/نوشتن تجمیعی بهینه شدند. در نهایت با تکیه بر allocationهای روی stack، استفاده از sync.Pool و روشهای zero-copy، نیاز به GC پایین آمد. نتیجه: حدود 70% کاهش مصرف CPU و 60% کاهش Memory همراه با بهبود تاخیرهای p95/p99. درس کلیدی: بهینهسازی اغلب یعنی کمتر کار کردن—اندازهگیری کن، کار زائد را حذف کن و سادهسازی را تکرار کن.
#Go #Golang #Performance #Profiling #CPU #Memory #Optimization #pprof
🟣لینک مقاله:
https://golangweekly.com/link/176624/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Honeycomb
How We Saved 70% of CPU and 60% of Memory in Refinery’s Go Code, No Rust Required.
We've just released Refinery 3. 0 , a performance-focused update which significantly improves Refinery's CPU and memory efficiency.
👍2❤1
🔵 عنوان مقاله
Dependency Management in Database Design
🟢 خلاصه مقاله:
** مدیریت وابستگیها در پروژههای بزرگ Go، بهخصوص در موتورهای پایگاهداده، چالشزا است. مطالعه موردی Dolt (با ۷۶۲ هزار خط کد Go) نشان میدهد که لایهبندی دقیق، مرزبندی شفاف، و تکیه بر interfaceها بهجای پیادهسازیهای مستقیم، جلوی چرخههای import و کوپلینگ پنهان را میگیرد. استفاده از Go modules، نسخهبندی معنایی، internal packages و اجراهای خودکار در CI برای شناسایی چرخهها و importهای ممنوع، سلامت نمودار وابستگی را حفظ میکند. راهبرد تست مبتنی بر mock/fake و تستهای یکپارچه، هر لایه را مستقل قابل آزمون میکند و رگرسیون را کاهش میدهد. نتیجه این است که زیرسامانههایی مانند ذخیرهسازی، پرسوجو و تکرار در Dolt میتوانند مستقل و با سرعت تکامل پیدا کنند، بدون آنکه تغییرات به کل کدبیس سرایت کند.
#Go #Golang #DependencyManagement #ModularArchitecture #DatabaseSystems #Dolt #SoftwareArchitecture #Scalability
🟣لینک مقاله:
https://golangweekly.com/link/176659/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dependency Management in Database Design
🟢 خلاصه مقاله:
** مدیریت وابستگیها در پروژههای بزرگ Go، بهخصوص در موتورهای پایگاهداده، چالشزا است. مطالعه موردی Dolt (با ۷۶۲ هزار خط کد Go) نشان میدهد که لایهبندی دقیق، مرزبندی شفاف، و تکیه بر interfaceها بهجای پیادهسازیهای مستقیم، جلوی چرخههای import و کوپلینگ پنهان را میگیرد. استفاده از Go modules، نسخهبندی معنایی، internal packages و اجراهای خودکار در CI برای شناسایی چرخهها و importهای ممنوع، سلامت نمودار وابستگی را حفظ میکند. راهبرد تست مبتنی بر mock/fake و تستهای یکپارچه، هر لایه را مستقل قابل آزمون میکند و رگرسیون را کاهش میدهد. نتیجه این است که زیرسامانههایی مانند ذخیرهسازی، پرسوجو و تکرار در Dolt میتوانند مستقل و با سرعت تکامل پیدا کنند، بدون آنکه تغییرات به کل کدبیس سرایت کند.
#Go #Golang #DependencyManagement #ModularArchitecture #DatabaseSystems #Dolt #SoftwareArchitecture #Scalability
🟣لینک مقاله:
https://golangweekly.com/link/176659/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Dependency Management in Database Design
Modularization is critical for large codebases. If it feels like it's creating barriers, it's actually telling you something important about your code.