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

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Linuxor ?
ترجیح شرکت ها به گیتهاب های کویری بجای گیتهاب های سرسبز برای استخدام!

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

این یعنی بیشتر به مفید بودن شما برای خودشون اهمیت می‌دن نه اون 20k استار گیتهابتون در واقع دنبال نابغه نیستن یه حد معمولی بدونید و بتونید براشون کار ‌کنید کافیه.


@Linuxor
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۶۷۹

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

#مولانا | گنجور
📍@iipoem
یه ریپازیتوری گیت‌هاب راه‌اندازی کردم که بهترین منابع یادگیری جاوا رو با تمرکز روی سیستم دیزاین، معماری نرم‌افزار و امنیت جمع‌آوری کنیم. شامل کتاب‌ها، دوره‌های ویدیویی، مقالات، نمونه‌کدها و نکات کاربردی.

https://github.com/Parsa-Parvizi/Java-Toturial

@DevTwitter | <Parsa-py/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰دستورات کمتر دیده شده در لینوکس #سری بیست و چهارم
🔰دستور udisksctl
در لینوکس برای مدیریت دیسک‌ها و پارتیشن‌ها استفاده می‌شوند. در اینجا توضیحی درباره دو دستور شما ارائه می‌شود:



🔹دستور udisksctl: این دستور برای مدیریت دیسک‌ها و پارتیشن‌ها در لینوکس استفاده می‌شود.
🔹گزیه mount: این بخش از دستور به سیستم می‌گوید که پارتیشن مورد نظر را به یک نقطه (دایرکتوری) در سیستم فایل متصل کند.
🔹گزینه unmount: این بخش از دستور به سیستم می‌گوید که پارتیشن مورد نظر را از سیستم فایل جدا کند.

دستور اتصال
udisksctl mount -b /dev/sdb1

دستور جدا کردن
udisksctl unmount -b /dev/sdb1



📌نویسنده: حسین سیلانی
📌منبع :  آکادمی کندوی دانش
https://learninghive.ir
Forwarded from Geek Alerts
موزیلا میگه فقط تا سپتامبر ۲۰۲۵ (شهریور ۱۴۰۴) از مرورگر فایرفاکس روی ویندوز قبل از ۱۰ مثل سون، ۸ و ۸.۱ پشتیبانی میکنه و بعد از این تاریخ دیگه آپدیت‌های امنیتی برای این نسخه‌ها منتشر نمیشن.

البته خیلی دور از ذهن هم نیست چون نسخه‌های از ویندوز رو داره میگه که خود مایکروسافت سال‌ها هست دیگه ازشون پشتیبانی نمیکنه و امنیت کافی برای اتصال به اینترنت رو هم ندارن.

🔗 windowsreport
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
اپل اینتلیجنس یه قابلیتی داره که میشه Siri رو برد روی ChatGPT تا جواب‌هارو اون بهت بده، الان خبر رسیده که اپل داره Gemini گوگل‌رو هم اضافه میکنه و کاربرهای اکوسیستم اپل میتونن بین گوگل و OpenAI حق انتخاب داشته باشن.

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

🔗 9to5mac
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Woland's Linux Journal (Woland)
Media is too big
VIEW IN TELEGRAM
💠بازی بالدورز گیت روی آرچ لینوکس 💠

ویدیویی که یکی از دوستان گرفته از بازی محبوب بالدورز گیت که روی آرچ و کی‌دی‌ای با استفاده از ویلند و لوتریس داره به بهترین شکل اجرا میشه.

ویدیو دارای توضیحات خیلی خوبیه و توصیه می‌کنم از دست ندین.

#آموزش #بازی
#gaming_on_linux
#baldursgate
#بالدورزگیت
اگر دنبال یک سرویس URL Shortner یا همون کوتاه کننده لینک برای سایتتون هستین پروژه Sink رو توصیه می کنم.
بر روی Worker کلود فلر با استفاده از دیتابیس KV اجرا میشه و طبیعتا پرفورمنس خیلی خوبی بهتون میده.
https://github.com/ccbikai/Sink

@DevTwitter | <Ali Saleh/>
Rust 1.85.0:

بهترین چیزی که اضافه شده بنظرم؛ async closure هست.

let mut vec: Vec<String> = vec![];

let closure = async || {
vec.push(ready(String::from("")).await);
};


این موضوع خیلی کار رو نسبت به async block ها راحت‌تر می‌کنه دیگه درگیری ownership و ... رو نداره.

Rust edition 2024
هم همزمان منتشر شده؛ که یک سری رزرو جدید و ... داشته

Rust Blog

نظرشخصی:
بنظرم هرچی بیشتر جلو میریم کد زدن توی Rust راحت‌تر و تمیزتر خواهد شد.
🔥 چطور با FFmpeg فیلم ببینیم ؟
وقتی در مورد FFmpeg صحبت میکنیم داریم در مورد سه ابزار
💠ابزار FFmpeg
💠ابزار FFplay
💠ابزار FFprob
صحبت میکنیم که همراه با FFmpeg نصب میشه. در پست قبلی خیلی مقدماتی بخش FFmpeg Tool را معرفی کردم حالا FFplay
ابزار FFplay ساده و قدرتمند
بر پایه SDL (Simple DirectMedia Layer) و از FFmpeg برای رمزگشایی و پخش استفاده می‌کنه.

ویژگی‌های خاص FFplay
😎 سبک و سریع کم‌حجم است
🔥 می‌توان ویدیوها را مستقیماً از آدرس‌های اینترنتی (مانند RTMP، HLS، HTTP، RTP) پخش کرد:
ffplay http://example.com/stream.m3u8

پخش فریم به فریم
مکث: Space
حرکت فریم به فریم: s

پشتیبانی از فیلترهای ویدیویی در لحظه
ffplay -i input.mp4 -vf "hflip"

پخش زنده از وب‌کم و دستگاه‌های ورودی
ffplay -f v4l2 -i /dev/video0

نمایش اطلاعات متاداده در لحظه
ffplay -i input.mp4 -stats

کنترل سرعت پخش – امکان تغییر سرعت پخش با استفاده از گزینه‌هایی مانند -af atempo=1.5 برای افزایش سرعت صدا.
🔥منتظر ادامه آموزش باشید
❤️ ممنون از حمایت هاتون 💐🌺
#linux
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
گراک احتمالا این هفته دستیار صوتی خودش‌رو منتشر کنه و مشخص شده دو تا صدای اولیه زن Ara و مرد Rex رو داره و حالت‌های شخصی‌سازی داره که میشه از دستیار صوتی بخواید توی اون سبک باهاتون صحبت کنه.

احتمالا خیلی جنجالی بشه چون سبک‌های مثل Romantic یا Stoner رو میشه استفاده کرد و از طرفی Grok محدودیت‌ها و سانسورهای بقیه مدل‌ها مثل دستیار ChatGPT یا Siri و بقیه دستیارهارو نداره.

🔗 techdevnotes
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
ترامپ و ایلان ماسک ایمیل زدن به کارمندای دولت که تا دوشنبه وقت دارید بگید هفته گذشته چه کارایی انجام دادید و عدم ارسال گزارش مساوی استعفا هست.

واکنش‌های مثبت و منفی زیاد بوده مثلا اتحادیه کارمندان دولت این اقدام رو «ظالمانه و بی‌احترامی» خونده و تهدید کرده که با هر «اخراج غیرقانونی» مقابله می‌کنه.

از طرفی چون این ایمیل برای تمام کارمندان فدرال ارسال شده پس کارمندهای FBI هم اون‌رو دریافت کردن و FBI از کارمندهاش خواسته که به این ایمیل جواب ندن.

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

🔗 BBC
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
اگه از دیتابیس های NoSQL مثل MongoDB استفاده میکنید این ریپو خیلی به کارتون میاد. انواع مثال ها و اپلیکیشن ها درمورد RAG و AI Agents و یوزکیس های صنعتی را شامل میشه ( notebook ها و app های کامل).
Github: https://github.com/mongodb-developer/GenAI-Showcase

@DevTwitter | <Mehdi Allahyari/>
Forwarded from تهلاگ / Tehlug
📌 تجربیاتم از نوشتن یکم پکیج دبیان
🧑🏻‍💻 آرمان طاهری
🔥 رویداد شمارهٔ ۲۷۶ تهلاگ

🔗 مشاهده در یوتیوب

@TehranLUG
اگه Cursor Pro میخواید، این ریپو عالیه :))) راضیم ازش.
https://github.com/kingparks/cursor-vip

@DevTwitter | <Pedram/>
Forwarded from Gopher Academy (Bardia 👑)
💙هر روزتان نوروز نوروزتان پیروز🥂🥂

❤️ سالی به مهربانی میترا 🔥 به نیکی زرتشت 👑 به اقتدار کوروش داشته باشید

💜 نوروز بر همگی دوستان همایون باد 🌞 🌷 🍻
🕊 نوروز ۲۵۸۳ فرخنده باد

🕊 @gopher_academy | @
Forwarded from Gopher Academy
در Go (یا Golang)، گوروتین‌ها (goroutines) واحدهای سبک‌وزنی هستند که به صورت همزمان (concurrent) اجرا می‌شوند. هر گوروتین به طور مستقل اجرا می‌شود و مدیریت آن‌ها توسط زمان‌بند (scheduler) زبان Go انجام می‌گیرد.

وقتی شما یک مکانیزم ریکاوری (recovery mechanism) در گوروتین اصلی (main goroutine) قرار می‌دهید، این مکانیزم فقط برای خطاهایی که در همان گوروتین اصلی رخ می‌دهند، عمل می‌کند. این مکانیزم به طور خودکار روی گوروتین‌های فرزند (child goroutines) تأثیری ندارد. دلیل این موضوع به شرح زیر است:

---

### ۱. گوروتین‌ها مستقل هستند:
هر گوروتین یک واحد اجرایی مستقل است. اگر یک گوروتین فرزند دچار panic شود، این panic فقط روی همان گوروتین تأثیر می‌گذارد و به گوروتین‌های دیگر (از جمله گوروتین اصلی) سرایت نمی‌کند. بنابراین، مکانیزم ریکاوری که در گوروتین اصلی قرار داده‌اید، نمی‌تواند panic گوروتین‌های فرزند را بگیرد.

---

### ۲. panic و recover در Go:
- `panic`:
باعث توقف اجرای برنامه در گوروتین فعلی می‌شود و اگر recover نشود، کل برنامه را متوقف می‌کند.
- `recover`:
فقط panic‌هایی را می‌تواند بگیرد که در همان گوروتین رخ داده‌اند. اگر panic در یک گوروتین فرزند رخ دهد و در آن گوروتین recover نشود، panic به گوروتین اصلی منتقل نمی‌شود و باعث crash برنامه می‌شود.

---

### ۳. مثال برای درک بهتر:

package main

import (
"fmt"
"time"
)

func main() {
// مکانیزم ریکاوری در گوروتین اصلی
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered in main goroutine:", r)
}
}()

// ایجاد یک گوروتین فرزند
go func() {
fmt.Println("Child goroutine started")
panic("Something went wrong in child goroutine!") // panic در گوروتین فرزند
}()

// منتظر بمانید تا گوروتین فرزند اجرا شود
time.Sleep(1 * time.Second)
fmt.Println("Main goroutine finished")
}


#### خروجی:
Child goroutine started
panic: Something went wrong in child goroutine!

goroutine 6 [running]:
main.main.func2()
/path/to/file.go:14 +0x95
created by main.main
/path/to/file.go:12 +0x4c


#### توضیح:
- panic در گوروتین فرزند رخ داده است.
- مکانیزم ریکاوری در گوروتین اصلی (main) هیچ تأثیری روی panic گوروتین فرزند ندارد.
- برنامه crash می‌کند، زیرا panic در گوروتین فرزند recover نشده است.

---

### ۴. چگونه panic گوروتین‌های فرزند را recover کنیم؟

برای اینکه panic گوروتین‌های فرزند را بگیرید، باید در هر گوروتین فرزند یک مکانیزم ریکاوری قرار دهید. به این ترتیب، هر گوروتین به طور مستقل panic خود را مدیریت می‌کند.

#### مثال اصلاح‌شده:

package main

import (
"fmt"
"time"
)

func main() {
// مکانیزم ریکاوری در گوروتین اصلی
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered in main goroutine:", r)
}
}()

// ایجاد یک گوروتین فرزند با مکانیزم ریکاوری
go func() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered in child goroutine:", r)
}
}()
fmt.Println("Child goroutine started")
panic("Something went wrong in child goroutine!") // panic در گوروتین فرزند
}()

// منتظر بمانید تا گوروتین فرزند اجرا شود
time.Sleep(1 * time.Second)
fmt.Println("Main goroutine finished")
}


#### خروجی:
Child goroutine started
Recovered in child goroutine: Something went wrong in child goroutine!
Main goroutine finished


#### توضیح:
- panic در گوروتین فرزند رخ داده است.
- مکانیزم ریکاوری در گوروتین فرزند panic را گرفته و برنامه crash نمی‌کند.
- گوروتین اصلی به کار خود ادامه می‌دهد.

---

### ۵. نکات مهم:
- هر گوروتین باید به طور مستقل panic خود را مدیریت کند.
- اگر panic در یک گوروتین فرزند recover نشود، کل برنامه crash می‌کند.
- برای جلوگیری از crash برنامه، حتماً در هر گوروتین فرزند یک مکانیزم ریکاوری قرار دهید.

---

### جمع‌بندی:
مکانیزم ریکاوری که در گوروتین اصلی قرار می‌دهید، فقط panic‌های همان گوروتین را می‌گیرد و روی گوروتین‌های فرزند تأثیری ندارد. برای مدیریت panic در گوروتین‌های فرزند، باید در هر گوروتین فرزند یک مکانیزم ریکاوری جداگانه قرار دهید. این کار باعث می‌شود برنامه شما در برابر خطاها مقاوم‌تر شود و crash نکند.


https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
یک پروژه open source برای راه‌اندازی محیط RAG بصورت لوکال و چت با هر نوع داکیومنت متنی، سازگار با انواع مدلهای موجود آفلاین با سرور ollama و آنلاین با API

https://cinnamon.github.io/kotaemon/

@DevTwitter | <Ehsan Azhdari/>