Dev Perfects – Telegram
Dev Perfects
41 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 DevOps Labdon
پادکست نیمچه برنامه نویس:
این پادکست به شکل روان و داستانی موضوعاتی را در حوزه‌ی دواپس و برنامه نویسی روایت می‌کند.
مثلا در چند اپیزود اخیر به روایت و بررسی کالبدشکافی داون تایم شرکت های بزرگ پرداخته است.
اپیزود های کوتاه و جذاب این پادکست به صورت هفتگی منتشر می‌شوند.


می‌توانید کانال این پادکست را در کست‌باکس دنبال کنید:
https://castbox.fm/vh/6294201

👑 @DevOps_Labdon
Forwarded from Go Casts 🚀
بهتره برنامه گولنگی که مینویسید بتونه از panicهای احتمالای recover کنه خودش رو، چون اگه recover نشه برنامه crash میکنه و باعث میشه کل functionalityهای سرویس (برنامه) بره رو هوا. البته اگه مثلا روی kuber باشید یا با docker-compose باشه یا حتی daemon باشه میتونید restart کنید بصورت خودکار برنامه رو، اما خب اگه اون تیکه از برنامه که داره panic میکنه در hot path باشه خیلی زود مجدد مشکل بوجود میاد.

یه نکته مهمی که در مورد goroutineها وجود داره اینه که اگه شما روی goroutine اصلی (parent) مکانیزم recover در نظر بگیرید تاثیری روی goroutine ساخته شده child نداره و اگه child به هر دلیلی panic کنه ریکاور نمیشه.

خب حالا سوال پیش میاد که ما باید روی هر goroutineی که در برنامه میسازیم یا همون اصطلاحا spawn میشه مکانیزم recover در نظر بگیریم؟
جواب واضحی براش ندارم ولی چند تا نکته دارم که فکر میکنم کمک کنه.
یکی اینکه روی پروسه های long-runningتون حتما panic recover بذارید، مثلا اگه http server دارید معمولا خودشون یه recover middleware دارن فریمورک ها که میشه فعالش کرد.
اگه مثلا یه goroutine دارید که broker consumer هست خوبه که panic recover داشته باشه.
اگه جایی استفاده پیچیده از channelها دارید که confidence ندارید روی فهم communicationشون، چون روی close شدن panic میکنه بهتره recover داشته باشید.

در مورد goroutineهایی که lifetime کوتاهی دارن مثلا قراره یه sms ارسال کنه یا یه http request بزنه لازم نیست تنظیم بشه احتمالا. ولی بهتره یه سری اصول رو کلا رعایت کنید که از panic پرهیز بشه، مثلا تا جایی که میشه و لازم نیست از pointer استفاده نکنید…

این مقاله کوتاه یه تیکه کد آماده کرده که panic رو راحت تر ریکاور کنید در توابع مختلف
Recover panics in all Goroutines you start
https://dev.ribic.ba/recover-panics-goroutines/

نکته آخری هم که دارم اینه که استفاده از panic recover نباید به عنوان یه practice عمومی همه جا استفاده بشه، وجود panic احتمالی نشانه ای برای وجود باگ در پیاده سازی ست که بهتره ریشه موضوع و مشکل پیدا بشه و حل بشه، داشتن ریکاور صرفا برای اینه که تا زمان پیدا کردن مشکل سیستم بصورت reliable کارش رو ادامه بده.

تو تابع panic recover بهتره به اندازه کافی لاگ و متریک خوب بذارید که زودتر مشکل رو پیدا کنید.

@gocasts
#Java

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

@DevTwitter | <Mori/>
این پکیج رو ساختم و روی npm پابلیش کردم
پکیج cli دم دستی و باحالیه

میتونید استراکچر کل فایل و ها و فولدر ها رو در یک ساختار درختی داشته باشید برای درک ساختار پروژه/دایکتوری

نیازی به نصب هم نیست و میتونید مستقیما با npx استفاده کنید
https://github.com/mohammadkhakshoor/tree-lens

@DevTwitter | <Mohammad, The DevOne/>
Forwarded from Python Hints
۹ تا ازون اسکلا رو اینجا هم داریم 🤣😂🤣

تعداد اسکلا داره میره بالا ۴۴ تا شد 🤣😂🤣
Forwarded from Future Pulse Persian
📚 معرفی دو کتاب عالی در زمینه ساختمان داده و الگوریتم‌ها

اگر به دنبال منابع قوی برای یادگیری ساختمان داده‌ها (Data Structures) و الگوریتم‌ها (Algorithms) هستید، این دو کتاب را از دست ندهید:👇

🔵https://skybooks.ir/products/Grokking-Algorithms

Table of Contents

1. Introduction to algorithms
2. Selection sort
3. Recursion
4. Quicksort
5. Hash tables
6. Beadth-first search
7. Trees
8. Balanced trees
9. Dijkstra’s algorithm
10. Greedy algorithms
11. Dynamic programming
12. k-nearest neighbors
13. where to go next

🔵https://skybooks.ir/products/Grokking-Data-Structures

Table of Contents

1. Introducing data structures: Why you should learn about data structures
2. Static arrays: Building your first data structure
3. Sorted arrays: Searching faster, at a price
4. Big-O notation: A framework for measuring algorithm efficiency
5. Dynamic arrays: Handling dynamically sized datasets
6. Linked lists: A flexible dynamic collection
7. Abstract data types: Designing the simplest container—the bag
8. Stacks: Piling up data before processing it
9. Queues: Keeping information in the same order as it arrives
10. Priority queues and heaps: Handling data according to its priority
11. Binary search trees: A balanced container
12. Dictionaries and hash tables: How to build and use associative arrays
13. Graphs: Learning how to model complex relationships in data
Forwarded from Sudoer (Morteza Bashsiz)
سناریو شماره ۱۱ - کوشته شدن پراسس بخاطر کمبود مموری

توی این سناریو متوجه میشیم که سرویس انجینکسمون بخاطر کمبود مموری کوشته میشه

https://youtu.be/koSXviSHvCY
Forwarded from Sudoer (Morteza Bashsiz)
سناریو شماره ۱۰ - افت پرفورمنس بخاطر DNS

توی این ویدیو یه سرویس API داریم که پرفورمنسش افت داشته. توی بررسی‌ها متوجه شدیم که دلیلش عدم پاسخگویی درست DNS هست

https://youtu.be/TGSugQt2fXg
این اپ به طرز عجیبی حجم ویدئو رو کم می‌کنه
کیفیت هم می‌شه تقریبا بدون افت درنظر گرفت، توی این مدت چندتا اپ مختلف مثل vlc و HandBreak رو تست کردم و CompressO با اختلاف شاهکار بود
برای همه پلتفرم‌ها در دسترسه
https://github.com/codeforreal1/compressO

@DevTwitter | <Hosse!n :)/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
Zog: 'Next Gen' Schema Validation for Go

🟢 خلاصه مقاله:
مقاله‌ای که اشاره شده به معرفی دو کتابخانه برنامه‌نویسی، Zod و Zog، می‌پردازد. Zod، کتابخانه‌ای محبوب برای اعتبارسنجی طرح‌های داده به صورت پویا در زبان برنامه‌نویسی TypeScript است. از سوی دیگر، Zog نسخه‌ای مشابه با Zod است که برای زبان Go توسعه یافته تا امکان تعریف و اجرای اعتبارسنجی‌ها بر روی مقادیر و ساختارها را فراهم آورد. هر دو کتابخانه به توسعه‌دهندگان امکان می‌دهند تا اصول و قواعد اعتبارسنجی را برای داده‌ها تعریف کنند و از صحت آن‌ها در زمان اجرای برنامه اطمینان حاصل نمایند. برای دسترسی به کدها و پروژه‌های مربوط به این کتابخانه‌ها، به مخزن GitHub آنها ارجاع داده شده است. این کتابخانه‌ها به ویژه برای توسعه‌دهندگانی که به دنبال راه‌حل‌های موثر برای اعتبارسنجی داده‌ها در برنامه‌های خود هستند، مفید هستند.

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


👑 @gopher_academy
Forwarded from Agora (Alireza Azadi)
و این سایت بامزه که تو مقاله هم بهش اشاره شده، پدیده‌هایی رو لیست کرده که بدون اینکه هیچ ربطی به هم داشته باشن، شبیه به هم رفتار می‌کنن و همبستگی دارن. هدفش یادآوری اینه که correlation is not causation. این خطاییه که وقتی با کمبود اطلاعات یه پدیده رو تحلیل می‌کنیم، دچارش می‌شیم؛ خطایی که خیلی بیشتر از اون چیزی که به‌نظر میاد، رایجه.
#website


اگر این سایتو باز کنید برگی براتون نمیمونه 🙂‍↔️

استفاده کن و لذت ببر ؛)

musicforprogramming.net

🚀 @CoolyCode
هر موقع بحث پیش میاد و حرفی راجع به رفتار برنامه‌نویس‌های تازه‌کار می‌زنی، یکی از یه سوراخی میاد بیرون میگه «شما فکر می‌کنید کی‌اید که صلاحیت نظر دادن دارید؟»
فقط به «تاریخ» این شل اسکریپتی که برای FreeBSD نوشتم نگاه کنید دستتون میاد :))

https://github.com/prp-e/JabirOS-compile

@DevTwitter | <Mohammadreza Haghiri/>
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 ویرایشگر آنلاین Svgviewer

https://www.noscriptviewer.dev/

فایل SVG آپلود کنید و می تواند فایل به فرمت React / Png / Data URI‌ تبدیل کند .

من خودم Data URI‌ خیلی به کارم میاد و استفاده میکنم

@TheRaymondDev | @mehditayebi
مشکل رو پیدا کردم از کجاست، موقع آپدیت سیستم‌دی بوت کرنل قدیمی رو از لیست حذف نمی‌کنه و وقتی بوت میشه سیستم بنابه‌بعضی اتفاقات که مشخصه توی پارتیشن /efi نمیتونه کرنل رو پیدا کنه و بوت شکست میخوره.

این رو من امشب با پیشفرض گذاشتن kernel-install-mkinitcpio و بیلد دوباره پارچ برطرفش می‌کنم.


@SohrabContents
توی این ریپازیتوری لیستی از رنگ های ایرانی اوردم که توی معماری و توی صنایع دستی (و خوراکی های خودمون) استفاده میشده/میشه
میتونین توی دیزاین هاتون استفاده کنید (مخصوصا اگه پروژه ای دارید که مربوط به ایران باشه)

https://github.com/nafasebra/iranian-colors

@DevTwitter | <Nafas Ebrahimi/>
Forwarded from Golden Code (Mordad 🧿)
سلام دوستان عزیزم!

قالب ولزون (Velzon)، محبوب‌ترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉

📅 منتشر شده در ۲۰ بهمن 1403

🔗 مشاهده پیش‌نمایش

با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
و حالتی که پیش میاد اینه که علاوه‌بر کرنل قدیمی کرنل جدید هم میاد توی لیست که حذف شدن کرنل قدیمی رو باید اتوماتش کنم.

همینطور طبق تصویر بالا کرنل fallback هم بدون مشکل ایجاد میشه و خیلی راحت اگر با cmdline کرنل اصلی به مشکل خوردید با این می‌تونید وارد پارچ بشید.

@SohrabContents