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
این روزا دارن به همه پیام میدن میگن سایتتون مشکل امنیتی داره بعد ازتون پول میگیرن

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

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

بعد گفتن عه ندیدیم ببخشید فقط می‌خوان پول بگیرن مراقب باشید

تا الان بالای صد تا پیام از اینا اومده برای ما و مشتریانمون

@poinair پوینا
This media is not supported in your browser
VIEW IN TELEGRAM
دوستانی که مقاله مینویسن یا هرچیز دیگه و نیاز دارن که معادله ریاضیو کپی از ChatGpt، میتونن از این کروم اگستنشن استفاده کنن و به فرمت LaTex و MathML برای ورد خروجی میده میتونید استفاده کنید
کدشو تو گیت هاب گذاشته اگر ایده ای دارید میتونید استفاده کنید

https://github.com/joeeliang/gptCopy

@DevTwitter | <The Boss/>
Forwarded from haashemi.dev
+ عه چه نکته‌ی جالبی، برم به اشتراک بذارم.
اتفاقی که بعد از اشتراک‌گذاری میوفته:

این جمع عالیه. 😂😂😂
Forwarded from Go Casts 🚀
تو جلسات code review به چه چیزایی گیر بدیم؟

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

من سعی میکنم فضای ذهنی تیم رو برای code review به گونه ای آماده کنم که به صورت incremental نحوه ریویو کد تغییر کنه.
مثلا تو جلسه اول یا جلسات اولیه خوبه که به جزیی ترین نکات کد گیر داده بشه و کلا merge requestها کوچیک باشن که بشه سختگیرانه تر ریویو کرد.

هر چقدر که جلسات کد ریویو جلوتر میره سعی میکنم بیشتر روی ساختار کد از نظر معماری و نکات طراحی و چالش های پیاده سازی خاص سخت گیری کنم و دیگه به جزییات کدهای تیپیکال کمتر توجه کنم. چرا؟ چون انتظار دارم بصورت تدریجی هر چقدر که جلو میریم افراد تیم با باید و نبایدهای ریویو بیشتر آشنا شده باشن و نکات معمولی رو رعایت کنن.
استفاده از ابزارهای lint در ci هم میتونه کمک کنه که یه سری سختگیری های ریویو توسط ci انجام بشه و تمرکز reviewer روی همون چالش های اصلی کد باقی بمونه.
همچنین داشتن unit test و end to end test هم میتونه کمک کنه که از نظر لاجیک بیزینسی و functionality صحت سنجی خودکاری در سطح ci رخ بده و در جلسه ریویو کمتر لازم باشه به این نکات توجه بشه.

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

داشتن جلسات solution design و ساختار کد یکپارچه هم کمک میکنه چالش های ریویو کد کمتر بشه چون یکنواختی کد خودش یعنی رعایت کردن اصول مد نظر تیم توسط برنامه نویس.

کلا ریویو کردن کد به عوامل خیلی متنوعی بستگی داره و از جنس بیزینس و کد گرفته تا معماری و ساختار تیم و خیلی چیزای دیگه میتونن تاثیر بذارن روی نحوه برگزاریش و نمیشه یه سری practice خاص رو روی همه پروژه ها اعمال کرد.

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

@gocasts
اگه حافظه در agentic ai لازم دارید langgraph جواب بهتری میده. کاش زودتر اینو دیده بودم
https://github.com/langchain-ai/langgraph

@DevTwitter | <Mohammad Javidan Darugar/>
Forwarded from Geek Alerts
امروز، ۱۲م فوریه، سال‌روز تولد چارلز داروین است.

چارلز رابرت داروین، زیست‌شناس و زمین‌شناس انگلیسی که اکثر ما او را بخاطر یافته‌های بزرگ او برای نظریه فرگشت(به اشتباه معروف به تکامل) می‌شناسیم، است. نظریه او می‌گوید همهٔ گونه‌ها دارای نسب مشترک هستند. امروزه این نظریه در میان دانشمندان پذیرفته شده است و یکی از مفاهیم بنیادی زیست‌شناسی به‌شمار می‌آید و البته تأثیر این نظریه هرگز به زیست‌شناسی محدود نشده و حوزه‌های مختلف دیگری از علم را نیز تحت‌تأثیر قرار داده است. در سال ۱۸۵۹، یک سال پس از انتشار مقاله‌ای مشترک با والاس(زیست‌شناس بریتانیایی)، داروین کتاب خاستگاه گونه‌ها را منتشر کرد و شواهد خود مبنی بر فرگشت را در آن شرح داد. تا دهه هفتاد قرن ۱۹ میلادی، فرگشت به‌عنوان یک حقیقت علمی در میان قشر تحصیل‌کرده پذیرفته شد. با این وجود، پس از ارائه سنتز مدرن در اوایل قرن بیستم، اجماعی در میان دانشمندان پدید آمد و انتخاب طبیعی به‌عنوان پایه و اساس سازوکار فرگشت پذیرفته شد. این کشف علمی داروین ضمن پیوند دادن همه علوم زیستی به یکدیگر، تنوع زیستی را نیز توضیح می‌دهد. این روز در تقویم روز جهانی داروین نام‌گذاری شده است.

https://en.wikipedia.org/wiki/Charles_Darwin
hadi @geekalerts
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
به ChatGPT گفتم با توجه به دیتایی که از من داره و چت هایی که باهاش کردم یه عکس از زندگی روز مرم بسازه ؛)

اگر میخواید بسازه از پرامپ زیر استفاده کنید

based on what you know about me. draw a picture of what you think my current life looks like.


#AI | source

𝗖𝗛𝗔𝗡𝗡𝗘𝗟  |  𝗚𝗥𝗢𝗨𝗣
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
Forwarded from Agora (Alireza Azadi)
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
گذری بر تاریخ لینوکس:
گرفته شده از کتاب فلسفه لینوکس و یونیکس:

در اوایل دهه 1980، Onyx Systems شروع به فروش ایستگاه‌های کاری یونیکس مبتنی بر میکروکامپیوتر کرد که نمایانگر اولین تلاش‌ها برای تجاری‌سازی یونیکس در مقیاس کوچک‌تر بود. در پی این، Sun Microsystems که در ابتدا به‌عنوان یک پروژه دانشجویی در دانشگاه استنفورد تأسیس شده بود، در سال 1982 شروع به فروش ایستگاه‌های کاری رومیزی مبتنی بر یونیکس کرد. این ایستگاه‌های کاری، که اساساً برای استفاده در محیط‌های تجاری طراحی شده بودند، نمونه‌ای از تجاری‌سازی سیستم‌عامل یونیکس در زمینه سخت‌افزار میکروکامپیوتر بودند. در حالی که این ایستگاه‌ها از سخت‌افزارهای اختصاصی استفاده می‌کردند، به‌ویژه از نرم‌افزارهای رایگان و متن‌باز مانند لینوکس که بعدها برای آن توسعه یافت، بهره نمی‌بردند.

با گسترش تجاری‌سازی یونیکس و قفل شدن آن به‌عنوان یک محصول اختصاصی، پروژه گنو (GNU) که در سال 1983 توسط ریچارد استالمن آغاز شد، هدف خود را ایجاد یک "سیستم نرم‌افزاری کامل سازگار با یونیکس" با استفاده از نرم‌افزارهای آزاد قرار داد. این پروژه که در سال 1984 شروع شد، قصد داشت یک سیستم عامل کاملاً آزاد و قابل توزیع برای کاربران ایجاد کند. پس از آن، استالمن در سال 1985 بنیاد نرم‌افزار آزاد را راه‌اندازی کرد و مجوز عمومی عمومی گنو (GNU GPL) را در سال 1989 نوشت. هدف این مجوز این بود که نرم‌افزارهایی که تحت آن منتشر می‌شدند، همواره آزاد و قابل توزیع مجدد باقی بمانند. در اوایل دهه 1990، بسیاری از برنامه‌های ضروری برای یک سیستم‌عامل، از جمله کتابخانه‌ها، کامپایلرها، ویرایشگرهای متن، پوسته خط فرمان و سیستم‌های پنجره‌سازی، تکمیل شدند. با این حال، بعضی از عناصر سطح پایین مانند درایورهای دستگاه، دیمون‌ها و هسته به نام گنو هرد هنوز ناتمام و ناقص بودند.

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

در این بین، توسعه 386BSD، که منجر به ایجاد سیستم‌عامل‌هایی چون NetBSD، OpenBSD و FreeBSD شد، پیش از لینوکس آغاز شد. با وجود پیچیدگی‌های قانونی که مانع از انتشار این پروژه در ابتدا شدند، 386BSD به‌عنوان یک پروژه مهم در دنیای سیستم‌های عامل آزاد شناخته می‌شود. این پروژه به توسعه‌دهندگان و علاقه‌مندان به سیستم‌های عامل متن‌باز امکانات زیادی را ارائه داد.

لینوکس در سال 1991 توسط لینوس توروالدز توسعه یافت. توروالدز در موارد مختلف بیان کرده است که اگر هسته گنو یا 386BSD در آن زمان در دسترس بود، ممکن است او هیچ‌گاه لینوکس را ایجاد نمی‌کرد. به‌ویژه، پروژه گنو با وجود پیشرفت‌های قابل توجه، هنوز بخش‌هایی مانند هسته سیستم‌عامل را نداشت که به لینوکس فرصتی برای پیشرفت در این زمینه داد. این موضوع نشان‌دهنده اهمیت لحظه‌های تاریخی و شرایط خاص زمانی است که باعث می‌شود گاهی اوقات یک پروژه جدید به وجود آید که تأثیرات طولانی‌مدت و گسترده‌ای در تاریخ فناوری داشته باشد.


🔸متن گرفته شده از :کتاب فلسفه لینوکس و یونیکس
🔸ترجمه حسین سیلانی
هر دولوپری باید این چیت‌شیت‌ها رو داشته باشه، وگرنه نصف عمرش بر فناست! توی این پست، یه لیست خفن از مهم‌ترین چیت‌شیت‌هایی که کارتو سریع‌تر، حرفه‌ای‌تر و راحت‌تر می‌کنه رو برات آوردم! از Git و Regex گرفته تا Docker و JavaScript – اینا همون تقلب‌هایی هستن که هر برنامه‌نویسی باید بلد باشه!

1. چیت‌شیت‌ GIT :
https://education.github.com/git-cheat-sheet-education.pdf

2. چیت‌شیت‌ SQL :
https://websitesetup.org/wp-content/uploads/2020/04/MySQL-Cheat-Sheet-websitesetup.org_.pdf

3. چیت‌شیت‌ Regex :
https://adprice.fedorapeople.org/regular-expressions-cheat-sheet-v1.pdf

4. چیت‌شیت‌ Docker :
https://dockerlabs.collabnix.com/docker/cheatsheet/

5. چیت‌شیت‌ UI/UX :
https://lawsofux.com/

6. چیت‌شیت‌ Grid css :
https://css-tricks.com/snippets/css/complete-guide-grid/

7. چیت‌شیت‌ Flexbox css :
https://css-tricks.com/snippets/css/a-guide-to-flexbox/

8. چیت‌شیت‌ JS Methods :
https://maktabkhooneh.org/mag/javanoscript-methods/

9. چیت‌شیت‌ Bootstrap :
https://websitesetup.org/wp-content/uploads/2020/03/Bootstrap-Cheat-Sheet-websitesetup.org_.pdf

10. چیت‌شیت‌ VS code Keywords :
https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf

11. چیت‌شیت‌ Emmet :
https://docs.emmet.io/cheat-sheet/

12. چیت‌شیت‌ OOP in PHP :
https://www.w3schools.com/php/php_oop_what_is.asp

13. چیت‌شیت‌ NPM :
https://docs.npmjs.com/

@DevTwitter | <Amirreza Riahi/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
Feluda: A Tool to Analyze the Licences of Dependencies

🟢 خلاصه مقاله:
این مقاله به معرفی پروژه‌ای می‌پردازد که با استفاده از زبان برنامه‌نویسی Rust انجام شده است، اما برای پردازش وابستگی‌های پروژه‌های Go، Rust یا Node.js قابل استفاده است. این ابزار قادر به ارائه گزارشی در مورد محدودیت‌های احتمالی مربوط به مجوزهای نرم‌افزاری یا نمایش یک رابط کاربری مبتنی بر متن موسوم به "TUI" است. گزارش یا رابط TUI به کاربران امکان می‌دهد تا درک بهتری از جنبه‌های حقوقی و مجوزهای مرتبط با کتابخانه‌ها و ماژول‌های مورد استفاده در پروژه‌های نرم‌افزاری خود به دست آورند. استفاده از این ابزار می‌تواند به توسعه‌دهندگان کمک کند تا از پیچیدگی‌های قانونی اجتناب کنند و تصمیم‌گیری‌های آگاهانه‌تری در مورد انتخاب مجوزها و کتابخانه‌ها داشته باشند.

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


👑 @gopher_academy
Forwarded from Md Daily (Mahan)
+ دواپسمون همش داره ماینکرفت بازی میکنه

- اونایی که میدونن: 💀


داکر یه پروژه ی باحال داره به نام Dockercraft که میتونید مستقیم توی ماینکرفت کانتینر های داکرتون رو مدیریت کنید :)

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

اومدن از Cuberite، یک سرور ماینکرفت متن‌باز و نوشته‌شده با C++، برای پیاده‌سازی Dockercraft استفاده کردن. این سرور از پلاگین‌های Lua پشتیبانی میکنه، بنابراین یک پلاگین اختصاصی برای تعامل با Docker توسعه دادن.

🔹 اجرای عملیات در سمت سرور

کلاینت ماینکرفت بدون تغییر باقی میمونه و تمام پردازش‌ها سمت سرور انجام میشه. پلاگین Lua که در مسیر world/Plugins/Docker قرار داره، یک تب مدیریتی در WebAdmin سرور ایجاد میکنه:

Plugin:AddWebTab("Docker", HandleRequest_Docker)

این باعث میشه درخواست‌های POST به مسیر http://127.0.0.1:8080/webadmin/Docker/Docker ارسال بشن.

🔹 اتصال به Docker Remote API

رویدادهای داکر از طریق سرویس Goproxy که با Golang نوشته شده پردازش شده و به پلاگین Lua منتقل میشن. این سرویس درخواست‌ها را به سرور ارسال می‌کنه:

func MCServerRequest(data url.Values, client *http.Client) {
req, _ := http.NewRequest("POST", "http://127.0.0.1:8080/webadmin/Docker/Docker", strings.NewReader(data.Encode()))
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.SetBasicAuth("admin", "admin")
client.Do(req)
}

🔹 اجرای دستورات از طریق ماینکرفت

پلاگین Lua میتونه از طریق os.execute() با این سرویس ارتباط برقرار کنه. مثلاً موقع ورود یه بازیکن، اطلاعات کانتینرهای داکر بروزرسانی میشن:

function PlayerJoined(Player)
r = os.execute("goproxy containers")
end

این روش امکان مدیریت کانتینرهای Docker را مستقیماً از داخل ماینکرفت فراهم می‌کنه


گیت هاب پروژه:

🔗 https://github.com/docker/dockercraft

---

مثل همیشه کنجکاو بمونید :)

🆔 @MdDaily
تصور کن توی یه سیستم مالی، چند نفر هم‌زمان بخوان همون مبلغ رو برداشت کنن! نتیجه؟ فاجعه‌ای شبیه یه قرعه‌کشی نامنظم!

راه‌حل؟ استفاده از lockForUpdate در Laravel!
چرا؟ چون:
- جلوی برداشت‌های تکراری رو می‌گیره.
- امنیت تراکنش‌های مالی رو تضمین می‌کنه.
- عملکرد سیستم رو توی تراکنش‌های همزمان بهبود می‌ده.

اگه به امنیت و پایداری سیستم مالی اهمیت می‌دی، lockForUpdate رو فراموش نکن!

@DevTwitter | <Navid Vakili/>
🍌1
Forwarded from  (Amiria Maher)
محمد جرجندی به کلاهبردارهای بزرگ می‌پردازه ولی آیا کلاهبردارهای کوچیک که مردم تو nospam.ir و جاهای دیگه، گزارش کردن، ارزش رسانه‌ای شدن رو ندارن؟

#note #موقت
Forwarded from 🎄 یک برنامه نویس تنبل (  MΞ)
🔸Rust(Axum) vs. Go(Gin) Performance Benchmark

https://www.youtube.com/watch?v=31R8Ef9A0iw

@TheRaymondDev
Forwarded from کانال علی شیردستیان (Ali Shirdastian‌ ‌)
استخدام گرافیست برای تیم سوشال برنامه ۱۰۰۱ 🎬🎨

ما به یه نیروی گرافیست خلاق و سریع برای تیم سوشال برنامه ۱۰۰۱ نیاز داریم.

🔹 مهارت‌های لازم:
تسلط به فتوشاپ و ایلاستریتور
آشنایی ابتدایی با پریمیر
سرعت عمل و دقت بالا
روحیه کار تیمی

🔹 وظایف:
🎨 طراحی کاور پست‌های پیج‌های مرتبط با برنامه
🖼 طراحی پوسترهای برنامه
📸 ادیت قاب عکس‌های برنامه
🎬 تدوین و جداسازی بخش‌های مهم برنامه در قالب ویدیوهای کوتاه

📍 محل کار: گرمدره
زمان کاری: براساس آفیش پروژه
🚗 مزایا: سرویس رفت‌وبرگشت + وعده‌های غذایی
📅 استراحت: یک یا دو روز آف در هفته

🔗 رزومه‌ها بعد از بررسی و اعتبارسنجی توسط من، به تیم تهیه‌کننده منتقل می‌شه:

@shirdastian
Forwarded from Persian LUG
پرشین‌لاگ
برلین، سه‌شنبه ۴ فوریه ساعت ۱۸:۳۰

موضوع: زبان Monkey C و بحث آزاد


📍 Cafe Chagall, Kollwitzstraße 2, Berlin


🌐 http://persianlug.com
📢 @persianlug
💬 @persianlug_chat