مثلا ما برنامه نویسیم
Открыть в Telegram
رو به پیشرفت و آزادی گروه: @pythonfarsiGP --------- سرور دیسکورد: https://discord.com/invite/vRWCSQYs سرور guilded: https://www.guilded.gg/i/k3Zjgl12
Больше365
Подписчики
+324 часа
+27 дней
+730 день
Архив постов
🔹 فقط
cargo build کافی بود تا بدافزار اجرا بشه
یک حمله زنجیره تأمین به اکوسیستم Rust اتفاق افتاده که ماجراش کمی جدیتر از یک پکیج آلوده معمولیه.
سه crate به نامهای arrayref، internment و append-only-vec دستکاری شده بودن و نسخههای مخربشون وارد crates.io شده بود.
مشکل اصلی اینجا بود که کد مخرب مستقیماً داخل این پروژهها به شکل واضح قرار نگرفته بود.
مهاجم یک dependency جعلی به اسم proc-macro1 اضافه کرده بود؛ اسمی که عمداً شبیه proc-macro2 انتخاب شده بود.
این dependency یک build.rs مخرب داشت که هنگام کامپایل پروژه، payload بعدی رو دانلود و اجرا میکرد.
یعنی در سناریوی آلوده، لازم نبود برنامه رو اجرا کنی.
فقط:
cargo build
میتونست برای اجرای کد مهاجم کافی باشه.
یکی از crateهای تحت تأثیر arrayref 0.3.10 بود که طبق گزارشها بیش از ۲۴۵ میلیون دانلود داشته.
تیم امنیتی Rust نسخههای آلوده رو از crates.io حذف کرده.
این اتفاق یک یادآوری مهمه:
وقتی یک dependency رو به پروژه اضافه میکنیم، فقط کدی که خودمون میبینیم مهم نیست؛ کدهایی که هنگام build اجرا میشن هم بخشی از سطح حمله هستن.
🔗 گزارش رسمی Rust:
Rust Security Advisory
#Rust #Security #CyberSecurity
────────────
@PythonFarsi2024
🔹GitHub داره AI Agent رو وارد خودِ روند برنامهنویسی میکنه
قبلاً AI بیشتر یه ابزار بود؛
کد مینوشتی، ازش کمک میگرفتی و خودت تصمیم میگرفتی چی وارد پروژه بشه.
ولی GitHub داره یک قدم جلوتر میره.
با GitHub Agentic Workflows میتونی به یک AI Agent بگی داخل repository کارهایی مثل بررسی Issueها، بررسی Pull Requestها، تحلیل خطاهای CI یا کارهای تکراری پروژه رو انجام بده.
حتی لازم نیست برای هر کار یک اسکریپت پیچیده بنویسی؛ دستورالعمل Agent رو با Markdown تعریف میکنی و GitHub اون رو از طریق Actions اجرا میکنه.
مثلاً میتونی یک Agent داشته باشی که وقتی Issue جدیدی باز شد، محتواش رو بررسی کنه، برچسب مناسب بزنه و اگر لازم بود گزارش بده.
اما یک نکته مهم وجود داره:
AI قرار نیست همینطوری کد رو خودش وارد پروژه کنه.
در این سیستم، Pull Requestها همچنان باید توسط انسان بررسی و تأیید بشن.
یعنی GitHub داره نقش AI رو از «دستیار برنامهنویس» کمکم به «عضو خودکار تیم» نزدیک میکنه.
و این شاید یکی از تغییرات مهمی باشه که باید بهش عادت کنیم:
بهجای اینکه فقط از AI سؤال بپرسیم، ممکنه بهزودی Agentها بخشی از کارهای روزمره پروژههامون رو خودشون انجام بدن.
🔗 GitHub Agentic Workflows:
https://github.github.com/gh-aw/
#GitHub #AI #Programming
────────────
@PythonFarsi2024
🔹Mojo میخواد Python رو به GPU نزدیکتر کنه
Mojo یه زبان برنامهنویسی جدیده که توسط Modular ساخته شده؛ با تمرکز روی اجرای سریع کد، مخصوصاً در کارهای مربوط به AI.
ظاهر و بخشهایی از سینتکسش برای برنامهنویسهای Python آشناست، اما در قسمتهای پایینتر، کنترل بیشتری روی حافظه و نحوه اجرای کد میده.
این یعنی میشه از راحتی Python شروع کرد، ولی برای بخشهای سنگینتر برنامه، بیشتر به سختافزار نزدیک شد.
یکی از تمرکزهای اصلی Mojo هم اجرای کد روی CPU، GPU و شتابدهندههای مختلفه.
حالا اتفاق مهم این هفته:
Mojo در ۱۱ آگوست به نسخه 1.0 رسید.
چند روز بعد، در ۱۸ آگوست، Modular کامپایلر و بخشهای اصلی زبان رو هم Open Source کرد.
یعنی حالا سورس کد Mojo در دسترسه و میشه دید این زبان دقیقاً چطور ساخته شده و در آینده چه مسیری رو میره.
Mojo هنوز قرار نیست جای Python رو بگیره.
ولی ایدهاش جالبه:
بهجای اینکه برای هر بخش سنگین برنامه از Python به یک زبان کاملاً متفاوت مهاجرت کنی، Mojo میخواد فاصله بین این دو دنیا رو کمتر کنه.
🔗 GitHub:
https://github.com/modular/modular
#Python #Mojo #AI
────────────
@PythonFarsi2024
🔹 یه پروژه جالب برای لینوکسبازها
یه پروژه متنباز به اسم XODUS داره روی اجرای بازیهای Xbox PC روی Linux و macOS کار میکنه.
تا اینجا تونستن بخشهایی مثل لاگین Xbox، احراز هویت، گرفتن لایسنس و دانلود فایلهای بازی رو پیاده کنن.
ولی هنوز یه مشکل بزرگ مونده:
خود بازیها فعلاً اجرا نمیشن و بخش Xbox Gaming Runtime هنوز در حال توسعهست.
پروژه با Rust نوشته شده و کدش هم روی GitHub منتشر شده.
🔗 https://github.com/xodus-gaming/xodus
فعلاً خبری از Game Pass روی لینوکس نیست؛ ولی پروژه ارزش زیر نظر گرفتن داره.
#Linux #Gaming #OpenSource
────────────
@PythonFarsi2024
🔹یه سیستم دوربین مداربسته که میتونی باهاش حرف بزنی
OpenNVR یه پروژه متنبازه که دوربینهای شبکه رو به یک سیستم نظارتی هوشمند تبدیل میکنه.
قسمت جالبش اینه که فقط تصویر رو ضبط نمیکنه؛ میتونی از دوربین سؤال بپرسی.
مثلاً:
«پشت در کسی هست؟»
یا:
«امروز چه کسی جلوی در اومده؟»
OpenNVR میتونه تصویر دوربین رو با مدلهای هوش مصنوعی بررسی کنه و جواب بده.
حتی میتونه اتفاقات داخل ویدئوهای ضبطشده رو جستوجو کنه؛ مثلاً بپرسی:
«دیروز کامیون قرمز از جلوی دوربین رد شد؟»
نکته مهم اینه که برای استفاده اصلی، لازم نیست تصاویرت رو به یک سرویس ابری بفرستی. پروژه برای اجرای کاملاً محلی طراحی شده و مدل پیشفرضش هم با Ollama روی سیستم خودت اجرا میشه.
میتونی از دوربینهای شبکه معمولی استفاده کنی و کل سیستم رو با Docker روی کامپیوتر، سرور یا حتی Raspberry Pi راهاندازی کنی.
پروژه هنوز در حال توسعهست، ولی ایدهاش جالبه:
بهجای اینکه فقط فیلم دوربین رو ببینی، بتونی با دوربینت صحبت کنی و ازش درباره چیزهایی که دیده سؤال بپرسی.
🔗 GitHub:
https://github.com/open-nvr/open-nvr
#AI #Linux #OpenSource
────────────
@PythonFarsi2024
🔹یه مشکل عجیب در برنامههای Linux؛ برنامه کاملاً مستقل باشه ولی باز هم از GPU استفاده کنه
وقتی یک برنامه Linux رو بهصورت Static میسازی، بخش زیادی از وابستگیهاش به کتابخانههای سیستم حذف میشن.
این موضوع برای ساختن یک فایل اجرایی قابلحمل خیلی خوبه؛ اما وقتی برنامه بخواد از GPU استفاده کنه، داستان پیچیده میشه.
درایورهای GPU روی سیستم معمولاً به شکل کتابخانههای اشتراکی مثل .so در دسترس هستن و برنامه باید بتونه اونها رو از سیستم میزبان دریافت و اجرا کنه.
اینجاست که Solo وارد میشه.
Solo یک Loader برای فایلهای .so ساخته که اجازه میده یک برنامه Static، در صورت نیاز، کتابخانههای اشتراکی سیستم میزبان رو هم بارگذاری کنه.
مثلاً برنامهای که با Vulkan یا OpenGL کار میکنه میتونه همچنان از درایور GPU سیستم استفاده کنه، بدون اینکه لازم باشه خود برنامه به کتابخانههای سیستم مقصد وابسته باشه.
در نتیجه ایده Solo اینه:
یک فایل اجرایی نسبتاً مستقل داشته باشی، ولی وقتی به سختافزار سیستم مثل GPU رسیدی، بتونی از کتابخانههای مربوط به همون سیستم استفاده کنی.
پروژه هنوز جدیده، اما ایدهاش برای ساخت برنامههای قابلحمل Linux جالبه.
🔗 GitHub:
https://github.com/pg83/solo
#Linux #Programming #OpenSource
────────────
@PythonFarsi2024
🔹یه نفر برای Linux یه Shell با Lua ساخته
Wisp یه Shell جدیده که بهجای استفاده از syntax مخصوص Bash برای اسکریپتنویسی، از Lua استفاده میکنه.
ایده اصلیش سادهست: هر تابع Lua که داخل فایل تنظیمات تعریف کنی، میتونه به یک دستور Shell تبدیل بشه.
اما بخش جالبترش Pipelineهاست.
در Shellهای معمولی، خروجی دستورها معمولاً به شکل متن به دستور بعدی داده میشه. Wisp میتونه دادهها رو به شکل ساختاریافته و بهصورت مستقیم بین بعضی مراحل Pipeline منتقل کنه.
یعنی لازم نیست برای هر کاری خروجی متن رو با ابزارهایی مثل grep و awk پردازش کنی.
خود Wisp هم خیلی کوچیک طراحی شده؛ نسخه فعلی یک باینری کمحجم داره و برای اجرای تعاملی ساخته شده.
البته هنوز جایگزین کامل Bash نیست و بعضی قابلیتهای Bash رو نداره.
ولی ایدهاش جالبه:
اگر قرار بود امروز یک Shell جدید برای Linux طراحی کنیم، چرا باید زبان اسکریپتنویسیش شبیه Bash باشه؟
🔗 GitHub:
https://github.com/Hinikaa/wisp
#Linux #Lua #OpenSource
────────────
@PythonFarsi2024
🔹یه نفر برای Linux یه Shell با Lua ساخته
Wisp یه Shell جدیده که بهجای استفاده از syntax مخصوص Bash برای اسکریپتنویسی، از Lua استفاده میکنه.
ایده اصلیش سادهست: هر تابع Lua که داخل فایل تنظیمات تعریف کنی، میتونه به یک دستور Shell تبدیل بشه.
اما بخش جالبترش Pipelineهاست.
در Shellهای معمولی، خروجی دستورها معمولاً به شکل متن به دستور بعدی داده میشه. Wisp میتونه دادهها رو به شکل ساختاریافته و بهصورت مستقیم بین بعضی مراحل Pipeline منتقل کنه.
یعنی لازم نیست برای هر کاری خروجی متن رو با ابزارهایی مثل grep و awk پردازش کنی.
خود Wisp هم خیلی کوچیک طراحی شده؛ نسخه فعلی یک باینری کمحجم داره و برای اجرای تعاملی ساخته شده.
البته هنوز جایگزین کامل Bash نیست و بعضی قابلیتهای Bash رو نداره.
ولی ایدهاش جالبه:
اگر قرار بود امروز یک Shell جدید برای Linux طراحی کنیم، چرا باید زبان اسکریپتنویسیش شبیه Bash باشه؟
🔗 GitHub:
https://github.com/Hinikaa/wisp
#Linux #Lua #OpenSource
────────────
@PythonFarsi2024
🔹قبل از دانلود مدل AI، ببین کامپیوترت اصلاً میکشدش یا نه
تا حالا شده بخوای یه مدل هوش مصنوعی رو روی کامپیوتر خودت اجرا کنی، ولی ندونی کدوم مدل برای سختافزارت مناسبه؟
llmfit دقیقاً برای همین ساخته شده.
مشخصات سیستم مثل RAM، پردازنده و GPU رو بررسی میکنه و مدلهای مختلف رو بر اساس مصرف حافظه، سرعت تخمینی، کیفیت و اندازه Context رتبهبندی میکنه.
یعنی قبل از اینکه چند مدل حجیم رو دانلود کنی، میتونی ببینی کدوم مدلها برای سیستم تو مناسبترن.
یه قابلیت جالبتر هم داره: با llmfit bench میتونی مدل رو واقعاً روی سیستم خودت اجرا کنی و سرعت واقعی اون رو اندازه بگیری.
این پروژه روی Linux، macOS و Windows قابل استفادهست و از runtimeهایی مثل Ollama و llama.cpp هم پشتیبانی میکنه.
🔗 GitHub:
https://github.com/AlexsJones/llmfit
#AI #Linux #OpenSource
────────────
@PythonFarsi2024
Repost from Linuxor ?
یه نفر یه اپ مدیریت تمرین و باشگاه شخصی ساخته، با این تفاوت که برخلاف اپهایی مثل Hevy و Strong، قرار نیست اطلاعاتت رو روی سرور یه شرکت دیگه نگه داره؛ میتونی خودت روی سرور، کامپیوتر یا حتی گوشیت اجراش کنی.
کتابخونه تمرینهاش هم الان حدود 1,324 حرکت داره و برای خیلیهاشون انیمیشن آموزشی داره
با ری اکت و داکر ساخته شده، تست آنلاین :
opengym.duarte-santos.ch
سورس کد :
github.com/DuarteSantos8/openGym
@Linuxor
🔹یه API که به AI اجازه میده مستقیماً مرورگرت رو کنترل کنه
پروژهای به اسم Agent Browser Protocol ساخته شده تا AI Agentها بتونن مستقیماً با مرورگر ارتباط داشته باشن.
بهجای اینکه AI فقط از صفحه اسکرینشات بگیره و مثل یه کاربر روی دکمهها کلیک کنه، این پروژه یه رابط مستقیم بین Agent و مرورگر ایجاد میکنه.
یعنی Agent میتونه با تبهای مرورگر کار کنه، صفحهها رو باز کنه و با عناصر داخل صفحه تعامل داشته باشه.
از Python و Go هم میشه برای ساخت Agentهایی استفاده کرد که با این پروتکل با مرورگر ارتباط دارن.
این مدل برای کارهایی مثل اتوماسیون مرورگر، تست وبسایت و ساخت Agentهای هوشمند میتونه کاربرد داشته باشه.
🔗 کد و جزئیات پروژه در GitHub
#AI #Python #BrowserAutomation #OpenSource
────────────
@PythonFarsi2024
یوتیوب:
حرفاشو نفهمیدم، ولی مطمئنم خیار بود.
گاهی فقط باید به AI اعتماد کنی و ببینی چی تحویلت میده :))
🔹یه AI که خودش دنبال باگ امنیتی میگرده
Strix یه پروژه متنبازه که از AI برای تست امنیت برنامهها استفاده میکنه.
بهجای اینکه فقط یه لیست از مشکلات احتمالی بهت بده، میتونه برنامه رو اجرا کنه، بخشهای مختلفش رو بررسی کنه و دنبال راههایی بگرده که واقعاً بشه از یک آسیبپذیری استفاده کرد.
اگر مشکلی پیدا کنه، سعی میکنه اون رو با یک تست واقعی تأیید کنه و نتیجهای ارائه بده که بشه دوباره بررسیش کرد.
جالبتر اینکه Strix فقط برای پیدا کردن باگ نیست. میتونه بعد از پیدا شدن مشکل، یک Pull Request برای اصلاحش پیشنهاد بده و بعد دوباره تست کنه که مشکل واقعاً برطرف شده یا نه.
میتونی Strix رو روی سیستم خودت یا داخل CI اجرا کنی و حتی از مدل زبانی خودت استفاده کنی.
البته باید فقط روی برنامهها و سیستمهایی که اجازه تستشون رو داری استفاده بشه.
🔗 کد و جزئیات پروژه در GitHub
#CyberSecurity #AI #Python #OpenSource
────────────
@PythonFarsi2024
🔹یه پنل وب برای کنترل مودم 4G و 5G
VoCat یه پروژه متنبازه که برای مدیریت مودمهای سلولار Quectel ساخته شده.
بهجای اینکه برای هر کاری سراغ AT Command و ابزارهای مختلف بری، یه پنل وب در اختیارت میذاره که از داخلش میتونی وضعیت آنتن و شبکه، اپراتور، باند، سیگنال و اتصال مودم رو ببینی.
حتی میتونی AT Command و USSD اجرا کنی، SMS بفرستی و دریافت کنی و در صورت پشتیبانی سختافزار، eSIMها رو مدیریت کنی.
یه بخش جالب دیگه هم WiFi Calling و مسیریابی ترافیک از طریق SOCKS هست.
خود برنامه هم فقط مخصوص یه سیستم خاص نیست و برای Linux روی معماریهای مختلف مثل x86-64 و ARM64 باینری آماده داره. حتی میشه بهصورت Docker هم اجراش کرد.
در حال حاضر تمرکز پروژه روی مودمهایی مثل Quectel EC20، EC25 و خانواده EG25 هست.
🔗 کد و جزئیات پروژه در GitHub
#Linux #Networking #4G #OpenSource
────────────
@PythonFarsi2024
🔹اپل برای اجرای کانتینرهای Linux یه روش متفاوت ساخته
اپل یه پروژه متنباز به اسم container داره که روی مکهای Apple Silicon اجازه میده کانتینرهای Linux رو اجرا کنی.
قسمت جالبش معماری پروژهست.
در حالت معمول، چند کانتینر میتونن داخل یک محیط Linux مشترک اجرا بشن. اما معماری اصلی Apple Container اینه که هر کانتینر داخل یک VM سبک جداگانه اجرا بشه.
این VMها با
Virtualization.framework ساخته میشن و پروژه از یک Linux kernel بهینهشده و root filesystem مینیمال استفاده میکنه تا زمان راهاندازی پایین بمونه.
از طرف دیگه، پروژه با Imageهای استاندارد OCI کار میکنه و میتونی Imageهای معمولی رو از Registryها اجرا کنی.
یه قابلیت دیگه هم به اسم container machine داره که برای ساخت محیطهای Linux طولانیمدت روی مک طراحی شده.
کد پروژه هم متنبازه و با Swift نوشته شده.
البته این پروژه هنوز در حال توسعهست و معماری VM-per-container هم بدون هزینه نیست؛ هر VM منابع خودش رو مصرف میکنه.
🔗 کد و جزئیات پروژه در GitHub
#Linux #DevOps #Containers #Apple
────────────
@PythonFarsi2024
🔹یه ماشین مجازی که تو کمتر از ۲۰۰ میلیثانیه بالا میاد
پروژهای به اسم smolvm برای اجرای ماشینهای مجازی سبک و سریع ساخته شده.
برخلاف کانتینرها، هر ماشین مجازی کرنل لینوکس خودش رو داره و workload رو از سیستم میزبان جدا میکنه.
نکته جالب سرعتشه. طبق مستندات پروژه، زمان cold start ماشین مجازی میتونه کمتر از ۲۰۰ میلیثانیه باشه.
میتونی ماشین مجازی رو داخل یک فایل
.smolmachine بستهبندی کنی و روی سیستم دیگهای که معماری سازگار داره اجراش کنی.
شبکه هم بهصورت پیشفرض غیرفعاله و میتونی فقط در صورت نیاز دسترسی شبکه رو فعال کنی.
کد پروژه متنبازه و برای Linux، macOS و Windows در دسترسه.
🔗 کد و جزئیات پروژه در GitHub
────────────
@PythonFarsi2024
🔹اگه خودِ AI رابط اصلی کامپیوترت باشه چی؟
یه پروژه متنباز به اسم BMASS داره دقیقاً همین ایده رو امتحان میکنه.
BMASS از روی یه فلش USB بوت میشه و بهجای اینکه اول وارد دسکتاپ بشی و بعد یه برنامه AI باز کنی، مستقیم وارد یه محیط لینوکسی میشی که مدل هوش مصنوعی رابط اصلیشه.
جالبتر اینکه نمونه فعلی روی یه لپتاپ معمولی با ۴ گیگ رم و یه فلش ۸ گیگابایتی اجرا شده. مدل هم بهصورت محلی روی خود دستگاه اجرا میشه و بعد از نصب، برای کار کردن به اینترنت یا سرویس ابری نیاز نداره.
نسخه جدید پروژه حتی میتونه وقتی لازم باشه یه دستور لینوکس اجرا کنه، خروجی واقعی سیستم رو بگیره و بر اساس همون جواب بده.
مثلاً بهجای اینکه خودت دستورهای مختلف لینوکس رو بزنی، میتونی از سیستم بپرسی چه مقدار رم داری و BMASS خودش وضعیت واقعی سیستم رو بررسی کنه.
البته پروژه هنوز یه نمونه آزمایشیه و قرار نیست جای لینوکس یا مدلهای بزرگ ابری رو بگیره. هدفش بیشتر اینه که ببینه اگه AI به رابط اصلی سیستم تبدیل بشه، کامپیوتر چه شکلی میشه.
🔗 کد و جزئیات پروژه در GitHub
────────────
@PythonFarsi2024
کامپیوتری که CPU نداشت! 🤯
این دستگاه سال ۱۹۶۳ ساخته شده و اسمش Digi-Comp I بوده.
چیزی که جالبه اینه که خبری از CPU، ترانزیستور یا مدارهای الکترونیکی توش نبوده. این دستگاه کاملاً مکانیکی بوده و با استفاده از میلهها و Flip-Flopهای مکانیکی میتونسته محاسبات دودویی انجام بده.
حتی میشده باهاش بازی فکری NIM رو هم انجام داد؛ یه بازی که بازیکنها باید طبق قوانین مشخصی مهرهها رو از روی میز بردارن.
قیمتش هم موقع عرضه فقط ۴.۹۹ دلار بوده.
🔗 منبع: Rhode Island Computer Museum
────────────
@PythonFarsi2024
