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 linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
پیرو این پست
https://t.iss.one/linuxtnt/4375
که درباره هشدار تروالدز در خصوص حذف سیستم فایلBcachefs بود

توروالدز پشتیبانی از Bcachefs را پس از درگیری متوقف کرد

لینوس توروالدز اعلام کرده است:
"این را ادغام کردم، اما با توجه به آن بحث، فکر می‌کنم در پنجره ادغام ۶.۱۷ از هم جدا می‌شویم. شما به وضوح نشان دادید که من حتی نمی‌توانم در مورد اصلاحات اشکالات سوال کنم و باید هر چیزی را بدون چون و چرا ادغام کنم. صادقانه بگویم، در این مرحله دیگر احساس راحتی نمی‌کنم و تنها چیزی که هر دو در آن بحث به طور اساسی روی آن توافق داشتیم این بود که 'کار ما تمام است'."
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰حرکتی رادیکال دیگر: فدورا قصد دارد پشتیبانی بوت UEFI روی MBR را حذف کند
پشتیبانی بوت UEFI برای MBR ممکن است در فدورا ۴۳ حذف شود.


🔹 این تغییر به این معنی است که فدورا دیگر اجازه نمی‌دهد سیستم‌های UEFI روی دیسک‌های با پارتیشن‌بندی MBR بوت شوند
🔹فدورا اخیراً در موقعیت دشواری قرار گرفت هنگامی که پیشنهاد حذف پشتیبانی از سیستم‌های ۳۲ بیتی با واکنش شدید جامعه کاربری مواجه شد. این تغییر که با هدف کاهش بار نگهداری برای توسعه‌دهندگان مطرح شده بود، با مخالفت کاربران و توسعه‌دهندگانی روبه‌رو شد که به سازگاری ۳۲ بیتی برای برخی موارد استفاده نیاز داشتند.
https://t.iss.one/linuxtnt/4363

🔹واکنش‌ها آنقدر قوی بود که این پیشنهاد در نهایت لغو شد، اما این تغییر همچنان در آینده‌ای نزدیک باید مورد بررسی قرار گیرد تا از چالش‌های مداوم نگهداری جلوگیری شود.

🔹حالا یک پیشنهاد تغییر جدید مطرح شده است که هدف آن حذف پشتیبانی بوت UEFI روی دیسک‌های پارتیشن‌بندی شده با MBR است.

🔸پایان پشتیبانی بوت UEFI روی MBR؟
🔸این پیشنهاد تغییر توسط کاترینا کوکیو از تیم نصب‌کننده Anaconda ارائه شده است و هدف آن حذف پشتیبانی از نصب فدورا در حالت UEFI روی دیسک‌های MBR، به ویژه برای سیستم‌های x86-64 از نسخه آینده فدورا ۴۳ است.
🔸هدف از این کار، ساده‌سازی کد نصب‌کننده و توقف پشتیبانی از پیکربندی بوت است که به ندرت استفاده می‌شود، در تنظیمات فرمور به صورت ناسازگار پیاده‌سازی شده و توسط فدورا به طور رسمی تست نشده است.
🔸این تغییر به ما کمک می‌کند تا از کرش‌های بوت‌لودر ناشی از خطاهای فرمور هنگام استفاده از MBR جلوگیری کنیم.
🔸اگر شما یک کاربر فعلی هستید، جای نگرانی نیست، زیرا این تغییر روی نصب‌های موجود تأثیری ندارد. این تغییر فقط برای نصب‌های جدید فدورا از طریق Anaconda اعمال می‌شود که در آن‌ها به جای MBR، از GPT برای بوت UEFI استفاده خواهد شد.
⚠️برای باز کردن سایت ها داشتن DNS ضروری است اما:

📉 هر بار که بدون رمزنگاری DNS میزنی، داری اطلاعاتتو لو میدی!
🔍 بدون DNS امن، همه حرکاتت زیر ذره‌بینه!
😱 حتی با VPN هم رد پای تو پیدا می‌شه!

🔓 DNS سنتی (port 53) مثل اینه که از پشت بوم فریاد بزنی: "می‌خوام برم google.com!"
همه می‌شنون: ISP، دولت، فایروال سازمان، حتی مهاجم!

⚔️ راه‌حل؟
🛡 DoH و DNSCrypt
درخواست‌های DNS رو رمزنگاری می‌کنن یعنی:
هیچ‌کس نمی‌فهمه کجا میری
هیچ کس نمی‌تونه بین راه دستکاری‌شون کنه (man-in-the-middle)

🎯 تفاوت‌ها:
‏DNSCrypt روی UDP/TCP رمزنگاری می‌کنه (اغلب روی پورت 443 یا 4433)
‏DoH مستقیماً DNS رو از طریق HTTPS رد می‌کنه (پورت 443 معمولی = شبیه ترافیک عادی وب!)

💻 روی لینوکس چطور فعالش کنیم؟
نصب DNSCrypt Proxy:
sudo apt install dnscrypt-proxy
فایل پیکربندی در این مسیر است
/etc/dnscrypt-proxy/dnscrypt-proxy.toml
تنظیم کن و در این فایل DNS را
/etc/resolv.conf
مقدار زیر را قرار بده
nameserver 127.0.0.1

نرم افزار DNSCrypt از پروکسی پشتیبانی میکنه
به این صورت از پروکسی استفاده کنید
proxy = "socks5://ip:port"

@MehrdadLinuxchannel
supergrub2-classic-2.06s4-multiarch-CD.iso
23.8 MB
فایل ISO نرم افزار Super Grub2 نسخه 2.06s4 برای ریکاوری بوت سیستم
سایت اصلی
با توجه به این که دانلود از sourceforge کمی با سختی همراه است در کانال تلگرام ضمیمه شد
مقدار MD5SUM برای اعتبار سنجی
7fb288d83ce8bebad836e8ed2bfbe9f5

@MehrdadLinuxchannel
یک سیستم عامل مخصوص نصب روی فلش 😳

سیستمت خراب شده دسترسی سریع میخواهی؟
خانه دوستت میری با فلش سیستم خودت را بوت کنی؟
تلگرام، ابزار گذر از تحریم، فایرفاکس، مدیر فایل دولفین، flatpaks و ...
بدون نیاز به نصب، حتما داشته باش برای روز مبدا

🌐 مناسب برای:
مسافران دیجیتال 😎
🔥لینوکس TravelerOS فقط با 700 RAM
🔥فقط از USB (یا CD/SD)، بدون اینکه از هارد اصلی استفاده کنه—تماما قابل‌حمل!
🔥عالی برای نجات سیستم:‌ قابل استفاده برای تعمیر بوت‌لودر، پارتیشن‌بندی، یا فرمت کامل دیسک!

آموزش نصب
🛡 کلمات عبور :
کاربر: traveler
رمز: zippy

@MehrdadLinuxchannel
Forwarded from Gopher Academy
🔵 عنوان مقاله
😅 (Ab)using Channels to Implement a 3D Pipe Game

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

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

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


👑 @gopher_academy
Forwarded from Gopher Academy
🔴قابلیت Anti‑CSRF protection ویژگی های جدید گولنگ نسخه 1.25

در Go 1.25، قابلیت جدیدی با نام Anti‑CSRF protection (محافظت در برابر CSRF) از طریق نوع جدید `http.CrossOriginProtection` معرفی شده است. این ویژگی بدون نیاز به توکن یا کوکی اضافی، حملات CSRF را با استفاده از اطلاعات Fetch metadata مرورگر مهار می‌کند.

---

🧠 چطوری کار می‌کنه؟

* این محافظ درخواست‌های ناامن cross-origin را بلاک می‌کند**، خصوصاً برای متدهایی مثل `POST`, `PUT`, یا `DELETE`
* با استفاده از هدر `Sec-Fetch-Site` برای تشخیص اینکه درخواست واقعاً متعلق به دامنه میزبان است یا خیر
* در صورتی که این هدر موجود نباشد، از هدر `Origin` استفاده می‌کند و آن را با `Host` مقایسه می‌کند ([
tip.golang.org][1], [antonz.org][2])
* متدهای `GET`, `HEAD` و `OPTIONS` همیشه مجاز هستند چون تغییر حالت سرور محسوب نمی‌شن


💻 مثال کاربردی


``` go
package main

import (
"io"
"log"
"net/http"
)

func main() {
mux := http.NewServeMux()
mux.HandleFunc("/get", func(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "GET ok\n")
})
mux.HandleFunc("/post", func(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "POST ok\n")
})

anti := http.NewCrossOriginProtection()
anti.AddTrustedOrigin("
https://example.com")
anti.AddTrustedOrigin("https://*.
example.com")

srv := &http.Server{
Addr: ":8080",
Handler: anti.Handler(mux),
}
log.Fatal(srv.ListenAndServe())
}
```

🧪 رفتارها:
درخواست محلی معتبر
:


  curl -X POST https://localhost:8080/post \
-H "sec-fetch-site:same-origin"


→ خروجی: POST ok

* درخواست cross-origin با هدر sec-fetch-site اشتباه:


  curl -X POST https://localhost:8080/post \
-H "sec-fetch-site:cross-site"


→ پاسخ: cross-origin request detected from Sec-Fetch-Site header

* درخواست Origin متفاوت از Host و بدون sec-fetch-site:


  curl -X POST https://localhost:8080/post \
-H "origin:https://evil.com" \
-H "host:localhost"


→ پاسخ: cross-origin request detected, and/or browser is out of date: Sec-Fetch-Site is missing, and Origin does not match Host

* درخواست از یک origin مورد اعتماد:


  curl -X POST https://localhost:8080/post \
-H "origin:https://example.com" \
-H "host:localhost"


→ خروجی: POST ok

* درخواست GET از هر origin:


  curl https://localhost:8080/get \
-H "origin:https://evil.com"


→ خروجی: GET ok

---

جمع‌بندی

| 💡 استفاده آسان | فقط wrap کردن http.Handler با CrossOriginProtection |

| 🔐 بدون توکن اضافی | با استفاده از داده‌های Fetch metadata |

| 🔄 فعال‌سازی برای همه non-safe متدها | به‌صورت پیش‌فرض |

| 🎯 امکان تعریف originهای قابل‌اعتماد | با AddTrustedOrigin |

| 🧭 پشتیبانی مرورگرهای مدرن و fallback برای مرورگرهای قدیمی | استفاده از Origin در صورت نبود Sec-Fetch-Site |
Forwarded from Linuxor ?
یکی از مشکلات مک‌اوس اینه که بیشتر اپ‌های رایگانش یهویی پولی می‌شن.
ولی این ریپو یه لیست کامل از اپ‌های کاملاً متن‌باز برای مک جمع کرده که یا خودت می‌تونی بسازیشون یا بدون دردسر نصبشون کنی.

github.com/serhii-londar/open-source-mac-os-apps

@Linuxor
Forwarded from Linuxor ?
یه زمانی خوندن مقاله‌های یادگیری عمیق کار هر کسی نبود، ولی این ریپو کاری کرده که دقیقاً بدونی اول چی رو بخونی، بعدش چی، و چرا.

برای کسایی که می‌خوان پایه‌ی تئوری قوی‌تری از دیپ لرنینگ داشته باشن (مثلاً برای دکتری یا ریسرچ)، این نقشه راه یه جهته: مستقیم از سطح پایه تا مقاله‌های cutting-edge مثل AlphaGo و BERT.

github.com/floodsung/Deep-Learning-Papers-Reading-Roadmap


@Linuxor
Forwarded from Linuxor ?
اگه فایل اندروید APK داری ولی سورس‌کدشو نداری ولی می‌خوای ببینی اون پشت چه خبره با jadx می‌تونی اونو decompile کنی و کدهای جاوا یا کاتلین (تقریباً قابل‌خوانا) از دل باینری‌ها بکشی بیرون.
برای مهندسی معکوس، بررسی امنیت یا حتی فهمیدن اینکه یه کتابخونه چطور کار می‌کنه چیز خوبیه.

github.com/skylot/jadx

@Linuxor
Forwarded from یک برنامه نویس تنبل (Lazy 🌱)
🔶 احتمالاً شش ماه آینده در دنیای هوش مصنوعی، دیوانه‌کننده‌ترین و عجیب‌ترین دوره‌ای خواهد بود که تا حالا دیده‌ایم.

@TheRaymondDev
Forwarded from Morteza Bashsiz مرتضی باشسیز (Morteza Bashsiz)
بیشتر منظورمان تمساح‌ها و پشه‌های آمریکا هستند
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
اگه پیشنهادی دارید یا دوست دارید یه چیز خاص تر توی کانال ببینید، حتماً تو کامنت همین پست بگید. خوشحال می‌شم پست‌ها رو جوری بسازم که بیشتر به دلتون بشینه 😊
Forwarded from یک برنامه نویس تنبل (Lazy 🌱)
🔶 برادرم به استریم بازی می‌پردازد، در صورت تمایل می‌توانید بیننده استریم او باشید.

https://www.aparat.com/ARMOND.GAMER/live

@TheRaymondDev
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
این چند وقته نبودم و واقعا نیاز به استراحت ذهنی داشتم.
به زودی دوباره فعالیت رو شروع میکنم و صد البته چیزهای مفید تریم میزارم
ممنونم از کسایی این مدت به من کمک کردن مخصوصا @real_denver ❤️😊

به امید روزای بهتر و زندگی اروم تر 😊

 
🥷🏻 CHANNEL | GROUP
Forwarded from Gopher Academy
🔴قابلیت FlightRecorder ویژگی های جدید گولنگ نسخه 1.25

در Go نسخه 1.25، ویژگی جدیدی به نام FlightRecorder در پکیج `runtime/trace` معرفی شده
ابزاری سبک برای ثبت رخدادهای اخیر اجرای برنامه، بدون نیاز به فعال بودن کامل `trace` در تمام مدت.

---

🧠 این FlightRecorder چیه؟

📌 به‌صورت خلاصه:

* یک (circular buffer)
برای traceهای اجرا است.
* همیشه در پس‌زمینه اجرا می‌شود، اما فقط داده‌های اخیر را نگه می‌دارد.
* زمانی که نیاز داری (مثلاً هنگام خطا یا کندی)، می‌تونی trace لحظه‌ای رو ازش دریافت کنی.

این ویژگی برای debug کردن اتفاقاتی که چند ثانیه قبل از یک مشکل رخ داده‌اند بسیار مفیده.

---

⚙️ چطور کار می‌کنه؟

1. ابتدا trace.NewFlightRecorder(config) را می‌سازیم.
2. و rec.Start() را فراخوانی می‌کنیم.
3. برنامه اجرا می‌شود و FlightRecorder رخدادهای اخیر را ذخیره می‌کند.
4. در لحظه‌ای خاص (مثلاً هنگام خطا)، می‌تونیم trace را در فایل بنویسیم با rec.WriteTo().

---

مثال کامل:

package main

import (
"fmt"
"log"
"os"
"runtime/trace"
"time"
)

func main() {
// ۱. پیکربندی Recorder
cfg := trace.FlightRecorderConfig{
MinAge: 5 * time.Second, // حداقل مدت نگهداری اطلاعات
MaxBytes: 3 << 20, // 3 مگابایت بافر
}

rec := trace.NewFlightRecorder(cfg)

// ۲. شروع ضبط
if err := rec.Start(); err != nil {
log.Fatal(err)
}
defer rec.Stop()

// ۳. شبیه‌سازی اجرای برنامه
fmt.Println(" برنامه در حال اجراست...")
time.Sleep(7 * time.Second) // این زمان trace می‌شود

// ۴. ذخیره trace هنگام رخداد خاص
f, _ := os.Create("flight.out")
defer f.Close()

if n, err := rec.WriteTo(f); err != nil {
log.Fatal(" خطا در نوشتن trace:", err)
} else {
fmt.Printf(" trace نوشته شد (%d bytes)\n", n)
}
}


🔍 بررسی trace

برای مشاهده خروجی .out:

go tool trace flight.out


یک رابط گرافیکی در مرورگر باز می‌شود که:

* goroutineها
* block/wait
* garbage collection
* system callها
* و delayها را نمایش می‌دهد.

---

🟢 مزایا

| سبک و کم‌هزینه | همیشه در حال اجرا است اما فقط بخشی از اطلاعات را نگه می‌دارد. |

| برای production مناسب | نیاز به فعال‌سازی trace کامل نیست. |

| ابزار عالی برای تحلیل post-mortem | مخصوصاً وقتی crash یا slowdown بدون هشدار قبلی رخ داده. |

| کاملاً سازگار با `go tool trace` | بدون نیاز به ابزار جدید. |
چون نظرسنجی گزینه‌هاش محدود میشه و می‌خوام یک دوره‌ای رو شروع کنم توی یوتوب، بیاید پیشنهاداتتون رو بنویسید :))

فقط اگر پیشنهادتون با فرد دیگه‌ای مشترک بود اون رو لایک (👍) کنید تا تعداد کامنت‌ها بیشتر نشه، ۳ تا گزینه با بالاترین لایک هم به ترتیب ضبط می‌شن.


ساعت ۱۲ بررسی می‌کنم کامنت‌ها رو.

صرفاً اضافه کنم که، لطفاً پیشنهاداتتون کلی نباشه.
@SohrabContents
دوستان دقت کنید، نوشتم دوره

بعضی پیشنهادات خیلی کلی‌ان، مثلاً Ai، بعضی‌ها هم خیلی سادن و ازشون هزارتا مورد هست مثل شخصی‌سازی میزکار.


بعضی‌ها هم زیرمجموعه همون آموزش لینوکسی‌ان که قبلاً ضبط کردم :)))