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 Curious Geek ⚡️
سلام به همگی ❤️🌱
امشب هم مثل هر هفته ویس کالمون با قدرت پابرجاست.

پوزش میخوام بابت این که دیر داریم اطلاع میدیم.🥲
تو ذهنتون باشه هر هفته این برنامه رو داریم مگر قبلش اعلام کنیم که نیست.
ساعت ۹:۳۰ امشب تا ۱۲ یا حتی بیشتر(ببینیم چی میشه 😅) هیچ مشکلی هم نداره وسطش بیاید!!! هر ساعتی تونستید بیاید

موضوعات امشب خیلیی جذابن امیدوارم از دستش ندید!
🕺 "اگه بخوای یه مهارت غیرفنی یاد بگیری، چی انتخاب می‌کنی؟"
🎭 "نقشی که دوست داشتی توی یه فیلم بازی کنی چی بود؟"
🎮 "بازی دوران کودکی که هنوزم دلت براش تنگ میشه"
🌚 "اگه می‌تونستی یک روز با کسی عوض بشی، کی رو انتخاب می‌کردی و چرا؟"
🏝️ "اگه هیچ محدودیتی نداشتی، الان کجای دنیا بودی و چیکار می‌کردی؟"
🎭  "یه چیزی که از بیرون خفن به نظر میاد ولی وقتی تجربه‌ش کردی گفتی: فقط همین بود؟!"

ویس کال در گروه The Geeks برگزار میشه، کافیه از این لینک درخواست بدید تا وال ای برای یک مصاحبه دو دقیقه ای بهتون پیام بده

🔗 t.iss.one/+FYq2IWScw69hMDA8

قانون اصلی: حرف فنی در گروه ممنوع.
🍃🙂

🆔 t.iss.one/TheGeeksCommunity
Forwarded from Codino School (ایمان غفوری)
This media is not supported in your browser
VIEW IN TELEGRAM
بالاخره بعد از ۵ سال... میکروسکوپ رسید به اون حالتی که من همیشه آرزوش رو داشتم.

در نسخه جدید به محض اتمام پردازش برای یک پوشه خاص گزارش در کنسول چاپ میشه و بعد اسکن برای پوشه ی بعدی آغاز خواهد شد.

این کار در پشت صحنه با استفاده از Generator ها و کیورد yield انجام شده.

@codino
علوم کامپیوتر یا مهندسی کامپیوتر؟ مسئله این است.

اگر قصدتون انتخاب کردن رشته‌ی کامپیوتر باشه، دوتا انتخاب دارید:

1️⃣علوم کامپیوتر
2️⃣مهندسی کامپیوتر

تفاوت این دوتا برخلاف تصور واقعا زیاده، اول معرفیشون کنیم بعد به چنتا از ویژگی هاشون بپردازیم.

علوم کامپیوتر درواقع رشته‌ایه که ارتباط نزدیک‌تری به ریاضیات کاربردی داره و ریاضیات نقش زیادی توش ایفا میکنن. از شروط واقعا لازم برای خوندن این رشته داشتن علاقه به ریاضیه.

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

🔄 سیکل دنیای کامپیوتر به این شکله:

1️⃣ دانشمندان کامپیوتر میان یک‌سری الگوریتم هارو میسازن و محاسبات رو انجام میدن و کدش رو مینویسن.

2️⃣ مهندسان کامپیوتر میان با قطعاتی که مهندسان برق تولید کردن این الگوریتم هارو توی کامپیوتر جاساز میکنن.

‼️ یعنی الگوریتم های معروف رمزنگاری، انکریپشن، پروتوکل های ارسال مدیا و ... همشون توسط کسانی که علوم کامپیوتر خوندن ساخته میشن و محاسباتشون انجام میشه و بعد implement میشن.

بررسی این رشته برای آینده:

1️⃣ مهاجرت:
تو خارج از ایران ما Computer Science داریم و چیزی تحت عنوان Comuter Engineering اصلا شناخته شده نیست. موقعیت علوم کامپیوتر بهتره.

2️⃣ استخدامی دولتی:
مهندسی کامپیوتر فراخوان های استخدامی بیشتری رو به خودش اختصاص داده ولی جدیدا علوم کامپیوتر هم تک و توک درخواست میکنن.

3️⃣ استخدامی شرکت های خصوصی:
حقیقتا فرقی نداره؛‌ اینجا بیشتر مهارتتون رو میسنجن، ولی من اگر بخوام کسی رو که میخواد رو نرم‌افزارم کار کنه رو استخدام کنم نه سخت‌افزار، ترجیحم اینه کسی که علوم کامپیوتر رو «درست» خونده باشه روش کار کنه.

💎 آینده‌ی علوم کامپیوتر با وجود پیشرفتای Ai و ML و NLP و ... خیلی روشن‌تر بنظر میاد. و البته اینو باید اشاره کنم که اکثر زیرشاخه های کامپیوتر تو ارشد توی علوم کامپیوتر هستن (شبکه، امنیت شبکه، هوش مصنوعی، یادگیری ماشین و ...)

درنهایت، ببینید علاقتون چیه و به کدوم سمت میخواید برید. علوم کامپیوتر یه رشته‌ی به نسبت جدیدتره تو ایران و هر سال دانشگاه های بیشتری دارن ارائش میدن. سالی که من کنکور دادم (۱۴۰۳) گزینشش کشوری بود (یعنی سهمیه بومی و قطبی و ... نداشتید) و با رتبه کشوریتون قبولیتون اعلام میشد.

امسال رو خبر ندارم.
موفق باشید.

🔗 @NimaCodez
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Gopher Academy
🔐 مفهوم Mutex در Go

اsync.Mutex یک اصل اساسی برای کنترل دسترسی امن به منابع مشترک بین goroutineها است. این نوع قفل تضمین می‌کند که در هر لحظه تنها یک goroutine به بخش حیاتی از کد (critical section) دسترسی دارد

---

🧠 وضعیت‌های مختلف Mutex

می‌توان عملکرد آن را با وضعیت‌های زیر توضیح داد:
ا
ا* Unlocked (حالت اولیه): Mutex آزاد است و هر goroutine می‌تواند با فراخوانی Lock() آن را بگیرد.
ا* Locked: وقتی یک goroutine Lock() می‌زند، دیگران باید منتظر بمانند.
ا* Waiting: در صورت تلاش هم‌زمان چند goroutine برای گرفتن قفل، بقیه به صف انتظار اضافه می‌شوند.
ا* Starvation Mode: اگر یک goroutine بیش از \~۱ms نتواند قفل را بگیرد، سیستم وارد حالت گرسنگی (fair mode) شده و به ترتیب به goroutineهای قدیمی‌تر اجازه دسترسی می‌دهد ([CSDN Blog][3], [Zhihu Zhiwan][4]).

---

⚙️ عملکرد درونی Mutex

* از عملیات غیرقابل قطع (CAS) برای کنترل فیلد state استفاده می‌شود.
* در شرایط کم‌رقابت ابتدا به‌صورت spinning تلاش می‌کند تا حد ممکن بدون خوابیدن lock را بگیرد.
* در سطوح بالای رقابت، goroutineها به صف انتظار اضافه می‌شوند و بیدار می‌شوند وقتی قفل آزاد شد.
* حالت starvation زمانی فعال می‌شود که یک goroutine مدت طولانی در انتظار است تا از حالت FIFO استفاده شود

---

نکات کاربردی و بهترین شیوه‌ها

1. هیچ گاه Mutex را کپی نکنید؛ حتی تصادفاً**—مستقیماً باید از pointers استفاده شود
2. هیچ‌گاه موضعی در struct آن را جاسازی (embed) نکنید، چون باعث در دسترس‌پذیری ناخواسته متدهای Lock/Unlock می‌شود
3. از
defer m.Unlock() برای اطمینان از آزادسازی قفل حتی در صورت panic یا return زودهنگام استفاده کنید
4. بخش قفل‌شده باید حداقل زمان ممکن طول بکشد؛ انجام عملیات بلندمدت در آن ممکن است باعث کاهش concurrency و تأخیر جدی شود.

---

⚠️ مشکلات رایج و اشتباهات متداول

* **کپی ناخواسته Mutex: حذف ایمنی synchronization و موجب رفتار نامشخص.
ا* embedding Mutex: باعث انتشار متدهای داخلی قفل به بیرون struct می‌شود — روش اشتباهی است
ا* Double Unlock یا Unlock بدون Lock قبلی → panic.
* عدم رعایت defer → ممکن است در صورت خطا یا exit، قفل آزاد نشود و deadlock رخ دهد.
ا* Deadlock ناشی از تداخل دو یا چند goroutine با mutexهای متفاوت و انتظار متقابل بر مبنای نظم اشتباهی بین Lock()ها.
Forwarded from Untibody
یه گاوی از مجلس میگه «باید به مردم آموزش‌هایی داد که نمونه آن استفاده از آب خاکستری یا تصفیه مجدد آب مصرفی است که از سال‌ها پیش در برخی کشورها رایج بوده است»
کم کم باید آموزش ببینیم چطوری با سر مورچه وحشی بخیه بزنیم
با جویدن و قراردادن گزنه رودخانه روی زخم‌هایمان از خونریزی و عفونت جلوگریری کنیم
Forwarded from Linuxor ?
اگه به فارسی برنامه نویسی کنیم به دیکشنری باید بگیم فرهنگ لغت :)

@Linuxor
کتابخونه ormax به عنوان سریع‌ترین ORM تو پایتون شناخته شد

این کتابخونه با شکست دادن SQLAlchemy و Turtoise تونسته تو بنچمارک بین ORM های معروف برنده بشه...
و این پروژه در سطح جهانی درحال معروف شدن هست.

https://github.com/shayanheidari01/ormax

@DevTwitter | <Shayan Heidari/>
Forwarded from a pessimistic researcher (Kc)
جالب
Mathematical Foundations of Geometric Deep Learning
https://arxiv.org/pdf/2508.02723
Forwarded from Gopher Academy
مقاله‌ی «Top 6 Golang Logging Best Practices» در HackerNoon توسط Lane Wagner در سال ۲۰۲۲ منتشر شده و به بررسی نکاتی اساسی ولی کاربردی درباره‌ی لاگ‌نویسی در زبان Go پرداخته است. در ادامه، خلاصه‌ای مختصر

---

## نکات کلیدی مقاله

1. استفاده از `error` بجای رشته‌ها (strings)
از نوع استاندارد error برای نشان دادن خطاها استفاده کن تا از رفتارهای نادرست مانند نادیده‌گرفتن خطا یا پراکندگی سازوکار خطا جلوگیری شود.

2. Wrap کردن خطاها
بجای لاگ فقط پیام خطا، آن را wrap کن تا محل دقیق رخداد خطا (stack trace یا خط کد) حفظ شود و دیباگ آسان‌تر شود.

3. استفاده از `fmt.Errorf()` برای قالب‌بندی
fmt.Errorf() با قابلیت %w به تو اجازه می‌دهد خطاها را قالب‌بندی و wrap کنی:

   return fmt.Errorf("failed to open file: %w", err)


4. قالب‌دهی structها (Format Structs)
وقتی structها در لاگ‌ها استفاده می‌شن، آن‌ها را قالب‌مند کن تا خواناتر و مفیدتر باشند؛ مثلاً با فرمت:

   fmt.Printf("%+v", myStruct)


5. استفاده از نسخه variadic توابع مانند `fmt.Println()`
ورژن variadic بهت اجازه می‌دهد مولفه‌های مختلف را بدون تلاش برای concatenation دستی به هم بچسبونی. خوانا و منعطف‌تره.

6. استفاده از بسته‌ی استاندارد `log`
برای شروع خوبه، خصوصاً برای پروژه‌های ساده یا کوچک. log پایدار و سبک هست و کافی برای کاربردهای ابتدایی است.

---

جمع‌بندی سریع

اینها اصولی هستند که در بسیاری از آموزش‌ها و بحث‌های Go توصیه می‌شن: استفاده از سیستم خطای داخلی، پیروی از استانداردها در wrap خطا، قالب‌دهی مناسب، و استفاده از امکانات داخلی زبان قبل از رفتن به راه‌حل‌های پیچیده‌تر.

---

توصیه‌های عملی

* لاگ‌نویسی رو با استفاده از خطاهای داخلی Go شروع کن.
* ورودی‌ها رو wrap کن؛ structها رو مرتب قالب بده.
* برای لاگ‌های پیشرفته‌تر، از structured logging استفاده کن (مثل Zap یا Zerolog).
* همیشه context مهم رو مثل request ID در لاگ‌ها نگه‌دار.
* حجم لاگ رو کنترل کن: نه خیلی زیاد باشه که کارایی رو پایین بیاره، نه خیلی کم که مفید نباشه.
Forwarded from Bardiaism
Media is too big
VIEW IN TELEGRAM
آموزش Qt و Qml - انجام پروژه پنل بازی - قسمت چهارم

تو این قسمت از توسعه پنل بازیمون، تصاویر بازی‌های استیم رو میخونیم و نمایش میدیم. بعد از اون میریم سر پیاده‌سازی سیستم یکپارچه‌ای که تو قسمت قبل شروع کردیم که مدیریت همه سورس‌ها (از جمله استیم) رو اون سیستم و لایه‌ی بیرونی انجام میده.
این ویدیو بخاطر طولانی بودن به دو قسمت ۴ و ۵ شکسته شد، قسمت بعدی به زودی آپلود میشه.

گیت‌هاب پروژه:
https://github.com/realbardia/game-panel

لینک ویدیو در کانال یوتیوب:
https://youtu.be/1gwBRMlVpIg

@Bardiaism
سلام، من پروژه‌ای به نام ATOMGPT توسعه دادم که بر پایه NanoGPT ساخته شده. این پروژه با یک data scrapper، داده‌های مورد نیاز شما رو از سایت دلخواه جمع‌آوری می‌کنه و امکان آموزش مدل با تنظیمات دلخواه رو فراهم می‌کنه. چون مدل‌های محلی به دلیل ضعف سخت‌افزاری خروجی ضعیفی دارن، من سیستمی طراحی کردم که پاسخ مدل رو از طریق API به LM Studio می‌فرسته تا خروجی تمیزتری بگیرید. همچنین یه فرانت‌اند با React طراحی شده که ظاهر چت‌بات‌های حرفه‌ای رو شبیه‌سازی می‌کنه. اطلاعات کامل در داکیومنتیشن پروژه هست:
https://github.com/HajDragon/ATOM-GPT.

@DevTwitter | <Dragonborn/>
Forwarded from Bardiaism
Media is too big
VIEW IN TELEGRAM
آموزش Qt و Qml - انجام پروژه پنل بازی - قسمت پنجم

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

این ویدیو بخاطر طولانی بودن به دو قسمت ۴ و ۵ شکسته شد، این قسمت دوم از اون ویدیو هست و قسمت اولش قبلا آپلود شده.

گیت‌هاب پروژه:
https://github.com/realbardia/game-panel

لینک ویدیو در یوتیوب‌:
https://youtu.be/IXOuBzOsVRg

@Bardiaism
موضوع گراف اهمیت بالایی بدست آورده
مخصوصاً knowledge graphs
این کتاب برای علاقه‌مندان به این موضوع و پایتون
Forwarded from Geek Alerts
گیت‌هاب به اشتباه مدل GPT-5 رو زودتر از موعد معرفی کرد، پستش رو پاک کردن، مشخص شد این مدل‌های جدید چیزهایی مثل قابلیت‌های ایجنت محور پیشرفته و توانایی کدنویسی پیچیده دارن.

الان میدونیم قرار هست در ۴ نسخه ارائه بشه که شامل gpt-5 برای کارهای چند مرحله‌ای و سنگین، gpt-5-chat برای مکالمه پیشرفته، نسخه mini برای سرعت و کارهای روزانه و نسخه nano که قراره قیمت رقابتی داشته باشه.

امشب ساعت ۸.۳۰ منتظر رونمایی رسمی ازش باشید. [L]

🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Abolfazl Devs (Abolfazl)
این روزا که همه از وی پی ان استفاده میکنیم من همیشه نیاز دارم چک کنم آی پی و تایم زون مرورگرم تغیر کرده یا نه!

برا همین این وبسایت رو با ورکر کلاد فلر ساختم که هم مشخصات آی پی رو نشون میده هم مشخصات سیستم و تایم زون

ازینجا میتونید بهش دسترسی داشته باشید:

https://i.ixa.workers.dev

اینم سورس کدش تو گیتهاب👇

https://github.com/ixabolfazl/ip-info

نحوه ران کردن برای خودتون تو همین ریپو هست و حتی میتونید دامین شخصی هم وصل کنید که رو دامین خودتون باشه 👌

اگه باهاش حال کردید یادتون نره به ریپو استار بدید😉

📌 @abolfazl_devs
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۲۰۳

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

#مولانا | گنجور
📍@iipoem
دیپلوی کردن n8n فقط Drag & Drop نیست!
این ویدیو برای حرفه‌ای‌هاست که می‌خوان از n8n توی پروژه‌های واقعی و جدی استفاده کنن.
اگه تا حالا فقط با ظاهر ساده n8n کار کردی، اینجا قراره بری چند لِوِل بالاتر!

لینک ویدیو:
https://www.youtube.com/watch?v=nFKAFN9jvW0&list=PLwUWEGKy5kyPMAri3iynEq4X9MGJkQnOy&index=5

@DevTwitter | <Ryan Heida/>