Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Gopher Academy
🔵 عنوان مقاله
2X-40X Faster Docker Builds with Blacksmith

🟢 خلاصه مقاله:

ابزار Blacksmith با ایجاد یک تغییر کد یک خطی، امکان ساخت افزایشی برای تصاویر Docker را در اجراکننده GitHub Actions با نصب حافظه لایه‌ای Docker فراهم می‌کند. این رویکرد جدید با کاهش زمان ساخت و تکراری‌نبودن فرآیند، کارآمدی را افزایش می‌دهد. بیش از ۳۰۰ شرکت، از جمله Ashby، Clerk و Mintlify از Blacksmith استفاده کرده‌اند، که نشان‌دهنده تأثیر قابل توجه آن در بهینه‌سازی فرایندهای توسعه است.

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


👑 @gopher_academy
اگه از Claude code استفاده میکنید چی بهتر از اینکه از خود مهندسهای کمپانی Anthropic یاد بگیرید که best practice ها برای استفاده از این ابزار چیا هست!
بلاگ خوش دست و خوانا نوشته شده و همه نکات و ریزه کاریها را توضیح میده!

https://www.anthropic.com/engineering/claude-code-best-practices

@DevTwitter | <Mehdi Allahyari/>
Forwarded from Geek Alerts
موقعیت‌یابی مثلثی با دکل مخابراتی باعث میشه دقیقا متوجه شد شما سر کدوم چهار راه هستی یا تو کدوم خیابون داری میری. گوشی وقتی روشنه (حتی سیم‌کارت روش نیست) به دکل‌های مخابراتی اطرافش پینگ میفرسته، یه تخمین از اینکه سرعت پینگ چقدر بوده و چند تا فاکتور دیگه میشه محاسبه کرد فاصله گوشی شما از هر دکل حدودا چقدر هست.

از نظر هندسی، اگه فاصله یه چیزی رو از سه نقطه مجزا داشته باشی، میشه با فهمید کجاست. در حالت عادی معمولا بیش از ۳ دکل سیگنال رو میگرین. حتی بعضی از دکل‌های مخابراتی از آنتن‌های جهت دار استفاده میکنن که دقیق‌تر میشه فهمید سیگنال گوشی از کدوم سمت میاد. اگه براتون سواله که نرخ خطای این روش چقدر هست عددش رو میشه میانگین حدود ۳۰ متر گفت، چون بستگی به عوامل محیطی مثل ساختمون‌ها و ... داره.

اینهارو میشه گذاشت کنار تحلیل دیتا و رفتار، مثلا محل کار یه فرد مشخص میشه، خونش کجاست، کجاها میره و ... این در بیشتر کشورها هست، چون از نظر فنی پیاده‌سازی آسون و بدون هزینه‌ای داره و از طرفی به روش‌هایی بعضی از شرکت‌ها با رعایت حریم‌خصوصی این دیتاهارو میخرن.

🔗 x
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
این زیبا رو برای کار با LLMها از دست ندید.
https://github.com/CherryHQ/cherry-studio

@DevTwitter | <Ayub Kokabi/>
Forwarded from Gopher Academy
در گولنگ (و به‌طور کلی در سیستم‌های مبتنی بر یونیکس)، تفاوت stdin`، `stdout و stderr در واقع به کانال‌های ورودی/خروجی استاندارد مربوط می‌شه. این مفاهیم پایه‌ای در اکثر زبان‌ها یکسان هستند، ولی تو Go هم به شکل زیر کاربرد دارن:

---

## 📥 1. stdin — Standard Input
این همون ورودی استاندارد**ه که برنامه ازش داده می‌گیره. پیش‌فرض اینه که از **کیبورد یا خط فرمان میاد.

### مثال Go:

package main

import (
"bufio"
"fmt"
"os"
)

func main() {
fmt.Print("Enter your name: ")
scanner := bufio.NewScanner(os.Stdin)
if scanner.Scan() {
fmt.Println("Hello,", scanner.Text())
}
}

> اینجا os.Stdin ورودی رو می‌خونه.

---

## 📤 2. stdout — Standard Output
خروجی استاندارده که معمولاً به ترمینال یا همان صفحه نمایش می‌ره. اکثر توابع fmt.Print, fmt.Println, fmt.Printf از os.Stdout استفاده می‌کنن.

### مثال:

fmt.Fprintln(os.Stdout, "This is a normal message.")


---

## ❗️ 3. stderr — Standard Error
خروجی برای خطاها. فرقش با stdout اینه که حتی اگر خروجی برنامه به یه فایل هدایت بشه (> out.txt)، خطاها هنوز روی ترمینال باقی می‌مونن مگر اینکه مشخصاً مسیر stderr هم تغییر کنه.


### مثال:

fmt.Fprintln(os.Stderr, "This is an error message.")


👑 @gopher_academy
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰راهنمای توزیع مستقل CRUX Linux – انتخابی حرفه‌ای برای عاشقان سادگی و کنترل

🔹معرفی کلی

توزیع CRUX یک توزیع سبک و مینیمالیستی از لینوکس است که مخصوص کاربران حرفه‌ای طراحی شده. تمرکز آن بر سادگی، سرعت، و حداکثر کنترل کاربر بر سیستم است. برخلاف توزیع‌هایی مثل Ubuntu یا Fedora، CRUX تجربه‌ای کاملاً دستی و غیراتوماتیک را ارائه می‌دهد و برای کسانی مناسب است که می‌خواهند سیستم‌عامل‌شان را از پایه و مطابق نیاز خود بسازند.

🔹تاریخچه و فلسفه
توزیع CRUX در سال 2001 توسط Per Lidén توسعه یافت و هدف اصلی‌اش پیاده‌سازی اصل KISS (Keep It Simple, Stupid) در دنیای لینوکس بود. این توزیع برخلاف بسیاری از سیستم‌عامل‌ها، مبتنی بر هیچ توزیع قبلی نیست و ساختار کاملاً منحصر‌به‌فردی دارد. از اسکریپت‌های سبک BSD برای راه‌اندازی سیستم استفاده می‌کند و فاقد نصب‌گر گرافیکی یا ابزارهای پیش‌فرض متعدد است.

🔹ویژگی‌های فنی برجسته
معماری: مخصوص سیستم‌های ۶۴ بیتی (x86-64)؛ پورت‌هایی برای معماری‌های دیگر هم وجود دارد (مانند PowerPC، Sparc).
کرنل: از نسخه‌های جدید کرنل لینوکس استفاده می‌کند و به‌روزرسانی‌های مداوم دارد.
نصب: فرآیند نصب کاملاً دستی و از طریق خط فرمان انجام می‌شود؛ مناسب برای کاربران با دانش فنی بالا.
بوت: از اسکریپت‌های ساده‌ی shell به سبک BSD استفاده می‌کند، بدون systemd یا Upstart.
پکیج‌ها: بر پایه فایل‌های فشرده tar.gz است که فقط فایل‌های ضروری را شامل می‌شود.
سیستم پورت‌ها (Ports)

یکی از مهم‌ترین نوآوری‌های CRUX، سیستم Ports آن است که از FreeBSD الهام گرفته شده. هر پورت در واقع یک دایرکتوری شامل فایل‌های لازم برای کامپایل یک نرم‌افزار است:
🔹مدیربسته Pkgfile برای تنظیمات و دستورات ساخت
🔹وصله‌ها یا patchها در صورت نیاز
🔹برنامه‌ها از منبع اصلی دانلود و با تنظیمات دلخواه کامپایل می‌شوند. این سیستم امکان سفارشی‌سازی کامل را به کاربر می‌دهد.

🔹مدیریت بسته‌ها
ابزار pkgutils: ابزار اصلی برای نصب، حذف و به‌روزرسانی پکیج‌ها
ابزار prt-get: رابط پیشرفته‌تر برای تعامل راحت‌تر با پورت‌ها
قابلیت‌هایی مثل جستجوی وابستگی‌ها، مدیریت تاریخچه، و بررسی اطلاعات پورت قبل از نصب را دارد.

توجه داشته باشید که مدیریت وابستگی‌ها در CRUX دستی است، یعنی نصب وابستگی‌ها بر عهده‌ی خود کاربر است. این موضوع بر اصل شفافیت و کنترل کامل بر سیستم تأکید دارد.
https://crux.nu/

📌نویسنده: حسین سیلانی
📌منبع :  آکادمی کندوی دانش
https://learninghive.ir
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
کوبونتو ۲۵.۰۴ به‌طور پیش‌فرض از Wayland استفاده می‌کند
در نسخه جدید کوبونتو ۲۵.۰۴، تغییر مهمی اتفاق افتاده: حالا به‌طور پیش‌فرض از Wayland به‌جای X11 استفاده می‌شود. البته اگر کسی بخواهد، هنوز هم می‌تواند X11 را انتخاب کند.

در اوایل سال ۲۰۲۴، KDE پیشنهاد کرد که به‌طور پیش‌فرض از Wayland استفاده شود، همزمان با انتشار Plasma 6. خیلی از توزیع‌هایی که از KDE استفاده می‌کنند، فعلاً صبر کردند — از جمله کوبونتو. اما حالا این تغییر اعمال شده است.

از دیگر ویژگی‌های مهم این نسخه می‌توان به ارتقاء به نسخه‌های جدیدتر نرم‌افزار اشاره کرد: Plasma 6.3.4، Qt 6.8.3، KDE Frameworks 6.12 و KDE Gear 24.12.3. البته هنوز همه برنامه‌ها به آخرین نسخه‌ها به‌روزرسانی نشده‌اند، چون بعضی نسخه‌های جدید همین امروز منتشر شده‌اند.
Forwarded from Gopher Academy
تفاوت بین stdout و stderr توی ظاهر ممکنه کوچیک به نظر بیاد، ولی توی دنیای واقعی (به‌خصوص در سرور‌ها، لاگینگ، کانتینرها و automation) خیلی مهمه.


## 🔧 مثال کاربردی: اجرای برنامه و جداسازی خروجی‌ها

فرض کن برنامه‌ای داریم به نام myapp که هم لاگ عادی داره و هم خطا:


// main.go
package main

import (
"fmt"
"os"
)

func main() {
fmt.Fprintln(os.Stdout, "Everything is running fine.") // خروجی عادی
fmt.Fprintln(os.Stderr, "Oops! Something went wrong!") // پیام خطا
}



الان اگه اینو تو ترمینال اجرا کنیم:

go run main.go


هردو پیام روی ترمینال میان. ولی اگه بخوای فقط خروجی معمول رو بریزی تو فایل:

go run main.go > output.txt


📁 نتیجه:
- output.txt: فقط شامل "Everything is running fine."
- پیام خطا همچنان روی ترمیناله

اما اگه بخوای خطا رو هم بریزی تو یه فایل دیگه:


go run main.go > output.txt 2> error.txt



📁 نتیجه:

- output.txt → خروجی عادی (stdout)
- error.txt → پیام خطا (stderr)

---


## 🐳 در دنیای کانتینرها (مثلاً Docker)

خیلی از ابزارهای لاگینگ (مثل fluentd, logstash, یا خود docker logs) فقط stdout و stderr رو بررسی می‌کنن. پس جداسازی درستش باعث میشه:
- مانیتورینگ بهتر انجام بشه
- خطاها مشخص‌تر باشن
- عملکرد بهتر در CI/CD


👑 @gopher_academy
Forwarded from آموزش لینوکس و اوپن سورس
لوبونتو ۲۵.۰۴؛ نگاهی به نسخه LTS بعدی

تیم لوبونتو سخت در تلاش است برای آینده، اما هنوز نتوانسته تغییرات بزرگی را در این نسخه ارائه دهد.

علاوه بر ویژگی‌های جدیدی که با دیگر توزیع‌ها مشترک است، لوبونتو حالا از Qt نسخه ۶.۸.۳ استفاده می‌کند.

در ادامه مسیر، انتظار می‌رود که در نسخه ۲۶.۰۴ پشتیبانی کامل از Wayland اضافه شود و تقریباً همه چیز به Qt6 منتقل شود.
Forwarded from آموزش لینوکس و اوپن سورس
زوبونتو ۲۵.۰۴ دسکتاپ جدید را آورده، اما برای Wayland باید صبر کرد

در نسخه ۲۵.۰۴ زوبونتو (با نام رمز Plucky Puffin)، دو تغییر مهم دیده می‌شود: دسکتاپ به نسخه Xfce 4.20 ارتقاء یافته که شامل بخش‌ها و برنامه‌هایی از Gnome 48 نیز هست.

با اینکه در این نسخه پیشرفت‌هایی در جهت پشتیبانی از Wayland انجام شده، اما هنوز به جایی نرسیده که بتوان یک نشست Wayland را ارائه کرد. فعلاً به‌صورت رسمی باید از Xorg استفاده کرد.

از دیگر تغییرات می‌توان به موارد زیر اشاره کرد:
اضافه شدن پشتیبانی از OpenVPN
پشتیبانی از فرمت‌های تصویری avif، heic، heif و webp بعد از نصب اولیه
عملکرد کلید META برای باز کردن منو بهتر شده و راحت‌تر می‌توان آن را تنظیم کرد
پیش‌نمایش چاپ اکنون از Atril پشتیبانی می‌کند
پشتیبانی از ماشین‌های مجازی بهبود یافته
و همچنین نسخه ۳.۰ برنامه GIMP هم در این نسخه قرار گرفته است.
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
انتشار Pinta 3.0؛ ویرایشگر تصویر با پشتیبانی از GTK4

پس از انتشار نسخه ۳.۰ برنامه محبوب GIMP، حالا نوبت به Pinta 3.0 رسیده است؛ یک ویرایشگر تصویر متن‌باز که از برنامه Paint.NET الهام گرفته شده و حالا به GTK4 و libadwaita منتقل شده است.

Pinta برنامه‌ای ساده و سبک برای ویرایش تصویر است و در زبان C# نوشته شده است. بزرگ‌ترین تغییر در نسخه جدید، استفاده از ابزار توسعه GTK4 و کتابخانه طراحی libadwaita است که ظاهر و عملکرد برنامه را مدرن‌تر کرده است.

در نسخه ۳.۰ همچنین شاهد ویژگی‌های جدیدی هستیم:
نصب‌کننده ARM64 برای سیستم‌عامل macOS
افکت‌های تصویری جدید
امکان خروجی گرفتن به فرمت PPM
پشتیبانی از بزرگ‌نمایی تصویر با الگوریتم nearest-neighbor
پشتیبانی از فرمت WebP در ویندوز

اطلاعات بیشتر و لینک دانلود نسخه جدید در سایت رسمی Pinta-Project.com در دسترس است.
⁉️ چرا QEMU را به VirtualBox و Vmware ترجیح میدم؟
🔥 به مناسبت انتشار QEMU 10.0

اگر دنبال یادگیری و درک عمیق و حرفه ای مجازی سازی هستی و میخواهی تا جای ممکن دستت باز باشه و بفهمی در اعماق چه اتفاقی می افته، باید کار با QEMU را شروع کنی


برای من QEMU + KVM: سریع‌تر، قدرتمندتر، قابل‌اسکریپت‌نویسی، (حتی بوت macOS، اندروید، رزبری‌پای، BIOS و ...)

📦 از نظر کاربرد، QEMU یک جایگزین کامل برای VirtualBox و VMware .
💠ساخت و اجرای ماشین مجازی
💠اجرای سیستم‌عامل‌های مختلف درون VM
💠پشتیبانی از snapshot، شبکه، USB، به‌اشتراک‌گذاری فایل و ...

🟥 از نظر "تجربه کاربری" و ساختار:
‏VirtualBox / VMware: رابط گرافیکی کاربرپسند، نصب ساده، کلیک‌محور.
‏QEMU: بیشتر به صورت خط فرمان یا با ابزارهایی مثل virt-manager و GNOME Boxes استفاده میشه.

ابزار QEMU می‌تونه ARM، RISC-V، PowerPC، SPARC، MIPS و هر چی بخوای رو شبیه‌سازی کنه! ولی VirtualBox / VMware فقط x86/x86_64
یادتون باشه وقتی چیزی ساده میشه جزئیات پنهان میشه
Follow the White Rabbit

@MehrdadLinuxchannel
#linux
Forwarded from Gopher Academy
🔵 عنوان مقاله
Revive 1.8: A Faster, Configurable, Flexible Linter for Go

🟢 خلاصه مقاله:

مقاله‌ای در مورد ابزار جدیدی است که به عنوان جایگزینی برای "golint"، ابزار فرمت‌بندی محبوب زبان برنامه‌نویسی Go، ارائه شده است. این ابزار جدید با ارائه بازخورد سازمان‌یافته‌تر، گزینه‌های سفارشی‌سازی و عملکرد بهبود یافته، فرآیند فرمت‌بندی را تقویت می‌کند. این ابزار توسط پروژه‌ها و کتابخانه‌های بزرگ Go به سرعت پذیرفته شده است. فایل README در مخزن GitHub توضیح می‌دهد که این ابزار جدید چگونه از golint متفاوت است، و به جزئیات تقویت‌های عملکردی، ویژگی‌های قابل تنظیم، و بهبود عملکرد آن می‌پردازد.

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


👑 @gopher_academy
Forwarded from Linuxor ?
هرچقدرم کدو اصلاح کنی تا خودتو اصلاح نکنی فایده نداره

لینوس توروالدز

@Linuxor
This media is not supported in your browser
VIEW IN TELEGRAM
یه افزونه‌ی ساده‌ی کروم که به GPT و GitLab وصل می‌شه و توی مرور Merge Request‌ها کمک می‌کنه.
این افزونه با استفاده از GPT پیشنهاداتی برای بهبود کد می‌ده و به بررسی سریع‌تر کمک می‌کنه.

repository:
https://github.com/farshidinanloo/gitlab-gpt-code-review

@DevTwitter | <Farshid Inanloo/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 ویرگول معادل مدیوم هم پولی شد.

اگر پستی در رابطه با معرفی هر چیزی منتشر شود, پست تبلیغاتی شناخته می شود و برای انتشار آن باید هزینه پرداخت کنید.

#خبر

@TheRaymondDev