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 Geek Alerts
روسیه گوگل‌ رو ۲,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰ روبل جریمه کرده چون چندتا کانال روسی داخل یوتیوب مسدود شده، حالا درسته پول روسیه کم‌ارزشه و گوگل هم پولدار ولی این جریمه از ارزش کل کره‌ زمین بیشتره.
نکته جالبش اینه که گوگل ۹ ماه فرصت داره این جریمه رو پرداخت کنه و در صورت عدم پرداخت این جریمه هر هفته ۲ برابر میشه.
tomshardware
@geekalerts
📢 اطلاعیه مهم

دوستان عزیز!

به اطلاع می‌رسانیم که به دلیل پاره‌ای از مشکلات فنی، سایت کتابخانه آزاد فارسی به نشانی persianccbook.org با تأخیر مواجه شده و ۱۵ روز دیگر به صورت کامل لانچ خواهد شد. 🎉

اما خبر خوب این است که بتای عمومی سایت امشب در دسترس قرار می‌گیرد! 📖🔥 با استفاده از نسخه بتا می‌توانید نه به صورت کامل ولی به برخی از محتوای سایت دسترسی داشته باشید و بازخوردهای ارزشمندتان را با ما در میان بگذارید تا به بهبود هرچه بیشتر آن کمک کنید.

منتظر حضور گرم شما هستیم! 🌹


@PersianCCBook
Forwarded from Syntax | سینتکس (Daimon)
~> چالش‌های یادگیری Go برای برنامه‌نویس‌های تازه‌کار 🥰

یکی از مهم‌ترین چالش‌هایی که برنامه‌نویس‌های جدید موقع یادگیری Go باهاش روبرو می‌شن، درک مفهوم کانکارنسی هستش. Go با معرفی goroutines و channels سعی می‌کنه مدل ساده‌ای برای برنامه‌نویسی همروند ارائه بده، اما درک عمیق این مفاهیم برای افرادی که تازه شروع کردن سخت می‌شه.

ارور هندلینگ در Go هم چالش دیگه‌ای هستش که برنامه‌نویس‌های جدید باهاش درگیر می‌شن. برخلاف زبان‌هایی مثل Java که از try-catch استفاده می‌کنن، Go از یک پترن ساده‌تر با استفاده از مقادیر error استفاده می‌کنه. این روش باعث می‌شه کد تمیزتر بشه، اما نیاز به چک کردن مکرر خطاها داره که می‌تونه برای تازه‌کارها گیج‌کننده باشه.

درک سیستم تایپ‌های Go برای برنامه‌نویس‌هایی که از زبان‌های شی‌گرا میان می‌تونه چالش‌برانگیز باشه. Go اصلاً یک زبان شی‌گرا نیست و به جای کلاس و آبجکت، از type برای تعریف struct‌ها و interface‌ها استفاده می‌کنه. این struct‌ها و interface‌ها صرفاً تایپ هستن و برای داک تایپینگ استفاده می‌شن. این تفاوت پارادایم برای کسایی که با OOP آشنا هستن می‌تونه گیج‌کننده باشه.

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

سیستم پکیج‌های Go و نحوه مدیریت dependency‌ها هم می‌تونه گیج‌کننده باشه. از Go 1.11 به بعد، سیستم module معرفی شد که اگرچه مشکلات قبلی GOPATH رو حل کرده، اما یادگیری نحوه کار با go.mod و go.sum برای تازه‌کارها زمان‌بر هستش.

یکی از ویژگی‌های خاص Go که درکش برای برنامه‌نویس‌های جدید سخت می‌شه، interface‌ها هستن. Go از implicit interface implementation استفاده می‌کنه که با زبان‌های دیگه متفاوت هستش و نیاز به تغییر دیدگاه داره.

نکته دیگه‌ای که برای برنامه‌نویس‌های تازه‌کار چالش‌برانگیز می‌شه، عدم وجود جنریک‌ها تا قبل از Go 1.18 بود. حالا که جنریک‌ها اضافه شدن، یادگیری syntax و best practice‌های مربوط به اون‌ها خودش یه چالش جدید محسوب می‌شه.

همچنین، Go یه سری قوانین سخت‌گیرانه در مورد code formatting و نام‌گذاری داره. مثلاً اگه یه متغیر exported تعریف کنی، حتماً باید با حرف بزرگ شروع بشه، یا اینکه هر statement باید با semicolon تموم بشه (که البته کامپایلر خودش اضافه می‌کنه). این قوانین اگرچه به خوانایی کد کمک می‌کنن، اما رعایت کردنشون برای تازه‌کارها می‌تونه سخت باشه.

Source

@Syntax_fa
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Forwarded from Anony Notes
یه مدتی دنبال جایی می‌گشتم که پولامو سرمایه‌گذاری کنم و پایین نیاد توی طولانی مدت و یهو از دست ندم سرمایه‌مو

دلار ( توی خیلی طولانی مدت میره بالا ولی ریسکه )
طلا ( هیچوقت توی مدت بالا پایین پایین نمیاد و عالیه ولی نگهداریش و اجرت و دردسر داره...)

بعد با طلای مجازی آشنا شدم 😐
چیز جالبیه، دیگه نگرانی اجرت و نگهداری طلا رو نداره و هرچقدر بخوای میخری

گفتم شاید جالب باشه براتون (:

اگه خواستید از میلی‌گلد که مثل نوبیتکس هست ولی برای خرید و فروش طلای مجازیه با کد من milli-0mstb به عنوان معرف ثبت نام کنید

بهتون ۵ میلی‌گرم طلا میده ( حدود ۲۵ هزار تومن )
هرکسی هم که دعوت کنید ۲۵ تومن دیگه طلا میده بهتون

احراز هویت هم فقط با شماره و کد ملی هست همین.
Forwarded from code2 - تکنولوژی و فناوری (Mahdi Taleghani)
Forwarded from CleverDevs (Mammad)
اگه دنبال کتابخونه ای برای توسعه ربات تلگرام با php میگردید ناتگرام از کتابخونه های جالبی بود که استفاده کردم

داکیومنت خوبی داره و آسونه ، لاراول هم ساپورت میکنه و آپدیته و ..

فقط حواستون باشه با php بالای 8 کار کنید


https://nutgram.dev

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

#php #bot #telegram
@CleverDevs - @CleverDevsGp
Forwarded from  (ZiZiGuLu)
بهتون پیشنهاد میکنم شماهم  هرچیزی که بلدید یاد بدید به دیگران ، اینطوری مرور میشه برای خودتون و شاید چیزای جدید یاد بگیرید توی آموزش دادنتون.
واقعا روش خوبیه
انقدر هم نگید به ویکی پدیا مراجعه کن .

#note
@amiria703_channel
This media is not supported in your browser
VIEW IN TELEGRAM
این گیف سرعت دسترسی به لایه‌های کش رو در مقایسه با سرعت رم نشون می‌ده:

🆔 @lifeAsAService
Forwarded from Dev (卐 Ayhan)
📦 The First Containers.

• The first containers, officially referred to by this term, appeared in February 2004 in the Solaris 10 operating system from Sun Microsystems. They were used on servers with x86 and SPARC architecture. Solaris Containers included isolated "sandboxes" for running operating systems (referred to as "zones" in developer terminology), as well as tools for managing system resources that allowed for the creation of "snapshots" of individual zones and their cloning. In other words, orchestration mechanisms.

• Zones were fully isolated virtual servers within the host operating system. Each instance of the OS had its own network name, used dedicated network interfaces, had its own file system, a set of users (including root), and its own configuration. Importantly, there was no need to allocate memory or CPU resources strictly for the virtual server—hardware resources were shared; however, if necessary, the administrator could reserve specific server capacities for a particular zone. Processes inside the containers ran in isolation, had no access to each other, and therefore could not conflict.

• The main distinction of Solaris Containers from their predecessors (Process Containers, LXC, Warden, #Docker, and #Kubernetes) is that, as before, virtual OSs used the kernel of the host system, but at the administrator's discretion, copies of the system could be run in containers with their own kernel. This became the next significant step in the evolution of containerization technologies.

@My_Ayhan
Forwarded from Dev (卐 Ayhan)
This media is not supported in your browser
VIEW IN TELEGRAM
If you don't need a heavy Git client but would like to see a graphical representation of branches and perform searches through history,

use the Git Graph extension for VS Code. For developers who frequently accept PRs and conduct code reviews, this extension will become indispensable.

marketplace.visualstudio.com/items?itemName=mhutchie.git-graph

@My_Ayhan
Forwarded from Dev (♪ Ayhan)
Sajjad Farokhzad has come out with a list of Iranian entrepreneurs, founders, and investors who are active outside of Iran, along with a list of their startups and more. Beyond his cool initiative, the data is quite interesting.

Make sure to take a look at the data on the industry and the countries they are in, and so on.

https://www.divan.ac/app/25whzwaqnavhzi7/p/n9rxcUFy

@My_Ayhan
This media is not supported in your browser
VIEW IN TELEGRAM
#fun

استاد میم‌میم یا جادی ؟ ❤️🥸

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

انقدر راجب این مسئله که بخاطر پول نیاید سراغ برنامه نویسی حرف زدیم به نظرم اضافه کاریه دوباره بخوام صحبت کنم، لینک میکنم به پست های قبلی بخونید ❤️

🔗 POST 1
🔗 POST 2

👀 𝗖𝗛𝗔𝗡𝗡𝗘𝗟  |  𝗚𝗥𝗢𝗨𝗣
به نظرم ourphone گوشی خیلی خوبی هم هست
فقط دلم میخواد یبار دیگه اون احمقایی که میگن ایران نئولیبراله ببینم
Forwarded from Meitix
امروز توی arch این مشکل رو داشتم که کلا network رو شناسایی نمیکنه.

مشکل با up کردن interface برای lan، ست کردن ایپی، ست کردن dns و ست کردن gateway فیکس شدش



# List all 
Ip link

# Activate the LAN interface
sudo ip link set enp3s0 up

# Assign an IP
sudo ip addr add 192.168.1.100/24 dev enp3s0

# Set the default gateway
sudo ip route add default via 192.168.1.1

# Config DNS
echo "nameserver 1.1.1.1" | sudo tee /etc/resolv.conf
Forwarded from Python Hints
جواب این سوال ساده هست ولی من با یک مثال مهمترین دلایلش رو می‌گم :

توی فریمورکی مثل جنگو که اگر کار کرده باشید؛ حتما سریالایزر رو دارید؛ توی پایتون جا افتاده که برای باقی فریمورک‌ها هم از همین اسم استفاده می‌کنند.
فرض کنیم من از کاربر ۵ تا اطلاعات میگیریم تا رجیسترش کنم
{
"first_name": "Mo",
"last_name": "abbasi",
"channel": "pyhints",
"email": "[email protected]",
"phone": "09122020200"
}

این برای ثبت‌نام هست؛ برای لاگین :
{
"phone": "09122020200"
}

مشاهده پروفایل توسط دیگران:

{
"first_name": "Mo",
"last_name": "abbasi",
"channel": "pyhints",
}


ادیت پروفایل:

{
"first_name": "Mo",
"last_name": "abbasi",
"channel": "pyhints",
"phone": "09122020200"
}


همه‌ی این موارد با یک فیلد کم و زیاد کاملا مشابه هم هستند؛ اگر سریالایزر نبود برای ولیدکردن شماره تماس چون دیتا از نوع str هست هربار باید یادم بمونه که کدهای مربوط به ولید کردنش رو اجرا بذارم اگر یادم بره چی میشه ؟
شخص با شماره‌ای که ولید نیست توی سیستم ثبت‌نام میشه و دیگه هیچ‌وقت نمی‌تونه وارد سیستم بشه.
اما با وجود سریالایزر اگر جایی از کد ببینم دولوپری دیتای request رو داره می‌خونه فارغ از اینکه چیکار داره می‌کنه کد رو ناامن و همراه باگ می‌دونم.

همین ۱ مورد دوتا ویژگی خوب به من میده :
۱- ولیدیشن اصولی و یکپارچه برای کل سیستم
۲- عدم تکرار کد

اما کارهای دیگه‌ای هم هست که میشه کرد؛ فرض کنید یک دیتاتایپ خاص خودتون رو دارید و سمت دیتابیس با extension های مربوطه اضافه شده؛ به کمک سریالایزر می‌تونید مطمئن بشید اگر یک tuple براتون ارسال شده حتما از اون دیتاتایپ مدنظر هست (مثال vector2d جلسات کتابخونی رو یادتون هست ؟)

دیگه چکاری میشه کرد ؟
فرض کنید یک باگ توی دیتابیس پیدا شد یا یک نوع حمله مثل SQL Injection اونوقت فقط کافیه یکبار روی Base Serializer این مورد رو بررسی کنید و جلوگیری کنید (مثلا برای فیلد ایمیل / اسم‌ها) بعد هرجا برای فیلد ایمیل یا اسم‌ها ازین inherit می‌کنید بصورت خودکار SQL Injection prevention رو هم خواهید داشت.

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