Forwarded from محتوای آزاد سهراب
امشب شب پرباری توی این هفته در کیدیای بودش، چون تعداد پیاما توی کانال زیاد شده فوروارد نمیکنم.
از این لینک میتونید برید بخونید تغییرات رو:
🔗 https://t.iss.one/kde_fa/31
@SohrabContents
از این لینک میتونید برید بخونید تغییرات رو:
🔗 https://t.iss.one/kde_fa/31
@SohrabContents
Forwarded from Gopher Academy
🔵 عنوان مقاله
🖼️ ImageProxy 0.12: A Caching Proxy Server and Transformer for Image Files
🟢 خلاصه مقاله:
مقالهای در مورد پروژهای طولانیمدت که راهکاری برای میزبانی کارآمد فایلهای تصویری فراهم میکند، علاوه بر این، امکان تغییرات ابتدایی مانند تغییر اندازه، برش دادن و چرخاندن تصاویر را نیز میدهد صحبت میکند. نسخه 0.12 که نخستین انتشار پس از چندین سال است، بهروزرسانی وابستگیها و افزودن یک ماژول برای Caddy را به همراه دارد.
🟣لینک مقاله:
https://golangweekly.com/link/168372/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🖼️ ImageProxy 0.12: A Caching Proxy Server and Transformer for Image Files
🟢 خلاصه مقاله:
مقالهای در مورد پروژهای طولانیمدت که راهکاری برای میزبانی کارآمد فایلهای تصویری فراهم میکند، علاوه بر این، امکان تغییرات ابتدایی مانند تغییر اندازه، برش دادن و چرخاندن تصاویر را نیز میدهد صحبت میکند. نسخه 0.12 که نخستین انتشار پس از چندین سال است، بهروزرسانی وابستگیها و افزودن یک ماژول برای Caddy را به همراه دارد.
🟣لینک مقاله:
https://golangweekly.com/link/168372/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
Release v0.12.0 · willnorris/imageproxy
This is the first release in over three years, though honestly not too much has changed. A lot of updates over the year in Go and dependencies. A few new options that folks have added, and a new ...
Forwarded from DevTwitter | توییت برنامه نویسی
ابزار dia یک مدلِ جدیدِ tts ـه که فقط طیِ ۴ روز 11k ستاره خورده. صداش خیلی طبیعیه. نمونههاش رو اینجا ببینید.
yummy-fir-7a4.notion.site/dia
@DevTwitter | <Ayub Kokabi/>
yummy-fir-7a4.notion.site/dia
@DevTwitter | <Ayub Kokabi/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰کشف روشهای جدید دور زدن امنیت در اوبونتو – نیازمند اقدام دستی برای مقابله
سه روش جدید برای دور زدن محدودیتهای امنیتی «فضای نام کاربر بدون دسترسی ریشه» (unprivileged user namespaces) در لینوکس اوبونتو کشف شده که به مهاجم محلی این امکان را میدهد تا آسیبپذیریهای هسته سیستم (Kernel) را مورد سوءاستفاده قرار دهد.
🔹این آسیبپذیریها به کاربران عادی (بدون دسترسی مدیریتی) اجازه میدهند تا فضاهای نامی ایجاد کنند که در آنها سطح دسترسی کامل مدیریتی داشته باشند. این مشکل نسخههای اوبونتو 23.10 (که در آن محدودیتهای فضای نامی فعال شده) و نسخه 24.04 (که این محدودیتها به صورت پیشفرض فعال هستند) را تحت تأثیر قرار میدهد.
🔹شرکت Canonical اعلام کرد که یافتههای Qualys را تأیید کرده و در حال کار روی تقویت محافظتهای AppArmor است.
با این حال، این شرکت گفته است که این موارد را آسیبپذیری امنیتی جدی در نظر نمیگیرد، بلکه آنها را محدودیتهایی در یک لایهی امنیتی اضافی میداند.
🔹خلاصه روشهای دور زدن کشفشده:
🔸. سوءاستفاده از ابزار aa-exec:
ابزار aa-exec به کاربران اجازه میدهد برنامهها را تحت پروفایلهای خاص AppArmor اجرا کنند. برخی از این پروفایلها (مثل trinity، chrome یا flatpak) به کاربران اجازه میدهند فضای نامی با دسترسی کامل ایجاد کنند. با استفاده از دستور unshare از طریق aa-exec، کاربر میتواند محدودیتهای امنیتی را دور بزند.
🔸. استفاده از busybox:
برنامه busybox که بهطور پیشفرض در نسخههای دسکتاپ و سرور اوبونتو نصب شده، دارای پروفایلی است که اجازه ایجاد فضای نامی بدون محدودیت را میدهد. مهاجم میتواند از طریق شل busybox این کار را انجام دهد و به دسترسی کامل در یک فضای جداشده برسد.
🔸. تکنیک LD_PRELOAD:
در این روش، مهاجم با استفاده از متغیر محیطی LD_PRELOAD، یک کتابخانهی سفارشی را به درون برنامهای قابل اعتماد (مثل Nautilus) تزریق میکند. از آنجا که این برنامهها دارای پروفایل AppArmor نسبتاً باز هستند، مهاجم میتواند فضای نامی با دسترسی بالا را از درون این فرآیند اجرا کند.
📌نویسنده: حسین سیلانی
📌منبع : آکادمی کندوی دانش
https://learninghive.ir
سه روش جدید برای دور زدن محدودیتهای امنیتی «فضای نام کاربر بدون دسترسی ریشه» (unprivileged user namespaces) در لینوکس اوبونتو کشف شده که به مهاجم محلی این امکان را میدهد تا آسیبپذیریهای هسته سیستم (Kernel) را مورد سوءاستفاده قرار دهد.
🔹این آسیبپذیریها به کاربران عادی (بدون دسترسی مدیریتی) اجازه میدهند تا فضاهای نامی ایجاد کنند که در آنها سطح دسترسی کامل مدیریتی داشته باشند. این مشکل نسخههای اوبونتو 23.10 (که در آن محدودیتهای فضای نامی فعال شده) و نسخه 24.04 (که این محدودیتها به صورت پیشفرض فعال هستند) را تحت تأثیر قرار میدهد.
🔹شرکت Canonical اعلام کرد که یافتههای Qualys را تأیید کرده و در حال کار روی تقویت محافظتهای AppArmor است.
با این حال، این شرکت گفته است که این موارد را آسیبپذیری امنیتی جدی در نظر نمیگیرد، بلکه آنها را محدودیتهایی در یک لایهی امنیتی اضافی میداند.
🔹خلاصه روشهای دور زدن کشفشده:
🔸. سوءاستفاده از ابزار aa-exec:
ابزار aa-exec به کاربران اجازه میدهد برنامهها را تحت پروفایلهای خاص AppArmor اجرا کنند. برخی از این پروفایلها (مثل trinity، chrome یا flatpak) به کاربران اجازه میدهند فضای نامی با دسترسی کامل ایجاد کنند. با استفاده از دستور unshare از طریق aa-exec، کاربر میتواند محدودیتهای امنیتی را دور بزند.
🔸. استفاده از busybox:
برنامه busybox که بهطور پیشفرض در نسخههای دسکتاپ و سرور اوبونتو نصب شده، دارای پروفایلی است که اجازه ایجاد فضای نامی بدون محدودیت را میدهد. مهاجم میتواند از طریق شل busybox این کار را انجام دهد و به دسترسی کامل در یک فضای جداشده برسد.
🔸. تکنیک LD_PRELOAD:
در این روش، مهاجم با استفاده از متغیر محیطی LD_PRELOAD، یک کتابخانهی سفارشی را به درون برنامهای قابل اعتماد (مثل Nautilus) تزریق میکند. از آنجا که این برنامهها دارای پروفایل AppArmor نسبتاً باز هستند، مهاجم میتواند فضای نامی با دسترسی بالا را از درون این فرآیند اجرا کند.
📌نویسنده: حسین سیلانی
📌منبع : آکادمی کندوی دانش
https://learninghive.ir
Forwarded from Ninja Learn | نینجا لرن (Denver)
خب خب خب، تفاوت Entrypoint و CMD توی داکر🐳
اگه با Dockerfile یا docker compose کار کرده باشین، احتمالا دوتا دستور CMD و Entrypoint برخورد کردین ولی تاحالا به تفاوتشون فکر کردین؟ اینکه هرکدوم چه کاری انجام میدن و کجا کاربرد دارن؟
✅CMD
برای مشخص کردن دستور پیشفرضی استفاده میشه که اگه هنگام اجرای کانتینر هیچ آرگومانی ندیم اجرا بشه. CMD باعث میشه که با خیلی راحت بتونین فقط با
توی این حالت، دستور نهایی ای که با
ولی اگه بنویسین
✅Entrypoint
برای تعیین دستور اصلی کانتیر استفاده میشه. یه جورایی میشه گفت دستور غیرقابل تغییر کانتینر رو میشه باهاش تعیین کرد. حتی اگه موقع اجرای کانتینر بیایم از آرگومان ها استفاده کنیم اون آرگومان ها به عنوان ورودی به Entrypoint پاس داده میشن. در نتیجه Entrypoint رفتار اصلی کانتینر رو تعیین میکنه.
حالا میتونین با
دستور
شما حتی میتونید همزمان ازشون استفاده کنید و با CMD آرگومان های مختلفی به دستور اصلیتون بفرستین. اینجوری دستتون برای اجرای کانتینر خیلی باز میشه.
و حالا اگه بخواین آرگومان های دستور رو تغییر بدین فقط کافیه اونهارو توی
جمع بندی✍️
از CMD برای تنظیم پیش فرض ها و حالت های مختلف استفاده کنید.
از Entrypoint برای تعیین رفتار اصلی و ثابت کانتینر استفاده کنید.
و البته که میتونین با ترکیبشون و استفاده ی درست از هردوتاشون کارای خفنی انجام بدین.
➖➖➖➖➖➖➖➖➖➖
اگه با Dockerfile یا docker compose کار کرده باشین، احتمالا دوتا دستور CMD و Entrypoint برخورد کردین ولی تاحالا به تفاوتشون فکر کردین؟ اینکه هرکدوم چه کاری انجام میدن و کجا کاربرد دارن؟
✅CMD
برای مشخص کردن دستور پیشفرضی استفاده میشه که اگه هنگام اجرای کانتینر هیچ آرگومانی ندیم اجرا بشه. CMD باعث میشه که با خیلی راحت بتونین فقط با
docker run image_name کاری که میخواین رو انجام بدین(فقط وقتی که Entrypoint وجود نداشته باشه). ولی اگه توی docker run آرگومان بدین اون آرگومان های جدید جای CMD توی Dockerfile رو میگیرن.CMD ["python3", "app.py"]
توی این حالت، دستور نهایی ای که با
docker run اجرا میشه این شکلیه:python3 app.py
ولی اگه بنویسین
docker run image_name echo hello دستور نهایی این شکلی میشه:echo hello
✅Entrypoint
برای تعیین دستور اصلی کانتیر استفاده میشه. یه جورایی میشه گفت دستور غیرقابل تغییر کانتینر رو میشه باهاش تعیین کرد. حتی اگه موقع اجرای کانتینر بیایم از آرگومان ها استفاده کنیم اون آرگومان ها به عنوان ورودی به Entrypoint پاس داده میشن. در نتیجه Entrypoint رفتار اصلی کانتینر رو تعیین میکنه.
ENTRYPOINT ["python3", "app.py"]
حالا میتونین با
docker run اجراش کنید و البته که میتونین با پاس دادن آرگومان به docker run اونهارو به Entrypoint اضافه کنید. دستور
docker run image_name --option باعث میشه که دستور نهایی ای که برای اجرا کانتینر استفاده بشه این شکلی بشه:python3 app.py --option
شما حتی میتونید همزمان ازشون استفاده کنید و با CMD آرگومان های مختلفی به دستور اصلیتون بفرستین. اینجوری دستتون برای اجرای کانتینر خیلی باز میشه.
ENTRYPOINT ["python3", "app.py"]
CMD ["--option"]
و حالا اگه بخواین آرگومان های دستور رو تغییر بدین فقط کافیه اونهارو توی
docker run به کانتینر پاس بدین.جمع بندی✍️
از CMD برای تنظیم پیش فرض ها و حالت های مختلف استفاده کنید.
از Entrypoint برای تعیین رفتار اصلی و ثابت کانتینر استفاده کنید.
و البته که میتونین با ترکیبشون و استفاده ی درست از هردوتاشون کارای خفنی انجام بدین.
#️⃣ #programming #devops
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
Forwarded from DevTwitter | توییت برنامه نویسی
دیگه لازم نیست برای وصل کردن فرانتاند به مدلهای هوش مصنوعی کلی وقت بذاری...
Vercel AI SDK اومده بازی رو عوض کنه!
با چند خط کد ساده، میتونی مستقیماً از فرانتاند درخواست به LLM بدی، بدون نیاز به کلی بکاند اضافه.
• پشتیبانی از React, Next.js, Svelte و...
• هندل خودکار Streaming Responseها
• آماده برای استفاده در پروژههای واقعی
مثلا با چند خط ساده میتونی یه Chatbot React درست کنی که مستقیماً با GPT-4 حرف میزنه!
@DevTwitter | <amirhossein gholampour/>
Vercel AI SDK اومده بازی رو عوض کنه!
با چند خط کد ساده، میتونی مستقیماً از فرانتاند درخواست به LLM بدی، بدون نیاز به کلی بکاند اضافه.
• پشتیبانی از React, Next.js, Svelte و...
• هندل خودکار Streaming Responseها
• آماده برای استفاده در پروژههای واقعی
مثلا با چند خط ساده میتونی یه Chatbot React درست کنی که مستقیماً با GPT-4 حرف میزنه!
@DevTwitter | <amirhossein gholampour/>
Forwarded from DevTwitter | توییت برنامه نویسی
اگر در زمینه تولید تصویر بصورت جدی کار میکنید پیشنهاد میشه از پلتفرم OpenAI استفاده کنید. همون GPT 4o است اما با دقت و کیفیت بهتر که از طریق ایپیآی در سایر اپلیکیشن ها هم در دسترس است.
https://platform.openai.com/
@DevTwitter | <Setareh/>
https://platform.openai.com/
@DevTwitter | <Setareh/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
🤖 MCP Go: A Go Implementation of the Model Context Protocol
🟢 خلاصه مقاله:
پروتکل مدل کانتکست (MCP)، روشی نوظهور در زمینه هوش مصنوعی و یادگیری ماشین است که به مدلهای زبان بزرگ و ابزارهای توسعه مبتنی بر AI امکان دسترسی به خدمات خارجی را میدهد. در حالی که استفاده از زبان برنامهنویسی پایتون در این زمینه غالب بوده، استفاده از زبان Go برای توسعه سرورهای MCP نیز مورد توجه قرار گرفته است. Go به دلیل کارایی بالا و قابلیت توسعهپذیری خود، گزینه مطلوبی برای توسعه سرورهای MCP محسوب میشود و این تغییر، امکان مشارکت بیشتر توسعهدهندگان مسلط به این زبان را فراهم میآورد.
🟣لینک مقاله:
https://golangweekly.com/link/168374/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
🤖 MCP Go: A Go Implementation of the Model Context Protocol
🟢 خلاصه مقاله:
پروتکل مدل کانتکست (MCP)، روشی نوظهور در زمینه هوش مصنوعی و یادگیری ماشین است که به مدلهای زبان بزرگ و ابزارهای توسعه مبتنی بر AI امکان دسترسی به خدمات خارجی را میدهد. در حالی که استفاده از زبان برنامهنویسی پایتون در این زمینه غالب بوده، استفاده از زبان Go برای توسعه سرورهای MCP نیز مورد توجه قرار گرفته است. Go به دلیل کارایی بالا و قابلیت توسعهپذیری خود، گزینه مطلوبی برای توسعه سرورهای MCP محسوب میشود و این تغییر، امکان مشارکت بیشتر توسعهدهندگان مسلط به این زبان را فراهم میآورد.
🟣لینک مقاله:
https://golangweekly.com/link/168374/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - mark3labs/mcp-go: A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications…
A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools. - mark3labs/mcp-go
Forwarded from DevTwitter | توییت برنامه نویسی
اگه یه زمانی نیاز شد تو لینوکس، ویندوز رو بالا بیاری میتونی از این ریپو برای بالا اوردن یه کانتینر داکر استفاده کنی!
https://github.com/dockur/windows
@DevTwitter | <Mohammad/>
https://github.com/dockur/windows
@DevTwitter | <Mohammad/>
Forwarded from DevAcademy
سلام دوستان امیدوارم خوب باشید،
یک شرکت معتبر در آمریکا به صورت#ریموت با پرداخت#دلاری به دنبال نیرویی با پوزیشن زیر میباشد.
#Senior_#NodeJS_ #Developer#
#Responsibilities
Job description:
Senior NodeJS Developer (5+ yrs exp.)
- Expertise in NodeJS/NestJS frameworks
- Experience handling high load/traffic applications
- Cloud & Kubernetes environment experience
- RabbitMQ or similar message queue technologies
- Experience in scaling message consumers/workers
- MySQL database management for large datasets/high load is a huge plus
- ELK stack experience is a plus
- React front-end development skills is a plus
لطفا رزومه خود را پس ازمطالعه و تطابق با جاب دیسکریبشن با ذکر #پوزیشن به ایمیل یا دایرکت بنده ارسال کنید
EMAIL:[email protected]
💻@DevAcaademy
💬@DevAcademyGroup
یک شرکت معتبر در آمریکا به صورت#ریموت با پرداخت#دلاری به دنبال نیرویی با پوزیشن زیر میباشد.
#Senior_#NodeJS_ #Developer#
#Responsibilities
Job description:
Senior NodeJS Developer (5+ yrs exp.)
- Expertise in NodeJS/NestJS frameworks
- Experience handling high load/traffic applications
- Cloud & Kubernetes environment experience
- RabbitMQ or similar message queue technologies
- Experience in scaling message consumers/workers
- MySQL database management for large datasets/high load is a huge plus
- ELK stack experience is a plus
- React front-end development skills is a plus
لطفا رزومه خود را پس ازمطالعه و تطابق با جاب دیسکریبشن با ذکر #پوزیشن به ایمیل یا دایرکت بنده ارسال کنید
EMAIL:[email protected]
💻@DevAcaademy
💬@DevAcademyGroup
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 بعنوان یه بکاند دولوپر عرض میکنم هر توسعهدهندهی بکاندی که بتونه با تولید خروجی بهتر برای ایپیآی، زحمت و چالشهای فرانتاند رو کمتر کنه و دریغ کنه، در محترمانهترین حالت ممکنه، «جونیور»ه. بذارین تمرکز فرانتاند روی پیادهسازی رابط کاربری باقی بمونه، نه ترجمه و تفسیر نقشهی گنجی که بهاسم ایپیآی تحویلش دادین.
</Mohammad Mostafa Shahraki>
@TheRaymondDev
</Mohammad Mostafa Shahraki>
@TheRaymondDev
Linkedin
بعنوان یه بکاند دولوپر عرض میکنم هر توسعهدهندهی بکاندی که بتونه با… | Mohammad Mostafa Shahraki
بعنوان یه بکاند دولوپر عرض میکنم هر توسعهدهندهی بکاندی که بتونه با تولید خروجی بهتر برای ایپیآی، زحمت و چالشهای فرانتاند رو کمتر کنه و دریغ کنه، در محترمانهترین حالت ممکنه، «جونیور»ه. بذارین تمرکز فرانتاند روی پیادهسازی رابط کاربری باقی بمونه،…
Forwarded from Python BackendHub (Mani)
علیرضا یه ابزار درست کرده برای نوشتن ماژول های پایتون با زبان Go.
یعنی چیزی شبیه به pyo3 اما خب برای گو.
https://github.com/alireza-hariri/go4py
@PyBackendHub
یعنی چیزی شبیه به pyo3 اما خب برای گو.
https://github.com/alireza-hariri/go4py
@PyBackendHub
GitHub
GitHub - alireza-hariri/go4py: ⚡ Supercharge your Python with Go ⚡
⚡ Supercharge your Python with Go ⚡. Contribute to alireza-hariri/go4py development by creating an account on GitHub.
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 پکیچ Laravel Package مورد استقبال گرفته است و با یک دستور می توانید پکیچ با تمام پوشه و فایل های پیش فرض ایجاد کنید و بقیه کارها را انجام دهید.
https://github.com/LaraPire/laravel-package
#لاراول
@TheRaymondDev
https://github.com/LaraPire/laravel-package
#لاراول
@TheRaymondDev
GitHub
GitHub - LaraPire/laravel-package: Easy creation with Laravel package
Easy creation with Laravel package. Contribute to LaraPire/laravel-package development by creating an account on GitHub.
Forwarded from DevTwitter | توییت برنامه نویسی
اگر به RAG علاقه مندید یه نفر امده انواع تکنیک ها را جمع کرده. دید خیلی خوبی میده و میتونید برای یادگیری ازش استفاده کنید
https://github.com/FareedKhan-dev/all-rag-techniques
@DevTwitter | <Mohammad/>
https://github.com/FareedKhan-dev/all-rag-techniques
@DevTwitter | <Mohammad/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 نظرات اسپم وردپرس جوری حرفه ای شدند که افزونه Akismet می تونه ۹۰ درصد جلوی آن را بگیرد و بقیه شما باید دستی اسپم های نظرات رو حذف کنید و اگر تعداد بالای آن شناسایی نشود, ممکنه در حذف نظرات اسپم طاقت فرسا باشد.
#وردپرس
@TheRaymondDev
#وردپرس
@TheRaymondDev
Forwarded from PhiloLearn | فیلولرن
این بچه دبیرستانیه رو دیدید که اومده لپ تاپ آرم اوپن سورس خودش رو ساخته؟
مانیتور امولد ۴k
کیبورد مکانیکال وایرلس
https://youtu.be/fks3PBodyiE
@PhiloLearn
مانیتور امولد ۴k
کیبورد مکانیکال وایرلس
https://youtu.be/fks3PBodyiE
@PhiloLearn
YouTube
How I Made A Laptop From Scratch - anyon_e
RK3588 SoC, 4K AMOLED 13.3" Display, 16GB DDR4 RAM, M.2 NVMe Gen 3 SSD, Wi-Fi 6 + BT 5.2, removable wireless mechanical keyboard, 10 finger touchpad, and an CNC aluminum chassis. All less than 18mm and fully open-source.
Read the blog: https://www.byran…
Read the blog: https://www.byran…
Forwarded from WECAMP
پست جدیدمون در 📱 لینکدین منتشر شد!
اگر به رایانش ابری علاقه دارید، این پست درباره OpenStack رو از دست ندید! از لینک زیر میتونید در لینکدین بخوانید:
🔗 https://lnkd.in/dSmt9SfV
@wecamppro | آموزشگاه ویکمپ
اگر به رایانش ابری علاقه دارید، این پست درباره OpenStack رو از دست ندید! از لینک زیر میتونید در لینکدین بخوانید:
@wecamppro | آموزشگاه ویکمپ
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
آموزش داکر در یک ساعت برای همه
هر کسی که در دنیای کامپیوتر هست نیاز به این ویدیو داره
پلی لیست جعبه ابزار کامپیوتری ها اومد بیرون
ببین واقعا یک ساعت وقت بزار کلکش و بکن بره دیگه عزیزجان
راستی آخر ویدیو دوتا منبع دادم که بخوای خیلی عمیق بشی تو داستان میتونی بری ته داستان رو نون بکشی و خیال راحت بشینی یه کنجی و عشقشو ببری
https://www.youtube.com/watch?v=ViV4pL9lHZ4&feature=youtu.be
@DevTwitter | <Babak Doraniarab/>
هر کسی که در دنیای کامپیوتر هست نیاز به این ویدیو داره
پلی لیست جعبه ابزار کامپیوتری ها اومد بیرون
ببین واقعا یک ساعت وقت بزار کلکش و بکن بره دیگه عزیزجان
راستی آخر ویدیو دوتا منبع دادم که بخوای خیلی عمیق بشی تو داستان میتونی بری ته داستان رو نون بکشی و خیال راحت بشینی یه کنجی و عشقشو ببری
https://www.youtube.com/watch?v=ViV4pL9lHZ4&feature=youtu.be
@DevTwitter | <Babak Doraniarab/>