Forwarded from علی مجاور | آموزش هک و امنیت (sina)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Gopher Academy
🔵 عنوان مقاله
Script 0.23: Make It Easier to Write Shell-like Scripts in Go
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته به تشریح کتابخانهای در زبان برنامهنویسی Go میپردازد که با هدف سادهسازی فرایندهایی چون خواندن فایلها، شمارش خطوط، انجام درخواستهای HTTP ساده، و اجرای زیرفرآیندها طراحی شده است. این کتابخانه مجموعهای از توابع زنجیرهای و روان را ارائه میدهد که استفاده از زبان Go در شرایط اسکریپتنویسی را تجربهای لذتبخشتر میسازد. با استفاده از این کتابخانه، برنامهنویسان میتوانند فرایندهای مورد نظر خود را به گونهای کارآمدتر و سهلتر پیادهسازی کنند، در نتیجه بهرهوری و کارآیی کد خود را افزایش دهند. این کاربردیسازی مخصوصاً در پروژههایی که نیاز به توسعه سریع دارند، مفید است.
🟣لینک مقاله:
https://golangweekly.com/link/159868/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Script 0.23: Make It Easier to Write Shell-like Scripts in Go
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته به تشریح کتابخانهای در زبان برنامهنویسی Go میپردازد که با هدف سادهسازی فرایندهایی چون خواندن فایلها، شمارش خطوط، انجام درخواستهای HTTP ساده، و اجرای زیرفرآیندها طراحی شده است. این کتابخانه مجموعهای از توابع زنجیرهای و روان را ارائه میدهد که استفاده از زبان Go در شرایط اسکریپتنویسی را تجربهای لذتبخشتر میسازد. با استفاده از این کتابخانه، برنامهنویسان میتوانند فرایندهای مورد نظر خود را به گونهای کارآمدتر و سهلتر پیادهسازی کنند، در نتیجه بهرهوری و کارآیی کد خود را افزایش دهند. این کاربردیسازی مخصوصاً در پروژههایی که نیاز به توسعه سریع دارند، مفید است.
🟣لینک مقاله:
https://golangweekly.com/link/159868/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - bitfield/script: Making it easy to write shell-like scripts in Go
Making it easy to write shell-like scripts in Go. Contribute to bitfield/script development by creating an account on GitHub.
Forwarded from DevTwitter | توییت برنامه نویسی
یه متن بلندبالا برای یادگیری گیت و دستوراتش
و یه خلاصه خفن برای یادگیری سریع markdown نوشتم وسط مریضی
دوست داشتین نگاهی بندازین
https://github.com/AmiinGholami/MyInternship
@DevTwitter | <Amiin Gholami/>
و یه خلاصه خفن برای یادگیری سریع markdown نوشتم وسط مریضی
دوست داشتین نگاهی بندازین
https://github.com/AmiinGholami/MyInternship
@DevTwitter | <Amiin Gholami/>
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
خلاصهای از جدیدترین نسخههای نرمافزارهای لینوکس
در هفته گذشته، شاهد انتشار نسخههای جدیدی از نرمافزارهای محبوب لینوکس بودهایم. این بهروزرسانیها معمولاً شامل رفع باگها، بهبود عملکرد، افزودن ویژگیهای جدید و افزایش امنیت هستند. در ادامه، به برخی از مهمترین این بهروزرسانیها اشاره میکنیم:
🔸برنامه qBittorrent 5.0: این کلاینت BitTorrent از مدیریت انرژی systemd پشتیبانی میکند.
🔸برنامهFFmpeg 7.1: نسخه جدید این نرمافزار با نام "Péter" شامل یک دیکودر VVC بومی و قابلیت رمزگذاری سختافزاری با Vulkan است.
🔸برنامهAudacious 4.4.1: این پلیر صوتی متنباز با ویژگیها و بهبودهای جدید عرضه شده است.
🔸برنامهMozilla Firefox 131: نسخه جدید مرورگر فایرفاکس با پیشنمایش تبها و مجوزهای موقتی سایتها در دسترس قرار گرفته است.
🔸برنامهLinux Mint 22.1: این توزیع لینوکس قرار است در دسامبر با تم جدید Cinnamon منتشر شود.
🔸برنامهFirefox 132: این نسخه در حال آزمایش بتا است و از مسدود کردن دسترسی به کوکیهای شخص ثالث پشتیبانی میکند.
🔸برنامهNetworkManager 1.50: این نسخه از نرمافزار مدیریت شبکه، امکان پیکربندی عرض کانال Wi-Fi در حالت AP را اضافه کرده است.
🔸برنامهArdour 8.8: این DAW متنباز با اصلاحات و بهبودهای مختلف منتشر شده است.
🔸برنامهFwupd 2.0: این بهروزرسانی نرمافزار لینوکس برای بهروزرسانی فریمور با تغییرات عمدهای همراه است.
در هفته گذشته، شاهد انتشار نسخههای جدیدی از نرمافزارهای محبوب لینوکس بودهایم. این بهروزرسانیها معمولاً شامل رفع باگها، بهبود عملکرد، افزودن ویژگیهای جدید و افزایش امنیت هستند. در ادامه، به برخی از مهمترین این بهروزرسانیها اشاره میکنیم:
🔸برنامه qBittorrent 5.0: این کلاینت BitTorrent از مدیریت انرژی systemd پشتیبانی میکند.
🔸برنامهFFmpeg 7.1: نسخه جدید این نرمافزار با نام "Péter" شامل یک دیکودر VVC بومی و قابلیت رمزگذاری سختافزاری با Vulkan است.
🔸برنامهAudacious 4.4.1: این پلیر صوتی متنباز با ویژگیها و بهبودهای جدید عرضه شده است.
🔸برنامهMozilla Firefox 131: نسخه جدید مرورگر فایرفاکس با پیشنمایش تبها و مجوزهای موقتی سایتها در دسترس قرار گرفته است.
🔸برنامهLinux Mint 22.1: این توزیع لینوکس قرار است در دسامبر با تم جدید Cinnamon منتشر شود.
🔸برنامهFirefox 132: این نسخه در حال آزمایش بتا است و از مسدود کردن دسترسی به کوکیهای شخص ثالث پشتیبانی میکند.
🔸برنامهNetworkManager 1.50: این نسخه از نرمافزار مدیریت شبکه، امکان پیکربندی عرض کانال Wi-Fi در حالت AP را اضافه کرده است.
🔸برنامهArdour 8.8: این DAW متنباز با اصلاحات و بهبودهای مختلف منتشر شده است.
🔸برنامهFwupd 2.0: این بهروزرسانی نرمافزار لینوکس برای بهروزرسانی فریمور با تغییرات عمدهای همراه است.
Forwarded from محتوای آزاد سهراب
امروز میخوام درمورد VNC توضیح بدم.
vnc چی هستش؟
vnc که مخفف (Virtual Network Computing) هستش یک سامانهٔ تعریف شده برای انتقال محتویات رایانه اعم از تصویر و .... با استفاده از پروتکل RFB (Remote FrameBuffer) میباشد تا بشود رایانهٔ را از دوردست کنترل کرد.
این سامانهٔ تصویر نقش بسته به روی رایانهٔ راه دور را به رایانهٔ کاربر که در مکانی دیگر است ارسال میکند و همچنین اطلاعات کلیدهایی که کاربر فشار میدهد یا کلیکهای موشی را به رایانهٔ کاربر در مقصد میرساند.
با این روش میتوان به هر رایانهٔ تحت شبکهای وصل شد و آن را مانند یک رایانهٔ معمولی هدایت کرد.
«ویانسی» به یک یا چند سیستمعامل محدود نمیشود و تحت هر سیستمعاملی قابل استفاده است.
«ویانسی» در ابتدا توسط شرکت AT&T طراحی و ساخته شد، کدمنبع اصلی ویانسی و ویانسی های مدرن تحت پروانه GPL منتشر شده اند.
امنیت
پروتکل RFB به طور پیشفرض امن نیست. اگرچه گذرواژهها مانند تلنت به صورت متن ساده ارسال نمیشوند، امکان موفقیت در شکستن رمز وجود دارد اگر کلید رمزنگاری و گذرواژهٔ رمزگذاریشده از شبکه شنود شوند. به همین دلیل، توصیه میشود که از گذرواژهای با حداقل ۸ نویسه استفاده شود. از سوی دیگر، برخی نسخههای VNC محدودیتی برای طول گذرواژه به اندازهٔ ۸ نویسه دارند؛ اگر گذرواژهای فراتر از ۸ نویسه فرستاده شود، نویسههای اضافی حذف شده و رشتهٔ کوتاهشده با گذرواژه مقایسه میشود.
نرمافزار UltraVNC پشتیبانی از استفاده از یک افزونهٔ رمزنگاری متنباز را فراهم میکند که کل جلسهٔ VNC شامل تأیید هویت گذرواژه و انتقال دادهها را رمزنگاری میکند. همچنین امکان تأیید هویت مبتنی بر حسابهای کاربری NTLM و Active Directory را فراهم میسازد. با این حال، استفاده از چنین افزونههای رمزنگاری باعث ناسازگاری با سایر برنامههای VNC میشود. RealVNC رمزنگاری AES با قدرت بالا را به عنوان بخشی از بستهٔ تجاری خود ارائه میدهد، به همراه ادغام با Active Directory. Workspot نیز پچهای رمزنگاری AES برای VNC منتشر کرده است. به گفتهٔ TightVNC، این نرمافزار امن نیست زیرا دادههای تصویری بدون رمزنگاری منتقل میشوند. برای دور زدن این مشکل، باید VNC از طریق اتصال SSH تونلگذاری شود.
VNC ممکن است از طریق اتصال SSH یا VPN تونلگذاری شود که لایهای اضافی از امنیت با رمزنگاری قویتر اضافه میکند.
یک نگرانی امنیتی دیگر در استفاده از VNC این است که بررسی شود آیا نسخهٔ مورد استفاده نیاز به تأیید از سوی مالک رایانهٔ از راه دور دارد، پیش از آنکه کسی کنترل دستگاه را در دست بگیرد. این موضوع از موقعیتی که مالک رایانه متوجه میشود کسی بدون اطلاع قبلی کنترل دستگاه او را به دست گرفته، جلوگیری میکند.
نحوه عملکرد
برنامهٔ VNC Server بر روی دستگاهی اجرا میشود که بخشی از صفحهنمایش خود را به اشتراک میگذارد (این صفحهنمایش میتواند فیزیکی نباشد و سرور "بیسر" باشد). VNC Client برنامهای است که دادههای صفحهنمایش ارسالی از سرور را نمایش داده و بهروزرسانیها را دریافت میکند. پروتکل VNC (پروتکل RFB) ساده است و بر اساس انتقال یک ابتداییهٔ گرافیکی از سرور به کلاینت ("قرار دادن یک مستطیل از دادههای پیکسلی در موقعیت X,Y مشخص") و ارسال پیامهای رویدادی از کلاینت به سرور کار میکند.
بهطور معمول، یک کلاینت به پورتی روی سرور متصل میشود (پورت پیشفرض: ۵۹۰۰). همچنین ممکن است یک مرورگر از طریق پورت ۵۸۰۰ به سرور وصل شود. سرور میتواند به حالت "گوش دادن" به کلاینت وصل شود که در این حالت نیازی به تنظیم دیوار آتش سرور نیست و این وظیفه برعهدهٔ کلاینت است.
سرور مستطیلهای کوچکی از حافظه تصویری را به کلاینت ارسال میکند. پروتکل VNC در سادهترین حالت میتواند پهنای باند زیادی مصرف کند، اما روشهایی برای کاهش این مصرف وجود دارد، مانند استفاده از کدگذاریهای مختلف برای انتقال دادهها. سادهترین روش، کدگذاری خام است که دادههای پیکسلی را به ترتیب از چپ به راست ارسال میکند و تنها بخشهایی که تغییر کردهاند، منتقل میشوند.
پیشفرض VNC از پورت TCP 5900+N استفاده میکند که N نشاندهندهٔ شماره نمایش است. برخی پیادهسازیها نیز سرور HTTP سادهای روی پورت ۵۸۰۰+N برای ارائهٔ یک نمایشگر VNC به عنوان اپلت جاوا فراهم میکنند. همچنین کلاینتهای VNC مبتنی بر HTML5 نیز وجود دارند که نیازی به افزونه ندارند.
اتصال VNC از طریق اینترنت نیاز به پهنای باند مناسب در هر دو طرف دارد و ممکن است نیاز به پیکربندیهایی مانند فوروارد کردن پورت داشته باشد. همچنین میتوان از فناوریهای شبکه خصوصی مجازی (VPN) برای سهولت در استفاده از VNC استفاده کرد.
1/2
@SohrabContents
vnc چی هستش؟
vnc که مخفف (Virtual Network Computing) هستش یک سامانهٔ تعریف شده برای انتقال محتویات رایانه اعم از تصویر و .... با استفاده از پروتکل RFB (Remote FrameBuffer) میباشد تا بشود رایانهٔ را از دوردست کنترل کرد.
این سامانهٔ تصویر نقش بسته به روی رایانهٔ راه دور را به رایانهٔ کاربر که در مکانی دیگر است ارسال میکند و همچنین اطلاعات کلیدهایی که کاربر فشار میدهد یا کلیکهای موشی را به رایانهٔ کاربر در مقصد میرساند.
با این روش میتوان به هر رایانهٔ تحت شبکهای وصل شد و آن را مانند یک رایانهٔ معمولی هدایت کرد.
«ویانسی» به یک یا چند سیستمعامل محدود نمیشود و تحت هر سیستمعاملی قابل استفاده است.
«ویانسی» در ابتدا توسط شرکت AT&T طراحی و ساخته شد، کدمنبع اصلی ویانسی و ویانسی های مدرن تحت پروانه GPL منتشر شده اند.
امنیت
پروتکل RFB به طور پیشفرض امن نیست. اگرچه گذرواژهها مانند تلنت به صورت متن ساده ارسال نمیشوند، امکان موفقیت در شکستن رمز وجود دارد اگر کلید رمزنگاری و گذرواژهٔ رمزگذاریشده از شبکه شنود شوند. به همین دلیل، توصیه میشود که از گذرواژهای با حداقل ۸ نویسه استفاده شود. از سوی دیگر، برخی نسخههای VNC محدودیتی برای طول گذرواژه به اندازهٔ ۸ نویسه دارند؛ اگر گذرواژهای فراتر از ۸ نویسه فرستاده شود، نویسههای اضافی حذف شده و رشتهٔ کوتاهشده با گذرواژه مقایسه میشود.
نرمافزار UltraVNC پشتیبانی از استفاده از یک افزونهٔ رمزنگاری متنباز را فراهم میکند که کل جلسهٔ VNC شامل تأیید هویت گذرواژه و انتقال دادهها را رمزنگاری میکند. همچنین امکان تأیید هویت مبتنی بر حسابهای کاربری NTLM و Active Directory را فراهم میسازد. با این حال، استفاده از چنین افزونههای رمزنگاری باعث ناسازگاری با سایر برنامههای VNC میشود. RealVNC رمزنگاری AES با قدرت بالا را به عنوان بخشی از بستهٔ تجاری خود ارائه میدهد، به همراه ادغام با Active Directory. Workspot نیز پچهای رمزنگاری AES برای VNC منتشر کرده است. به گفتهٔ TightVNC، این نرمافزار امن نیست زیرا دادههای تصویری بدون رمزنگاری منتقل میشوند. برای دور زدن این مشکل، باید VNC از طریق اتصال SSH تونلگذاری شود.
VNC ممکن است از طریق اتصال SSH یا VPN تونلگذاری شود که لایهای اضافی از امنیت با رمزنگاری قویتر اضافه میکند.
یک نگرانی امنیتی دیگر در استفاده از VNC این است که بررسی شود آیا نسخهٔ مورد استفاده نیاز به تأیید از سوی مالک رایانهٔ از راه دور دارد، پیش از آنکه کسی کنترل دستگاه را در دست بگیرد. این موضوع از موقعیتی که مالک رایانه متوجه میشود کسی بدون اطلاع قبلی کنترل دستگاه او را به دست گرفته، جلوگیری میکند.
نحوه عملکرد
برنامهٔ VNC Server بر روی دستگاهی اجرا میشود که بخشی از صفحهنمایش خود را به اشتراک میگذارد (این صفحهنمایش میتواند فیزیکی نباشد و سرور "بیسر" باشد). VNC Client برنامهای است که دادههای صفحهنمایش ارسالی از سرور را نمایش داده و بهروزرسانیها را دریافت میکند. پروتکل VNC (پروتکل RFB) ساده است و بر اساس انتقال یک ابتداییهٔ گرافیکی از سرور به کلاینت ("قرار دادن یک مستطیل از دادههای پیکسلی در موقعیت X,Y مشخص") و ارسال پیامهای رویدادی از کلاینت به سرور کار میکند.
بهطور معمول، یک کلاینت به پورتی روی سرور متصل میشود (پورت پیشفرض: ۵۹۰۰). همچنین ممکن است یک مرورگر از طریق پورت ۵۸۰۰ به سرور وصل شود. سرور میتواند به حالت "گوش دادن" به کلاینت وصل شود که در این حالت نیازی به تنظیم دیوار آتش سرور نیست و این وظیفه برعهدهٔ کلاینت است.
سرور مستطیلهای کوچکی از حافظه تصویری را به کلاینت ارسال میکند. پروتکل VNC در سادهترین حالت میتواند پهنای باند زیادی مصرف کند، اما روشهایی برای کاهش این مصرف وجود دارد، مانند استفاده از کدگذاریهای مختلف برای انتقال دادهها. سادهترین روش، کدگذاری خام است که دادههای پیکسلی را به ترتیب از چپ به راست ارسال میکند و تنها بخشهایی که تغییر کردهاند، منتقل میشوند.
پیشفرض VNC از پورت TCP 5900+N استفاده میکند که N نشاندهندهٔ شماره نمایش است. برخی پیادهسازیها نیز سرور HTTP سادهای روی پورت ۵۸۰۰+N برای ارائهٔ یک نمایشگر VNC به عنوان اپلت جاوا فراهم میکنند. همچنین کلاینتهای VNC مبتنی بر HTML5 نیز وجود دارند که نیازی به افزونه ندارند.
اتصال VNC از طریق اینترنت نیاز به پهنای باند مناسب در هر دو طرف دارد و ممکن است نیاز به پیکربندیهایی مانند فوروارد کردن پورت داشته باشد. همچنین میتوان از فناوریهای شبکه خصوصی مجازی (VPN) برای سهولت در استفاده از VNC استفاده کرد.
1/2
@SohrabContents
Forwarded from محتوای آزاد سهراب
در سیستمعاملهای Unix/Linux، ممکن است VNC یک جلسه X11 موجود را به اشتراک بگذارد یا یک جلسه جدید شروع کند. همچنین امکان اجرای چندین جلسهٔ VNC از یک رایانه وجود دارد. در ویندوز، VNC همیشه جلسهٔ کاربری فعلی را به اشتراک میگذارد.
در جولای ۲۰۱۴، RealVNC پیشنمایشی برای توسعه Wayland منتشر کرد.
2/2
@SohrabContents
در جولای ۲۰۱۴، RealVNC پیشنمایشی برای توسعه Wayland منتشر کرد.
توضیحات اضافه
کلمات استفاده شده در این متن، اکثراً کلمات تصویب شده هستند برای مثال:
رایانهٔ = کامپیوتر
موشی = موس
سامانه = سیستم
2/2
@SohrabContents
Forwarded from محتوای آزاد سهراب
خود system76 گفته یک کپشن بامزه براش بنویسید.
کپشنی که من براش در نظر گرفتم:
وقتی منتظری تا افزونههات با گنوم ۴۷ سازگار بشه.
@SohrabContents
کپشنی که من براش در نظر گرفتم:
وقتی منتظری تا افزونههات با گنوم ۴۷ سازگار بشه.
@SohrabContents
Forwarded from Peivast | پیوست
🔺نفوذ به بایگانی اینترنت و درز اطلاعات ۳۱ میلیون کاربر
🔹روز چهارشنبه یک پاپآپ آلوده در وبسایت بایگانی اینترنت (archive.org) مدعی نفوذ و در اطلاعاتی شد و چند ساعت بعد، این سازمان نفوذ به اطلاعات خود را تایید کرد. اطلاعات درز کرده حاوی ۳۱ میلیون آدرس ایمیل همراه با نام کاربر، هش رمزعبور bcrypt و دیگر دادههای سیستمی است.
🔹دفتر مرکزی این شرکت در پرسیدیو سن فرانسیسکو است و مراکز داده مختلفی در چند شهر دیگر دارد. این سازمان از سال ۱۹۹۶ فعالیت خود را آغاز کرده است و صفحات و اطلاعات که ممکن است در گذر زمان از بین رفته یا حذف شوند را نیز ذخیره و نگهداری میکند.
🔹بایگانی اینترنت علاوه بر نشت دادهها در روز چهارشنبه، چندین مرتبه با حملات DDoS دست و پنجه نرم کرده است و خدمت این سازمان برای مدتی از دسترسی خارج شدهاند.
🆔@Peivast
🔗متن کامل این خبر را در سایت پیوست بخوانید:
https://pvst.ir/j5o
🔹روز چهارشنبه یک پاپآپ آلوده در وبسایت بایگانی اینترنت (archive.org) مدعی نفوذ و در اطلاعاتی شد و چند ساعت بعد، این سازمان نفوذ به اطلاعات خود را تایید کرد. اطلاعات درز کرده حاوی ۳۱ میلیون آدرس ایمیل همراه با نام کاربر، هش رمزعبور bcrypt و دیگر دادههای سیستمی است.
🔹دفتر مرکزی این شرکت در پرسیدیو سن فرانسیسکو است و مراکز داده مختلفی در چند شهر دیگر دارد. این سازمان از سال ۱۹۹۶ فعالیت خود را آغاز کرده است و صفحات و اطلاعات که ممکن است در گذر زمان از بین رفته یا حذف شوند را نیز ذخیره و نگهداری میکند.
🔹بایگانی اینترنت علاوه بر نشت دادهها در روز چهارشنبه، چندین مرتبه با حملات DDoS دست و پنجه نرم کرده است و خدمت این سازمان برای مدتی از دسترسی خارج شدهاند.
🆔@Peivast
🔗متن کامل این خبر را در سایت پیوست بخوانید:
https://pvst.ir/j5o
Forwarded from code2 - تکنولوژی و فناوری (Mahdi Taleghani)
از هر چه بگذریم سخن دیتابیس خوش تر است!
امروز یه ویدیو داریم برای ساخت دیتابیس رایگان که میتونید برای تست و تمرین و پروژه های mvp خودتون استفاده کنید.
گوش به زنگ باشید 🔥
امروز یه ویدیو داریم برای ساخت دیتابیس رایگان که میتونید برای تست و تمرین و پروژه های mvp خودتون استفاده کنید.
گوش به زنگ باشید 🔥
Forwarded from Ninja Learn | نینجا لرن
💎 معرفی GraphQL و استفاده ازش 💎
اگه تا حالا اسم GraphQL به گوشتون خورده ولی نمیدونستید دقیقاً چیه و چه کاربردی داره، امروز قراره باهم برسیش کنیم و بفهمیم چرا این روزها انقدر محبوب شده🌟
حالا GraphQL چیه؟ 🤔
خب GraphQL یه زبان کوئری برای API هاست که توسط فیسبوک توی سال ۲۰۱۵ معرفی شد. این تکنولوژی به شما اجازه میده که دقیقاً همون دادههایی که نیاز دارین رو از سرور درخواست کنین. مهمترین ویژگی GraphQL اینه که به جای دریافت یه ساختار ثابت از اطلاعات، میتونین مشخص کنین چه دادههایی رو دقیقاً میخواین و چه دادههایی رو نمیخواین.
به زبان ساده، GraphQL به شما کنترل بیشتری روی دادههایی که از API میگیرین میده. 🌍
چرا از GraphQL استفاده کنیم؟ 🤷♂️
1⃣ دریافت دادههای دقیق 🎯
و پاسخ هم دقیقاً همون چیزی خواهد بود که درخواست کردین:
این یعنی فقط همون دادههایی که خواستین برمیگرده و هیچ اطلاعات اضافهای به شما داده نمیشه.
2⃣ بهینهسازی درخواستها 🚀
این بهینهسازی توی عملکرد و سرعت، تاثیر زیادی روی تجربه کاربری داره. 💡
3⃣ پشتیبانی از تکامل تدریجی 💻
1⃣ فیسبوک: همونطور که گفته شد، GraphQL توسط فیسبوک ایجاد شد و فیسبوک همچنان از اون توی بسیاری از محصولات خودش استفاده میکنه، مثل اپلیکیشن فیسبوک و اینستاگرام.
2⃣ گیت هاب: GraphQL به عنوان یک API اصلی توی GitHub استفاده میشه و شما میتونین از طریق GraphQL به اطلاعات پروژهها و کاربران GitHub دسترسی داشته باشین.
3⃣ شاپیفای (Shopify): توی پلتفرم Shopify، از GraphQL برای بهینهسازی و سرعت بخشیدن به APIها استفاده میشه.
حچطور از GraphQL استفاده کنیم؟ 🛠️
راهاندازی GraphQL توی پروژههای مختلف واقعاً سادهست. توی پلتفرمهایی مثل Django یا Node.js، پکیجها و کتابخونههای آمادهای وجود دارن که شما میتونین سریعاً ازشون استفاده کنین.
برای مثال، در Django، شما میتونین با استفاده از Graphene-Django خیلی راحت یه API GraphQL بسازین.
توجه ⚠️:
این فقط یه مثال ساده برای شروع هستش:
و بعد توی پروژهتون:
این کد یه کوئری ساده به اسم
جمعبندی 🎯
فهمیدیم GraphQL با انعطافپذیری و سرعت بالا، باعث میشه که APIهای بهتری طراحی کنین و تجربه کاربری بهتری ارائه بدین.
امید وارم مفید بوده باشه :)
@ninja_learn_ir
اگه تا حالا اسم GraphQL به گوشتون خورده ولی نمیدونستید دقیقاً چیه و چه کاربردی داره، امروز قراره باهم برسیش کنیم و بفهمیم چرا این روزها انقدر محبوب شده🌟
حالا GraphQL چیه؟ 🤔
خب GraphQL یه زبان کوئری برای API هاست که توسط فیسبوک توی سال ۲۰۱۵ معرفی شد. این تکنولوژی به شما اجازه میده که دقیقاً همون دادههایی که نیاز دارین رو از سرور درخواست کنین. مهمترین ویژگی GraphQL اینه که به جای دریافت یه ساختار ثابت از اطلاعات، میتونین مشخص کنین چه دادههایی رو دقیقاً میخواین و چه دادههایی رو نمیخواین.
به زبان ساده، GraphQL به شما کنترل بیشتری روی دادههایی که از API میگیرین میده. 🌍
چرا از GraphQL استفاده کنیم؟ 🤷♂️
1⃣ دریافت دادههای دقیق 🎯
یکی از بزرگترین مشکلاتی که معماریهای سنتی API دارن اینه که گاهی دادههایی که لازم نداریم رو هم به ما برمیگردونن. GraphQL این مشکل رو حل کرده. شما توی GraphQL میتونین کاملاً مشخص کنین که چه فیلدهایی از دادهها رو نیاز دارین و فقط همونها رو از سرور بگیرین.مثال: فرض کنین میخواین فقط اسم و ایمیل کاربر رو از API بگیرین. کوئری GraphQL میتونه اینطوری باشه:
{
user(id: 1) {
name
email
}
}و پاسخ هم دقیقاً همون چیزی خواهد بود که درخواست کردین:
{
"data": {
"user": {
"name": "Ali",
"email": "[email protected]"
}
}
}این یعنی فقط همون دادههایی که خواستین برمیگرده و هیچ اطلاعات اضافهای به شما داده نمیشه.
2⃣ بهینهسازی درخواستها 🚀
یکی از مشکلات رایج توی APIهای سنتی، تعداد زیاد درخواستها (requests) برای گرفتن اطلاعات مختلفه. GraphQL به شما این امکان رو میده که با یک درخواست همه دادههای مورد نیازتون رو بگیرین. شما میتونین توی یه کوئری، اطلاعات از چندین منبع مختلف رو دریافت کنین و نیازی به ارسال چندین درخواست نیست.مثال: فرض کنین میخواین اطلاعات کاربر، لیست سفارشها و محصولاتی که خریده رو بگیرین. کوئری GraphQL بهراحتی این اطلاعات رو توی یک درخواست برمیگردونه:
{
user(id: 1) {
name
orders {
id
product {
name
price
}
}
}
}این بهینهسازی توی عملکرد و سرعت، تاثیر زیادی روی تجربه کاربری داره. 💡
3⃣ پشتیبانی از تکامل تدریجی 💻
یکی از ویژگیهای مهم GraphQL اینه که بهراحتی میتونین API خودتون رو بدون اینکه تغییرات بزرگی به وجود بیارین، توسعه بدین. این یعنی میتونین فیلدهای جدیدی به دادههاتون اضافه کنین بدون اینکه نیاز به تغییر توی کل API داشته باشین. این قابلیت، انعطافپذیری زیادی توی توسعه و نگهداری API داره.4⃣ مستندات خودکار 📚
یکی دیگه از ویژگیهای عالی GraphQL، مستندسازی خودکارشه. از اونجایی که GraphQL یک سیستم تایپینگ قوی داره، میتونه بهصورت خودکار مستندات API رو بسازه و شما همیشه مستندات بهروز و کاملی دارین. این خیلی به درد تیمهای توسعهای میخوره که از پروژههای مختلف استفاده میکنن و همیشه باید به مستندات دقیق دسترسی داشته باشن.کاربردهای واقعی GraphQL 📈
1⃣ فیسبوک: همونطور که گفته شد، GraphQL توسط فیسبوک ایجاد شد و فیسبوک همچنان از اون توی بسیاری از محصولات خودش استفاده میکنه، مثل اپلیکیشن فیسبوک و اینستاگرام.
2⃣ گیت هاب: GraphQL به عنوان یک API اصلی توی GitHub استفاده میشه و شما میتونین از طریق GraphQL به اطلاعات پروژهها و کاربران GitHub دسترسی داشته باشین.
3⃣ شاپیفای (Shopify): توی پلتفرم Shopify، از GraphQL برای بهینهسازی و سرعت بخشیدن به APIها استفاده میشه.
حچطور از GraphQL استفاده کنیم؟ 🛠️
راهاندازی GraphQL توی پروژههای مختلف واقعاً سادهست. توی پلتفرمهایی مثل Django یا Node.js، پکیجها و کتابخونههای آمادهای وجود دارن که شما میتونین سریعاً ازشون استفاده کنین.
برای مثال، در Django، شما میتونین با استفاده از Graphene-Django خیلی راحت یه API GraphQL بسازین.
توجه ⚠️:
این فقط یه مثال ساده برای شروع هستش:
pip install graphene-django
و بعد توی پروژهتون:
import graphene
class Query(graphene.ObjectType):
hello = graphene.String()
def resolve_hello(self, info):
return "Hello, world!"
schema = graphene.Schema(query=Query)
این کد یه کوئری ساده به اسم
hello میسازه که وقتی از GraphQL درخواست بشه، مقدار "Hello, world!" رو برمیگردونه.جمعبندی 🎯
فهمیدیم GraphQL با انعطافپذیری و سرعت بالا، باعث میشه که APIهای بهتری طراحی کنین و تجربه کاربری بهتری ارائه بدین.
#django #api #graphql
Forwarded from Ninja Learn | نینجا لرن
پینوشت:
تو GraphQL، فقط همون دادهای که میخوای رو میگیری، بدون نیاز به تنظیمات اضافه روی سرور. مثلاً با این درخواست فقط اسم و ایمیل رو میگیری:
درسته که تو REST هم میتونی با سریالایزرها دادههای اضافی رو حذف کنی، ولی تو GraphQL از همون اول کاربر تعیین میکنه که چه اطلاعاتی رو میخواد، بدون دردسر سریالایزر و فیلتر.
تو GraphQL، فقط همون دادهای که میخوای رو میگیری، بدون نیاز به تنظیمات اضافه روی سرور. مثلاً با این درخواست فقط اسم و ایمیل رو میگیری:
{
user(id: 1) {
name
email
}
}درسته که تو REST هم میتونی با سریالایزرها دادههای اضافی رو حذف کنی، ولی تو GraphQL از همون اول کاربر تعیین میکنه که چه اطلاعاتی رو میخواد، بدون دردسر سریالایزر و فیلتر.
Forwarded from Geek Alerts
سیستم جدید کسب درآمد توییتر (اکس) اینجوری هست که هر چقدر کاربرهایی که تیک آبی دارن توی پستهای شما تعامل داشته باشن (مثلا لایک، ریت، ریپلای و ... کنن) به شما درآمد تعلق میگیره.
قبلا اینجوری بود که بخشی از سهم تبلیغاترو پرداخت میکرد.
از ۱۸ آبان این طرح اجرا میشه.
یه توضیح هم اینکه باید قبل از اینها حساب توییتر خودتونرو مانیتایز کرده باشید.
یک سری شرایط داره مثل داشتن ۵ میلیون ایمپرشن در ۳ ماه اخیر و اشتراک پریمیوم و ...
https://help.x.com/en/using-x/creator-ads-revenue-sharing
@geekalerts
قبلا اینجوری بود که بخشی از سهم تبلیغاترو پرداخت میکرد.
از ۱۸ آبان این طرح اجرا میشه.
یه توضیح هم اینکه باید قبل از اینها حساب توییتر خودتونرو مانیتایز کرده باشید.
یک سری شرایط داره مثل داشتن ۵ میلیون ایمپرشن در ۳ ماه اخیر و اشتراک پریمیوم و ...
https://help.x.com/en/using-x/creator-ads-revenue-sharing
@geekalerts
Forwarded from Ninja Learn | نینجا لرن
دوستان ممنون میشم از ما با ریکشن و شیر کردن حمایت کنید 🙂
Forwarded from Meitix
YouTube
Files & File Systems: Crash Course Computer Science #20
Today we’re going to look at how our computers read and interpret computer files. We’ll talk about how some popular file formats like txt, wave, and bitmap are encoded and decoded giving us pretty pictures and lifelike recordings from just strings of 1’s…
Forwarded from LearnPOV | لرن پی او وی
💎 توسعه نرمافزار بدون وابستگی | Zero Dependency 💎
Forwarded from IEEE Sharif UT
با حضور کارآفرینان موفق ایرانی
off20 از 20 درصد تخفیف ویژه برخوردار شوید.Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from آموزش لاراول | LaravelHub (rwx-rwx-rwx)
یه چیزی رو باید جدی بگم!برنامهنویسا نباید زیاد از chatgpt استفاده کنن. میدونم، وسوسهانگیزه که وقتی گیر میکنی سریع بیای و بپرسی، ولی اگه همیشه این کار رو بکنی، به مرور خودت رو ضعیف میکنی. چرا؟ چون وقتی زیاد از chatgpt کمک میگیری، مغزت عادت میکنه به اینکه یکی دیگه برات فکر کنه. اینجوری کمکم حافظهات ضعیف میشه و دیگه اون قدرت تجزیه و تحلیل یا حل مسئله که یه برنامهنویس خوب باید داشته باشه رو از دست میدی از طرف دیگه، کد زدن یه مهارته که با تمرین و اشتباه کردن بهتر میشه. وقتی خودت با چالشها کلنجار بری، حتی اگه یه ساعت وقتت رو بگیره، به یادگیریات کلی کمک میکنه. ولی اگه فقط بیای سوال کنی و جواب آماده بگیری، دیگه این پروسه یادگیری اتفاق نمیافته و بعدش به هر مسئلهای برخورد کنی، باز سریع میخوای بیای بپرسی. پس بهتره هر وقت واقعاً گیر کردی بیای سراغ chatgpt نه واسه هر چیز کوچیکی.
یاد بگیر به خودت اعتماد کنی، با مشکلات دست و پنجه نرم کنی، و یادت باشه که ذهن یه برنامهنویس باید همیشه فعال و خلاق بمونه!
🔥⚡️ کانال آموزشی LaravelHub
@LaravelHub
یاد بگیر به خودت اعتماد کنی، با مشکلات دست و پنجه نرم کنی، و یادت باشه که ذهن یه برنامهنویس باید همیشه فعال و خلاق بمونه!
🔥⚡️ کانال آموزشی LaravelHub
@LaravelHub
Forwarded from Woland's Linux Journal (Woland)
This media is not supported in your browser
VIEW IN TELEGRAM
💠پلاگین Literate Programming برای ویم💠
♦️برنامهنویسیِ ادیبانه (به انگلیسی: Literate programming) یک پارادایم برنامهنویسی است که در آن کد داخل مستندات اجرا و نتیجهی آن نمایش داده میشود.
برنامهنویسی ادیبانه در محیطهای مختلفی قابل تجربه است که شناخته شدهترین آنها org-mode در ایمکس و دفترهای جوپیتر هستند.
حالا با استفاده از این پلاگین، برنامهنویسی ادیبانه، بدون محدودیت در ویم و در فایلهای مارکدان امکان پذیر است.
🔸پلاگین vim-literate-md که فورک من از پلاگین vim-medieval است رو در ویدیو مشاهده میکنید.
💠نصب:
برای نصب پلاگین به شیوه معمول نصب پلاگینهاتون عمل کنید و یا:
💠لینک:
👉🔗 Vim-Literate-MD
ستاره زدن مخزن هم فراموش نشه 😉❤️⭐️
#ویم #معرفی
#vim #literate_programming
♦️برنامهنویسیِ ادیبانه (به انگلیسی: Literate programming) یک پارادایم برنامهنویسی است که در آن کد داخل مستندات اجرا و نتیجهی آن نمایش داده میشود.
برنامهنویسی ادیبانه در محیطهای مختلفی قابل تجربه است که شناخته شدهترین آنها org-mode در ایمکس و دفترهای جوپیتر هستند.
حالا با استفاده از این پلاگین، برنامهنویسی ادیبانه، بدون محدودیت در ویم و در فایلهای مارکدان امکان پذیر است.
🔸پلاگین vim-literate-md که فورک من از پلاگین vim-medieval است رو در ویدیو مشاهده میکنید.
💠نصب:
برای نصب پلاگین به شیوه معمول نصب پلاگینهاتون عمل کنید و یا:
mkdir -p ~/.vim/pack/plugins/start && git clone https://github.com/wolandark/vim-literate-md.git ~/.vim/pack/plugins/start/vim-literate-md
💠لینک:
👉🔗 Vim-Literate-MD
~/volandarkside#ویم #معرفی
#vim #literate_programming