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 SoniaCircuit (Sony)
یه وب interface برای api توییتر انقدری ترسناک نیست که اینطور مطرح بشه

اون هم با اصطلاح برادرا و گونی.
Forwarded from Geek Alerts
کوه تای (Mount Tai) توی شاندونگ چین به خاطر داشتن ۷۰۰۰ پله معروف هست، ویدیوهایی وایرال زیادی توی تیک‌تاک پیدا میکنید که آدم‌ها دارن از یه‌جایی به بعد با دست و پا بالا میرن یا رو زمین بیهوش شدن.

بعد یه شرکت اومده پایین این پله‌ها پای رباتیک اجاره میده که بالا رفتن رو خیلی آسون‌تر میکنه، کرایش ۷۰ یوآن حدود ۹.۵ دلار هست و میگن ماه پیش ۲۰۰ نفر از این ربات‌ها واسه بالا رفتن استفاده کردن.

وسیله ساخت یه شرکت فناوری توی شنزن به اسم Kenqing Technology هست و ۱.۸ کیلوگرم وزن داره که دور کمر و رون بسته میشه، باتریش ۵ ساعت دووم میاره، یکی از کسایی که استفاده کرده میگه حس میکنی یه نفر داره تورو از پله‌ها میکشه بالا.

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

digitaltrends
📱 geekalerts
🤓@geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
با پیشرفت روزافزون agent های کدنویسی هوش مصنوعی، مهندسان نرم‌افزار باید توانایی‌های زیر را داشته باشند:

۱- توانایی بررسی سریع و دقیق کد نوشته شده توسط هوش مصنوعی
۲- توانایی توصیف مشکلات به‌صورت واضح و کامل
۳- توانایی انجام هم‌زمان چند کار و تغییر سریع بین زمینه‌های مختلف
خوب است که از حالا این مهارت‌ها را تمرین کنید!

@DevTwitter | <Mehdi Allahyari/>
This media is not supported in your browser
VIEW IN TELEGRAM
با گذاشتنِ http://r.jina.ai قبل از هر URL، محتوایِ اون صفحه رو به صورتِ مارک‌داون بهتون می‌ده. مثلاً می‌تونید آخرین نسخهٔ مستنداتِ محصول رو به چت‌بات بدید تا جوابِ به‌روز بده. اگر قبل از لینکِ یک PDF بگذارید متنش رو بهتون می‌ده. رویِ بعضی از PDFهای فارسی هم کار می‌کنه.

@DevTwitter | <Ayub Kokabi/>
Forwarded from جادی | Jadi
نظرتون چیه برای مدتی به شکل آزمایشی کامنت‌های اینجا رو باز کنم؟ ببینیم چطور پیش میره و محتوای مفیدی برای همه‌مون اضافه می‌کنه یا نه.
Anonymous Poll
66%
موافقم، باز کنیم
18%
مخالفم، باز نکنیم
17%
نظری ندارم
چند روز قبل Elon Musk یک توییت زد که، Grok-3 بهترین AI ایی خواد بود که دیدید.

همینطوری که ملت در حالی خوشگذرانی با Gemini 2.0 Flash Thinking بودند (اتفاقاً خیلی از شرکت‌ها هم رفتند سراغش بخصوص اونایی که در زمینه RAG کار می‌کنند)

نسخه Early Release مدل Grok-3 منتشر شد، و رتبه اول رو تا اینجا کار به خودش اختصاص داده
توی اکثر بنچمارک‌های معروف مثل lmarena حتی اختلاف با مدل دوم حدود 20 امتیاز هست.

نظر کاربرا راجب این مدل هم بسیار مثبت هست.


پی‌نوشت‌: توی تمام زمینه‌های lmarena رتبه اول رو داره این مدل (یادم رفت بگم)
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
انتخاب یک توزیع لینوکس ( #linux distro) مناسب برای شروع 😎

⁉️ بهترین توزیع گنو/لینوکس مناسب برای شروع ؟
🗓 جامعه :
نسخه لینوکسی که جامعه کاربری بزرکتری دارد یعنی فراوانی آموزش و رفع مشکلات بیشتر
🔥 مربی:
از اطرافیان شما #لینوکس کار هستند توزیع هایی که انها استفاده میکنند باعث میشود مشکلات شما زود تر حل شود
😎 تخصص :
چک کنید جامعه کاربری تخصص شما از کدام توزیع بیشتر استفاده میکند
🤩 نیاز خواسته:
ببینید از لینوکس چه میخواهید و نیاز شما چیست تمرکز جامعه روی نیاز شما است
توصیه مهردادلینوکس:
در لینوکس دنبال ویندوز نگردید،کنترل پنلش کجاست درایو C کو ؟ رجیستری کجاست و ...
برای ویندوز وقت گذاشتید که تسلط دارید برای لینوکس هم باید وقت بگذارید
یک شبه نمیشه
از اشتباه کردن نترسید، ۱۰۰ بار ویندوز را خراب کردید دوباره نصب کردید
فقط شروع کنید ، اندروید گوشی یک لینوکسه ولی شما مسلط هستید

💠 چند توزیع معروف که اگر سردرگم هستید فقط نصب کنید 😍

1️⃣مینت Linux Mint
2️⃣ابونتو Linux Ubuntu
3️⃣المنتری او-اس elementary OS
4️⃣منجارو Arch Manjaro
5️⃣فيدورا Fedora

⁉️ با چه توزیعی #linux شروع کردید ؟ الان با چی کار میکنید؟
خب خب خب جلوگیری از Race Condition در جنگو با select_for_update 🔒🚀

توی این پست در مورد Race Condition صحبت کردیم و گفتیم چطور ممکنه چندتا درخواست همزمان بیان و دیتا رو خراب کنن. حالا بریم ببینیم جنگو چه ترفندهایی برای کنترل این مشکل داره و چطور می‌تونیم از select_for_update استفاده کنیم.

مشکل چیه؟ 🤔
فرض کن یه سیستم بانکی داری و کاربرا دارن پول جابه‌جا می‌کنن. حالا دو نفر همزمان می‌خوان از حسابشون پول بردارن و موجودی حساب فقط 100 تومنه. اگه این درخواست‌ها بدون قفل کردن دیتا پردازش بشن، ممکنه هر دو برداشت موفق بشن و سیستم بدهکار بشه 😬
اینجا همون جاییه که select_for_update میاد وسط و دیتا رو از فاجعه نجات می‌ده.


چطوری select_for_update مشکل رو حل می‌کنه؟ 🔐
وقتی از select_for_update استفاده می‌کنی، رکورد دیتابیس قفل می‌شه تا هیچ درخواست دیگه‌ای نتونه همزمان تغییرش بده. این یعنی هر درخواستی که بعد از اولین درخواست بیاد، باید منتظر بمونه تا قفل آزاد بشه و بعد پردازش بشه.

مثال 1: جلوگیری از برداشت همزمان از حساب بانکی 🏦
from django.db import transaction
from myapp.models import Account

def withdraw_money(account_id, amount):
with transaction.atomic(): # شروع تراکنش
account = Account.objects.select_for_update().get(pk=account_id) # قفل کردن رکورد
if account.balance >= amount:
account.balance -= amount
account.save()
print("برداشت موفقیت‌آمیز بود!")
else:
print("موجودی کافی نیست!") # جلوگیری از برداشت بیش از حد

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

مثال 2: انتقال وجه بین دو حساب 💳
حالا یه چالش سخت‌تر انتقال پول از یه حساب به حساب دیگه. باید هر دو حساب همزمان قفل بشن تا مشکلات همزمانی پیش نیاد.
from django.db import transaction
from myapp.models import Account

def transfer_money(from_id, to_id, amount):
with transaction.atomic():
accounts = Account.objects.select_for_update().filter(pk__in=[from_id, to_id]).order_by("id")

sender = accounts[0]
receiver = accounts[1]

if sender.balance >= amount:
sender.balance -= amount
receiver.balance += amount
sender.save()
receiver.save()
print("انتقال وجه موفقیت‌آمیز بود!")
else:
print("موجودی کافی نیست!") # جلوگیری از انتقال اشتباه

اینجا هر دو حساب رو قفل می‌کنیم تا حتی اگه دو درخواست انتقال پول به صورت همزمان بیاد، هیچکدوم نتونن وسط کار رو همدیگه تأثیر بذارن.

چندتا نکته 🚀

🔹 انتخاب نوع قفل (select_for_update(nowait=True))
اگه بخوای درخواست‌های معطل رو سریع رد کنی، می‌تونی nowait=True بذاری که اگه رکورد قفل بود، درخواست جدید منتظر نمونه و مستقیم خطا بده.
account = Account.objects.select_for_update(nowait=True).get(pk=1)

☝️ این باعث می‌شه که اگه رکورد قفل باشه، جنگو بلافاصله یه DatabaseError بده و منتظر نمونه.

🔹 قفل کردن رکوردها بدون مسدود کردن خواندن (select_for_update(skip_locked=True))
اگه درخواست‌های زیادی داری و نمی‌خوای که یک درخواست کل سیستم رو بلاک کنه، می‌تونی از skip_locked=True استفاده کنی که درخواست‌های دیگه بتونن رکوردهای آزاد رو پردازش کنن.
account = Account.objects.select_for_update(skip_locked=True).get(pk=1)

☝️ این کار باعث می‌شه که اگه یه رکورد قفل بود، درخواست بیخیال اون رکورد بشه و فقط رکوردهایی که قفل نیستن رو انتخاب کنه.

🔹 مدیریت تایم‌اوت قفل (set statement_timeout)
اگه نمی‌خوای که درخواست‌ها مدت زیادی بلاک بشن، توی PostgreSQL می‌تونی یه تایم‌اوت برای قفل تعیین کنی:
SET statement_timeout = '5s'; 

☝️ این یعنی اگه یه درخواست بیشتر از ۵ ثانیه قفل بمونه، بهش خطا داده می‌شه و می‌ره بیرون.

جمع‌بندی
select_for_update یکی از قوی‌ترین ابزارها برای جلوگیری از Race Condition توی جنگوئه. مهم‌ترین نکاتش اینان:
قفل کردن رکوردهای دیتابیس موقع آپدیت برای جلوگیری از دستکاری همزمان
استفاده از nowait=True برای جلوگیری از انتظار بیش از حد
استفاده از skip_locked=True برای رد کردن رکوردهای قفل‌شده و ادامه پردازش.


#️⃣ #python #programming #db



🥷 CHANNEL | GROUP
خیلی وقت بود پست جنگو نداشته بودیم 😬
🔥 مناظرهٔ تاننباوم–توروالدز «LINUX منسوخ شده است»

🗓بین اندرو اس. تاننباوم، خالق سیستم‌عامل آموزشی مینیکس
🗓 و لینوس توروالدز، خالق هستهٔ لینوکس، بود.
💠این مناظره در گروه خبری Usenet به نام comp.os.minix در سال ۱۹۹۲ رخ داد

موضوع سر معماری هسته‌های سیستم‌عامل، به‌ویژه مقایسهٔ هسته‌های یکپارچه (monolithic) و ریزهسته‌ها (microkernel)، تمرکز داشت.

🔥 تاننباوم بحث را با استدلال اینکه طراحی هستهٔ یکپارچهٔ لینوکس از نظر مفهومی قدیمی و ریزهسته‌ها به دلیل قابلیت حمل و پایداری، برتر هستند آغاز کرد
و گفت معماری پردازنده‌های x86 که لینوکس بر پایهٔ آن توسعه یافته، در آینده جای خود را به معماری‌های RISC خواهد داد.

🔥 توروالدز در پاسخ، ضمن اذعان به مزایای نظری ریزهسته‌ها، از تصمیم خود برای استفاده از هستهٔ یکپارچه دفاع کرد.
او اشاره کرد که مینیکس دارای محدودیت‌هایی مانند نبود پشتیبانی از چندنخی (multithreading) و هدف او از توسعهٔ لینوکس، ایجاد یک سیستم‌عامل کاربردی برای استفادهٔ شخصی بوده است.

با گذشت زمان،
هر دو مدل هسته در حوزه‌های مختلف به کار گرفته شدند

منبع wikipedia
#linux
This media is not supported in your browser
VIEW IN TELEGRAM
یه اکستنشن نوشتم برای جاب‌های لینکدین، خودش show more رو کلیک می‌کنه و لیست کلیدواژه‌هایی که بهش می‌دی رو سبز یا قرمز می‌کنه. میشه سریعتر با یه نگاه متوجه شد جاب چقدر به مهارت‌های آدم نزدیکه.

https://github.com/ArmanJR/LinkedIn-Job-Skills-Highlighter

@DevTwitter | <Arman/>
Forwarded from Python Hints
وقتی ChatGPT 3.5 معرفی شد گفتم که نیروهای جونیور بسیار کار سختی برای یافتن شغل خواهند داشت.

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

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

متأسفانه این موضوع توی ایران دیگه صادق نیست؛ ندیدم (از کسی هم نشنیدم) جونیوری که experiment های شخصی با ابزارهای مختلف که شاید مرسوم هم نباشند انجام داده باشه (علاوه بر استک اصلی) همگی همون استک اصلی رو یاد می‌گیرند و به محض استخدام دیگه حتی برای پیشرفت خودشون هم زحمت نمی‌کشند.

با این وضعیت قطعاً موقعیت‌های شغلی Junior ها حذف خواهد شد؛ حتی در ایران.
اسکریپت راه‌اندازی تانل RTX-VPN، یک راه‌حل برای راه‌اندازی سرور L2TP/OpenVPN در کشورهایی با محدودیت اینترنت مثل ایران و چین هست.
این‌اسکریپت با ایجاد یک تانل Reverse با استفاده از Xray-Core و Rathole، باعث میشه ترافیک L2TP/OpenVPN به‌عنوان یک اتصال عادی دیده بشه و به‌سادگی قابل شناسایی نباشه.
همچنین این روش امکان استفاده از اینترنت آزاد روی مودم‌ها و دستگاه‌هایی که نیاز به L2TP/OpenVPN دارن رو فراهم می‌کنه، درحالی‌که اتصال کاربر امن باقی می‌مونه.

👉 github.com/Sir-MmD/RTX-VPN

🔍 ircf.space
@ircfspace
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۱۰۳۴

در انجمنی نشسته دیدم دوشش
نتوانستم گرفت در آغوشش
رخ را به بهانه بر رخش بنهادم
یعنی که حدیث می کنم در گوشش

#مولانا | گنجور
📍@iipoem
This media is not supported in your browser
VIEW IN TELEGRAM
مایکروسافت ورژن جدید مدل OmniParser داد بیرون. این یک مدل برای فهمیدن اسکرین شات هست. برای مواقعی که ایجنت قراره با browser کار کنه و تسکی را انجام بده، به کار میاد. خیلی هم عالی کار میکنه. ویدیو رو ببینید حتما

@DevTwitter | <Mehdi Allahyari/>