🔹 Cursor داره وارد قلمرو GitHub میشه
Cursor تا امروز بیشتر بهعنوان یک ادیتور کدنویسی با قابلیتهای AI شناخته میشد.
اما حالا فقط نمیخواد جایی باشه که داخلش کد مینویسیم.
این شرکت Origin رو معرفی کرده؛ یک پلتفرم میزبانی کد که Repository، Pull Request، Code Review و مرور کد رو ارائه میده.
حتی میتونه repositoryهای GitHub رو با خودش Sync کنه.
اما بخش جالب ماجرا جای دیگهست.
Cursor میخواد Origin رو از ابتدا برای دنیایی طراحی کنه که AI Agentها هم بخشی از تیم توسعه هستن.
یعنی بهجای اینکه GitHub فقط محلی برای ذخیره کد و مدیریت Pull Request باشه، Origin میخواد کد، Agent و فرایند توسعه رو تا حد ممکن در یک محیط جمع کنه.
فعلاً Origin در مرحله Beta قرار داره و برای کاربران پلنهای پولی Cursor ارائه شده.
هنوز خیلی زوده که بگیم میتونه جای GitHub رو بگیره.
ولی حرکت Cursor جالبه؛ چون رقابت ابزارهای AI برنامهنویسی داره کمکم از «چه کسی کد بهتری مینویسه؟» به «چه کسی کل فرایند توسعه نرمافزار رو در اختیار میگیره؟» تغییر میکنه.
🔗 Origin:
Cursor Origin
#Cursor #GitHub #AI #Programming
────────────
Cursor تا امروز بیشتر بهعنوان یک ادیتور کدنویسی با قابلیتهای AI شناخته میشد.
اما حالا فقط نمیخواد جایی باشه که داخلش کد مینویسیم.
این شرکت Origin رو معرفی کرده؛ یک پلتفرم میزبانی کد که Repository، Pull Request، Code Review و مرور کد رو ارائه میده.
حتی میتونه repositoryهای GitHub رو با خودش Sync کنه.
اما بخش جالب ماجرا جای دیگهست.
Cursor میخواد Origin رو از ابتدا برای دنیایی طراحی کنه که AI Agentها هم بخشی از تیم توسعه هستن.
یعنی بهجای اینکه GitHub فقط محلی برای ذخیره کد و مدیریت Pull Request باشه، Origin میخواد کد، Agent و فرایند توسعه رو تا حد ممکن در یک محیط جمع کنه.
فعلاً Origin در مرحله Beta قرار داره و برای کاربران پلنهای پولی Cursor ارائه شده.
هنوز خیلی زوده که بگیم میتونه جای GitHub رو بگیره.
ولی حرکت Cursor جالبه؛ چون رقابت ابزارهای AI برنامهنویسی داره کمکم از «چه کسی کد بهتری مینویسه؟» به «چه کسی کل فرایند توسعه نرمافزار رو در اختیار میگیره؟» تغییر میکنه.
🔗 Origin:
Cursor Origin
#Cursor #GitHub #AI #Programming
────────────
@PythonFarsi2024
🔹 یه AI تونست برای یک تبلت قدیمی Root پیدا کنه
یه نفر یه Amazon Fire HD 10 مدل ۲۰۲۱ داشته که برای Home Assistant ازش استفاده میکرده.
مشکل اینجا بوده که تبلت مدام خودش خاموش میشده و از لاگها مشخص شده بود بخشی از نرمافزار خود Amazon باعث این خاموشیهاست.
راهحل دائمی؟
گرفتن Root و کنترل کامل دستگاه.
اما یک مشکل وجود داشت:
برای این مدل Fire HD 10 تا اون موقع روش عمومی و شناختهشدهای برای Root وجود نداشت.
صاحب دستگاه تصمیم گرفت برای پیدا کردن راهحل از چند مدل AI کمک بگیره.
مدلها شروع کردن به بررسی firmware، کدها و راههای ممکن برای دسترسی بیشتر به دستگاه.
در نهایت GLM-5.3 تونست بخش اصلی کار رو در یک روز جلو ببره و مسیر Root کردن دستگاه پیدا شد.
نکته جالب اینجاست که برای این کار یک آسیبپذیری قدیمی در درایور GPU دستگاه استفاده شد؛ آسیبپذیریای که قبلاً شناخته شده بود، اما این دستگاه هنوز نسخهای از FireOS رو اجرا میکرد که در برابرش آسیبپذیر بود.
یعنی AI اینجا فقط «کد تولید نکرد».
باید با یک دستگاه واقعی، firmware واقعی و یک مشکل واقعی سر و کله میزد تا در نهایت به یک راهحل عملی برسه.
این شاید یکی از جالبترین نمونههای استفاده از AI برای Reverse Engineering روی سختافزارهای قدیمی باشه.
🔗 داستان کامل:
https://news.ycombinator.com/item?id=49409073
#AI #Android #ReverseEngineering
────────────
یه نفر یه Amazon Fire HD 10 مدل ۲۰۲۱ داشته که برای Home Assistant ازش استفاده میکرده.
مشکل اینجا بوده که تبلت مدام خودش خاموش میشده و از لاگها مشخص شده بود بخشی از نرمافزار خود Amazon باعث این خاموشیهاست.
راهحل دائمی؟
گرفتن Root و کنترل کامل دستگاه.
اما یک مشکل وجود داشت:
برای این مدل Fire HD 10 تا اون موقع روش عمومی و شناختهشدهای برای Root وجود نداشت.
صاحب دستگاه تصمیم گرفت برای پیدا کردن راهحل از چند مدل AI کمک بگیره.
مدلها شروع کردن به بررسی firmware، کدها و راههای ممکن برای دسترسی بیشتر به دستگاه.
در نهایت GLM-5.3 تونست بخش اصلی کار رو در یک روز جلو ببره و مسیر Root کردن دستگاه پیدا شد.
نکته جالب اینجاست که برای این کار یک آسیبپذیری قدیمی در درایور GPU دستگاه استفاده شد؛ آسیبپذیریای که قبلاً شناخته شده بود، اما این دستگاه هنوز نسخهای از FireOS رو اجرا میکرد که در برابرش آسیبپذیر بود.
یعنی AI اینجا فقط «کد تولید نکرد».
باید با یک دستگاه واقعی، firmware واقعی و یک مشکل واقعی سر و کله میزد تا در نهایت به یک راهحل عملی برسه.
این شاید یکی از جالبترین نمونههای استفاده از AI برای Reverse Engineering روی سختافزارهای قدیمی باشه.
🔗 داستان کامل:
https://news.ycombinator.com/item?id=49409073
#AI #Android #ReverseEngineering
────────────
@PythonFarsi2024
❤1
🔹 این LSP برای Rust میخواد با کمتر از 100MB RAM کار کنه
Rust Glancer یه LSP جدیده که با یک ایده متفاوت ساخته شده:
اطلاعات تحلیل پروژه رو قرار نیست همهاش داخل RAM نگه داره.
بخش زیادی از این اطلاعات روی دیسک ذخیره میشن و فقط وقتی لازم باشه خونده میشن.
نتیجهای که سازنده دنبالشه؟
مصرف حافظه خیلی پایینتر از چیزی که ابزارهایی مثل rust-analyzer معمولاً دارن؛ هدف پروژه برای پروژههای معمولی کمتر از 100MB رم اعلام شده.
ولی این کار یه هزینه هم داره.
Rust Glancer قرار نیست بعد از هر تغییر، همهچیز رو همون لحظه دوباره تحلیل کنه.
بعضی تحلیلها بعد از Save انجام میشن و در عوض، اطلاعات قبلی روی دیسک باقی میمونه تا لازم نباشه هر بار کل پروژه از صفر بررسی بشه.
یعنی سازنده عملاً یه معامله کرده:
RAM کمتر ←→ کمی تأخیر بیشتر
پروژه هنوز خیلی جوونه و قرار نیست جای rust-analyzer رو گرفته باشه.
ولی ایدهاش جالبه؛ مخصوصاً وقتی میبینی برای داشتن ابزارهای توسعه قدرتمند، همیشه لازم نیست چند گیگ RAM درگیر باشه.
🔗 پروژه:
https://rust-glancer.github.io/
#Rust #Programming #OpenSource
────────────
Rust Glancer یه LSP جدیده که با یک ایده متفاوت ساخته شده:
اطلاعات تحلیل پروژه رو قرار نیست همهاش داخل RAM نگه داره.
بخش زیادی از این اطلاعات روی دیسک ذخیره میشن و فقط وقتی لازم باشه خونده میشن.
نتیجهای که سازنده دنبالشه؟
مصرف حافظه خیلی پایینتر از چیزی که ابزارهایی مثل rust-analyzer معمولاً دارن؛ هدف پروژه برای پروژههای معمولی کمتر از 100MB رم اعلام شده.
ولی این کار یه هزینه هم داره.
Rust Glancer قرار نیست بعد از هر تغییر، همهچیز رو همون لحظه دوباره تحلیل کنه.
بعضی تحلیلها بعد از Save انجام میشن و در عوض، اطلاعات قبلی روی دیسک باقی میمونه تا لازم نباشه هر بار کل پروژه از صفر بررسی بشه.
یعنی سازنده عملاً یه معامله کرده:
RAM کمتر ←→ کمی تأخیر بیشتر
پروژه هنوز خیلی جوونه و قرار نیست جای rust-analyzer رو گرفته باشه.
ولی ایدهاش جالبه؛ مخصوصاً وقتی میبینی برای داشتن ابزارهای توسعه قدرتمند، همیشه لازم نیست چند گیگ RAM درگیر باشه.
🔗 پروژه:
https://rust-glancer.github.io/
#Rust #Programming #OpenSource
────────────
@PythonFarsi2024
🔹 شاید مشکل AI Agent خودِ مدل نباشه
چرا بعضی Agentها با وجود استفاده از مدلهای قدرتمند، باز هم عملکرد خوبی ندارن؟
یک دلیل مهم میتونه چیزی باشه که بهش میگن «Harness».
Harness محیطیه که مدل داخلش کار میکنه؛
ابزارها، حافظه، دسترسی به فایلها، محدودیتها و نحوه مدیریت کار.
یعنی ممکنه دو Agent از یک مدل یکسان استفاده کنن، ولی یکی خیلی بهتر عمل کنه.
چون برای Agent فقط «مدل» مهم نیست؛
چیزی که دور مدل ساخته شده هم اهمیت داره.
به همین دلیل رقابت Agentها داره کمکم از «کدوم مدل باهوشتره؟» به «کدوم محیط بهتره؟» تغییر میکنه.
🔗 https://www.earendil.com/what-is-a-harness/
#AI #AIAgents #Programming
────────────
چرا بعضی Agentها با وجود استفاده از مدلهای قدرتمند، باز هم عملکرد خوبی ندارن؟
یک دلیل مهم میتونه چیزی باشه که بهش میگن «Harness».
Harness محیطیه که مدل داخلش کار میکنه؛
ابزارها، حافظه، دسترسی به فایلها، محدودیتها و نحوه مدیریت کار.
یعنی ممکنه دو Agent از یک مدل یکسان استفاده کنن، ولی یکی خیلی بهتر عمل کنه.
چون برای Agent فقط «مدل» مهم نیست؛
چیزی که دور مدل ساخته شده هم اهمیت داره.
به همین دلیل رقابت Agentها داره کمکم از «کدوم مدل باهوشتره؟» به «کدوم محیط بهتره؟» تغییر میکنه.
🔗 https://www.earendil.com/what-is-a-harness/
#AI #AIAgents #Programming
────────────
@PythonFarsi2024
🔹 netcat رو با Tailscale ترکیب کنی چی میشه؟
Tailcat یه ابزار کوچیک و متنبازه که ایدهی netcat رو میاره روی شبکه Tailscale.
اگه با netcat کار کرده باشی، میدونی میتونه بین دو سیستم یک اتصال ساده TCP/UDP برقرار کنه.
Tailcat همین ایده رو داره، ولی برای دستگاههایی که داخل شبکه Tailscale هستن.
یعنی میتونی بدون درگیر شدن با Port Forwarding، باز کردن پورت روی اینترنت یا پیدا کردن IP عمومی، بین دستگاههای خودت ارتباط برقرار کنی.
مثلاً یه لپتاپ و یه سرور که هر دو Tailscale دارن؛ Tailcat میتونه یک ارتباط مستقیم بینشون ایجاد کنه.
قسمت جالبش اینه که به جای ساختن یک ابزار کاملاً جدید، تجربهی آشنای netcat رو با شبکهی خصوصی Tailscale ترکیب کرده.
یه ابزار کوچیک، ولی برای کارهای شبکهای خیلی کاربردی.
🔗 GitHub:
https://github.com/tailscale/tailcat
#Linux #Tailscale #Networking #OpenSource
────────────
Tailcat یه ابزار کوچیک و متنبازه که ایدهی netcat رو میاره روی شبکه Tailscale.
اگه با netcat کار کرده باشی، میدونی میتونه بین دو سیستم یک اتصال ساده TCP/UDP برقرار کنه.
Tailcat همین ایده رو داره، ولی برای دستگاههایی که داخل شبکه Tailscale هستن.
یعنی میتونی بدون درگیر شدن با Port Forwarding، باز کردن پورت روی اینترنت یا پیدا کردن IP عمومی، بین دستگاههای خودت ارتباط برقرار کنی.
مثلاً یه لپتاپ و یه سرور که هر دو Tailscale دارن؛ Tailcat میتونه یک ارتباط مستقیم بینشون ایجاد کنه.
قسمت جالبش اینه که به جای ساختن یک ابزار کاملاً جدید، تجربهی آشنای netcat رو با شبکهی خصوصی Tailscale ترکیب کرده.
یه ابزار کوچیک، ولی برای کارهای شبکهای خیلی کاربردی.
🔗 GitHub:
https://github.com/tailscale/tailcat
#Linux #Tailscale #Networking #OpenSource
────────────
@PythonFarsi2024
🔹 وقتی
یک آسیبپذیری در Python پیدا شده که ریشهاش به پردازش نام دامنههای غیرانگلیسی برمیگرده.
مشکل از اینجا شروع میشه که Python برای تبدیل بعضی دامنهها باید طبق قوانین قدیمی Unicode 3.2 عمل کنه.
اما در یک مسیر از کد، بهجای اون قوانین، از
این دو روش برای بعضی کاراکترهای خاص نتیجه یکسانی ندارن.
یعنی ممکنه یک ورودی مثل:
در یک قسمت برنامه به یک نام تبدیل بشه، ولی قسمت دیگه همون ورودی رو به نام متفاوتی تبدیل کنه.
حالا تصور کن برنامه قبل از انجام یک عملیات حساس، دامنه رو بررسی کنه.
اگر بررسی امنیتی یک مقدار رو ببینه ولی بخش دیگه مقدار متفاوتی رو استفاده کنه، مهاجم ممکنه بتونه این اختلاف رو به نفع خودش استفاده کنه.
این مشکل با شناسه CVE-2026-17084 ثبت شده و Python برای رفعش، پردازش IDNA 2003 رو اصلاح کرده.
نکته جالب اینه که:
مشکل از این بود که برای یک کار حساس، تابعی استفاده شده بود که قوانین Unicode متفاوتی رو دنبال میکرد.
🔗 توضیح فنی:
https://sethmlarson.dev/when-str-lower-is-a-security-vulnerability
#Python #Security #CyberSecurity
────────────
lower() باعث شد Python یک دامنه رو اشتباه ببینه!یک آسیبپذیری در Python پیدا شده که ریشهاش به پردازش نام دامنههای غیرانگلیسی برمیگرده.
مشکل از اینجا شروع میشه که Python برای تبدیل بعضی دامنهها باید طبق قوانین قدیمی Unicode 3.2 عمل کنه.
اما در یک مسیر از کد، بهجای اون قوانین، از
str.lower() استفاده میشد.این دو روش برای بعضی کاراکترهای خاص نتیجه یکسانی ندارن.
یعنی ممکنه یک ورودی مثل:
دامنهای با یک کاراکتر خاصدر یک قسمت برنامه به یک نام تبدیل بشه، ولی قسمت دیگه همون ورودی رو به نام متفاوتی تبدیل کنه.
حالا تصور کن برنامه قبل از انجام یک عملیات حساس، دامنه رو بررسی کنه.
اگر بررسی امنیتی یک مقدار رو ببینه ولی بخش دیگه مقدار متفاوتی رو استفاده کنه، مهاجم ممکنه بتونه این اختلاف رو به نفع خودش استفاده کنه.
این مشکل با شناسه CVE-2026-17084 ثبت شده و Python برای رفعش، پردازش IDNA 2003 رو اصلاح کرده.
نکته جالب اینه که:
str.lower() خراب نیست.مشکل از این بود که برای یک کار حساس، تابعی استفاده شده بود که قوانین Unicode متفاوتی رو دنبال میکرد.
🔗 توضیح فنی:
https://sethmlarson.dev/when-str-lower-is-a-security-vulnerability
#Python #Security #CyberSecurity
────────────
@PythonFarsi2024
🔴 یک باگ بحرانی Gitea الان در حال سوءاستفاده است
یک آسیبپذیری با شدت 9.8 در Gitea پیدا شده که میتونه به مهاجم اجازه بده روی سروری که Gitea روش اجرا میشه، دستور اجرا کنه.
ماجرا از جایی شروع میشه که مهاجم میتونه یک Patch مخرب به repository بده.
Gitea این Patch رو پردازش میکنه و در شرایط خاص، مهاجم میتونه از همین مسیر یک Git Hook مخرب وارد repository کنه.
بعد از اون، Hook با سطح دسترسی کاربر سرویس Gitea اجرا میشه.
قسمت نگرانکنندهتر اینه که در نصبهایی که ثبتنام کاربران بازه، مهاجم میتونه حتی بدون داشتن حساب قبلی، یک حساب بسازه و دسترسی لازم رو به دست بیاره.
این آسیبپذیری با شناسه CVE-2026-60004 ثبت شده و نسخههای 1.17 تا قبل از 1.27.1 تحت تأثیر قرار دارن.
و حالا موضوع فقط یک باگ تئوری نیست:
CISA این آسیبپذیری رو به فهرست Known Exploited Vulnerabilities اضافه کرده و حملههای واقعی علیه Gitea گزارش شده.
اگر Gitea روی سرور داری، این یکی رو نباید بندازی برای بعد.
🔗 گزارش رسمی Gitea:
https://github.com/go-gitea/gitea/security/advisories/GHSA-rcr6-4jqh-j84m
#Gitea #Security #Git #OpenSource
────────────
یک آسیبپذیری با شدت 9.8 در Gitea پیدا شده که میتونه به مهاجم اجازه بده روی سروری که Gitea روش اجرا میشه، دستور اجرا کنه.
ماجرا از جایی شروع میشه که مهاجم میتونه یک Patch مخرب به repository بده.
Gitea این Patch رو پردازش میکنه و در شرایط خاص، مهاجم میتونه از همین مسیر یک Git Hook مخرب وارد repository کنه.
بعد از اون، Hook با سطح دسترسی کاربر سرویس Gitea اجرا میشه.
قسمت نگرانکنندهتر اینه که در نصبهایی که ثبتنام کاربران بازه، مهاجم میتونه حتی بدون داشتن حساب قبلی، یک حساب بسازه و دسترسی لازم رو به دست بیاره.
این آسیبپذیری با شناسه CVE-2026-60004 ثبت شده و نسخههای 1.17 تا قبل از 1.27.1 تحت تأثیر قرار دارن.
و حالا موضوع فقط یک باگ تئوری نیست:
CISA این آسیبپذیری رو به فهرست Known Exploited Vulnerabilities اضافه کرده و حملههای واقعی علیه Gitea گزارش شده.
اگر Gitea روی سرور داری، این یکی رو نباید بندازی برای بعد.
🔗 گزارش رسمی Gitea:
https://github.com/go-gitea/gitea/security/advisories/GHSA-rcr6-4jqh-j84m
#Gitea #Security #Git #OpenSource
────────────
@PythonFarsi2024
🔸 میخواید موقع گوش دادن به آهنگ، متن آهنگ هم همزمان براتون نمایش داده بشه؟
با فایلهای LRC میتونید متن آهنگ رو با زمانبندی دقیق به موزیک پلیر اضافه کنید؛ مثلاً در پلیرهای شیائومی، هواوی و خیلی از پلیرهای دیگه.
برای ساخت فایل LRC میتونید از برنامه LRC Editor استفاده کنید:
🔗 لینک دانلود:
https://f-droid.org/packages/com.cg.lrceditor
چند نکته:
▪️ هر بخش از متن آهنگ در یک Line قرار میگیره.
▪️ با زدن دکمه
▪️ فایل
▪️ برای پیدا کردن متن آهنگ میتونید از AI یا سایتهایی مثل Genius کمک بگیرید.
مثلاً میتونید متن فارسی ترجمهشده رو هم کنار متن اصلی قرار بدید تا موقع گوش دادن، ترجمه هم داشته باشید.
#متفرقه #lyric
────────────
با فایلهای LRC میتونید متن آهنگ رو با زمانبندی دقیق به موزیک پلیر اضافه کنید؛ مثلاً در پلیرهای شیائومی، هواوی و خیلی از پلیرهای دیگه.
برای ساخت فایل LRC میتونید از برنامه LRC Editor استفاده کنید:
🔗 لینک دانلود:
https://f-droid.org/packages/com.cg.lrceditor
چند نکته:
▪️ هر بخش از متن آهنگ در یک Line قرار میگیره.
▪️ با زدن دکمه
+ میتونید زمان شروع هر خط رو مشخص کنید.▪️ فایل
.lrc باید همنام فایل آهنگ باشه و هر دو داخل یک پوشه قرار بگیرن.▪️ برای پیدا کردن متن آهنگ میتونید از AI یا سایتهایی مثل Genius کمک بگیرید.
مثلاً میتونید متن فارسی ترجمهشده رو هم کنار متن اصلی قرار بدید تا موقع گوش دادن، ترجمه هم داشته باشید.
#متفرقه #lyric
────────────
@PythonFarsi2024
❤2💔1
🔐 AppArmor در Linux 7.3 سریعتر میشود
یکی از تغییرات جالب Linux 7.3 مربوط به AppArmor است.
از این نسخه، AppArmor میتواند Policyهای امنیتی را قبل از ارسال به Kernel در فضای کاربر فشرده کند.
این تغییر برای سیستمهایی که Profileهای AppArmor زیادی دارند، میتواند زمان بارگذاری را کاهش دهد؛ Canonical در آزمایشها تا حدود ۳۰٪ بهبود در زمان صرفشده توسط سیستم را برای Profileهای بزرگ گزارش کرده.
مزیت دیگر، مصرف حافظه کمتر است؛ موضوعی که برای سیستمهای محدود مثل دستگاههای Embedded اهمیت بیشتری دارد.
یعنی یک تغییر نسبتاً کوچک در نحوه ذخیره و بارگذاری Policyها، میتواند هم سرعت و هم مصرف منابع را بهتر کند.
این قابلیت همراه با چند تغییر امنیتی و اصلاحات دیگر وارد Linux 7.3 شده است.
🔗 https://www.phoronix.com/news/Linux-7.3-AppArmor
#Linux #Security #AppArmor #OpenSource
────────────
یکی از تغییرات جالب Linux 7.3 مربوط به AppArmor است.
از این نسخه، AppArmor میتواند Policyهای امنیتی را قبل از ارسال به Kernel در فضای کاربر فشرده کند.
این تغییر برای سیستمهایی که Profileهای AppArmor زیادی دارند، میتواند زمان بارگذاری را کاهش دهد؛ Canonical در آزمایشها تا حدود ۳۰٪ بهبود در زمان صرفشده توسط سیستم را برای Profileهای بزرگ گزارش کرده.
مزیت دیگر، مصرف حافظه کمتر است؛ موضوعی که برای سیستمهای محدود مثل دستگاههای Embedded اهمیت بیشتری دارد.
یعنی یک تغییر نسبتاً کوچک در نحوه ذخیره و بارگذاری Policyها، میتواند هم سرعت و هم مصرف منابع را بهتر کند.
این قابلیت همراه با چند تغییر امنیتی و اصلاحات دیگر وارد Linux 7.3 شده است.
🔗 https://www.phoronix.com/news/Linux-7.3-AppArmor
#Linux #Security #AppArmor #OpenSource
────────────
@PythonFarsi2024
🦀 قرار است یک درایور نمایشگر USB با Rust برای Linux ساخته شود
تلاش جدیدی برای نوشتن درایورهای نمایشگر USB با Rust در Linux شروع شده.
چند Patch جدید، abstractionهای لازم برای ساخت یک درایور USB Display با Rust را به Kernel اضافه میکنند.
هدف پروژه، پشتیبانی از DisplayLink DL3 است؛ همون تکنولوژیای که در بعضی USB Dockها برای اتصال مانیتورهای بیشتر استفاده میشه.
جالب اینجاست که این کار میتونه به کنار گذاشتن بخشی از stack فعلی DisplayLink که به درایور خارج از Kernel و نرمافزار بسته وابسته است کمک کنه.
فعلاً این کار در مرحله بررسی و توسعه است، اما یک قدم دیگه برای استفاده جدیتر از Rust در Linux Kernel محسوب میشه.
🔗 https://lwn.net/Articles/1090780/
#Linux #Rust #Kernel #OpenSource
────────────
تلاش جدیدی برای نوشتن درایورهای نمایشگر USB با Rust در Linux شروع شده.
چند Patch جدید، abstractionهای لازم برای ساخت یک درایور USB Display با Rust را به Kernel اضافه میکنند.
هدف پروژه، پشتیبانی از DisplayLink DL3 است؛ همون تکنولوژیای که در بعضی USB Dockها برای اتصال مانیتورهای بیشتر استفاده میشه.
جالب اینجاست که این کار میتونه به کنار گذاشتن بخشی از stack فعلی DisplayLink که به درایور خارج از Kernel و نرمافزار بسته وابسته است کمک کنه.
فعلاً این کار در مرحله بررسی و توسعه است، اما یک قدم دیگه برای استفاده جدیتر از Rust در Linux Kernel محسوب میشه.
🔗 https://lwn.net/Articles/1090780/
#Linux #Rust #Kernel #OpenSource
────────────
@PythonFarsi2024
🔐 چرا Linux میخواد یک API رمزنگاری خودش رو کنار بذاره؟
اسمش `AF_ALG`ـه؛ یک رابط در Linux که به برنامههای معمولی اجازه میده از الگوریتمهای رمزنگاری داخل Kernel استفاده کنن.
ایدهاش ساده بود:
بهجای اینکه هر برنامه جداگانه یک کتابخانه رمزنگاری داشته باشه، میتونست از امکانات Crypto API خود Kernel استفاده کنه.
اما در عمل، نگهداری و امن نگه داشتنش تبدیل به دردسر شد.
AF_ALG در طول سالهای گذشته درگیر چندین مشکل امنیتی شده و بعضی آسیبپذیریها از همین مسیر به Kernel رسیدهاند.
حالا توسعهدهندگان Linux به این نتیجه رسیدهاند که شاید ادامه دادن این رابط ارزش دردسرش رو نداشته باشه و بحث حذف تدریجی اون مطرح شده.
قسمت جالب ماجرا اینه:
قرار بود AF_ALG دسترسی سادهتر به قابلیتهای رمزنگاری Kernel بده؛
اما حالا خودِ همین مسیر دسترسی به یک نگرانی امنیتی تبدیل شده.
یعنی گاهی اوقات امنتر کردن یک سیستم، نه با اضافه کردن قابلیت جدید، بلکه با حذف یک رابط قدیمی انجام میشه.
🔗 https://lwn.net/Articles/1088565/
#Linux #Security #Cryptography #Kernel
────────────
اسمش `AF_ALG`ـه؛ یک رابط در Linux که به برنامههای معمولی اجازه میده از الگوریتمهای رمزنگاری داخل Kernel استفاده کنن.
ایدهاش ساده بود:
بهجای اینکه هر برنامه جداگانه یک کتابخانه رمزنگاری داشته باشه، میتونست از امکانات Crypto API خود Kernel استفاده کنه.
اما در عمل، نگهداری و امن نگه داشتنش تبدیل به دردسر شد.
AF_ALG در طول سالهای گذشته درگیر چندین مشکل امنیتی شده و بعضی آسیبپذیریها از همین مسیر به Kernel رسیدهاند.
حالا توسعهدهندگان Linux به این نتیجه رسیدهاند که شاید ادامه دادن این رابط ارزش دردسرش رو نداشته باشه و بحث حذف تدریجی اون مطرح شده.
قسمت جالب ماجرا اینه:
قرار بود AF_ALG دسترسی سادهتر به قابلیتهای رمزنگاری Kernel بده؛
اما حالا خودِ همین مسیر دسترسی به یک نگرانی امنیتی تبدیل شده.
یعنی گاهی اوقات امنتر کردن یک سیستم، نه با اضافه کردن قابلیت جدید، بلکه با حذف یک رابط قدیمی انجام میشه.
🔗 https://lwn.net/Articles/1088565/
#Linux #Security #Cryptography #Kernel
────────────
@PythonFarsi2024
یه چیزی ذهنم درگیر کرده
▪️معادل فارسی سازی کلمات کار درستیه؟
(توی بخش کامنت نظرتون بگید)
▪️معادل فارسی سازی کلمات کار درستیه؟
(توی بخش کامنت نظرتون بگید)
مثلا ما برنامه نویسیم pinned «یه چیزی ذهنم درگیر کرده ▪️معادل فارسی سازی کلمات کار درستیه؟ (توی بخش کامنت نظرتون بگید)»
⌨️ یه سایت برای تقویت تایپ دهانگشتی
اگه هنوز موقع کدنویسی دنبال کلیدهای کیبورد میگردید، شاید وقتشه تایپ دهانگشتی رو جدیتر تمرین کنید.
سایت edclub بخشی به اسم TypingClub داره که تایپ کردن رو از پایه و بهصورت مرحلهای آموزش میده؛ از جایگیری انگشتها و ردیفهای کیبورد شروع میکنه و کمکم سرعت و دقتتون رو بالا میبره.
🎮 تمرینها هم فقط تایپ خشک و خالی نیستن؛ بازی، امتیاز و چالش هم داره که تمرین رو کمتر خستهکننده میکنه.
برای شروع حتی بعضی دورهها بدون ساخت حساب هم قابل استفادهان؛ ولی با حساب کاربری میتونید پیشرفتتون رو ذخیره کنید.
+تمام زبان هارو داره!
🔗 edclub / TypingClub
#معرفی_سایت #Typing #برنامه_نویسی
اگه هنوز موقع کدنویسی دنبال کلیدهای کیبورد میگردید، شاید وقتشه تایپ دهانگشتی رو جدیتر تمرین کنید.
سایت edclub بخشی به اسم TypingClub داره که تایپ کردن رو از پایه و بهصورت مرحلهای آموزش میده؛ از جایگیری انگشتها و ردیفهای کیبورد شروع میکنه و کمکم سرعت و دقتتون رو بالا میبره.
🎮 تمرینها هم فقط تایپ خشک و خالی نیستن؛ بازی، امتیاز و چالش هم داره که تمرین رو کمتر خستهکننده میکنه.
برای شروع حتی بعضی دورهها بدون ساخت حساب هم قابل استفادهان؛ ولی با حساب کاربری میتونید پیشرفتتون رو ذخیره کنید.
+تمام زبان هارو داره!
🔗 edclub / TypingClub
#معرفی_سایت #Typing #برنامه_نویسی
❤4
🎮 راهنمای اجرای بازیهای Online-Fix روی لینوکس
اگه روی لینوکس بازیهایی دارید که از Online-Fix استفاده میکنن، احتمالاً با خطاهایی مثل
نکته اینجاست که همهی Online-Fixها به یک شکل کار نمیکنن؛ بعضیها با Spacewar اجرا میشن، بعضی به
این راهنما روشهای مختلف اجرای این بازیها روی لینوکس با Proton و umu-launcher رو توضیح میده.
🔹 روش استاندارد — Spacewar
برای بازیهایی که از روش استاندارد Online-Fix استفاده میکنن، میتونید بازی رو به Steam اضافه کنید و این گزینه رو در Launch Options قرار بدید:
🔹 بدون اضافه کردن بازی به Steam
با استفاده از umu-launcher میتونید بازی رو خارج از Steam Library اجرا کنید. در این روش ابتدا Spacewar با App ID
🔗 umu-launcher
🔹 Fixهای دارای
بعضی بازیها فایل
🔹 خطای
بعضی Fixها فقط وجود DLLهای Steam رو بررسی نمیکنن و انتظار دارن Steam واقعاً داخل Prefix قابل مشاهده باشه.
برای این موارد پروژهی Steam Online Fix Launcher میتونه کمک کنه:
🔗 Steam Online Fix Launcher
🔹 خطای
برای بعضی بازیها جایگزین کردن
🔹 خطای
اگر این خطا رو با
🕷 Arachnel
اگه حوصلهی تنظیم دستی Prefix، DLL Override و App ID رو ندارید، پروژهی Arachnel هم برای سادهتر کردن اجرای Online-Fix روی لینوکس در حال توسعهست.
🔗 GitHub / Arachnel
در نهایت اگر هیچکدوم از این روشها جواب نداد، میشه Steam رو داخل Wine Prefix نصب کرد؛ هرچند بهتره این روش رو بهعنوان آخرین راهحل در نظر بگیرید.
📌 خلاصه: نوع Online-Fix هر بازی رو مشخص کنید؛ بعد بر اساس نوع Fix سراغ Steam،
+به راحتی از گلدتیم و... گیم انلاین پلی بدین
📍منبع ردیت
#Linux #Gaming #Proton #OnlineFix #Steam #Wine
────────────
اگه روی لینوکس بازیهایی دارید که از Online-Fix استفاده میکنن، احتمالاً با خطاهایی مثل
Steam is not running، Failed read Steam Environment یا مشکل Steam Overlay برخورد کردید.نکته اینجاست که همهی Online-Fixها به یک شکل کار نمیکنن؛ بعضیها با Spacewar اجرا میشن، بعضی به
steam_appid.txt نیاز دارن و بعضیها حتی وجود Steam داخل Wine Prefix رو بررسی میکنن.این راهنما روشهای مختلف اجرای این بازیها روی لینوکس با Proton و umu-launcher رو توضیح میده.
🔹 روش استاندارد — Spacewar
برای بازیهایی که از روش استاندارد Online-Fix استفاده میکنن، میتونید بازی رو به Steam اضافه کنید و این گزینه رو در Launch Options قرار بدید:
WINEDLLOVERRIDES="OnlineFix64=n;SteamOverlay64=n;winmm=n,b;dnet=n;steam_api64=n;winhttp=n,b" %command%
🔹 بدون اضافه کردن بازی به Steam
با استفاده از umu-launcher میتونید بازی رو خارج از Steam Library اجرا کنید. در این روش ابتدا Spacewar با App ID
480 نصب و اجرا میشه، سپس Prefix اون برای اجرای بازی استفاده میشه.🔗 umu-launcher
🔹 Fixهای دارای
steam_appid.txtبعضی بازیها فایل
steam_appid.txt دارن که App ID مورد استفادهی بازی داخلش قرار گرفته. در این نوع Fixها ممکنه لازم باشه App ID مشخصشده توسط Fix رو داخل این فایل قرار بدید.🔹 خطای
Steam is not runningبعضی Fixها فقط وجود DLLهای Steam رو بررسی نمیکنن و انتظار دارن Steam واقعاً داخل Prefix قابل مشاهده باشه.
برای این موارد پروژهی Steam Online Fix Launcher میتونه کمک کنه:
🔗 Steam Online Fix Launcher
🔹 خطای
Failed read Steam Environmentبرای بعضی بازیها جایگزین کردن
SteamFix64.dll میتونه مشکل رو برطرف کنه؛ البته این روش برای همهی بازیها تضمینی نیست و به ساختار Fix بستگی داره.🔹 خطای
Failed to load Steam Overlay DLLاگر این خطا رو با
umu-launcher دریافت کردید، اجرای بازی از طریق Steam رو هم امتحان کنید؛ بعضی بازیها فقط در این حالت درست کار میکنن.🕷 Arachnel
اگه حوصلهی تنظیم دستی Prefix، DLL Override و App ID رو ندارید، پروژهی Arachnel هم برای سادهتر کردن اجرای Online-Fix روی لینوکس در حال توسعهست.
🔗 GitHub / Arachnel
در نهایت اگر هیچکدوم از این روشها جواب نداد، میشه Steam رو داخل Wine Prefix نصب کرد؛ هرچند بهتره این روش رو بهعنوان آخرین راهحل در نظر بگیرید.
📌 خلاصه: نوع Online-Fix هر بازی رو مشخص کنید؛ بعد بر اساس نوع Fix سراغ Steam،
umu-launcher، steam_appid.txt یا Online Fix Launcher برید.+به راحتی از گلدتیم و... گیم انلاین پلی بدین
📍منبع ردیت
#Linux #Gaming #Proton #OnlineFix #Steam #Wine
────────────
@PythonFarsi2024
❤1