DevTwitter | توییت برنامه نویسی – Telegram
DevTwitter | توییت برنامه نویسی
23.6K subscribers
4.36K photos
358 videos
6 files
4.1K links
توییت های برنامه نویسی و طراحی وب :)

@dvtwi

Hashtags:
devtwitter.t.me/5

DevBooks Channel:
https://news.1rj.ru/str/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
اگر همیشه دنبال لینک‌ها و بوکمارک‌ها توی پروژه‌ها یا زندگی شخصی‌تون می‌گردید، Linkcovery رو چک کنید!

یه ابزار ساده و کاربردی برای مطالعه و ذخیره لینک‌ها که کمک می‌کنه همه چی رو مرتب و سریع پیدا کنید!

کدها رو ببینید و استفاده کنید:
GitHub
PyPI
https://github.com/arian24b/linkcovery
https://pypi.org/project/linkcovery/

@DevTwitter | <𝓐𝓻𝓲𝓪𝓷/>
👍15
بهترین یوتوبر برنامه نویسی (پایتون) به نظرم آریان هست، سطح علمی و تجربه به شدت بالا هم توی پایتون هم زبان‌های دیگه که به پایتون بسط میده، قدرت انتقال مفاهیمش خیلی قویه، تاپیک‌هایی رو میگه که هیچ‌ جای دیگه نمیگن، معماری کدهاش به شدت زیباست و از همه مهم‌تر خوشتیپ و هلندی هست!
youtube.com/arjancodes

@DevTwitter | <Boby Cloud/>
👎64👍3911
انگولار اول به‌عنوان یه آزمایش داخلی تو گوگل شروع شد – حتی اولش جیمیل و گوگل مپ هم جدی نگرفتنش. اما خیلی زود تبدیل به یه پدیده تو دنیای جاوااسکریپت شد.

http://youtube.com/post/UgkxCEPPeUZNnEYxoRli-I2tNHV57kFqINI7?si=2LM_g8n9jQHHJjr0

@DevTwitter | <Ahmadreza Shamimi/>
👍28👎231
ماجرای یه SELECT ساده که SQL SERVER رو به زانو در آورد.
چند وقت پیش تو یه پروژه ای بودم که یکی از دولوپرهای عزیز یه گزارش جدید نوشته بود که شامل یه Query بود. روی سطح کد، همه‌چیز عالی به نظر میومد. اما وقتی گزارش اجرا میشد، سیستم یه دفعه شروع می کرد به کند شدن و سرور، CPU رو تا 100٪ میبرد بالا.
رفتم بررسی کنم چی شده. دیدم Queryش این شکلی بود:
SELECT * 
FROM BigTable
WHERE FunctionOnColumn(SomeColumn) = 'Value';

کاری که این Query انجام می‌داد، این بود که یه فانکشن روی ستون اجرا می‌کرد. نتیجه؟ به‌جای استفاده از ایندکس‌های موجود، SQL Server مجبور می‌شد کل جدول رو اسکن کنه (Full Table Scan).

اول، با دولوپر صحبت کردم و براش توضیح دادم که استفاده از فانکشن روی ستون‌ها (به‌خصوص توی WHERE یا JOIN) باعث می‌شه SQL Server ایندکس‌ها رو نادیده بگیره. بعد، بهش پیشنهاد دادم که به‌جای فانکشن، مقدار محاسبه‌شده رو از قبل توی یه ستون جدید ذخیره کنه یا از Persisted Computed Column استفاده کنه.
کوئری اصلاح‌ شده‌ش این شد:
SELECT * 
FROM BigTable
WHERE CalculatedSomeColumn = 'Value';

سرعت اجرای Query از چند دقیقه به کمتر از یک ثانیه رسید. همین تغییر ساده کلی بار روی دیتابیس رو کم کرد. نتیجه اینکه من راضی ، دولوپر راضی ، SQL SERVER هم راضی.

@DevTwitter | <Mostafa Hassanzadeh/>
109👍45🔥6
آقا خیلی من ازین api platform خوشم اومده.
استاندارد، کامل، بدون اضافه کاری، داکیومنت کافی و عالی.
انگار فست ای‌پی‌آی phpهاست

https://api-platform.com/docs/symfony/

@DevTwitter | <Saman/>
👍27🔥7
چطوری تو git بفهمیم مقصر کیه؟
تا حالا شده توی یه پروژه ببینی یه تیکه کد عجیب وجود داره و بخوای بدونی کی نوشته و چرا؟
با استفاده از دستور 𝗴𝗶𝘁 𝗯𝗹𝗮𝗺𝗲 میتونی اینکارو بکنی.
پایین چندتا از دستورهای مهمش رو آوردم.

- کامند 𝗴𝗶𝘁 𝗯𝗹𝗮𝗺𝗲 𝗳𝗶𝗹𝗲.𝗷𝘀 ببین هر خط از فایل رو کی تغییر داده!

- کامند 𝗴𝗶𝘁 𝗯𝗹𝗮𝗺𝗲 -𝗟 𝟮𝟬,𝟯𝟬 𝗳𝗶𝗹𝗲.𝗷𝘀 فقط تغییرات بین خط ۲۰ تا ۳۰ رو نشون بده.

- کامند 𝗴𝗶𝘁 𝗯𝗹𝗮𝗺𝗲 -𝗖 𝗳𝗶𝗹𝗲.𝗷𝘀 اگه کد از یه فایل دیگه کپی شده باشه، پیداش کن!

@DevTwitter | <Soudabe Heydari/>
🔥69👍20👎21
سازنده redis یه پست گذاشته
We are destroying software
که با بعضی از practice ها داره انجام میشه.

مثلا یکیش گفتن don't invent the wheel به برنامه نویس های جدید. اما اینکار چیزیه که میفهمی چرخ چطور کار میکنه و قدم اول برای ساخت یه چرخ جدید و‌ بهتره.

یا سعی برای تولید سریع تر کد به جای طراحی بهتر کد.

الان میتونیم کاملا نتایج این موارد رو ببینیم، پروداکت هایی کاملا غیر اصولی هستن و‌ تنها مزیتشون اینه که الان کار‌ میکنن و کدبیس شبیه باتلاق تا نرم افزار.

لینک‌ پست رو‌ پایین میذارم اگه خواستین باقی موارد رو بخونید.

https://antirez.com/news/145

@DevTwitter | <Ashkan Hooshidar/>
34👍19
بچه‌ها، این روش تعریف اینترفیس خوبه‌ها، ولی یه مشکلی که داره اینه که اگه کامپوننت یه کم بزرگ بشه یا نیاز به پراپرتی‌های بیشتری داشته باشه، مدیریت و تغییر اینترفیس‌ها یه خورده دردسر می‌شه.

راه‌حل تمیزتر و هوشمندانه‌تر ارث‌بری از <React.HTMLAttributes<T!
وقتی از این یوتیلیتی استفاده می‌کنی، تمام پراپرتی‌های عمومی HTML رو به‌صورت خودکار توی کامپوننتت داری، بدون اینکه مجبور بشی id, className, onClick و کلی پراپ دیگه رو دستی اضافه کنی. این یعنی کد کوتاه‌تر، خواناتر و انعطاف‌پذیرتر!

حالا دیگه هر وقت نیاز به پراپرتی جدیدی مثل data-*, role, یا style داشتی، بدون هیچ تغییری در اینترفیس، همه‌ش رو به‌صورت اتوماتیک داری.

@DevTwitter | <Liam Paknia/>
👍516👎2
دستورات پیشرفته‌تر systemctl برای مدیریت سرویس‌ها در لینوکس
علاوه بر دستورات پایه‌ای، systemctl امکانات قدرتمند دیگری نیز دارد که برای مدیریت حرفه‌ای سرویس‌ها و پردازش‌های سیستم ضروری هستند. در ادامه لیستی از دستورات کاربردی و پیشرفته را بررسی می‌کنیم:

+ مدیریت سرویس‌ها (Services)
- مشاهده وضعیت تمامی سرویس‌های در حال اجرا:
systemctl list-units --type=service --state=running

- مشاهده وضعیت تمامی سرویس‌های فعال و غیرفعال:
systemctl list-units --type=service

- بررسی وضعیت سرویس خاص به همراه لاگ‌های اخیر:
systemctl status nginx --no-pager

- اجبار به توقف یک سرویس (Kill کردن سخت یک سرویس):
systemctl kill apache2
- مشاهده تمامی وابستگی‌های یک سرویس:
systemctl list-dependencies sshd

- مشاهده سرویس‌هایی که در هنگام بوت اجرا می‌شوند:
systemctl list-unit-files --state=enabled

+ فعال/غیرفعال کردن سرویس‌ها
- فعال‌سازی یک سرویس برای اجرا در هنگام بوت:
systemctl enable mysql

- غیرفعال کردن یک سرویس تا هنگام اجرای دستی:
systemctl disable docker

- ری‌لود کردن تغییرات در سرویس بدون نیاز به ری‌استارت:
systemctl reload nginx

- ریست کردن وضعیت یک سرویس:
systemctl reset-failed apache2

+ کنترل سطح دسترسی و وضعیت بوت
- مشاهده سطح اجرایی (Runlevel) فعلی:
systemctl get-default

- تغییر سطح اجرایی به حالت چندکاربره (Multi-User Mode):
systemctl set-default multi-user.target

- تغییر به حالت اضطراری (Emergency Mode):
systemctl emergency

- بوت سیستم به حالت ریکاوری:
systemctl rescue

+ مدیریت لاگ‌ها و رخدادها
- مشاهده لاگ‌های جدید سرویس خاص:
journalctl -u nginx --no-pager

- مشاهده لاگ‌های سرویس از زمان بوت سیستم:
journalctl -u sshd --since today

- مشاهده لاگ‌های کرنل:
journalctl -k
- مشاهده لاگ‌های جدید در لحظه (مشابه tail -f):
journalctl -f

+ خاموش، ری‌استارت و خاموشی زمان‌بندی شده
- خاموش کردن سیستم:
systemctl poweroff

- ری‌استارت سیستم:
systemctl reboot

- ری‌استارت زمان‌بندی شده در 10 دقیقه:
shutdown -r +10
- لغو خاموشی یا ری‌استارت برنامه‌ریزی‌شده:
shutdown -c

چرا systemctl مهم است؟
ابزار systemctl یک ابزار قدرتمند برای مدیریت حرفه‌ای سرویس‌ها، بررسی وضعیت سیستم، تنظیمات بوت، لاگ‌ها و کنترل پردازش‌ها است. اگر ادمین لینوکس هستید، این دستورات می‌توانند شما را در مدیریت بهتر سرور و سرویس‌های حیاتی یاری کنند.

@DevTwitter | <Ebrahim Rohani/>
👍318👎1
درباره RefreshToken و AccessToken براتون مطلبی رو آماده کردم تا بیشتر باهاشون آشنا بشیم

وقتی درباره‌ی رفرش توکن صحبت می‌کنیم، در واقع داریم درباره‌ی یه مکانیزم امنیتی حرف می‌زنیم که به کاربر اجازه می‌ده بدون نیاز به لاگین مجدد، به سیستم دسترسی داشته باشه. این کار با استفاده از دو نوع توکن انجام می‌شه:
Access Token: یه توکن کوتاه‌مدت که برای دسترسی به منابع استفاده می‌شه.
Refresh Token: یه توکن بلندمدت‌تر که برای گرفتن Access Token جدید استفاده می‌شه.

مراحل کلی رفرش توکن:
اول:کاربر لاگین می‌کنه: بعد از لاگین، سرور یه Access Token و یه Refresh Token به کلاینت می‌ده.

دوم:Access Token منقضی می‌شه: بعد از یه مدت (مثلاً ۱۵ دقیقه)، Access Token دیگه معتبر نیست.

سوم:درخواست جدید با توکن منقضی شده: وقتی کاربر یه درخواست جدید می‌فرسته، سرور خطای 401 (Unauthorized) برمی‌گردونه.

چهارم:رفرش توکن فرستاده می‌شه: کلاینت با استفاده از Refresh Token، یه درخواست به سرور می‌فرسته و یه Access Token جدید می‌گیره.

پنجم:درخواست اصلی تکرار می‌شه: کلاینت درخواست اصلی رو با Access Token جدید دوباره ارسال می‌کنه.

چطوری با Axios توی پروژه‌ها رفرش توکن رو خودکار کنیم؟
یه مشکلی که همیشه توی پروژه‌های با احراز هویت پیش میاد، منقضی شدن توکن‌هاست. کاربر کارش رو می‌کنه، یهو می‌بینه خطای 401 می‌گیره و مجبوره دوباره لاگین کنه!
این کار رو می‌شه با استفاده از Axios Interceptors به راحتی پیاده‌سازی کرد. یعنی وقتی توکن منقضی میشه، به جای اینکه کاربر رو به لاگین برگردونیم، یه درخواست جدید برای رفرش توکن می‌فرستیم و بعد درخواست اصلی رو دوباره ارسال می‌کنیم. به همین سادگی!

چطوری کار می‌کنه؟
خطای 401 رو می‌گیریم: هر وقت سرور بهمون بگه "توکنت تموم شده" (یعنی خطای 401)، وارد عمل میشیم.
رفرش توکن می‌گیریم: یه درخواست به سرور می‌فرستیم و با استفاده از Refresh Token، یه توکن جدید می‌گیریم.
درخواست اصلی رو تکرار می‌کنیم: توکن جدید رو جایگزین می‌کنیم و درخواست اصلی رو دوباره ارسال می‌کنیم.

نکات مهم:
-با کوکی‌ها کار می‌کنیم: با withCredentials: true مطمئن می‌شیم که کوکی‌ها (مثل Refresh Token) به درستی ارسال میشن.

-جلوی تلاش‌های بی‌جا رو می‌گیریم: با یه فلگ ساده (retry_) مطمئن می‌شیم که فقط یه بار برای رفرش توکن تلاش می‌کنیم.

-امنیت اولویته: همیشه حواسمون به ذخیره‌سازی امن Refresh Token باشه!

این روش نه‌تنها تجربه کاربری رو بهتر می‌کنه، بلکه باعث میشه کاربر کمتر با صفحه‌ی لاگین کلنجار بره و کارش رو سریع‌تر تموم کنه

@DevTwitter | <Soheil Seyyedi/>
👍437👎4
یدونه نرم افزار چت p2p
https://github.com/aminGhafoory/peerchat
برای بازی کردن با webrtc ساختمش
قراره بشه یدونه نرم افزار انتقال فایل بین دو تا سیستم از طریق webrtc

@DevTwitter | <krusty the clown/>
👍19
#کوته_نیوز

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

پرتقال فروش و اینا...

@DevTwitter
👍92👎5
با Go یک پروژه جدید نوشتم که برای تبدیل فایل های Json به CSV هستش
اگر دارید Go یاد میگیرید / تمرین میکنید / کار میکنید
این ریپازیتوری میتونه کمکتون کنه و به کد هاش نگاهی بکنید

https://github.com/MisaghMomeniB/Json2CSV-Go

@DevTwitter | <Misagh Momeni Bashusqeh/>
👎39👍237
یک پروژه اندرویدی اوپن سورسه که با clean Arch نوشته شده
سعی کردم توش‌ solid رو رعایت کنم
واسه درک بهتر کلین میتونید یه نگاهی بهش بندازید...
از Ktor و koin هم توش استفاده شده و همچنین برای ui از JetpackCompose استفاده شده

https://github.com/HoseinSadonasl/GitHubUsers

@DevTwitter | <HoseinSadonasl/>
👍21👎1
الان دستیار کدنویسی Gemini Code Assist رایگان شد.
نسخه GitHub هم داره، میشه با VS Code و JetBrains هم باهاش کار کرد.
https://github.com/apps/gemini-code-assist

@DevTwitter | <Soroush Ahmadi/>
👍44🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
اگه دنبال تمرین و یادگیری مسائل ماشین لرنینگ هستید بخصوص برای مصاحبه و شغل این وبسایت را دیدم جالبه! کلی سوال داره که از ساده تا سخت دسته بندی شده و میتونید تمرین کنید.
Link: deep-ml.com

@DevTwitter | <Mehdi Allahyari/>
👍23👎2
آقای Greg Brockman یه راهنما برای پرامپت‌نویسی مدل‌های استدلالی مثل 01 منتشر کرده که می‌تونه کاربردی باشه.

- هدف: چیزی که می‌خواین
- فرمت خروجی: فرمت مد نظرتون برای جواب نهایی
-هشدارها: نکاتی که مدل باید حواسش باشه
- زمینه: اطلاعات بیشتر برای افزایش کیفیت خروجی

@DevTwitter | <Reza Jafari/>
👍50🔥8
این سایت خیلی خوبه! ۵۰۰ نمونه پروژه های دیتاساینس اعم از ML، LLM، ریکامندر سیستم ها و دهها موضوع دیگه که تو‌ صنعت توسط شرکت های معروف پیاده شدن رو جمع کرده.

اگر میخواین یادبگیرین تو صنعت چطوری پروژه های دیتاساینس پیاده میشن این معدن طلا رو از دست ندید!

https://www.evidentlyai.com/ml-system-design

@DevTwitter | <Nima/>
🔥18👍9
This media is not supported in your browser
VIEW IN TELEGRAM
موسسه AllenAI یک ابزار اپن سورس OCR معرفی کرده به نام olmOCR برای استخراج متن تمیز از فایل‌های PDF!
با این ابزارمیتونید در حجم بالا پردازش انجام بدید، و انواع مختلف اسناد رو با سرعت خیلی بالا مدیریت می‌کنه. می‌تونید اون رو به صورت رایگان روی سیستم خودتون اجرا کنی—با سرعت بالای ۳۰۰۰ توکن بر ثانیه، که معادل ۱۹۰ دلار برای هر میلیون صفحه میشه، یا ۱/۳۲ هزینه GPT-4o! (خیلی ارزون‌تره!)
من روی یک فایل فارسی امتحان کردم خیلی عالی بود کیفیتش.

Link: olmocr.allenai.org
Github: github.com/allenai/olmocr

@DevTwitter | <Mehdi Allahyari/>
👍317👎2
این قطعا گوگلو عصبانی میکنه، ChatGPT آپدیت جدید یه اکستنسن به سافاری اضافه میکنه که فعالش کنی موتور جستجوی پیش‌فرض میشه ChatGPT :)

@DevTwitter | <Soroush Ahmadi/>
🔥103👍5👎5
مایکروسافت Voice و Think Deeper رو داخل کوپایلت نامحدود کرد، بچه‌ها در استفاده کوتاهی نکنید.
copilot.microsoft.com

@DevTwitter | <Soroush Ahmadi/>
🔥73👍13👎52