Forwarded from Ninja Learn | نینجا لرن
دوستانیم که تازه تشریف اوردید کانال (خیلی خوش اومدید ❤️)
حتما این دسته بندی کانال رو مطالعه کنید که از مطالب قبلی کانال استفاده ببرید 😉
حتما این دسته بندی کانال رو مطالعه کنید که از مطالب قبلی کانال استفاده ببرید 😉
Telegram
Ninja Learn | نینجا لرن
تا حالا کلی مطالب خفن و کاربردی تو کانال NinjaLearn براتون آماده کردیم و الان صدها مطلب مختلف و جذاب داریم.
از اونجایی که مطالب کانال خیلی متنوع و زیاد شده، تصمیم گرفتیم یه دستهبندی مرتب و منظم برای همهی پستها داشته باشیم تا شما عزیزان راحتتر بتونید…
از اونجایی که مطالب کانال خیلی متنوع و زیاد شده، تصمیم گرفتیم یه دستهبندی مرتب و منظم برای همهی پستها داشته باشیم تا شما عزیزان راحتتر بتونید…
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
یک آموزش جدید درست کردم
تو این ویدیو یاد میگیریم چجوری با Docker Compose بتونیم MinIO رو داخل VPS ارزون خودمون بالا بیاریم و برای خودمون S3 Object Storage داشته باشیم.
بعدش یاد میگیریم چجوری داخل یک اپ Next.js به MinIO وصل بشیم و اول ازش یک Pre-Signed URL بگیریم بعدش مستقیم فایلمون رو داخل MinIO آپلود کنیم.
لینک ویدیو:
https://www.youtube.com/watch?v=UPygkumJc2A
لینک گیتهاب:
https://github.com/sesto-dev/next-minio-self-host
@DevTwitter | <Amirhossein Mohammadi/>
تو این ویدیو یاد میگیریم چجوری با Docker Compose بتونیم MinIO رو داخل VPS ارزون خودمون بالا بیاریم و برای خودمون S3 Object Storage داشته باشیم.
بعدش یاد میگیریم چجوری داخل یک اپ Next.js به MinIO وصل بشیم و اول ازش یک Pre-Signed URL بگیریم بعدش مستقیم فایلمون رو داخل MinIO آپلود کنیم.
لینک ویدیو:
https://www.youtube.com/watch?v=UPygkumJc2A
لینک گیتهاب:
https://github.com/sesto-dev/next-minio-self-host
@DevTwitter | <Amirhossein Mohammadi/>
Forwarded from Curious Geek ⚡️
درباب Cryptography و Steganography
علم Cryptography برای رمز کردن اطلاعات و حفظ محرمانگی آن هاست اما Steganography برای پنهان سازی وجود پیام است.
فرضا با استفاده از Cryptography پیامی را رمز می کنیم و کلید عمومی آن را با استفاده از Stenography در ثانیه ای مشخص از یک فایل MKV ویدیویی پنهان می کنیم.
🆔 @Hiradsajde
علم Cryptography برای رمز کردن اطلاعات و حفظ محرمانگی آن هاست اما Steganography برای پنهان سازی وجود پیام است.
فرضا با استفاده از Cryptography پیامی را رمز می کنیم و کلید عمومی آن را با استفاده از Stenography در ثانیه ای مشخص از یک فایل MKV ویدیویی پنهان می کنیم.
🆔 @Hiradsajde
Forwarded from Curious Geek ⚡️
برنامه ای بنویسید که دستگاهی با ده ها هزار متغیر را حل کند!
دستگاه های ریاضی با ماتریس های Reduced Row Echelon Form قابل حل هستند.
برای یک دستگاه دو ، سه متغیره شاید گزینه بهینه ای نباشه.
اما روی ساختار ماتریس، راحت تر میتونیم الگوریتم پیاده کنیم و میتونه برای حل یک دستگاه با بیش از چند هزار متغیر کاربردی باشه.
کاربرد اینکار در پیاده سازی الگوریتم های هوش مصنوعی است.
The Gaussian Elimination Algorithm
نمونه ای از این دسته الگوریتم ها است.
🔗 t.me/+SimCrguTIx1kNDQ0
🆔 @Hiradsajde
دستگاه های ریاضی با ماتریس های Reduced Row Echelon Form قابل حل هستند.
برای یک دستگاه دو ، سه متغیره شاید گزینه بهینه ای نباشه.
اما روی ساختار ماتریس، راحت تر میتونیم الگوریتم پیاده کنیم و میتونه برای حل یک دستگاه با بیش از چند هزار متغیر کاربردی باشه.
کاربرد اینکار در پیاده سازی الگوریتم های هوش مصنوعی است.
The Gaussian Elimination Algorithm
نمونه ای از این دسته الگوریتم ها است.
🔗 t.me/+SimCrguTIx1kNDQ0
🆔 @Hiradsajde
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 کدوم یک از فریم ورک های CSS در پروژه استفاده کنیم؟
دو فریم ورک معروف در دنیای CSS داریم: ۱- بوت استرپ (Bootstrap) ۲- تیلویند (TailwindCSS)
۱- بوت استرپ (Bootstrap) :
فریم ورک بوت استرپ رسپانسیو سازی و سرعت توسعه بالایی داره و هم سازگار با جاوا اسکریپت است. دارای سیستم گرید قدرتمند برای رسپانسیو سازی المان ها است و قابلیت شخصی سازی خوبی دارد. اگر در پروژه ای می خواهید مداوم تغییراتی اعمال کنید, فریم ورک بوت استرپ پیشنهاد می کنم که دردسرهای شخصی سازی با دستورات خاص برای اعمال کلاس ها را ندارید و دارای کامپوننتهای آماده است.
۲- تیلویند (TailwindCSS) :
با استفاده از تیلویند (Tailwind CSS) می توانید کلاسهای از پیش تعریف شده، به سرعت رابطهای کاربری سفارشی و واکنشگرا ایجاد کنید و رسپانسیو سازی و قابلیت های شخصی بالایی دارد و هم سازگار با جاوا اسکریپت است. اگر در پروژه تغییرات چندانی ندارد و نیازی به اعمال مداوم کلاس ها ندارید رو تیلویند (Tailwind CSS) پیشنهاد می کنم. اما یه سری ایراداتی هست که پیچیدگی در خوانایی کدهای HTML دارد و نیاز به تنظیمات اولیه, وابستگی به ابزارهای ساخت (Build Tools) مانند Webpack، PostCSS یا Vite برای اعمال کلاس ها و دستورات خاص دارید.
#CSS
@TheRaymondDev
دو فریم ورک معروف در دنیای CSS داریم: ۱- بوت استرپ (Bootstrap) ۲- تیلویند (TailwindCSS)
۱- بوت استرپ (Bootstrap) :
فریم ورک بوت استرپ رسپانسیو سازی و سرعت توسعه بالایی داره و هم سازگار با جاوا اسکریپت است. دارای سیستم گرید قدرتمند برای رسپانسیو سازی المان ها است و قابلیت شخصی سازی خوبی دارد. اگر در پروژه ای می خواهید مداوم تغییراتی اعمال کنید, فریم ورک بوت استرپ پیشنهاد می کنم که دردسرهای شخصی سازی با دستورات خاص برای اعمال کلاس ها را ندارید و دارای کامپوننتهای آماده است.
۲- تیلویند (TailwindCSS) :
با استفاده از تیلویند (Tailwind CSS) می توانید کلاسهای از پیش تعریف شده، به سرعت رابطهای کاربری سفارشی و واکنشگرا ایجاد کنید و رسپانسیو سازی و قابلیت های شخصی بالایی دارد و هم سازگار با جاوا اسکریپت است. اگر در پروژه تغییرات چندانی ندارد و نیازی به اعمال مداوم کلاس ها ندارید رو تیلویند (Tailwind CSS) پیشنهاد می کنم. اما یه سری ایراداتی هست که پیچیدگی در خوانایی کدهای HTML دارد و نیاز به تنظیمات اولیه, وابستگی به ابزارهای ساخت (Build Tools) مانند Webpack، PostCSS یا Vite برای اعمال کلاس ها و دستورات خاص دارید.
#CSS
@TheRaymondDev
Forwarded from Curious Geek ⚡️
پیرامون انواع بلاکچین ها
بلاکچین عمومی : برای همه باز است و محدودیتی در مشارکت وجود ندارد
بلاکچین خصوصی : دسترسی محدود به سازمان های خاصی دارد
بلاکچین کنسرسیومی: توسط گروهی از افراد و سازمان ها مدیریت میشود
هیبریدی: ترکیبی از عمومی و خصوصی برای انعطاف بیشتر است
برای مثال بیتکوین و اتر از بلاکچین های عمومی هستند.
🆔 @Hiradsajde
بلاکچین عمومی : برای همه باز است و محدودیتی در مشارکت وجود ندارد
بلاکچین خصوصی : دسترسی محدود به سازمان های خاصی دارد
بلاکچین کنسرسیومی: توسط گروهی از افراد و سازمان ها مدیریت میشود
هیبریدی: ترکیبی از عمومی و خصوصی برای انعطاف بیشتر است
برای مثال بیتکوین و اتر از بلاکچین های عمومی هستند.
🆔 @Hiradsajde
Forwarded from کدنویس یکروزه (𝕻𝖊𝖉𝖗𝖆𝖒 𝕽𝖆𝖍𝖎𝖒𝖎)
مدیریت-هزینه.htm
32.2 KB
اَپلیکیشن مدیریت هزینه ها
امنیت مضاعف و سه زبانه!
توقع خودم رو از اپلیکیشن تک صفحه (SPA) بالا بردم که بدون رفرش صفحه یعنی بدون Server و اینجا حتا بدون دیتابیس امن قراره کار کنه! کنجکاوی هم نگذاشت دست از سر هوش مصنوعی بسیار قدرتمند چینی به نام Deep Seek بردارم.
بنابراین برنامهی دفتر تلفن پیشرفته رو که خودش نوشته بود بهش دادم و در قالب یک برنامه ی جدید برای «ثبت هزینههای ماهانه» این تغییرات رو ازش خواستم:
- اپلیکیشن سه زبانه: فارسی، انگلیسی و چینی!
- رمز عبور Hash یا رمزنگاری شده تا از لوکال استوریج داخل مرورگر قابل مشاهده نباشه!
- لیست هزینه ها از گران به ارزان یا برعکس قابل سورت و مرتب سازی!
- جمع مبلغ خریدها محاسبه و در زیر جدول هزینهها.
بله حدود ۶۰۰ خط کد پیچیده رو در ۵ دقیقه نوشت گذاشت جلوم! در حالی که قبل از این برنامهی ساده و ۵۰ خطی محاسبهی شارژ ساختمان رو یک ساعت طول کشید با کلی دیباگ و سرچ بنویسم!
ابزارهای مرتبط:
تبدیل وب به EXE
تبدیل وب به APK
#javanoscript #html
امنیت مضاعف و سه زبانه!
توقع خودم رو از اپلیکیشن تک صفحه (SPA) بالا بردم که بدون رفرش صفحه یعنی بدون Server و اینجا حتا بدون دیتابیس امن قراره کار کنه! کنجکاوی هم نگذاشت دست از سر هوش مصنوعی بسیار قدرتمند چینی به نام Deep Seek بردارم.
بنابراین برنامهی دفتر تلفن پیشرفته رو که خودش نوشته بود بهش دادم و در قالب یک برنامه ی جدید برای «ثبت هزینههای ماهانه» این تغییرات رو ازش خواستم:
- اپلیکیشن سه زبانه: فارسی، انگلیسی و چینی!
- رمز عبور Hash یا رمزنگاری شده تا از لوکال استوریج داخل مرورگر قابل مشاهده نباشه!
- لیست هزینه ها از گران به ارزان یا برعکس قابل سورت و مرتب سازی!
- جمع مبلغ خریدها محاسبه و در زیر جدول هزینهها.
بله حدود ۶۰۰ خط کد پیچیده رو در ۵ دقیقه نوشت گذاشت جلوم! در حالی که قبل از این برنامهی ساده و ۵۰ خطی محاسبهی شارژ ساختمان رو یک ساعت طول کشید با کلی دیباگ و سرچ بنویسم!
ابزارهای مرتبط:
تبدیل وب به EXE
تبدیل وب به APK
#javanoscript #html
Forwarded from Pink Orca | پینک اورکا
~> Oh Shit, Git!?!
گیت سخته: امکان اشتباه زیاده و فهمیدن اینکه چطوری میشه درستش کرد غیرممکنه. راهنمای گیت مشکل معروف مرغ و تخم مرغ رو داره وقتی که نمیدونی چی جستجو کنی که خودتو از منجلاب نجات بدی، مگه این که اسم اون چیزی که دنبالش هستی رو بدونی.
بنابراین اینجا چند مورد از موقعیتهای بدی که نویسنده دچارش شده بود رو براتون گذاشته، و روش اینکه چطوری در نهایت از پس اونا بر اومده، به زبان فارسی.
🔗 مطالعه نوشته
🔗 صفحه گیتهاب
پ.ن:
توضیحات کپشن از خود وبسایت OhShitGit کپی شده...
#گیت #ترفند #میم #فان #راهنما #معرفی
~> @PinkOrca🩷
گیت سخته: امکان اشتباه زیاده و فهمیدن اینکه چطوری میشه درستش کرد غیرممکنه. راهنمای گیت مشکل معروف مرغ و تخم مرغ رو داره وقتی که نمیدونی چی جستجو کنی که خودتو از منجلاب نجات بدی، مگه این که اسم اون چیزی که دنبالش هستی رو بدونی.
بنابراین اینجا چند مورد از موقعیتهای بدی که نویسنده دچارش شده بود رو براتون گذاشته، و روش اینکه چطوری در نهایت از پس اونا بر اومده، به زبان فارسی.
🔗 مطالعه نوشته
🔗 صفحه گیتهاب
پ.ن:
توضیحات کپشن از خود وبسایت OhShitGit کپی شده...
#گیت #ترفند #میم #فان #راهنما #معرفی
~> @PinkOrca
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Gopher Academy
🔵 عنوان مقاله
Memos: A Privacy-First Go-Powered Note Taking App
🟢 خلاصه مقاله:
مقاله به معرفی یک برنامه وب جامع برای گرفتن یادداشت، که با مجوز MIT ارائه شده و قابل میزبانی شخصی است، پرداخته است. این برنامه از فریمورک Echo استفاده میکند و دادههای خود را در یک فایل SQLite ذخیره میکند. از آنجایی که این برنامه به طور مرتب بهروزرسانی میشود، کاربران میتوانند از پیشرفتها و بهبودهای جدید بهرهمند شوند. کد منبع برنامه در یک مخزن GitHub قابل دسترسی است، که این امکان را به کاربران میدهد که به صورت مستقل بر روی سرور خود برنامه را نصب و راهاندازی کنند. این برنامه گزینهای مناسب برای افرادی است که به دنبال راهحلی امن و قابل تعیین برای ذخیرهسازی و مدیریت یادداشتهای خود هستند.
🟣لینک مقاله:
https://golangweekly.com/link/164002/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Memos: A Privacy-First Go-Powered Note Taking App
🟢 خلاصه مقاله:
مقاله به معرفی یک برنامه وب جامع برای گرفتن یادداشت، که با مجوز MIT ارائه شده و قابل میزبانی شخصی است، پرداخته است. این برنامه از فریمورک Echo استفاده میکند و دادههای خود را در یک فایل SQLite ذخیره میکند. از آنجایی که این برنامه به طور مرتب بهروزرسانی میشود، کاربران میتوانند از پیشرفتها و بهبودهای جدید بهرهمند شوند. کد منبع برنامه در یک مخزن GitHub قابل دسترسی است، که این امکان را به کاربران میدهد که به صورت مستقل بر روی سرور خود برنامه را نصب و راهاندازی کنند. این برنامه گزینهای مناسب برای افرادی است که به دنبال راهحلی امن و قابل تعیین برای ذخیرهسازی و مدیریت یادداشتهای خود هستند.
🟣لینک مقاله:
https://golangweekly.com/link/164002/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Memos
Memos - Open Source, Self-Hosted Note Taking
An open-source, self-hosted note-taking service with zero telemetry. Privacy-first, lightweight solution with no tracking, ads, or subnoscription fees.
Forwarded from Meitix
مدیریت حافظه تو برنامهنویسی یه موضوع خیلی مهمه. وقتی برنامهات چیزایی رو تو حافظه میسازه (مثل متغیر یا آبجکت)، باید یه جایی بهشون بگی "خب، کارت تموم شد، برو بیرون!". اما خب، کی حوصله داره این کارو دستی کنه؟ اینجا GC (Garbage Collection) میاد کمکمون.
توی گولنگ، یه روش معروف برای GC استفاده میشه به اسم Mark and Sweep. حالا چجوری کار میکنه؟
ماجرا از این قراره:
ا GC میاد همه چیزایی که تو حافظهان رو میبینه. ابتدا روت هارو برسه میکنه(استک، گلوبال و ...) اونایی که هنوز برنامه بهشون نیاز داره رو پیدا میکنه و یه علامت روشون میزنه (این میشه مرحله مارک). بعد اخر سر بقیه چیزا که علامت نخوردن رو پاک میکنه (اینم میشه سوییپ).
حالا تکنیک Tri-Color چیه؟
یه جورای مدل خفنتر از همین Mark and Sweepه. آبجکتها رو به سه دسته تقسیم میکنه:
سفید: چیزایی که هنوز بررسی نشدن.
خاکستری: اونایی که پیدا شدن ولی همه لینکهاشون چک نشده.
سیاه: اونایی که کامل بررسی شدن و دست بهشون نمیزنه.
اینجوری کار GC خیلی نرمتر و بهینهتر انجام میشه. مثلاً اگه وسط کار بخوای یه چیزی اجرا کنی، GC گیر نمیکنه که وایسا همه چی تموم شه!
در کل، گولنگ این سیستم رو خیلی خوب طراحی کرده که هم کارایی بالاتر بره، هم ما درگیر پاک کردن حافظه نشیم.
@meiti_x
توی گولنگ، یه روش معروف برای GC استفاده میشه به اسم Mark and Sweep. حالا چجوری کار میکنه؟
ماجرا از این قراره:
ا GC میاد همه چیزایی که تو حافظهان رو میبینه. ابتدا روت هارو برسه میکنه(استک، گلوبال و ...) اونایی که هنوز برنامه بهشون نیاز داره رو پیدا میکنه و یه علامت روشون میزنه (این میشه مرحله مارک). بعد اخر سر بقیه چیزا که علامت نخوردن رو پاک میکنه (اینم میشه سوییپ).
حالا تکنیک Tri-Color چیه؟
یه جورای مدل خفنتر از همین Mark and Sweepه. آبجکتها رو به سه دسته تقسیم میکنه:
سفید: چیزایی که هنوز بررسی نشدن.
خاکستری: اونایی که پیدا شدن ولی همه لینکهاشون چک نشده.
سیاه: اونایی که کامل بررسی شدن و دست بهشون نمیزنه.
اینجوری کار GC خیلی نرمتر و بهینهتر انجام میشه. مثلاً اگه وسط کار بخوای یه چیزی اجرا کنی، GC گیر نمیکنه که وایسا همه چی تموم شه!
در کل، گولنگ این سیستم رو خیلی خوب طراحی کرده که هم کارایی بالاتر بره، هم ما درگیر پاک کردن حافظه نشیم.
@meiti_x
Forwarded from Meitix
During this process, the running application is called the mutator. The mutator runs a small function named write barrier that is executed each time a pointer in the heap is modified. If the pointer of an object in the heap is modified, which means that this object is now reachable, the write barrier colors it grey and puts it in the grey set
@meiti_x
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
انجام قرارداد برای تبادل مجوزهای متقابل بین توزیع های لینوکس:
predator-os, emperor-os,little-psycho,Hubuntu
با شرکت Open Invention Network (OIN) در زمینه حق استفاده از اختراعات،محصولات و ثبت پتنت در رابطه با سیستمهای لینوکسب بین یکدیگر را دارند.
این قرارداد به منظور موارد زیر صورت گرفت:
حمایت از اکوسیستم نرمافزارهای متنباز
کاهش خطر نقض حق اختراع
سو استفاده نفر سوم از محصولات متن باز
predator-os, emperor-os,little-psycho,Hubuntu
با شرکت Open Invention Network (OIN) در زمینه حق استفاده از اختراعات،محصولات و ثبت پتنت در رابطه با سیستمهای لینوکسب بین یکدیگر را دارند.
این قرارداد به منظور موارد زیر صورت گرفت:
حمایت از اکوسیستم نرمافزارهای متنباز
کاهش خطر نقض حق اختراع
سو استفاده نفر سوم از محصولات متن باز
Forwarded from Go Casts 🚀
هفته نامه Golang Nugget رو اگه دوست داشتید دنبال کنید.
منابع خوبی رو معرفی میکنه
این یه نمونه ش هست
https://golangnugget.com/p/go-concurrency-upgrade-strategies-memory-management-january-6-2024
این خبرنامه رو آقا لیام عزیز مدیریت میکنه
https://x.com/liammanesh
@gocasts
منابع خوبی رو معرفی میکنه
این یه نمونه ش هست
https://golangnugget.com/p/go-concurrency-upgrade-strategies-memory-management-january-6-2024
این خبرنامه رو آقا لیام عزیز مدیریت میکنه
https://x.com/liammanesh
@gocasts
Golang Nugget
Golang Nugget - January 6, 2024
Go's concurrency, upgrade strategies, and internals of memory management. Plus, tools and tips for Gophers.
Forwarded from کدنویس یکروزه (پدرام رحیمی)
لینکهای فراگیری Javanoscript
علاوه بر اینکه در یک پُست هشتگ های کانال رو معرفی کرده ام، حالا لینکهایی از مطالب مربوط جاوااسکریپت رو هم براتون میذارم که دوره کنید:
- کار با Local storage دیتابیس داخلی
- مشکلات محاسباتی در جاوااسکریپت
- روش ساخت برنامه تست چند جوابی
- چهار فرآیند CRUD در جاوااسکریپت
- آموزش Typenoscript یا جاوااسکریپت۶
- یک برنامه ی محاسباتی جاوااسکریپت
- جزوه ی مدرن جاوااسکریپت فارسی
- قفل گذاری روی برنامه ی تحت وب
- جزوه ی نصب و آموزش Node.js
- روش ساخت اَپ تک صفحه در Vue.js
- روش ساخت تاس با ۵ خط کدنویسی
علاوه بر اینها روی هشتگ زیر بزنید:
#javanoscript
علاوه بر اینکه در یک پُست هشتگ های کانال رو معرفی کرده ام، حالا لینکهایی از مطالب مربوط جاوااسکریپت رو هم براتون میذارم که دوره کنید:
- کار با Local storage دیتابیس داخلی
- مشکلات محاسباتی در جاوااسکریپت
- روش ساخت برنامه تست چند جوابی
- چهار فرآیند CRUD در جاوااسکریپت
- آموزش Typenoscript یا جاوااسکریپت۶
- یک برنامه ی محاسباتی جاوااسکریپت
- جزوه ی مدرن جاوااسکریپت فارسی
- قفل گذاری روی برنامه ی تحت وب
- جزوه ی نصب و آموزش Node.js
- روش ساخت اَپ تک صفحه در Vue.js
- روش ساخت تاس با ۵ خط کدنویسی
علاوه بر اینها روی هشتگ زیر بزنید:
#javanoscript
Telegram
کدنویس یکروزه
دسترسی به مطالب کانال:
مبتدی #beginner
گرافیک #graphics
بانک #database
کدها #code
محیط #ide
ابزارها #tools
بازی #game
کتاب #book
آندروید…
مبتدی #beginner
گرافیک #graphics
بانک #database
کدها #code
محیط #ide
ابزارها #tools
بازی #game
کتاب #book
آندروید…
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
میدونستی میتونی کوئریهات رو هوشمندانهتر و بهینهتر کنی؟
اگه توی پروژههات همیشه برای فیلتر کردن محتوا بر اساس فیلدخاصی شرط مینویسی، میتونی این شرط رو یک بار برای همیشه به مدل اضافه کنی و از تکرار کدهای اضافی خلاص بشی!
کد اسلاید رو ببین:
ما یه Global Query Scope ساختیم به اسم TeamScope و به مدل Article اضافه کردیم. از این به بعد، هر وقت کوئری مربوط به مقالات رو بزنیم، خودکار فقط مقالات تیم کاربر لاگین شده برمیگرده.
نکته مهم:
این کار رو میتونید با سه روش مختلف پیادهسازی کنید که هر کدوم بسته به نیازتون کاربردی هستن.
نتیجه؟
کدهای تمیزتر و حرفهایتر
حذف شرطهای تکراری
راحتتر کردن نگهداری و گسترش پروژه
@DevTwitter | <Saber Qadimi/>
اگه توی پروژههات همیشه برای فیلتر کردن محتوا بر اساس فیلدخاصی شرط مینویسی، میتونی این شرط رو یک بار برای همیشه به مدل اضافه کنی و از تکرار کدهای اضافی خلاص بشی!
کد اسلاید رو ببین:
ما یه Global Query Scope ساختیم به اسم TeamScope و به مدل Article اضافه کردیم. از این به بعد، هر وقت کوئری مربوط به مقالات رو بزنیم، خودکار فقط مقالات تیم کاربر لاگین شده برمیگرده.
نکته مهم:
این کار رو میتونید با سه روش مختلف پیادهسازی کنید که هر کدوم بسته به نیازتون کاربردی هستن.
نتیجه؟
کدهای تمیزتر و حرفهایتر
حذف شرطهای تکراری
راحتتر کردن نگهداری و گسترش پروژه
@DevTwitter | <Saber Qadimi/>
Forwarded from Anophel | آنوفل
خیلیها این روزها دوباره دارن از سرورلس به سمت سرورهای اختصاصی و VPS برمیگردن. چند سال پیش همه دنبال سرورلس بودن، ولی الان؟ دیگه اوضاع فرق کرده! توی این پست میخوام چند تا از دلایلی که سرورلس یه انتخاب ضعیفه رو به زبون ساده باهاتون به اشتراک بذارم.
شرکتهای بزرگی مثل AWS و Azure دقیقاً میدونن چطوری شما رو قفل سیستم خودشون کنن. وقتی واردش میشید، بیرون اومدن ازش هزینههای وحشتناک داره:
نتیجه؟ یه قبض ماهانه که هیچی ازش نمیفهمید ولی قطعاً خوشحالتون نمیکنه.
بهقول یکی از مدیران بزرگ، اومدن روی VPS میتونه هزاران دلار صرفهجویی کنه. تازه، وقتی خودت سیستم رو مدیریت میکنی، دستت بازتره و همهچی رو کنترل میکنی.
سرورلس بهشدت پیچیدهست. مثال ساده؟ یه کانفیگ اشتباه میتونه میلیاردها تومان خسارت بزنه!
بودند کسایی که بهخاطر فراموش کردن تنظیمات S3، هزینههای سنگینی دادن!
توی VPS، همهچی رو میتونی ساده و شفاف مدیریت کنی. مثلاً یه آموزش ساده برای قفل کردن سرور با Fail2Ban و غیرفعال کردن رمز ورود برای کاربر Root میتونه امنیت رو بهشدت بالا ببره.
وقتی سیستم سادهتر باشه، کمتر قطع میشه. از وقتی از سرورلس به VPS مهاجرت کردم، سرویسهام هیچوقت خودبهخود قطع نشدن. ولی سرورلس؟
آپتایم ادعایی این شرکتها معمولاً روی کاغذه. ولی واقعیت؟ یه اشتباه کوچیک، یه کلیک اشتباه و تمام اون ۹۹.۹۹٪ میپره.
با سرورلس، هر سرویس جداگانه باید کانفیگ بشه. برای هر میکروسرویس باید دستی کانفیگ امنیتی انجام بدی. این یعنی کار چند برابر.
ولی روی VPS؟ یه سرور، یه کانفیگ، تمومه!
بعضیها میگن سرورلس بهتون محافظت رایگان DDoS میده. اما یه نکتهی جالب:
شما همون محافظت رو میتونید با Cloudflare بهصورت رایگان بگیرید. کافیه پروکسی Cloudflare رو فعال کنید و SSL/TLS رو روی حالت Full بذارید. همون یه کلیک، همون امنیت. نیازی به سرورلس نیست.
#سرورلس #میکروسرویس #serverless #vps
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
ماجرای crash کردن Windows 95 بعد از 49.7 روز!
امروز به یه مطلب جالبی برخوردم.
وقتی مایکروسافت نسخه اولیه ویندوز 95 رو منتشر کرد، بعد از مدتی متوجه شد که کامپیوتر هایی که از این سیستم عامل استفاده میکنن اگر 49.7 روز به طور مداوم روشن بمونن ویندوز یهو crash میکنه.
بعد از بررسی متوجه میشن علتش type متغیری هست که زمان روشن بودن سیستم(Uptime) رو نگهداری میکنه. این متغیر زمان روشن بودن سیستم رو به میلی ثانیه نگه میداره و type رو unsigned int 32 انتخاب کرده بودن که این تایپ نهایتا تا عدد 4,294,967,295 رو میتونه توی خودش ذخیره کنه و چون بعد از 49.7 روز مقدار میلی ثانیه های گذشته از روشن بودن سیستم به عدد بالا میرسه، overflow رخ میده و این متغیر دوباره به 0 ریست میشه!
حالا بعضی از قسمت های سیستم عامل دائم در حال بررسی مقدار این متغیر هستن و این فرض رو دارن که این متغیر دائم باید در حال زیاد شدن باشه، وقتی که میبینن یهو ریست شده براشون غیر منتظرس و crash رخ میده.
بعد از اینکه مشکل رو پیدا کردن type رو به unsigned int 64 تغییر دادن و مشکل حل شد
@DevTwitter | <Bassam Nazemi/>
امروز به یه مطلب جالبی برخوردم.
وقتی مایکروسافت نسخه اولیه ویندوز 95 رو منتشر کرد، بعد از مدتی متوجه شد که کامپیوتر هایی که از این سیستم عامل استفاده میکنن اگر 49.7 روز به طور مداوم روشن بمونن ویندوز یهو crash میکنه.
بعد از بررسی متوجه میشن علتش type متغیری هست که زمان روشن بودن سیستم(Uptime) رو نگهداری میکنه. این متغیر زمان روشن بودن سیستم رو به میلی ثانیه نگه میداره و type رو unsigned int 32 انتخاب کرده بودن که این تایپ نهایتا تا عدد 4,294,967,295 رو میتونه توی خودش ذخیره کنه و چون بعد از 49.7 روز مقدار میلی ثانیه های گذشته از روشن بودن سیستم به عدد بالا میرسه، overflow رخ میده و این متغیر دوباره به 0 ریست میشه!
حالا بعضی از قسمت های سیستم عامل دائم در حال بررسی مقدار این متغیر هستن و این فرض رو دارن که این متغیر دائم باید در حال زیاد شدن باشه، وقتی که میبینن یهو ریست شده براشون غیر منتظرس و crash رخ میده.
بعد از اینکه مشکل رو پیدا کردن type رو به unsigned int 64 تغییر دادن و مشکل حل شد
@DevTwitter | <Bassam Nazemi/>