Gopher Academy
3.84K subscribers
933 photos
42 videos
280 files
2.21K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
"I'm Independently Verifying Go's Reproducible Builds"

🟢 خلاصه مقاله:
** از نسخه Go 1.21، ابزارهای اصلی Go به‌صورت Reproducible Builds عرضه می‌شوند؛ یعنی اگر همان سورس را دوباره بسازید، برای هر هدف مشخص، خروجی دقیقا همسانِ بایت‌به‌بایت تولید می‌شود و به محیط میزبان وابسته نیست. این مقاله گزارشی از یک راستی‌آزمایی مستقل است: دریافت سورس از ریلیزهای رسمی، ساخت در محیط‌های ایزوله روی میزبان‌های متفاوت، تولید ابزارها برای تارگت‌های یکسان و مقایسه هش‌ها با یکدیگر و با چک‌سام‌های رسمی. نتیجه نشان می‌دهد که از Go 1.21 به بعد، Go toolchain طبق وعده قابل بازتولید است. این کار، در کنار انتشار رسمی، اعتماد را افزایش می‌دهد، ریسک دست‌کاری در زنجیره تامین نرم‌افزار را کاهش می‌دهد و به کاربران امکان می‌دهد خروجی‌های منتشرشده را خودشان مستقلانه راستی‌آزمایی کنند.

#ReproducibleBuilds #Go #Golang #SupplyChainSecurity #DeterministicBuilds #OpenSource #DevSecOps

🟣لینک مقاله:
https://golangweekly.com/link/176621/web


👑 @gopher_academy
1
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Cost-optimized ml on production: autoscaling GPU nodes on Kubernetes to zero using keda

🟢 خلاصه مقاله:
این آموزش نشان می‌دهد چگونه با استفاده از Kubernetes و KEDA ظرفیت GPU را بر اساس طول صف پیام‌ها به‌صورت خودکار تا صفر کاهش دهیم و هزینه اجرای ML در محیط تولید را کم کنیم. معماری مبتنی بر یک message queue (مثل Kafka، RabbitMQ یا AWS SQS) است و KEDA با ScaledObject تعداد پادهای مصرف‌کننده GPU را نسبت به backlog تنظیم می‌کند (minReplicaCount=0). با فعال‌بودن Cluster Autoscaler و یک GPU node pool با حداقل اندازه صفر، نودهای GPU فقط هنگام نیاز ایجاد و سپس آزاد می‌شوند. نکات کلیدی شامل تنظیم nodeSelector/tolerations، درخواست nvidia.com/gpu، کنترل pollingInterval/cooldownPeriod، کاهش cold start با pre-pull و پایش با Prometheus/Grafana است. نتیجه: پرداخت هزینه GPU فقط هنگام وجود کار، همراه با حفظ قابلیت اطمینان و کنترل تأخیر.

#Kubernetes #KEDA #GPU #MLOps #Autoscaling #CostOptimization #MessageQueue #ProductionML

🟣لینک مقاله:
https://ku.bz/Zhb9q3BZx


👑 @DevOps_Labdon
2
🔵 عنوان مقاله
A look into how JavaScript source maps work

🟢 خلاصه مقاله:
خلاصه‌ای از ساخت‌وکار source map در JavaScript: کدی که در مرورگر اجرا می‌شود معمولاً پس از transpile، bundle و minify با کد اصلی تفاوت دارد. source map پلی است میان این دو تا بتوانید در DevTools مثل کد اصلی breakpoint بگذارید و خطاها را بخوانید. یک source map فایل JSONی است با فیلدهایی مثل version، file، sources، names، sourcesContent و یک رشته mappings که با Base64 VLQ فشرده شده و با بخش‌های دلتایی موقعیت‌های کد تولید‌شده را به سطر/ستون‌های فایل‌های اصلی (و در صورت وجود، نام‌ها) نگاشت می‌کند. ابزارهایی مثل TypeScript و Babel نگاشت را هنگام تبدیل می‌سازند، Webpack/Rollup/esbuild آن‌ها را ترکیب می‌کنند و Terser در مرحله minify این زنجیره را حفظ می‌کند؛ این همان chain شدن source map است. مرورگر از طریق دستور sourceMappingURL (فایل خارجی یا data URI) map را می‌خواند و با رعایت CORS آن را decode کرده و در DevTools نمایش و دیباگ را بر اساس کد اصلی ممکن می‌سازد؛ همچنین پلتفرم‌هایی مثل Sentry با دریافت map می‌توانند stack traceهای production را de-minify کنند. در عمل، به خاطر اندازه و حریم خصوصی، بهتر است در production از الگوهایی چون hidden-source-map یا nosources-source-map، میزبانی امن، و فشرده‌سازی/کش استفاده کنید. محدودیت‌ها شامل دقت ستونی ناقص در برخی تبدیل‌ها، کدهای dynamic/eval، ناسازگاری مسیرها و سوگیری‌های نگاشت است. بهترین رویه‌ها: فعال‌سازی map در تمام مراحل build، اعتبارسنجی در DevTools، اطمینان از CORS مناسب برای ابزار خطا، کنترل نسخه ابزارها و آزمون remap شدن خطاها در CI.

#JavaScript #SourceMaps #WebDev #Debugging #DevTools #Bundlers #Performance

🟣لینک مقاله:
https://golangweekly.com/link/176649/web


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Livecore: A Low-Pause Core File Dumper for Linux Processes

🟢 خلاصه مقاله:
این مقاله Livecore را معرفی می‌کند؛ ابزاری برای گرفتن core file از فرایندهای در حال اجرای Linux با وقفه بسیار کم. این ابزار که در یک جلسه «vibe coding» توسط Brad Fitzpatrick (عضو پیشین تیم Go) ساخته شده، امکان ساخت آنی و کم‌اختلال snapshot از حافظه و وضعیت اجرای فرایند را فراهم می‌کند تا بدون متوقف کردن سرویس، داده‌های لازم برای عیب‌یابی به‌دست آید. به‌جای تکیه بر crash یا توقف کامل فرایند، Livecore با بهره‌گیری از goref و قابلیت‌های Linux تلاش می‌کند تصویری دقیق و با سربار اندک تهیه کند و برای بررسی با ابزارهای post-mortem به کار رود. نتیجه، ابزاری عملی برای تیم‌های توسعه و SRE است که به observability کم‌اختلال—به‌ویژه در سرویس‌های Go روی Linux—نیاز دارند.

#Livecore #Linux #CoreDump #Debugging #Go #Observability #BradFitzpatrick #goref

🟣لینک مقاله:
https://golangweekly.com/link/176630/web


👑 @gopher_academy
🔵 عنوان مقاله
Claude Code Can Debug Low-Level Cryptography

🟢 خلاصه مقاله:
** فیلیپو که به‌خاطر کارهای مداومش روی رمزنگاری در Go شناخته می‌شود، به‌تازگی پیاده‌سازی‌ای از الگوریتم امضای پساکوانتومی ML-DSA ساخته است. او هنگام توسعه با باگی روبه‌رو شد که در سطح پایین رخ می‌داد و با روش‌های معمول به‌سادگی آشکار نمی‌شد.

او از Claude Code کمک گرفت و این ابزار توانست همان «باگ سطح پایینِ نسبتاً پیچیده» را شناسایی کند و علت ریشه‌ای مشکل را روشن سازد. این تجربه نشان می‌دهد که دستیارهای کدنویسی مبتنی بر هوش مصنوعی می‌توانند در پروژه‌های حساسِ رمزنگاری نیز به کشف سریع‌تر خطاها کمک کنند—البته همچنان نیاز به آزمون‌های قابل بازتولید، اعتبارسنجی سخت‌گیرانه و بازبینی انسانی باقی است.

#Cryptography #PostQuantum #MLDSA #Go #Debugging #AI #CodeAssistants #ClaudeCode

🟣لینک مقاله:
https://golangweekly.com/link/176658/web


👑 @gopher_academy
🔥2👍1
🔵 عنوان مقاله
some odd discrepancies when profiling their Go code on macOS.

🟢 خلاصه مقاله:
این مطلب در Golang Weekly به این می‌پردازد که چرا هنگام پروفایل کردن برنامه‌های Go روی macOS گاهی نتایج ناسازگار و غافلگیرکننده دیده می‌شود؛ پروفایل‌ها بین اجراها تغییر می‌کنند و معمولاً با اعداد به‌دست‌آمده روی Linux یا در CI هم‌خوان نیستند. ریشه مسئله بیشتر به تفاوت ابزارها، رفتار سیستم‌عامل و ویژگی‌های بار کاری برمی‌گردد: نمونه‌برداری pprof ممکن است نقاط داغ کوتاه‌عمر را نبیند، مدیریت توان و زمان‌بندی macOS بر نرخ نمونه‌گیری و زمان اجرای رشته‌ها اثر می‌گذارد، و حضور cgo یا کتابخانه‌های بومی می‌تواند ردگیری پشته و نمادگذاری را دشوار کند. توصیه‌ها شامل ترکیب pprof با Instruments، اجرای طولانی‌تر برای پایداری نمونه‌گیری، کنترل نویز محیطی (مثل ثابت نگه‌داشتن GOMAXPROCS و اجرای سیستم در شرایط کم‌بار)، تکرار چندباره اندازه‌گیری و نهایتاً مقایسه با مقادیری است که روی Linux (در صورت استقرار نهایی) به‌دست می‌آیند. جمع‌بندی این است که پروفایل‌های macOS را راهنمایی جهت‌دار بدانید و تصمیم‌های نهایی کارایی را بر اساس پلتفرم مقصد اتخاذ کنید.

#Go #Golang #macOS #Profiling #Performance #pprof #Instruments #AppleSilicon

🟣لینک مقاله:
https://golangweekly.com/link/176897/web


👑 @gopher_academy
🔵 عنوان مقاله
Go v1.25.4 and 1.24.10

🟢 خلاصه مقاله:
نسخه‌های Go v1.25.4 و 1.24.10 منتشر شد؛ این‌ها به‌روزرسانی‌های نقطه‌ای با تمرکز بر رفع باگ‌ها و بهبود پایداری هستند و قابلیت جدید یا تغییر ناسازگار اضافه نمی‌کنند. ارتقا در همان شاخه نسخه باید کم‌خطر و ساده باشد. پیشنهاد می‌شود پس از مرور release notes و آزمایش در CI، در شاخه فعلی خود به آخرین Patch ارتقا دهید. بسته‌های آماده برای Linux، macOS و Windows از صفحه رسمی دانلود یا مدیر بسته‌ها در دسترس است.

#Go #Golang #Release #PatchRelease #BugFixes #Stability #SoftwareUpdate

🟣لینک مقاله:
https://golangweekly.com/link/176896/web


👑 @gopher_academy
1
🔵 عنوان مقاله
What is sync.Pool and How to Use It Properly

🟢 خلاصه مقاله:
این مطلب دو بخش کلیدی از دنیای Go را پوشش می‌دهد: نخست، sync.Pool به‌عنوان سازوکاری برای استفاده مجدد از اشیای موقت با هدف کاهش allocation و فشار بر GC. استفاده درست از آن یعنی: فقط برای اشیای کوتاه‌عمر و بدون مالکیت منابع خارجی، تعریف New برای ساخت در صورت خالی بودن، مقداردهی/Reset قبل از Put، و عدم اتکا به ماندگاری یا اندازه Pool. نتیجه‌گیری مهم: sync.Pool جایگزین cache پایدار نیست و باید با بنچمارک‌گیری مزیتش را سنجید. دوم، مقاله Jesús Espino در Devtrovert درباره Scanner در کامپایلر Go توضیح می‌دهد که چگونه متن کد را به token تبدیل می‌کند، شناسه‌ها، لیترال‌ها و عملگرها را می‌شناسد، با فاصله‌ها و کامنت‌ها و خطاها برخورد می‌کند و خروجی را به parser می‌سپارد. ترکیب این دو دیدگاه، هم به بهینه‌سازی عملکرد برنامه‌ها کمک می‌کند و هم درک عمیق‌تری از فرایند پردازش کد در Go می‌دهد.

#Go #Golang #syncPool #Compiler #Scanner #Performance #Concurrency #MemoryManagement

🟣لینک مقاله:
https://golangweekly.com/link/176904/web


👑 @gopher_academy
🎙️ عنوان پادکست:
🚫 Go team says no, what is HTTP error 407, and do you need DI frameworks
خلاصه پادکست:
این جمع‌بندی به چند خبر مهم از دنیای Go می‌پردازد: انتشار نسخه‌های نگه‌داری Go 1.24.4 و 1.23.10، تغییر مهمی در net/http (commit 4d1c255) برای حذف هدرهای حساس پروکسی هنگام Redirect، و توضیح کاربردی درباره HTTP 407 (Proxy Authentication Required) که معمولاً در شبکه‌های دارای پروکسی رخ می‌دهد. در بحث خطا، با اشاره به گفت‌وگوی Robert Griesemer، تیم Go بار دیگر با افزودن نحو جدید برای Error Handling مخالفت می‌کند و بر بازگشت‌های صریح خطا تأکید دارد....
1👍1
🎙️ عنوان پادکست:
Metal! 🤘 Bare metal go, config libs, building response writers
خلاصه پادکست:
** این قسمت با حال‌وهوای «Metal! 🤘» به Go روی سخت‌افزار بدون سیستم‌عامل می‌پردازد: هدف و کاربردهای GOOS=none برای هدف‌های freestanding، محدودیت‌های runtime و کار در نبود syscalls. در خبرها، به انتشار GCC 15.1 با پشتیبانی از COBOL اشاره می‌شود و موضوع «os: Root permits access to parent directory» به‌عنوان هشداری درباره لبه‌های امنیتی در مدیریت مسیرها بررسی می‌شود. سپس معیارهای یک کتابخانه پیکربندی «ارگونومیک» (API قابل‌کشف، ایمنی نوع، لایه‌بندی env/فایل/فلگ، hot reload و پیش‌فرض‌های معقول) و خطاهای رایج مرور می‌شود....
22
🔵 عنوان مقاله
go-rest-api-example: Template for an Enterprise-Ready REST API Microservice

🟢 خلاصه مقاله:
پروژه go-rest-api-example یک قالب آماده برای ساخت Microserviceهای REST API در سطح Enterprise است. این Boilerplate با هدف راه‌اندازی سریع و استاندارد یک سرویس تولیدی ارائه شده و با نگه‌داری منظم به‌روز می‌شود. نسخه این هفته با Go 1 یکپارچه شده تا با ابزارها و جریان‌های کاری فعلی سازگار باشد و پایه‌ای پایدار برای توسعه فراهم کند.

#Go #Golang #RESTAPI #Microservices #Boilerplate #Backend #API #SoftwareEngineering

🟣لینک مقاله:
https://golangweekly.com/link/176914/web


👑 @gopher_academy
👍2
🔵 عنوان مقاله
list of the top ten web application security threats in 2025.

🟢 خلاصه مقاله:
امنیت وب در ۲۰۲۵ با ترکیبی از تهدیدهای قدیمی و سطح حمله‌های جدید تعریف می‌شود: شکست در کنترل دسترسی، تزریق در SQL/NoSQL/GraphQL، ضعف‌های احراز هویت و نشست‌ها، SSRF و پیکربندی‌های نادرست همچنان پرتکرارند، در حالی که حملات زنجیره‌تأمین (بسته‌های مخرب، Dependency Confusion، نفوذ به CI/CD) و سوءاستفاده‌های خودکار و مبتنی بر AI رو به افزایش‌اند. در معماری‌های API-first و میکروسرویس، خطاهایی مثل Broken Object-Level Authorization، Mass Assignment، و Shadow APIها ریسک را بالا می‌برند و در فضای ابری، SSRF می‌تواند به افشای گذرواژه‌های ابری و تصاحب حساب منجر شود. برای تیم‌های Go، هرچند زبان از کلاس بزرگی از باگ‌های حافظه‌ای جلوگیری می‌کند، اما خطاهای منطقی، شرایط مسابقه و تنظیمات ناایمن باقی می‌مانند؛ بنابراین استفاده از احراز هویت قوی (مثل WebAuthn و توکن‌های کوتاه‌عمر)، اصل حداقل دسترسی، چرخش اسرار، تست و اسکن مداوم (fuzzing در Go 1.18+، linters، govulncheck)، مدیریت امن وابستگی‌ها و SBOM، و سخت‌سازی CI/CD با امضا و سیاست‌گذاری پیشنهاد می‌شود. این فهرست از سوی Golang Weekly به‌عنوان یک چک‌لیست عملی برای اولویت‌بندی دفاع‌ها و گفت‌وگو درباره ریسک در تیم‌های توسعه معرفی شده است.

#WebSecurity #AppSec #Golang #APIsecurity #SupplyChainSecurity #DevSecOps #SSRF #OWASP

🟣لینک مقاله:
https://golangweekly.com/link/176898/web


👑 @gopher_academy
🔵 عنوان مقاله
Canvas: Vector Graphics Drawing Library

🟢 خلاصه مقاله:
Canvas یک کتابخانه عمومی مبتنی بر canvas برای ترسیم گرافیک برداری است که با یک API یکدست می‌تواند خروجی‌هایی مانند SVG، PDF و تصاویر raster تولید کند و از طریق WebAssembly روی وب نیز اجرا شود. این پروژه مجموعه‌ای بزرگ از نمونه‌برنامه‌ها دارد که استفاده عملی از API و قابلیت‌های کلیدی آن را نشان می‌دهند و شروع کار و اقتباس الگوهای رایج را ساده می‌کنند. مزیت اصلی Canvas ثبات مدل ترسیم در همه اهداف خروجی است؛ بنابراین می‌توانید یک بار منطق رسم را بنویسید و همان کد را برای تولید SVG، PDF یا raster به کار ببرید و حتی همان تجربه را در مرورگر با WebAssembly داشته باشید.

#VectorGraphics #Canvas #SVG #PDF #WebAssembly #GraphicsLibrary #CrossPlatform #APIExamples

🟣لینک مقاله:
https://golangweekly.com/link/176906/web


👑 @gopher_academy
1
Forwarded from AI Labdon
♨️ مصرف برق OpenAI در حد یک کشور!
نگرانی جهانی از ابر دیتاسنتر جدید سام آلتمن

▪️سم آلتمن اعلام کرده OpenAI تا سال 2033 قصد دارد ظرفیت محاسباتی خودش را به ۲۵۰ گیگاوات برساند؛ عددی که برای تأمینش تقریباً به اندازه مصرف برق کل کشور هند با جمعیت ۱.۵ میلیارد نفر انرژی لازم است!

▪️این سطح مصرف یعنی حجم عظیمی از انتشار دی‌اکسیدکربن؛ حتی دو برابر میزان کربنی که غول نفتی ExxonMobil در یک سال منتشر می‌کند.

▪️طبق برآوردها، این ظرفیت قرار است میزبان ۶۰ میلیون پردازنده‌ی گرافیکی GB300 انویدیا باشد. یعنی OpenAI باید سالانه حدود ۳۰ میلیون GPU سفارش بدهد تا این زیرساخت غول‌پیکر همیشه روشن بماند!
2
🔵 عنوان مقاله
Trends in the Go Ecosystem in 2025

🟢 خلاصه مقاله:
گزارش تازه JetBrains از اکوسیستم Go در سال ۲۰۲۵ نشان می‌دهد جامعه Gophers همچنان به کتابخانه‌های ساده، پایدار و کم‌وابستگی تکیه دارد. در وب، گرایش به فریم‌ورک‌های سبک و سریع پررنگ است و Gin بیشترین توجه را جلب کرده؛ در کنار گزینه‌هایی مثل Echo، Fiber و Chi. برای دسترسی به داده نیز ابزارهایی مانند GORM و sqlx رایج‌اند و معیارهایی مثل کیفیت مستندات، ثبات و ردپای وابستگی کوچک نقش تعیین‌کننده دارند. در تست، رویکردهای idiomatic مثل go test و table-driven tests همراه با testify و ابزارهای mocking، به‌علاوه ادغام در CI و توجه به پوشش کد، جریان غالب‌اند؛ علاقه به fuzzing و property-based testing نیز رو به رشد است. دستیارهای هوشمند کدنویسی به ابزار روزمره تبدیل شده‌اند: GitHub Copilot و ChatGPT بیشترین اشاره را دارند، JetBrains AI Assistant در IDEها پذیرفته شده و گزینه‌هایی مثل Codeium و Tabnine هم برای ملاحظات حریم خصوصی و مجوزدهی مطرح‌اند. جمع‌بندی گزارش: انتخاب آگاهانه کتابخانه‌های مینیمال (با برتری Gin در سرویس‌های وب)، سرمایه‌گذاری در ارگونومی تست و CI، و تدوین سیاست روشن برای استفاده از AI جهت افزایش بهره‌وری بدون افت کیفیت کد.

#Go #Golang #JetBrains #Gin #Testing #AIAssistants #DeveloperSurvey #2025Trends

🟣لینک مقاله:
https://golangweekly.com/link/176892/web


👑 @gopher_academy
👍1
Forwarded from Database Labdon
🔵 عنوان مقاله
Did You Know Postgres Tables are Limited to 1,600 Columns?

🟢 خلاصه مقاله:
اگر نمی‌دانستید، در Postgres هر جدول حداکثر ۱۶۰۰ ستون می‌تواند داشته باشد. این یک محدودیت سخت در هسته سیستم است و با NULL بودن فیلدها یا TOAST دور زده نمی‌شود. اگر شماره issue 226 در سال 2017 را خوانده باشید، احتمالاً این نکته را به خاطر دارید. این سقف به معنای آن است که طراحی‌هایی با جدول‌های بسیار عریض—مثل هر شاخص یک ستون یا طرح‌های EAV تثبیت‌شده—به‌سرعت به حد می‌خورند. راه‌حل‌های بهتر شامل نرمال‌سازی، تفکیک عمودی، تبدیل ستون‌ها به سطرها برای سنجه‌ها، یا استفاده از JSONB برای ویژگی‌های کم‌استفاده و پراکنده است. جدول‌های خیلی عریض علاوه بر ریسک رسیدن به سقف، هزینه I/O و نگهداری را بالا می‌برند. نتیجه عملی: با در نظر گرفتن حد ۱۶۰۰ ستون، از طرح‌های باریک‌تر و انعطاف‌پذیرتر استفاده کنید و قبل از اعمال مهاجرت‌ها، تعداد ستون‌ها را بررسی کنید.

#Postgres #PostgreSQL #SQL #DatabaseDesign #DataModeling #SchemaDesign #JSONB #SoftwareEngineering

🟣لینک مقاله:
https://postgresweekly.com/link/176989/web


👑 @Database_Academy
🔵 عنوان مقاله
Go's Runtime May Someday Start Explicitly Freeing Some Internal Memory?

🟢 خلاصه مقاله:
** Chris Siebenmann به ایده‌ای اشاره می‌کند که هنوز توسعه نیافته است: احتمال اینکه Go Runtime در آینده بتواند بخشی از حافظه داخلی خودش را به‌صورت صریح به سیستم‌عامل برگرداند. هدف، کاهش RSS و رفتار بهتر زیر فشار حافظه—به‌ویژه در سرویس‌های طولانی‌مدت و محیط‌های کانتینری—است، اما با ریسک افت کارایی به‌خاطر افزایش syscall‌ها، page faultها و از دست رفتن cacheها. هنوز جزئیات و زمان‌بندی روشن نیست و اگر هم پیش برود، احتمالاً به‌صورت آزمایشی و opt-in ارائه می‌شود. در صورت پیاده‌سازی در نسخه‌های بعدی Go، این تغییر می‌تواند شیوه‌های مرسوم تنظیم حافظه در تولید را تحت تأثیر قرار دهد.

#Go #Golang #Runtime #MemoryManagement #GarbageCollection #Performance #Containers #Cloud

🟣لینک مقاله:
https://golangweekly.com/link/176902/web


👑 @gopher_academy