Zhino | ژینو – Telegram
Zhino | ژینو
95 subscribers
14 photos
20 links
| 💎 Contact: @ZhinoAgent
Download Telegram
⭐️ الگوریتم PageRank؛ تحولی در موتورهای جستجو


💡 Part: 01
📙 Source:
https://en.wikipedia.org/wiki/PageRank | @HugeThinker


– تا حالا فکر کردید وقتی یه چیزی رو تو گوگل سرچ می‌کنید، چطوری تصمیم می‌گیره کدوم صفحه رو اول نشون بده؟ از بین میلیاردها صفحه، کدوم مهم‌تره؟ چرا بعضیا همیشه صفحه‌ی اولن و بعضیا حتی اگه اسم دقیق‌شون رو هم سرچ کنی، به زور پیدا می‌شن؟ ایده اولیه پشت این ماجرا یه الگوریتم معروفه: PageRank

ماجرا از یه ایده‌ی ساده شروع شد. تصور کن دنیای وب یه شبکه‌ی عظیم از صفحاته که با لینک‌ها به هم وصل شدن. هر لینک یه جور رأی‌گیریه: وقتی یه سایت به یه سایت دیگه لینک میده، داره یه جور تأیید اعتبار انجام میده. ولی همه‌ی رأی‌ها ارزش یکسانی ندارن! اگه یه سایت معروف و معتبر مثل MIT به یه صفحه لینک بده، اون صفحه کلی اعتبار می‌گیره، ولی اگه یه وبلاگ ناشناس لینک بده، تأثیرش خیلی کمه. دقیقا مثل شاخص H-index توی مقالات علمی ( اگه پروفایل های ریسرچر ها رو توی google scholar دیده باشید همچنین شاخصی دارن که خیلی مهمه )

الگوریتم PageRank می‌گه: اگه یه صفحه لینک‌های زیادی از صفحات معتبر دریافت کنه، پس خودش هم مهمه. ولی یه نکته مهم: اگه یه صفحه به هزار تا سایت دیگه لینک بده، اعتبارش بین همه‌شون تقسیم می‌شه. یعنی یه سایت اگه لینک‌های کمی بده ولی به صفحات خاصی لینک بده، اون لینک‌ها خیلی ارزشمندتر میشن.

💡 حالا گوگل هنوز هم از PageRank استفاده می‌کنه؟

اوایل که گوگل تازه کارش رو شروع کرده بود، این الگوریتم خیلی عالی جواب می‌داد، ولی کم‌کم مردم یاد گرفتن چجوری گولش بزنن! لینک‌سازی مصنوعی، خرید بک‌لینک، شبکه‌های تبادل لینک و کلی روش دیگه که باعث شد گوگل بعداً فاکتورهای خیلی پیچیده‌تری رو هم وارد ماجرا کنه، مثل یادگیری ماشین، تعامل کاربر و کیفیت محتوا.

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


*⃣ #Article #PageRank
💎 Channel: 
@ZhinoDev
5👍3🔥1
⭐️ الگوریتم PageRank؛ تحولی در موتورهای جستجو


💡 Part: 02
📙 Source:
https://en.wikipedia.org/wiki/PageRank | @HugeThinker


– این الگوریتم ساده را می‌توان با کمک ریاضی هم مانند تصویر نوشت؛ یعنی PageRank یه صفحه مثل A بستگی داره به PageRank صفحاتی که بهش لینک دادن (Bها)، ولی این تأثیر تقسیم می‌شه بین همه‌ی لینک‌های خروجی اون صفحات. اون فاکتور d (معمولاً 0.85) هم یه احتمال تصادفیه که نشون میده کاربر ممکنه یه لینک جدید رو تایپ کنه و از این شبکه خارج بشه.

اما چجوری PageRank واقعی رو حساب می‌کنن؟ چون وقتی همه چیز به هم وابسته‌ست، نمی‌شه تو یه مرحله مقدار دقیقشو فهمید. روشش اینه که یه مقدار اولیه (مثلاً برای همه‌ی صفحات عدد 1) در نظر می‌گیریم، بعد با استفاده از همین فرمول مقدار جدید هر صفحه رو حساب می‌کنیم، بعد مقدار جدید رو جایگزین قبلی می‌کنیم و این روند رو تکرار می‌کنیم تا مقدارها به یه عدد ثابت برسن (بهش می‌گن همگرایی یا Convergence).

با پایتون و NetworkX راحت می‌شه اینو تست کرد، بزارید دم دستی باهم ببینیم:


import networkx as nx

G = nx.DiGraph()
G.add_edges_from([('A', 'B'), ('A', 'C'), ('B', 'C'), ('C', 'A'), ('C', 'D'), ('D', 'A')])

pr = nx.pagerank(G, alpha=0.85)
print(pr)


این کد یه شبکه‌ی ساده می‌سازه و PageRank هر صفحه رو حساب می‌کنه. هرچی یه گره (صفحه) لینک‌های باارزش‌تری داشته باشه، عدد بالاتری می‌گیره.


*⃣ #Article #PageRank
💎 Channel: 
@ZhinoDev
🔥9👍2
🚀 سرویس Legal Simplifier یا ساده ساز حقوقی

🔗 Legal Simplifier: https://legal-simplifier-hub.netlify.app | @HugeThinker


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

🌍 چشم‌انداز ما: ما معتقدیم که دسترسی به درک صحیح از اسناد حقوقی حق همه افراد است. چشم‌انداز ما ایجاد جهانی است که در آن هیچ‌کس به دلیل عدم آشنایی با زبان حقوقی، از حقوق خود محروم نشود.

⭐️ فناوری ما: الگوریتم‌های ما قادر به شناسایی نکات کلیدی، تعهدات، شرایط فسخ، و اصطلاحات پیچیده هستند و آنها را به زبانی ساده و قابل فهم توضیح می‌دهند.


*⃣ #ZhinoTech
💎 Channel: 
@ZhinoDev
👍621
🔍 یادگیری و کار کردن با PyTorch یا TensorFlow؟🤔

به تازگی وارد دنیای یادگیری ماشین و یادگیری عمیق شدم و یکی از سوالات مهمی که ذهنم را مشغول کرده، انتخاب بین PyTorch و TensorFlow است. هر دو فریمورک محبوب در این حوزه هستند و ممکن است شما هم با این سوال مواجه شده باشید: آیا تفاوت واقعی بین این دو وجود دارد یا فقط سلیقه شخصی مطرح است؟

پاسخ این سوال مثبت است! انتخاب شما باید بر اساس نیازها و اهداف خاصتان باشد. بیایید نگاهی به تاریخچه و ویژگی‌های کلیدی این دو فریمورک بیندازیم:

🛠️ 1. اشکال‌زدایی (Debugging)

در PyTorch، محاسبات به صورت آنی انجام می‌شوند و اشکال‌زدایی با ابزارهای استاندارد پایتون مانند PyCharm بسیار ساده است. نیازی به کامپایل نمودار محاسباتی پیش از اجرا نیست، بنابراین خطاها سریع‌تر شناسایی می‌شوند.
در مقابل، TensorFlow (قبل از نسخه 2.0) از نمودارهای محاسباتی استاتیک استفاده می‌کرد که اشکال‌زدایی را دشوار می‌ساخت. هرچند بعد از نسخه 2.0 بهبودهایی ایجاد شده، اما هنوز PyTorch در این زمینه برتری دارد.


🚀 2. استقرار و تولید (Deployment Production)

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


🔍 نتیجه‌گیری

به طور کلی، PyTorch بیشتر برای تحقیقات و نمونه‌سازی مناسب است و پشتیبانی خوبی از پردازنده‌های گرافیکی با ادغام CUDA دارد. در حالی که TensorFlow برای حجم کاری تولید در مقیاس بزرگ بهینه‌سازی شده و پشتیبانی بهتری از آموزش‌های توزیع‌شده (TPUs, multi-GPU) ارائه می‌دهد.


*⃣ #DeepLearning #PyTorch #TensorFlow
💎 Channel: 
@ZhinoDev
7👍4🔥2
⭐️ تحلیل ویدیوهای ورزشی با یادگیری عمیق: از بسکتبال تا فوتبال

✏️ با گسترش روزافزون داده‌های ویدیویی در پلتفرم‌های اینترنتی، تحلیل خودکار ویدیوهای ورزشی به یک چالش بزرگ تبدیل شده است. امروز دو مقاله مرتبط با این موضوع رو بررسی کردم که به تحلیل ویدیو های بسکتبال و فوتبال با استفاده از DeepLearning پرداخته بود.


📁 1. Video Analysis and System Construction of Basketball Game by Lightweight Deep Learning under the Internet of Things
📁 2. Football Game Video Analysis Method with Deep Learning


این مقاله یک رویکرد نوین برای تحلیل خودکار ویدیوهای ورزشی ارائه می‌دهد که از الگوریتم‌های سبک‌وزن (lightweight algorithms) و تکنیک‌های یادگیری عمیق (deep learning) برای تقسیم‌بندی بازیکنان و تشخیص رویدادها در هر دو ورزش بسکتبال و فوتبال استفاده می‌کند. در مورد بسکتبال، روش پیشنهادی از ویژگی‌های حرکتی گروهی (group motion features) و جهانی (global motion features) برای تقسیم ویدیوهای بازی به سه مرحله استفاده کرده و یک روش طبقه‌بندی (classification approach) برای رویدادهایی مانند شوت و لی‌آپ ارائه می‌دهد. نتایج آزمایشی نشان‌دهنده بهبود قابل توجه در دقت تشخیص رویدادها است. به طور مشابه، برای فوتبال، این مطالعه از یادگیری عمیق با تقسیم ویدیوها به فریم‌های متوالی و استفاده از شبکه‌های عصبی کانولوشنال سه‌بعدی (3D convolutional neural networks یا 3D CNNs) در یک مدل دو مرحله‌ای برای شناسایی و طبقه‌بندی رویدادهای کلیدی استفاده می‌کند. این روش به طور موثر لحظات برجسته را از ویدیوهای طولانی فوتبال استخراج و دسته‌بندی می‌کند.

از منظر علمی، این پیشرفت‌ها با تقاضای روزافزون برای تحلیل‌های ورزشی خودکار (automated sports analytics) همسو است که بر پردازش حجم بزرگی از داده‌های ویدیویی با استفاده از بینایی کامپیوتری (computer vision) و یادگیری ماشین (machine learning) تکیه دارد. استفاده از ویژگی‌های حرکتی در تحلیل بسکتبال، اهمیت دینامیک‌های فضایی-زمانی (spatiotemporal dynamics) در ورزش‌های تیمی را نشان می‌دهد، جایی که حرکات و تعاملات بازیکنان برای تشخیص رویدادها حیاتی هستند. از سوی دیگر، کاربرد شبکه‌های 3D CNN در فوتبال، نقش مدل‌سازی زمانی (temporal modeling) را در الگوهای متوالی، مانند مسیرهای بازیکنان و حرکات توپ، برجسته می‌کند که برای شناسایی رویدادهای پیچیده مانند گل‌ها، پاس‌ها یا خطاها ضروری است. هر دو رویکرد پتانسیل ترکیب الگوریتم‌های سبک‌وزن برای پردازش بلادرنگ (real-time processing) با یادگیری عمیق برای استخراج ویژگی‌های سطح بالا (high-level feature extraction) را نشان می‌دهند و راه را برای سیستم‌های کارآمدتر و دقیق‌تر تحلیل ورزشی هموار می‌کنند. تحقیقات آینده می‌تواند به بررسی قابلیت تطبیق بین ورزش‌های مختلف، ادغام این روش‌ها در یک چارچوب یکپارچه برای تحلیل چندورزشی، یا افزایش مقاومت در شرایط نوری مختلف و زوایای دوربین بپردازد.


"استفاده از یادگیری عمیق در تحلیل ویدیوهای ورزشی نه تنها دقت تشخیص رویدادها را افزایش می‌دهد، بلکه سرعت تحلیل را نیز بهبود می‌بخشد. این فناوری می‌تواند به توسعه سریع‌تر ورزش‌هایی مانند بسکتبال و فوتبال کمک کند."


*️⃣ #DeepLearning #VideoAnalysis
💎 Channel: 
@ZhinoDev
👍5👌1
📝 کاربران Stack Overflow علیه همکاری با OpenAI اعتراض کردند!

– پلتفرم Stack Overflow، یکی از بزرگ‌ترین منابع آنلاین برای برنامه‌نویسان، اخیرا همکاری جدیدی با OpenAI را اعلام کرده است. این همکاری به OpenAI اجازه می‌دهد از محتوای کاربران برای بهبود مدل‌های هوش مصنوعی خود استفاده کند، اما این تصمیم با واکنش شدید کاربران مواجه شده است.

بر اساس این توافق، OpenAI از API اختصاصی استک‌اورفلو برای استخراج و نمایش محتوای فنی در ChatGPT استفاده خواهد کرد و وعده داده است که اعتبار نویسندگان را حفظ کند، اما جزئیات این موضوع هنوز مشخص نیست.

👀 این در حالی است که Stack Overflow تا مدت‌ها موضعی منفی نسبت به هوش مصنوعی مولد داشت و حتی پاسخ‌های تولیدشده توسط ChatGPT را در پلتفرم خود ممنوع کرده بود!

پس از این اعلام، برخی کاربران در اعتراض به این تصمیم سعی کردند پست‌های خود را حذف یا تغییر دهند، اما مدیریت سایت با تعلیق حساب‌های آن‌ها واکنش نشان داد و اعلام کرد که محتوای منتشرشده بخشی از "تلاش جمعی" کاربران است و قابل حذف نیست. ((:


💡 طبق قوانین Stack Overflow، کاربران امکان لغو مجوز استفاده از محتوای خود را ندارند، اما این محتوا تحت مجوز Creative Commons 4.0 منتشر شده که نیازمند اعتباردهی است. هنوز مشخص نیست OpenAI چگونه این الزام را رعایت خواهد کرد، اما اعتراض کاربران همچنان ادامه دارد.

💬 نظر شما چیست؟ آیا این نگرانی کاربران به‌جاست؟


*⃣ #News #OpenAI
💎 Channel:
@ZhinoDev
9
🌟 چیت‌ها یا همون ابزار تقلب در بازیهای آنلاین چطور کار می‌کنند؟

👤 mahdi
💎 Channel:
@ZhinoDev
9
Zhino | ژینو
🌟 چیت‌ها یا همون ابزار تقلب در بازیهای آنلاین چطور کار می‌کنند؟ 👤 mahdi 💎 Channel: @ZhinoDev
🌟 چیت‌ها یا همون ابزار تقلب در بازیهای آنلاین چطور کار می‌کنند؟

به طور کلی در بازی‌های آنلاین دو عامل وجود دارد که با همکاری یکدیگر می‌شه به طور آنلاین با بازیکنان دیگه یه بازی آنلاین بازی کرد.

🧑‍💻 کلاینت (Client): سیستم بازیکن که رندر گرافیک، ورودی کاربر و ارسال اطلاعات رو انجام می‌ده.

💡 مثال: اگر بازی شوتر باشه اطلاعاتی مثل
مکان دقیق بازیکن، شلیک تیر، نارنجک و ...


☁️ سرور (Server): هماهنگ‌کننده اصلی که داده‌های همه بازیکنان رو دریافت و تحلیل می‌کنه و تصمیم می‌گیره چه اتفاقی‌هایی باید بیفته.

💡 مثال: بازی اگر بازی شوتر باشه اطلاعات شلیک گلوله رو از کلاینت اول میگیره
و اطلاعات مکان بازیکن رو از کلاینت دوم میگیره. هر‌موقع که این دو مختصات روی‌هم منطبق شدند به پلیر ۲ دمیج وارد می‌شه.


🧩 خب کسایی که ابزار تقلب یا همون چیت میسازن دقیقا چه‌کاری انجام می‌دن؟ 🤔

معمولا با دستکاری فایل‌های بازی، حافظه‌ی اجرایی یا ساختار داده‌های سمت کلاینت، رفتار بازی رو عوض می‌کنن. این کار می‌تونه با روش‌هایی مثل مهندسی معکوس، تزریق کد یا ویرایش موقتی حافظه انجام بشه.


🧩 آیا چیت‌سازها از سرور بازی هم میتونن استفاده کنند؟ 👀

چون این کار نیازمند نفوذ غیرمجاز به سرور است و ریسک قانونی و امنیتی بالایی داره، معمولا مورد استفاده قرار نمی‌گیره. البته برای اینکار نیاز به مهارت‌های هک و نفوذ هم نیاز دارن.


🤖 چی باعث میشه که یک بازیکن از ابزار تقلبی استفاده کرده شناسایی بشه؟

آنتی‌چیت‌ها معمولا به دو نوع اصلی تقسیم می‌شن:

— نوع اول: یه سری که روی سیستم بازیکن اجرا می‌شن، مثل Easy Anti-Cheat یا BattleEye، که حافظه، فایل‌های DLL و فعالیت‌های مشکوک سیستم رو زیر نظر دارن.

— نوع دوم: یه نوع دیگه‌هم هست که سمت سروره و رفتار بازیکنان رو بررسی می‌کنه؛ مثلا اگر پلیری خیلی سریع‌تر از حد معمول حرکت کنه یا با دقت غیرطبیعی تیر بزنه، به‌عنوان مشکوک شناسایی می‌شه.

👈 مثالی از نحوه شناسایی:
– اگر حداکثر سرعت مجاز یک بازیکن 5 واحد بر ثانیه باشد، اما داده‌های ارسالی از کلاینت نشون بده که در یک فریم از مختصات (0,0) به (0,10) رسیده، سرور یا آنتی‌چیت می‌تونه این مورد رو به عنوان حرکت غیرمجاز ثبت کنه.

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


🎖 چیت‌های پراستفاده و نحوه کارکردشان: خب حالا بیایید بررسی کنیم که چیت های پر استفاده چطوری کار میکنن.

*⃣ اِیم‌بات [Aimbot]:

از حافظه‌ی RAM بازی موقعیت دقیق دشمن‌ها رو استخراج می‌کنه. با استفاده از توابع حرکتی موس یا تزریق DLL، موس رو به‌صورت مصنوعی به مختصات دشمن می‌بره. معمولا با FPS بازی هماهنگ میشه تا طبیعی‌تر به‌نظر برسه (و آنتی‌چیت سخت‌تر متوجه بشه).

*⃣ وال‌هک [Wallhack]:

بازی معمولا اطلاعات بقیه بازیکنان رو به دلیل سینک [Synchronizing] بهتر برای کلاینت ها میفرسته. از حافظه یا GPU این اطلاعات رو استخراج میکنن و به صورت باکس یا اسکلت بهم نمایش میدن.

*⃣ اسپید هک [Speed hack]:

در برخی بازی‌ها سرعت حرکت در RAM نگهداری میشه. چیت با تغییر اون مقدار، سرعت بازیکن رو بالا میبره. بعضی وقتا هم با دست‌کاری Time Scale این کار انجام میشه (مثل فریم‌ریت فیک).

⚠️ این نوع چیت معمولا راحت شناسایی می‌شه چون داده‌های غیرعادی برای سرور میفرسته.


*⃣ تریگر بات [Triggerbot]:

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


🔥 در آخر یادم نره بگم که به طور خلاصه  چیت‌ها از روش‌های زیر ساخته میشن:

🟡 Memory Editing:
داده‌های در حال اجرا در RAM رو تغییر میده.

🟡 DLL Injection:
کد جدیدی وارد فرآیند بازی میکنه.

🟡 Hooking APIs :
توابع گرافیکی یا کنترلی بازی رو تغییر میده.

🟡 Packet Editing:
غیر رایجه؛ بسته‌های شبکه رو تغییر میده (معمولا قابل شناسایی توسط سرور)

🟡 External Programs:
بدون دخالت مستقیم، با گرفتن اسکرین، مکان دشمن رو تشخیص میده.


*⃣ #Game #Article
💎 Channel:
@ZhinoDev
🔥11👍41
💡 معرفی پروژه آزادفونت: بستری برای خلق و گسترش فونت‌های آزاد

🔗 Site: librefont.ir
🔗 Github: https://github.com/librefontfa


– آزادفونت بستری برای ارائه، نگهداری و توسعه فونت‌های آزاد خواهد بود. در بخش ارائه، فونت‌ها از طریق CDN برای وب‌کاران در دسترس قرار می‌گیرند و روش‌های نصب ساده‌ای برای سیستم‌عامل‌های گنو/لینوکس، مک و ویندوز فراهم خواهد شد. در حوزه نگهداری، هدف ما پذیرش و به‌روزرسانی فونت‌های غیرفعال (خارج از فاز اول) است. همچنین، در بخش توسعه، با برگزاری رویدادها و پویش‌هایی برای طراحی و آموزش فونت‌های آزاد، به خلق و گسترش قلم‌های جدید کمک خواهیم کرد.

*⃣ #Community
💎 Channel: @ZhinoDev
🤝71
🌫 Learning Linux with Over The Wire 🌫
📌 Bandit Wargame


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

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

تو این دو هفته، روی یکی از wargame ها به اسم Bandit وقت گذاشتم. این بازی ۳۳ لِوِل داره که تو هر لِوِل باید با استفاده از خط فرمان لینوکس و کامندها، رمز ورود به مرحله بعدی رو پیدا کنید. اولش ممکنه مقدار کم overwhelming به نظر بیاد، ولی واقعاً بازی سرگرم‌کننده‌ایه و حتی اگه قصد سوییچ به لینوکس نداشتید، ممکنه عاشقش بشید!

مراحل از کامندهای ساده شروع می‌شن و کم‌کم پیچیده‌تر می‌شن. طراحی مراحل خیلی خلاقانه‌ست و طراحان فقط به فکر سخت‌تر کردن نبودند؛ از ترفندهای واقعی دنیای لینوکس استفاده شده تا حسابی با فضا آشناتون بکنه. تو هر مرحله، لیستی از کامندهای موردنیاز بهتون داده می‌شه و با خوندن manpage ها می‌تونید به‌راحتی مسائل رو حل کنید.

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


به‌زودی بقیه بازی‌های Over The Wire رو هم امتحان می‌کنم و نظرم رو باهاتون به اشتراک می‌ذارم. 🎮

درنهایت هم بگم، مراحل Bandit به‌گونه‌ای طراحی شدن که با کمی وقت گذاشتن قابل حل هستند و اگر به تسلط بالایی داشته باشید حتی میشه هر مرحله رو در عرض دو دقیقه حل کرد. برای خودم پیش اومده که دلم میخواست در طول یک مرحله فقط درحد ی بخشی کوچیکی رو بفهمم ولی همون باعث اسپویل شدن کل مرحله شد برام پس سعی کنید حدالامکان از این موضوع دوری کنید.

اگه سوالی درباره مراحل داشتید، تو کامنت‌های این پست یا توی پی‌وی بپرسید، سعی می‌کنم سریع راهنمایی‌تون کنم. 🙌


*️⃣ #linux #bandit #overthewire
💎 Channel:
@ZhinoDev
13
🧩 پلتفرمی برای ساخت سریع اپلیکیشن‌های هوش مصنوعی: Dify!

🗂 Repository


– پلتفرم Dify یک پلتفرم متن‌باز است که تمرکزش بر جریان کاری عامل‌محور (agentic workflows) است و امکان ساخت اپلیکیشن‌های مبتنی بر مدل بزرگ زبانی (LLM) را تسهیل می‌کند.

– از ویژگی‌های برجسته‌اش: پشتیبانی از تعداد زیادی مدل (مثلا GPT، LLaMA، Mistral)، قابلیت RAG (بازیابی با زمینه)، ابزارهای آماده برای عامل‌ها (مثل جستجو، DALL·E)، و امکانات نظارتی برای بهبود مداوم مدل در محیط تولید

– می‌توان آن را به صورت کلود یا خودمیزبان (self-hosted) اجرا کرد، با راهنمای راه‌اندازی از طریق Docker Compose در مخزن گیت‌هاب.

💬 اگر تجربه کار و استفاده ازش رو داشتید حتما باهام به اشتراک بزارید!


*⃣ #AI #OpenSource #LLM
💎 Channel:
@ZhinoDev
6👍1
🛡️ کرنل GNU Linux-Libre 6.17 برای دوست‌داران آزادی نرم‌افزار منتشر شد!

🗂 Source



– پروژه GNU Linux-Libre نسخه‌ی ۶٫۱۷ کرنل لینوکس را معرفی کرد، با حذف کامل قطعات مالکیتی (blobs) در درایورهایی مثل AMDGPU، iwlwifi، btusb، Adreno A6xx و دیگر ماژول‌ها.

– این نسخه تغییراتی در پاک‌سازی درایورهای PCI HDA، حذف deblobbing برخی درایورهای InfiniBand و به‌روزرسانی فایل‌های devicetree در معماری ARM دارد.

– هدف اصلی: ساخت یک کرنل کاملاً آزاد بدون هیچ کد یا درایور بسته، برای سیستم‌های GNU/Linux، به‌عنوان جایگزینی برای کرنل‌های استاندارد.

– بسته‌های آماده برای توزیع‌های مبتنی بر Debian (DEB) و Red Hat (RPM) ارائه شده‌اند.

💬 نظر شما چیه؟ آیا استفاده از کرنل کاملاً آزاد را ارزشمند می‌بینید؟

*⃣ #Linux #Kernel #OpenSource
💎 Channel:
@ZhinoDev
3
🚀 عرضه نسخه‌ی جدید Go 1.25.0 🎉

🗂 Source


– تیم Go رسماً نسخه ۱٫۲۵ را منتشر کرد؛ شامل بهبودهایی در runtime، کامپایلر، ابزارها و کتابخانه استاندارد.

– یکی از مهم‌ترین ویژگی‌ها: GOMAXPROCS اکنون در محیط‌های کانتینری محدودیت CPU را تشخیص می‌دهد و به‌طور هوشمند تنظیم می‌شود.

– یک GC آزمایشی جدید (“Green Tea GC”) معرفی شده که وعده کاهش بار جمع‌آوری زباله تا ۱۰ تا ۴۰٪ را داده است.

– بسته‌ی جدید testing/synctest برای تست کد همزمان اضافه شده است؛ امکان آزمایش به‌صورت ایزوله و کنترل‌شده را فراهم می‌کند.

– نسخه‌ی آزمایشی encoding/json/v2 نیز معرفی شده است که عملکرد سریع‌تر و API جدید دارد (برای فعال‌سازی باید GOEXPERIMENT=jsonv2 را تنظیم کنید).

– برخی تغییرات زیرساختی دیگر: پشتیبانی از DWARF5 برای اشکال‌زدایی، بررسی سخت‌تر nil pointer، بهبود تخصیص حافظه برای sliceها و …


*⃣ #Golang
💎 Channel:
@ZhinoDev
3
🧠 کامپایلرهای JIT در پایتون — کوتاه اما مفید

🗂 Source


– کامپایلرهای JIT یا «Just-in-Time Compilation» به پایتون کمک می‌کند عملکرد کدهایی که زیاد اجرا می‌شوند را با کامپایل کردن به‌صورت پویا در زمان اجرا افزایش دهد.

– چند کامپایلر معروف:
  • کامپایلر PyPy — یک جایگزین برای CPython با JIT داخلی، عملکرد خوبی در لوپ‌ها و محاسبات عددی دارد.

  • کامپایلر Numba — برای محاسبات عددی، مخصوصا وقتی با NumPy کار می‌کنید؛ می‌توانید با دکوراتور @jit عملکرد را ارتقا دهید.

  • کامپایلر Cython — دقیقاً یک JIT نیست، ولی با تبدیل کد پایتون به C و افزودن تایپ‌ها امکان بهبود عملکرد خیلی بزرگ را فراهم می‌کند.

– مقایسه‌ها نشان می‌دهند هر کدام در موقعیت خاص خود بهتر عمل می‌کنند؛ مثلاً وقتی کد عددی سنگین دارید، Numba یا PyPy بهتر‌اند، اما اگر نیاز به کنترل پایین‌تر و نوع‌دهی دقیق دارید، Cython گزینه بهتری است.


*⃣ #JIT #Python
💎 Channel:
@ZhinoDev
🔥2
🎬 معرفی کوتاه VisionStory — تبدیل عکس و صدا به ویدئوی سخنگو با هوش مصنوعی

🗂 Source


– برنامه VisionStory به شما امکان می‌دهد عکس چهره + فایل صوتی بارگذاری کنید و با انتخاب استودیو مجازی، یک آواتار تولیدشده توسط AI بسازید که در لوکیشن حرفه‌ای سخن می‌گوید.

– یکی از کاربردهای جالب: تبدیل فایل صوتی پادکست به ویدیوی تصویری با چند زاویه و آواتار.

– این پلتفرم همچنین برای ساخت ارائه‌های حرفه‌ای از اسلایدها کاربرد دارد: آپلود اسلاید → تولید خودکار اسکریپت برای هر اسلاید → انتخاب مجری دیجیتال و خروجی ویدیو.

– مدل کسب‌وکار: سیستم اعتباری (credit-based)، دارای نسخه رایگان و پلن‌های پولی برای دسترسی به امکانات پیشرفته مثل cloning صدا، خروجی HD و حذف واترمارک.

*⃣ #AI
💎 Channel:
@ZhinoDev
3
🧪 آزمون‌نویسی با pytest — استفاده از fixture داخلی caplog

🗂 Source


– کپلاگ یک fixture داخلی در pytest است که امکان ضبط پیام‌های logging در طول اجرای تست را فراهم می‌کند.

– می‌توانید سطح لاگ (مانند DEBUG، INFO و …) را با caplog.set_level(...) یا در بلوک with caplog.at_level(...) تنظیم کنید تا مطمئن شوید پیام‌ها ضبط می‌شوند.

– توجه کنید اگر logger شما propagate=False باشد، پیام‌ها به ریشه منتقل نمی‌شوند و caplog آن‌ها را ضبط نخواهد کرد.

– بعد از اجرای تست، می‌توانید پیام‌های ضبط‌شده را از طریق caplog.text، caplog.records یا caplog.record_tuples بررسی کنید.

*⃣ #Pytest #Python
💎 Channel:
@ZhinoDev
3
🔥 دسترسی گسترده‌تر ترمینال لینوکس در آپدیت جدید اندروید

🗂 Android Authority


قبلا تو اندروید 16 ترمینال لینوکس فقط به پوشه Downloads دسترسی داشت، که خیلی محدود بود و برای استفاده‌ی جدی باید فایل‌ها رو دستی جابجا می‌کردید.

اما حالا در آپدیت QPR2، ترمینال می‌تونه به تقریبا تمام حافظه‌ی مشترک گوشی دسترسی داشته باشه. این یعنی دیگه می‌تونید مستقیم روی فایل‌ها کار کنید؛ چه برای اجرای ابزارهای لینوکسی، چه تبدیل مدیا یا حتی تست مدل‌های AI.

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


*⃣ #News #Android
💎 Channel:
@ZhinoDev
🔥6👍1
💡 در عصری زندگی می‌کنیم که مرز بین واقعیت و فضای دیجیتال هر روز کمرنگ‌تر میشه؛ اما آیا ما واقعا صاحب دارایی‌های دیجیتالی‌مون هستیم؟

🔸 پس از سال‌ها وقفه، در اولین جلسه از سلسله جلسات لاگ تبریز (Tabriz LUG) گرد هم می‌آییم تا درباره‌ی «توهم مالکیت دیجیتال» حرف بزنیم و مسیر تازه‌ای از تفکر و همکاری رو در جامعه‌ی لینوکسی تبریز آغاز کنیم. در این دورهمی لینوکسی، نگاهی هم به «init systems» در توزیع‌های مختلف لینوکسی خواهیم داشت.

👨🏻‍🏫 ارائه‌دهنده:
کمیل پارسه، امیرحسین پناهی‌فر

🗓 زمان ارائه:
سه‌شنبه، ۲۷ آبان ۱۴۰۴، ساعت ۱۲

📍مکان:
ساختمان ۱۱ (علوم کامپیوتر)، طبقه دوم، کلاس بی (B)


@TabrizLinux
Forwarded from Syntax | سینتکس (Alireza F)
شما نتفلیکس نیستید! پس چرا از روز اول با پیچیدگی میکروسرویس‌ها خودکشی می‌کنید؟

صنعت نرم‌افزار در حال یک بازگشت عقلانی به سمت معماری‌های یکپارچه مدرن (Modular Monolith) است. جایی که یاد می‌گیریم معماری کد (Logical) باید از معماری استقرار (Physical) کاملا جدا باشه.

در اولین مقاله‌ام در ویرگول، با کالبدشکافی پروژه اپن‌سورس Quick Connect، معماری Code-Level Monolith رو معرفی کردم. معماری‌ای که حلقه گمشده بین سادگی و مقیاس‌پذیریه.

در این معماری:
۱. امروز: با سرعت بالا و هزینه کم به صورت یکپارچه دپلوی می‌کنید
۲. فردا: بدون بازنویسی کد و فقط با تغییر کانفیگ، ماژول‌های پرفشار رو جدا کرده و میکروسرویس می‌کنید (مثل Grafana Loki).

با این رویکرد، یکبار برای همیشه پرونده جنگ مونولیت علیه میکروسرویس رو ببندید!

مطالعه کامل مقاله (فارسی و انگلیسی):

ویرگول:
https://vrgl.ir/JIk5n

Dev.to:
https://dev.to/alireza_feizi_2aa9c86cac4/code-level-monolith-the-hybrid-architecture-the-art-of-flexible-deployment-2jm2

#modulith

@Syntax_fa
2