✅ الگوی طراحی Singleton چیه؟
https://refactoring.guru/design-patterns/singleton
☑️ مثالش توی پایتون
https://refactoring.guru/design-patterns/singleton/python/example
☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده
https://steelkiwi.com/blog/practical-application-singleton-design-pattern/
https://refactoring.guru/design-patterns/singleton
☑️ مثالش توی پایتون
https://refactoring.guru/design-patterns/singleton/python/example
☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده
https://steelkiwi.com/blog/practical-application-singleton-design-pattern/
👍3
جنگولرن
✅ الگوی طراحی Singleton چیه؟ https://refactoring.guru/design-patterns/singleton ☑️ مثالش توی پایتون https://refactoring.guru/design-patterns/singleton/python/example ☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده https://steelkiwi.com/blog/practical…
✅ پست (هایی) از کانال @TadavomnisT_channel در مورد این پست. توی کانالش برید و توضیحات کاملی که داده رو ببینید.
دیزاین پترن سینگلتون چیست؟
این پست از جنگولرن رو دیدم و بهانه خوبی بود برای اینکه نقبی بزنیم به شیگرایی و الگوی طراحی سینگلتون رو به زبان ساده یه توضیح کوشولو بدیم، چون چیزی بود که در عمل خودمم قبلا استفادهش کردم و کاربردی بود^_^
یه زمانی هست که ما میخوایم از یه کلاس فقط یک شی ساخته بشه، و نه بیشتر.
یعنی کلاسمون رو جوری طراحی کنیم، که صرفا یـــــــک عدد شی/آبجکت/اینستنس ازش قابل ساختن باشه.
اون موقع هست که از "الگوی طراحی سینگلتون" یا دیزاینپترن Singleton استفاده میکنیم.
الگوهای طراحی معماری نرمافزار، یا به اختصار دیزاینپترن ها، بخشی از اصول طراحی معماری نرمافزار هستن، اگر فرآیند ساخت نرمافزار رو به فرايند ساخت خونه تشبیه کنیم، بخش مهم ساختن یه خونه، طراحی معماری اون خونه هست، طراحی معماری، نقشه کشیدن، محاسبات، برآورد کردن مصالح، پی زدن، و... همه کارهای مهم، قبل از نهادن خشت اول انجام میشه.
نرمافزار هم همینه، من چرخه تولید نرمافزار رو توضیح دادم که کدزنی فقط ممکنه 10 درصد فرآیند ساخت نرمافزار باشه، همچنین توی طراحی نرم افزارهای بزرگ و کوچیک، طراحی معماری "بالابهپایین" و "پایینبهبالا" رو اسم بردم دادم که خوندنش مفیده.
اما برگردیم به سینگلتون...
سینگلتون یه دیزانپترن خیـــــــلی ساده و خیـــــــلی کاربردیه که یه کلاس رو جوری رگولاته میکنه که شما صرفا ازش همیشه یک اینستنس داشته باشی.
+ اول توضیح انتزاعی میدم
+ بعدش توضیح عملی میدم
+ بعدشم میگم که اصلا به چه دردی میخوره.
دیزاین پترن سینگلتون چیست؟
این پست از جنگولرن رو دیدم و بهانه خوبی بود برای اینکه نقبی بزنیم به شیگرایی و الگوی طراحی سینگلتون رو به زبان ساده یه توضیح کوشولو بدیم، چون چیزی بود که در عمل خودمم قبلا استفادهش کردم و کاربردی بود^_^
یه زمانی هست که ما میخوایم از یه کلاس فقط یک شی ساخته بشه، و نه بیشتر.
یعنی کلاسمون رو جوری طراحی کنیم، که صرفا یـــــــک عدد شی/آبجکت/اینستنس ازش قابل ساختن باشه.
اون موقع هست که از "الگوی طراحی سینگلتون" یا دیزاینپترن Singleton استفاده میکنیم.
الگوهای طراحی معماری نرمافزار، یا به اختصار دیزاینپترن ها، بخشی از اصول طراحی معماری نرمافزار هستن، اگر فرآیند ساخت نرمافزار رو به فرايند ساخت خونه تشبیه کنیم، بخش مهم ساختن یه خونه، طراحی معماری اون خونه هست، طراحی معماری، نقشه کشیدن، محاسبات، برآورد کردن مصالح، پی زدن، و... همه کارهای مهم، قبل از نهادن خشت اول انجام میشه.
نرمافزار هم همینه، من چرخه تولید نرمافزار رو توضیح دادم که کدزنی فقط ممکنه 10 درصد فرآیند ساخت نرمافزار باشه، همچنین توی طراحی نرم افزارهای بزرگ و کوچیک، طراحی معماری "بالابهپایین" و "پایینبهبالا" رو اسم بردم دادم که خوندنش مفیده.
اما برگردیم به سینگلتون...
سینگلتون یه دیزانپترن خیـــــــلی ساده و خیـــــــلی کاربردیه که یه کلاس رو جوری رگولاته میکنه که شما صرفا ازش همیشه یک اینستنس داشته باشی.
+ اول توضیح انتزاعی میدم
+ بعدش توضیح عملی میدم
+ بعدشم میگم که اصلا به چه دردی میخوره.
Telegram
جنگولرن
✅ الگوی طراحی Singleton چیه؟
https://refactoring.guru/design-patterns/singleton
☑️ مثالش توی پایتون
https://refactoring.guru/design-patterns/singleton/python/example
☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده
https://steelkiwi.com/blog/practical…
https://refactoring.guru/design-patterns/singleton
☑️ مثالش توی پایتون
https://refactoring.guru/design-patterns/singleton/python/example
☑️ مثالش توی جنگو که باهاش تنظمیات سایتش رو پیاده سازی کرده
https://steelkiwi.com/blog/practical…
❤4👍1
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
چند مثال از جوین هایی که میتونن مشکل زا باشن توی sql و بهینه نیستند :
مثال 1: استفاده از CROSS JOIN
فرض کنید میخواهیم اطلاعات مشتریان و سفارشهای آنها را از دو جدول مجزا در SQL استخراج کنیم. برای این کار از CROSS JOIN استفاده میکنیم:
این کد همه مشتریها را با همه سفارشها جوین میکند، که میتواند به مشکلات عملکردی و مصرف منابع زیادی منجر شود.
راه حل بهتر: برای ارتباط دو جدول بهتر است از INNER JOIN یا LEFT JOIN استفاده کنید تا فقط رکوردهای متناظر با یکدیگر جوین شوند و منابع بهینهتر مدیریت شوند.
در Django ORM:
مثال 2: استفاده از WHERE برای جوین
در این مثال، میخواهیم اطلاعات مشتریانی که سفارش دادهاند را بر اساس شهر مشتریها استخراج کنیم:
این کد علاوه بر استفاده از JOIN با WHERE برای فیلترینگ، منجر به اجراهای زمانبر میشود.
راه حل بهتر: از INNER JOIN یا LEFT JOIN برای اتصال جداول استفاده کنید و شرطهای فیلترینگ را در بخش WHERE اعمال کنید.
در Django ORM:
مثال 3: استفاده از JOIN بیش از حد
در این مثال، فرض کنید بخواهیم اطلاعات مشتریان، سفارشها و محصولات را با هم جوین کنیم:
این کد ممکن است به عنوان یک JOIN زیادهروی شناخته شود که منجر به کاهش عملکرد و پیچیدگی افزایش میدهد.
راه حل بهتر: تلاش کنید فقط اطلاعات مورد نیاز خود را با INNER JOIN یا LEFT JOIN جوین کنید تا سادهتر و کارآمدتر باشد.
در Django ORM:
به این توجه کنید که در Django ORM میتوانید از
⚠️ من جنگو زیاد خوب نیستم اگر ایرادی داره توی کامنت ها بگید اصلاح کنم.
💠 @SEYED_BAX
مثال 1: استفاده از CROSS JOIN
فرض کنید میخواهیم اطلاعات مشتریان و سفارشهای آنها را از دو جدول مجزا در SQL استخراج کنیم. برای این کار از CROSS JOIN استفاده میکنیم:
SELECT * FROM Customers
CROSS JOIN Orders;
این کد همه مشتریها را با همه سفارشها جوین میکند، که میتواند به مشکلات عملکردی و مصرف منابع زیادی منجر شود.
راه حل بهتر: برای ارتباط دو جدول بهتر است از INNER JOIN یا LEFT JOIN استفاده کنید تا فقط رکوردهای متناظر با یکدیگر جوین شوند و منابع بهینهتر مدیریت شوند.
در Django ORM:
# اشتباه: استفاده از select_related برای چندین ارتباط یکبه-بیش-تا-یک
customers = Customer.objects.all().select_related('order__product')
# راه حل: استفاده از prefetch_related برای این موارد
customers = Customer.objects.all().prefetch_related('order_set__product')
مثال 2: استفاده از WHERE برای جوین
در این مثال، میخواهیم اطلاعات مشتریانی که سفارش دادهاند را بر اساس شهر مشتریها استخراج کنیم:
SELECT Customers.*, Orders.*
FROM Customers, Orders
WHERE Customers.CustomerID = Orders.CustomerID
AND Customers.City = 'New York';
این کد علاوه بر استفاده از JOIN با WHERE برای فیلترینگ، منجر به اجراهای زمانبر میشود.
راه حل بهتر: از INNER JOIN یا LEFT JOIN برای اتصال جداول استفاده کنید و شرطهای فیلترینگ را در بخش WHERE اعمال کنید.
در Django ORM:
# اشتباه: استفاده از فیلتر در select_related
customers = Customer.objects.filter(city='New York').select_related('order')
# راه حل: فیلتر را در queryset اعمال کنید
customers = Customer.objects.filter(city='New York')
مثال 3: استفاده از JOIN بیش از حد
در این مثال، فرض کنید بخواهیم اطلاعات مشتریان، سفارشها و محصولات را با هم جوین کنیم:
SELECT Customers.*, Orders.*, Products.*
FROM Customers
INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID
INNER JOIN Products ON Orders.ProductID = Products.ProductID;
این کد ممکن است به عنوان یک JOIN زیادهروی شناخته شود که منجر به کاهش عملکرد و پیچیدگی افزایش میدهد.
راه حل بهتر: تلاش کنید فقط اطلاعات مورد نیاز خود را با INNER JOIN یا LEFT JOIN جوین کنید تا سادهتر و کارآمدتر باشد.
در Django ORM:
# اشتباه: جوین بیش از حد در یک queryset
customers = Customer.objects.all().select_related('order__product')
# راه حل: جوینهای مورد نیاز را جداگانه تعریف کنید
customers = Customer.objects.all().select_related('order').prefetch_related('order__product')
به این توجه کنید که در Django ORM میتوانید از
select_related
برای اتصالهای یک به یک و prefetch_related
برای اتصالهای یک به بیش از یک استفاده کنید تا بهینهترین عملکرد را داشته باشید.Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2
📣 تبلیغ رایگان
📌کانال برتر تحلیل گران امنیت اطلاعات
📌آموزشهای کشف آسیب پذیری و اکسپلویت کردن آن
📌بروزترین متد های هکینگ
📌برترین و بروزترین کانال امنیت سایبری
📌کانالی برای انواع هکرهای کلاه سفید - کلاه سیاه - تیم امنیت قرمز و آبی
https://t.me/joinchat/AAAAAFOu_hbWrEmB8L7ZDg
📌کانال برتر تحلیل گران امنیت اطلاعات
📌آموزشهای کشف آسیب پذیری و اکسپلویت کردن آن
📌بروزترین متد های هکینگ
📌برترین و بروزترین کانال امنیت سایبری
📌کانالی برای انواع هکرهای کلاه سفید - کلاه سیاه - تیم امنیت قرمز و آبی
https://t.me/joinchat/AAAAAFOu_hbWrEmB8L7ZDg
Telegram
Security Analysis
- Offensive Security (Red Teaming / PenTesting)
- BlueTeam (OperationSec, TreatHunting, DFIR)
- Reverse Engineering / Malware Analysis
- Web Security
- Cryptography
- Steganography
- Forensics
- BlueTeam (OperationSec, TreatHunting, DFIR)
- Reverse Engineering / Malware Analysis
- Web Security
- Cryptography
- Steganography
- Forensics
🔥4🤮2
Forwarded from Microfrontend.ir
در این ویدیو از آموزش رایگان پروژه محور Django مدل تصاویر محصولات در فروشگاه ایجاد کردیم به گونه ای که بتوان برای هر محصول مجموعه ای از عکس ها اضافه کرد و یکی از آنها را به عنوان عکس اصلی مشخص کنیم. همچنین در صورت حذف عکس سایر عکس ها را مجدد مرتب کردیم.
Video: https://youtu.be/O8Crpne0iWg
PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwnWCHfoka0G57oL-8fuMGW
Git: https://github.com/hemanhp/djshop
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
Video: https://youtu.be/O8Crpne0iWg
PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwnWCHfoka0G57oL-8fuMGW
Git: https://github.com/hemanhp/djshop
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
❤2
Forwarded from Unk9vvN
#Web #Developer VS #Web #Security #Expert
تفاوت نگاه یک برنامه نویس وب به موضوع امنیت سرویس های تحت وب، با یک متخصص پیشرفته امنیت وب در این است که برنامه نویس وب، آسیب پذیری های عمومی را مورد بررسی و ایمن سازی قرار میدهد اما متخصص امنیت وب بیش از 100 آسیب پذیری حساس در حوزه وب رو مورد بررسی و وا کاوی قرار میدهد.
نمونه ای از تحقیقات برتر متخصصین امنیت وب:
Abusing HTTP hop-by-hop request headers by Nathan Davison
Web Cache Deception Attack by Omer Gil
HTTP Desync Attacks: Request Smuggling Reborn by James Kettle
File Operation Induced Unserialization via the “phar://” Stream Wrapper by Sam Thomas
Remote Code Execution in CouchDB by Max Justicz
Prototype pollution attack in NodeJS application by Olivier Arteau
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! by Orange Tsai
Timeless Timing Attacks by Tom Van Goethem & Mathy Vanhoef
How I Hacked Microsoft Teams and got $150,000 in Pwn2Own by Masato Kinugawa
@Unk9vvN
تفاوت نگاه یک برنامه نویس وب به موضوع امنیت سرویس های تحت وب، با یک متخصص پیشرفته امنیت وب در این است که برنامه نویس وب، آسیب پذیری های عمومی را مورد بررسی و ایمن سازی قرار میدهد اما متخصص امنیت وب بیش از 100 آسیب پذیری حساس در حوزه وب رو مورد بررسی و وا کاوی قرار میدهد.
نمونه ای از تحقیقات برتر متخصصین امنیت وب:
Abusing HTTP hop-by-hop request headers by Nathan Davison
Web Cache Deception Attack by Omer Gil
HTTP Desync Attacks: Request Smuggling Reborn by James Kettle
File Operation Induced Unserialization via the “phar://” Stream Wrapper by Sam Thomas
Remote Code Execution in CouchDB by Max Justicz
Prototype pollution attack in NodeJS application by Olivier Arteau
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! by Orange Tsai
Timeless Timing Attacks by Tom Van Goethem & Mathy Vanhoef
How I Hacked Microsoft Teams and got $150,000 in Pwn2Own by Masato Kinugawa
@Unk9vvN
😁2🔥1
جنگولرن
نکته تمپلت های جنگو از لینکدین Mohammad Hany Feyz
کامنت یکی از دوستان
حالا که بحث تمپلیت شد یه قابلیت جدید توی ورژن پنج اضافه کردن که میتونیم ویژگی های متخلف یک فیلد فرم مثل lable, widget, help textرو با هم گروپ کنیم
حالا که بحث تمپلیت شد یه قابلیت جدید توی ورژن پنج اضافه کردن که میتونیم ویژگی های متخلف یک فیلد فرم مثل lable, widget, help textرو با هم گروپ کنیم
👍6❤2
Forwarded from Microfrontend.ir
در این ویدیو از آموزش پروژه محور Django به بررسی روش های Model Inheritance در جنگو پرداختیم. جنگو برای این کار سه رویکرد را ارایه داده است که رویکرد آن استفاده از abstarct model هاست. رویکرد دوم multi table inheritance و رویکرد سوم django proxy model است. ابتدا برای ذخیره اطلاعات زمان به روز رسانی و ایجاد رکورد از یک abstract model استفاده کردیم و سپس به عنوان مثال پروکسی، مدل LogEntry جنگو ادمین را اکستند کردیم.
Video: https://youtu.be/RADrO9uB1Xc
PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwnWCHfoka0G57oL-8fuMGW
Git: https://github.com/hemanhp/djshop
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
Video: https://youtu.be/RADrO9uB1Xc
PlayList: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwnWCHfoka0G57oL-8fuMGW
Git: https://github.com/hemanhp/djshop
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
❤5
یه سوال ساده: در HTML ایا به المان های inline میشه float داد؟
Anonymous Quiz
39%
نمی دونم
42%
میشه
19%
نمیشه
😁8👎1
سوال ساده دوم: آیا میشه position:absolute رو به المان های inline بدیم؟
Anonymous Quiz
31%
نمی دونم
45%
میشه
24%
نمیشه
😁1
👍2👏2
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
توی کامنت اول اسکیل افقی و عمودی رو توضیح دادم
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Forwarded from SeYeD.Dev
اسکیل افقی و عمودی در مفاهیم پایگاه داده (Database) استفاده میشوند تا ماهیت تغییرات و توسعه دیتابیسها را توصیف کنند. این دو مفهوم به شرح زیر توضیح داده میشوند:
1. اسکیل افقی (Horizontal Scaling):
- اسکیل افقی به معنای افزایش ظرفیت دیتابیس با افزودن سرورها یا نودهای جدید به سیستم است.
- در اسکیل افقی، دادهها و بار کاری به صورت موازی بین سرورها یا نودها تقسیم میشوند.
- این رویکرد اغلب برای افزایش قابلیت اطمینان و پایداری سیستم مورد استفاده قرار میگیرد.
2. اسکیل عمودی (Vertical Scaling):
- اسکیل عمودی به معنای افزایش ظرفیت دیتابیس با افزایش منابع سختافزاری (مانند پردازنده، حافظه RAM، دیسک سخت و غیره) در یک سرور میباشد.
- در اسکیل عمودی، تمام دادهها و عملیات پردازش به یک سرور محدود میشوند.
- این رویکرد معمولاً برای بهبود عملکرد یک سرور خاص و کاهش مشکلات عملکردی مورد استفاده قرار میگیرد.
برای مثال، اگر یک وبسایت با افزایش ترافیک نیاز به پشتیبانی از بیشترین تعداد کاربران داشته باشد، میتوانید به اسکیل افقی فکر کنید و سرورهای اضافی را به سیستم اضافه کنید. در مقابل، اگر یک دیتابیس تجاری با دادههای حجیم و پیچیده دارید و نیاز به افزایش سرعت پردازش دارید، ممکن است با اسکیل عمودی (افزایش منابع سختافزاری) به اهداف خود برسید.
هر دو اسکیل افقی و عمودی دارای مزایا و معایب خود هستند، و انتخاب بین آنها باید بر اساس نیازها و موارد مشخص شما صورت گیرد.
1. اسکیل افقی (Horizontal Scaling):
- اسکیل افقی به معنای افزایش ظرفیت دیتابیس با افزودن سرورها یا نودهای جدید به سیستم است.
- در اسکیل افقی، دادهها و بار کاری به صورت موازی بین سرورها یا نودها تقسیم میشوند.
- این رویکرد اغلب برای افزایش قابلیت اطمینان و پایداری سیستم مورد استفاده قرار میگیرد.
2. اسکیل عمودی (Vertical Scaling):
- اسکیل عمودی به معنای افزایش ظرفیت دیتابیس با افزایش منابع سختافزاری (مانند پردازنده، حافظه RAM، دیسک سخت و غیره) در یک سرور میباشد.
- در اسکیل عمودی، تمام دادهها و عملیات پردازش به یک سرور محدود میشوند.
- این رویکرد معمولاً برای بهبود عملکرد یک سرور خاص و کاهش مشکلات عملکردی مورد استفاده قرار میگیرد.
برای مثال، اگر یک وبسایت با افزایش ترافیک نیاز به پشتیبانی از بیشترین تعداد کاربران داشته باشد، میتوانید به اسکیل افقی فکر کنید و سرورهای اضافی را به سیستم اضافه کنید. در مقابل، اگر یک دیتابیس تجاری با دادههای حجیم و پیچیده دارید و نیاز به افزایش سرعت پردازش دارید، ممکن است با اسکیل عمودی (افزایش منابع سختافزاری) به اهداف خود برسید.
هر دو اسکیل افقی و عمودی دارای مزایا و معایب خود هستند، و انتخاب بین آنها باید بر اساس نیازها و موارد مشخص شما صورت گیرد.
👍6
Forwarded from مطالب رایگان و آزاد🎈 ( behrad)
خب رسیدیم به اوایل دهه 90 میلادی که استالمن و یارانش تقریبا تمام ابزارهای مورد نیاز برای یه سیستم عامل مثل یونیکس به غیر از کرنل رو بازنویسی کرده بودن...
استالمن فکر میکرد طراحی کرنل خیلی طولانی تر و سخت تر از بازنویسی این جریانها باشه....
موازی با این جریان، یه دانشجویی به اسم لینوس توروالز هم بصورت خودجوش این چند سال آخر رو صرف نوشتن یه کرنل کرده بود که مثل یونیکس باشه...
به عنوان یه پروژه آخر هفته فان...
برای این که بتونه سیستم عامل خودش رو داشته باشه...
(اینو شاید بعدا بیشتر توضیح بدیم)
استالمن و دیگر افراد گنو از این جریان خبر نداشتن...
سال 1991 دوست توروالز بهش میگه بیا بریم دانشگاه ما، یه ریش بلندی اومده به اسم استالمن که یچیزایی از آزادی نرمافزار میگه و لایسنس و این چیزا...
قبل از دیدن این سخنرانی، توروالز لینوکس رو با لایسنسی کاستوم عرضه کرده بود که اجازه استفاده های تبلیغاتی از لینوکس + یسری استفاده های دیگه ای رو نمیداد...
بعد از دیدن سخنرانی استالمن، توروالز متاثر از حرفهایی راجع به گنو، کرنل رو میبره روی لاینسن GPL ورژن 2 (که بعد از 30 سال الان هنوزم روی همونه)...
و بصورت آزاد نشر میده:)
استالمن که کرنل رو میبینه، میفهمه کرنلی نوشته شده خیلی سریعتر و خیلی بهینهتر از اون چیزی که تصورش رو میکرده!
و آخرین تیکه گمشده پازل گنو، تکمیل میشه✨
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
فکر کنم حالا همه چیز واضح شد... حالا حرفهایی که قبلا اینجا زدم رو اگه بازنشر کنم کاملا درک میشه:
مفهوم لینوکس چیه، اصطلاح درست تر ، یاد گرفتن مفهوم گنو اسلش لینوکسه... گنو/لینوکس:
GNU/Linux
لینوکس یه کرنل اپنسورس و آزاده، که توسط استاد توروالز نوشته شده و امروزه توسط یه جامعهای توسعه داده میشه و پچ میشه.
بسیار کرنل استیبل و بهینهای هست.
وظیفه کرنل انجام کارهای زیر باک سیستم عامله مثل مدیریت پراسسها و رم و پردازنده، و اتصال و مدیریت قسمتهای مختلف،
به معنای کلی،
راه انداختن زیر باک سیستم عامل.
گنو اسم مکتبی هست که استاد استالمن راه انداخته و میشه بعدا راجع بهش کلی حرف زد (یه پست واسه استالمن مینویسم)
گنو در اینجا منظور از یکسری ابزار آزاد هست که دور کرنل رو میگیرن، و از یه هسته خام تبدیلش میکنن به یه سیستم عامل کامل...
ابزار هایی تحت پکیج های مختلف،
مثل کامپایلر آزاد
ویرایشگر متنی آزاد
ابزار مدیریت شبکه آزاد
زبان برنامه نویسی
فشرده سازی
آرکایو منیجر
منوآل
بش
گراب
و...
خلاصه هر چیزی که یه هسته خام لازم داره تا بتونه سیستم عامل کامل باشه✅
اینا همه برنامه هستن،
کرنل در کنار دیگر ابزارهای گنو کامپایل میشه و یه سیستم عالم لینوکس بیس و خام زاده میشه
https://t.me/TadavomnisT_channel/646
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
پس گنو پروژه بزرگی بود که کرنل لینوکس متممش شد.
استالمن فکر میکرد طراحی کرنل خیلی طولانی تر و سخت تر از بازنویسی این جریانها باشه....
موازی با این جریان، یه دانشجویی به اسم لینوس توروالز هم بصورت خودجوش این چند سال آخر رو صرف نوشتن یه کرنل کرده بود که مثل یونیکس باشه...
به عنوان یه پروژه آخر هفته فان...
برای این که بتونه سیستم عامل خودش رو داشته باشه...
(اینو شاید بعدا بیشتر توضیح بدیم)
استالمن و دیگر افراد گنو از این جریان خبر نداشتن...
سال 1991 دوست توروالز بهش میگه بیا بریم دانشگاه ما، یه ریش بلندی اومده به اسم استالمن که یچیزایی از آزادی نرمافزار میگه و لایسنس و این چیزا...
قبل از دیدن این سخنرانی، توروالز لینوکس رو با لایسنسی کاستوم عرضه کرده بود که اجازه استفاده های تبلیغاتی از لینوکس + یسری استفاده های دیگه ای رو نمیداد...
بعد از دیدن سخنرانی استالمن، توروالز متاثر از حرفهایی راجع به گنو، کرنل رو میبره روی لاینسن GPL ورژن 2 (که بعد از 30 سال الان هنوزم روی همونه)...
و بصورت آزاد نشر میده:)
استالمن که کرنل رو میبینه، میفهمه کرنلی نوشته شده خیلی سریعتر و خیلی بهینهتر از اون چیزی که تصورش رو میکرده!
و آخرین تیکه گمشده پازل گنو، تکمیل میشه✨
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
فکر کنم حالا همه چیز واضح شد... حالا حرفهایی که قبلا اینجا زدم رو اگه بازنشر کنم کاملا درک میشه:
مفهوم لینوکس چیه، اصطلاح درست تر ، یاد گرفتن مفهوم گنو اسلش لینوکسه... گنو/لینوکس:
GNU/Linux
لینوکس یه کرنل اپنسورس و آزاده، که توسط استاد توروالز نوشته شده و امروزه توسط یه جامعهای توسعه داده میشه و پچ میشه.
بسیار کرنل استیبل و بهینهای هست.
وظیفه کرنل انجام کارهای زیر باک سیستم عامله مثل مدیریت پراسسها و رم و پردازنده، و اتصال و مدیریت قسمتهای مختلف،
به معنای کلی،
راه انداختن زیر باک سیستم عامل.
گنو اسم مکتبی هست که استاد استالمن راه انداخته و میشه بعدا راجع بهش کلی حرف زد (یه پست واسه استالمن مینویسم)
گنو در اینجا منظور از یکسری ابزار آزاد هست که دور کرنل رو میگیرن، و از یه هسته خام تبدیلش میکنن به یه سیستم عامل کامل...
ابزار هایی تحت پکیج های مختلف،
مثل کامپایلر آزاد
ویرایشگر متنی آزاد
ابزار مدیریت شبکه آزاد
زبان برنامه نویسی
فشرده سازی
آرکایو منیجر
منوآل
بش
گراب
و...
خلاصه هر چیزی که یه هسته خام لازم داره تا بتونه سیستم عامل کامل باشه✅
اینا همه برنامه هستن،
کرنل در کنار دیگر ابزارهای گنو کامپایل میشه و یه سیستم عالم لینوکس بیس و خام زاده میشه
https://t.me/TadavomnisT_channel/646
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
پس گنو پروژه بزرگی بود که کرنل لینوکس متممش شد.
👍9❤2
Forwarded from نوشتههای ترمینالی
شاید شما هم مثل من پوشهی تنظیمات editorتون رو به gitignore همهی پروژههاتون اضافه میکنید، اما اگر پروژه، پروژهی ما نیست چی؟ به تمام پروژههایی که contributor شون هستیم چی؟ یا مثلا فایل .DS_Store مک رو در نظر بگیرید، چون یک نفر مک داره باید این به gitignore پروژه اضافه بشه؟
راه حل بهترش استفاده از global gitignoreئه، یه فایل گیت ایگنور که برای سیستم شما روی همه چی اعمال میشه نه فقط یه ریپوزیتوری.
در موردش اینجا بخونید:
https://sebastiandedeyne.com/setting-up-a-global-gitignore-file/
راه حل بهترش استفاده از global gitignoreئه، یه فایل گیت ایگنور که برای سیستم شما روی همه چی اعمال میشه نه فقط یه ریپوزیتوری.
در موردش اینجا بخونید:
https://sebastiandedeyne.com/setting-up-a-global-gitignore-file/
Sebastiandedeyne
Setting up a global .gitignore file
Reviewing pull requests, I often see contributors sneakily adding editor configuration to the repository's .gitignore file.
composer.lock package.lock+ .vscode
If everyone would commit their environment-specific .gitignore rules, we'd have a long list…
composer.lock package.lock+ .vscode
If everyone would commit their environment-specific .gitignore rules, we'd have a long list…
❤6
Forwarded from AutomationCamp
Test Automation Design Patterns.pdf
2.3 MB
دیزاین پترن یا همون الگوی طراحی، یک قالب برای پیاده سازی سولوشن های نرم افزاری برای مسائل متفاوت هست که نیایم زیاد درگیر چلنج بشیم، بست پرکتیس ها رو پیاده سازی کنیم و در نهایت کد تمیزتری داشته باشیم.
به عنوان دولوپر تست اتومیشن باید با دیزاین پترن های مهم ش آشنا باشیم. تو این فایل که اخیرا تو لینکداین منتشر کردم خیلی مفید و مختصر با مثال و جایی که باید استفاده بشن توضیح شون دادم.
امیدوارم براتون مفید باشه ✌️
به عنوان دولوپر تست اتومیشن باید با دیزاین پترن های مهم ش آشنا باشیم. تو این فایل که اخیرا تو لینکداین منتشر کردم خیلی مفید و مختصر با مثال و جایی که باید استفاده بشن توضیح شون دادم.
امیدوارم براتون مفید باشه ✌️
👍2
Forwarded from Django Expert (Boby Cloud)
✔️ اخیرا code review برای یک سری از دوستان انجام دادم و یک موردی که در اکثر کدها میدیدم عبارات شرطی (if/else) های غیرضروری و تورفتگی های بیش از حد کدها بود که باعث میشد خوانایی کد پایین بیاد، کدها کثیف بشن و دیباگ و نگهداری کد هم سخت تر بشه. این مورد انقدر زیاد بود که تصمیم گرفتم راجع بهش یه ویدیو بسازم.
✅ توی این ویدیو راجع به تکنیک گارد کلاوز (Guard Clause) صحبت میکنیم که با استفاده از برعکس کردن شرطهای if، میشه کدهای تمیزتری نوشت و دیباگ، نگهداری و در نهایت زندگی راحت تری داشته باشیم.
🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/Q3FLJ95Mc1g?si=JnCE5PYehlrTyQMl
〰️〰️〰️〰️〰️〰️
@DjangoEx | @BobyDotCloud
✅ توی این ویدیو راجع به تکنیک گارد کلاوز (Guard Clause) صحبت میکنیم که با استفاده از برعکس کردن شرطهای if، میشه کدهای تمیزتری نوشت و دیباگ، نگهداری و در نهایت زندگی راحت تری داشته باشیم.
🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/Q3FLJ95Mc1g?si=JnCE5PYehlrTyQMl
〰️〰️〰️〰️〰️〰️
@DjangoEx | @BobyDotCloud
👍5