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
اگه 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/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 تایید می شود!

@TheRaymondDev
Forwarded from یه شعر (Poem Bot)
حافظ | غزلیات | غزل شمارهٔ ۲۶۱

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

#حافظ | گنجور
📍@iipoem
Forwarded from Geek Alerts
کره شمالی داره از ChatGPT برای آموزش مدل‌های AI تو دانشگاه کیم ایل سونگ استفاده می‌کنه، با توجه به اینترنت اونجا مشخص نیست چطور به ChatGPT دسترسی دارن.

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

🔗 koreatimes.co.kr
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Code Module | کد ماژول (𔓙)
از لودینگ های معمولی خسته شدی؟ برو سراغ skeleton 💀

سایت skeletonreact ابزاری برای ایجاد کامپوننت‌های اسکلت انیمیشنی هست و از خروجی در قالب‌هایی نظیر React، ‏React Native‏، Vue و Vanilla HTML پشتیبانی می‌کنه. انیمیشن های اسکلتی رو میتونیم به‌ عنوان جایگزینی برای لودینگ‌های معمولی و خسته کننده در نظر بگیریم، و اونها به ما این قابلیت رو میدن که به کاربران پیش‌نمایشی از ساختار صفحات، مثل مکان‌نماهایی برای متون یا تصاویر ارائه بدیم تا تجربه کاربری بهتری در زمان بارگذاری داده‌ها فراهم بشه.

🔗 Link

#tools #skeleton
@CodeModule
یک ریپازیتوری تحلیل داده دیگه آماده کردم از تعاملات در شبکه های اجتماعی
اگر دارید در حوزه دیتا آنالیست کار میکنید / یاد میگیرید این ریپازیتوری بهتون کمک میکنه
اگر هم قابل بود استار کنید
https://github.com/MisaghMomeniB/Social-Engagement-Analysis

@DevTwitter | <Misagh Momeni Bashusqeh/>
Forwarded from Geek Alerts
گوگل دیپ‌مایند تعرفه‌ مدل متن به ویدیو Veo 2 رو مشخص کرد، الان هزینه ساخت هر ثانیه ویدیو ۰.۵ دلار هست که معادل ساعتی ۱۸۰۰ دلار (۱۶۵ میلیون تومان) میشه.

🔗 Google
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Geek Alerts
ایلان ماسک میگه وقتشه ایستگاه فضایی بین‌المللی (ISS) رو از مدار خارج کنیم، دیگه کارش رو کرده و ارزش زیادی نداره، میخواد درخواست این‌رو به ترامپ بده و این برنامه پایان دادن به عمر ایستگاه فضایی که برای ۲۰۳۰ از قبل برنامه‌ریزی شده بود رو زودتر و تو سال ۲۰۲۷ انجام بدن.

بعد پیشنهاد داده جای این بیاید بریم مریخ.

🔗 elonmusk
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
یه شعر کم محتوا ولی احتمالا نوستالژی در مورد C!

https://www.youtube.com/watch?v=H4YRPdRXKFs
Forwarded from Linuxor ?
مهندس واقعی کسی نیست که ده تا فریمورک بلده مهندس واقعی کسیه که بدونه یه فریمورک چطوری کار می‌کنه !

روز مهندس مبارک

@Linuxor
Forwarded from Linuxor ?
این ریپو هم جالب بود Composio بهتون این اجازه رو میده که با هوش مصنوعی 250 تا ابزار مختلف رو کنترل کنید

اینجا توی عکس به هوش مصنوعی گفته شده که بره فلان ریپوی گیتهاب رو استار بزنه!

https://github.com/ComposioHQ/composio


@Linuxor
خیلی وقته که دارم روی یک پکیج متن باز کار می‌کنم که یه سری قابلیت‌ها رو به فونت‌ها اضافه کنه که بتونم ابزارهای مخصوص به ساخت فونت فارسی رو از این طریق توسعه بدم. خیلی خام هست ولی چون خیلی براش تست نوشتم دارم بهش بیشتر امیدوار می‌شم.
https://github.com/typoman/RoboFontGadgets

@DevTwitter | <بهمن/>
Forwarded from Syntax | سینتکس (Daimon)
چه کسایی سمت گیتهاب اکشن نسخه رایگانش نرن؟

بنظرم خیلی از موارد گزینه مناسبیه ولی اگه:
ریپازیتوری پرایوت شما بیشتر از 2000 دقیقه در ماه قراره روش جاب های مختلف ورکفلو هاتون اجرا بشه.
ریپازیتوری پابلیک ->‌بیشتر از 16 گیگ رم و 14 گیگ فضا و 4 تا پردازنده نیاز دارید.
ریپازیتوری پرایوت -> بیشتر از 7 گیگ رم و 14 گیگ فضا و 2 پردازنده نیاز دارید.

در غیر اینصورت گزینه خیلی خوبیه مخصوصا برای استفاده شخصی

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

#github #workflow

@syntax_fa
Forwarded from Morteza Bashsiz مرتضی باشسیز (Morteza Bashsiz)
یک عمر به کودکی به استاد شدیم
یک عمر زاستادی خود شاد شدیم
افسوس ندانیم که ما را چه رسید
از خاک بر آمدیم و بر باد شدیم

خیام
Forwarded from تهلاگ / Tehlug
📌 اطلاع‌رسانی رویداد ۲۷۸ تهلاگ

رویداد ۲۷۸ در روز پنج‌شنبه، ۹ اسفند ۱۴۰۳ شامل ۴ ارائه فنی و شبکه‌سازی با حمایت دیجی‌نکست و آروان‌کلاد برگزار می‌شود.

به دلیل محدودیت ظرفیت، ثبت‌نام فردا (۶ اسفند) پس از اطلاع‌رسانی کامل، ساعت ۱۳ ظهر آغاز می‌شود.

🔗 evand.com/events/tehlug278

@TehranLUG
نظرسنجی مرکز پژوهش‌های مجلس: ۴۹ درصد کاربران اینترنت از فیلترشکن رایگان استفاده می‌کنند

‏داده‌های این نظرسنجی نشان می‌دهد که با وجود اینکه ۳۱.۷ درصد از کاربران اینترنت بر این باورند که دولت پزشکیان تا حد «زیاد یا خیلی زیادی» توان رفع محدودیت شبکه‌های اجتماعی را دارد، ۲۶.۷ درصد به آن احتمال کمی داده و ۲۴.۸ درصد رفع فیلترینگ شبکه‌های اجتماعی در دولت او را منتفی می‌دانند.

‏همچنین در این نظرسنجی بیان شده که حدود نیمی از کاربران اینترنت (۴۹.۴ درصد) از فیلترشکن رایگان و ۳۰.۳ درصد از فیلترشکن پولی استفاده می‌کنند. گفتنی است ۱۸.۹ درصد اصلاً از فیلترشکن استفاده نمی‌کنند. /پیوست

🔍 ircf.space
@ircfspace
Forwarded from Linuxor ?
جالبه، بیشتر مردم فکر می‌کنن برنامه نویس ها وقتی بیکار می‌شن می‌آن و به صورت خیرخواهانه چند خط به کد های کرنل لینوکس اضافه می‌کنن

ولی در صورتی که یه تغییر کوچیک بخواین توی کرنل بدین باید از یه فیلتر شدید و تایید نظر برنامه نویس های با ده ها سال تجربه بگذره و بازخورد ها رو دونه دونه جواب بدید و در صورت همخوانی داشتن با کد استایل و استاندارد های از قبل تعریف شده و ارائه مستندات کافی برای مفید بودن تغییرتون تازه یه شانس دارین برای خیرخواهی :)


@Linuxor