Forwarded from SoniaCircuit (Sony)
معمولا هدف افراد توی ایران از دانشگاه فرار کردنه ( از رفتن هم گذشته )
خودمم اگه ایران بودم قطعا با همین هدف رویکردی مثل ( تحصیل ) رو ادامه میدادم.
خودمم اگه ایران بودم قطعا با همین هدف رویکردی مثل ( تحصیل ) رو ادامه میدادم.
Forwarded from Rust for Python developers
#5min_Rust
تفاوت
اولین نکته اینه که خیلی از دوستان به اشتباه فکر میکنند که این ۳ مورد حافظههای متفاوتی هست و این مشکل از اینجا میاد که راجب سرعت صحبت میشه.
توی تصویر مثال بالا اگر دقت کنید؛ هر ۳ مورد داخل
وقتی شما کد رو اجرا میکنید اول یک سری فضا به برخی موارد اختصاص داده میشه؛ برای مثال خود دستورالعملهای کد شما که توی تصویر سمت چپ
از مثال زدن
بعد از اینکار برای
دیفالت
با ویژگیهای اصلی استک شروع کنیم و بعد به سراغ مثال بریم:
۱- سرعت؛ توی تصویر دقت کنید؛ یک بخشی بین
۲- هر نوع دادهای که میخواد داخل استک قرار بگیره باید سایز مشخصی داشته باشه. در زمان کامپایل باید مشخص بشه چقدر جا میخواد.
ترکیب دو مورد بالا باعث میشه که بتونیم خیلی سریع به دیتاهای روی
مورد بعدی
توی عکس بالا توی بخش
پاک کردن داده از
توی پست بعدی راجب نمونه کد و جزئیاتش توی تصویر بالا صحبت خواهیم کرد.
پینوشت:
من سعی کردم خیلی ساده توضیح بدم تا کلیات و تفاوتهای اصلی رو همه متوجه بشوند و از بحث راجب نحوه دقیق عملکرد در اینجا خودداری کردم (باشه برای آینده)
تفاوت
Stack, Heap, Static در Rust:اولین نکته اینه که خیلی از دوستان به اشتباه فکر میکنند که این ۳ مورد حافظههای متفاوتی هست و این مشکل از اینجا میاد که راجب سرعت صحبت میشه.
توی تصویر مثال بالا اگر دقت کنید؛ هر ۳ مورد داخل
RAM هستند فقط ویژگیهای مختلفی دارند که بهشون میپردازیم:وقتی شما کد رو اجرا میکنید اول یک سری فضا به برخی موارد اختصاص داده میشه؛ برای مثال خود دستورالعملهای کد شما که توی تصویر سمت چپ
Stack هستند؛ این بخش شامل static, global variable و ... هم میشه.از مثال زدن
data type ها پرهیز میکنم چون هنوز باهاشون آشنا نشدیم.بعد از اینکار برای
Rust یک فضای 8MB پشت سرهم درخواست داده میشه که این فضا بعنوان Stack اصلی توسط برنامه استفاده خواهد شد.دیفالت
8mb هست برای ترد اصلی و 2mb برای تردهای دیگه توجه کنید که لزوما همون لحظه کل 8mb رزرو نخواهد شد اما برنامه شما تا 8mb دسترسی به استک داره و اگر بیشتر بشه stack overflow رخ میده و برنامه kill میشه.با ویژگیهای اصلی استک شروع کنیم و بعد به سراغ مثال بریم:
۱- سرعت؛ توی تصویر دقت کنید؛ یک بخشی بین
stack, heap نوشتم Stack Pointer؛ یکی از رجیسترهای CPU وظیفه نگهداری آدرس شروع Stack رو به عهده میگیره و هموراه به آدرس انتهایی آخرین دیتای موجود در استک اشاره میکنه.۲- هر نوع دادهای که میخواد داخل استک قرار بگیره باید سایز مشخصی داشته باشه. در زمان کامپایل باید مشخص بشه چقدر جا میخواد.
ترکیب دو مورد بالا باعث میشه که بتونیم خیلی سریع به دیتاهای روی
Stack دسترسی بگیریم اما یک محدودیت هم هست؛ Stack مثل بشقاب چینی میمونه وقتی روی هم میچینی نمیتونی از آخر ی دونه رو بکشی بیرون؛ باید به ترتیب از بالاترین بشقاب برداری تا به پایینی (آخری برسی).مورد بعدی
Heap اما داستان متفاوتی داره؛ برخلاف Stack که خودش بصورت خودکار حافظه اختصاص میده و میگیره heap اینطوری نیست و هروقت به این حافظه نیاز داشته باشه باید به سیستم عامل بگه که یک همچین حافظهای لازمه تا سیستم عامل اون میزان رو پیدا کنه و بهش بگه از اینجا به بعد رو میتونی استفاده کنی.توی عکس بالا توی بخش
heap خونههای قرمز بخشهای از حافظه هست که برای کارهای دیگه اختصاص داده شده و ما نمیتونیم دسترسی بگیریم؛ همین بررسی اینکه کجا رو به ما اختصاص بده باعث میشه سرعت این حافظه کندتر باشه.پاک کردن داده از
Heap هم توسط ownership, borrowing توی Rust مدیریت میشه که بعدا راجبش صحبت میکنیم.توی پست بعدی راجب نمونه کد و جزئیاتش توی تصویر بالا صحبت خواهیم کرد.
پینوشت:
من سعی کردم خیلی ساده توضیح بدم تا کلیات و تفاوتهای اصلی رو همه متوجه بشوند و از بحث راجب نحوه دقیق عملکرد در اینجا خودداری کردم (باشه برای آینده)
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
این آقای Dijkstra یه جملهای داره که میگه علم کامپیوتر همانقدر در مورد کامپیوتر هاست که نجوم در مورد تلسکوپ هاست
خیلی جمله پر مغزیه
@DevTwitter | <وحید باقی/>
خیلی جمله پر مغزیه
@DevTwitter | <وحید باقی/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
بکاند؟ چهار تا کد کپی پیست میکنی.
فرانتاند؟ چهار خط تو paint نقاشی میکنی.
سیس ادمین؟ چهار تا سیم به هم وصل میکنی.
مارکتینگ؟ ۴ تا استوری اینستاگرام میذاری.
پروداکت منیجر؟ چهار تا داک Word میسازی دیگه.
دیتا؟ ۴تا مدل لرن میکنی دیگه.
پزشک؟ ۴ تا پنی سیلین و دگزا میدی.
مهندسی شیمی؟ یه شیشه درست کردن این حرفا داره؟
مهندس هوافضا؟ خواهر زاده فلانی هم بلده با کاغذ هواپیما درست کنه.
معماری؟ ۴ تا مدل سه بعدی میذاری کنار هم.
@DevTwitter | <The Big Rad/>
فرانتاند؟ چهار خط تو paint نقاشی میکنی.
سیس ادمین؟ چهار تا سیم به هم وصل میکنی.
مارکتینگ؟ ۴ تا استوری اینستاگرام میذاری.
پروداکت منیجر؟ چهار تا داک Word میسازی دیگه.
دیتا؟ ۴تا مدل لرن میکنی دیگه.
پزشک؟ ۴ تا پنی سیلین و دگزا میدی.
مهندسی شیمی؟ یه شیشه درست کردن این حرفا داره؟
مهندس هوافضا؟ خواهر زاده فلانی هم بلده با کاغذ هواپیما درست کنه.
معماری؟ ۴ تا مدل سه بعدی میذاری کنار هم.
@DevTwitter | <The Big Rad/>
Forwarded from a pessimistic researcher
On the cruelty of really teaching computing science
By Edsger Wybe Dijkstra
https://www.cs.utexas.edu/~EWD/ewd10xx/EWD1036.PDF
این مقاله با دست خط مرحوم دانشمند فقید دایکسترا نوشته شده
By Edsger Wybe Dijkstra
https://www.cs.utexas.edu/~EWD/ewd10xx/EWD1036.PDF
این مقاله با دست خط مرحوم دانشمند فقید دایکسترا نوشته شده
Forwarded from a pessimistic researcher
فراز هایی از سخنان Knuth درباره Dijkstra
I suspect that the first two people in history whose brains were perfectly adapted for computer science were Alan Turing (1912–1954) and Edsger Dijkstra (1930–2002). Thus it was a great privilege for me to have had many encounters with Edsger, beginning in the early 1960s.
متن کامل این صحبت ها را می توانید در فایل زیر بخوانید
I suspect that the first two people in history whose brains were perfectly adapted for computer science were Alan Turing (1912–1954) and Edsger Dijkstra (1930–2002). Thus it was a great privilege for me to have had many encounters with Edsger, beginning in the early 1960s.
متن کامل این صحبت ها را می توانید در فایل زیر بخوانید
Forwarded from a pessimistic researcher (Kc)
آقای دایکسترا سال ۱۹۶۵ با همین مقاله یک صفحه ای در مجله communicatios of the ACM میاد برای اولین بار مسئله ای به نام Mutual Exclusion رو در دنیای علم کامپیوتر مطرح میکنه.
بدون حتی یک ارجاع به مقاله ای دیگه. همین یک صفحه که دارید میبیند باعث شکل گیری یک دنیای جدید در علم تئوری همروندی شد و هنوز که هنوز دارن روش کار میکنن
حتی سال ۲۰۲۰ جایزه Dijkstra Prize رو به یک مقاله ای دادن که موضوعش Mutual Exclusion بود و توی کنفرانس PODC چاپ شد
بدون حتی یک ارجاع به مقاله ای دیگه. همین یک صفحه که دارید میبیند باعث شکل گیری یک دنیای جدید در علم تئوری همروندی شد و هنوز که هنوز دارن روش کار میکنن
حتی سال ۲۰۲۰ جایزه Dijkstra Prize رو به یک مقاله ای دادن که موضوعش Mutual Exclusion بود و توی کنفرانس PODC چاپ شد
Forwarded from a pessimistic researcher (Kc)
حالا الان میرم پایین هوا بخورم
اومدم بالا براتون یه کتاب میذارم کیف کنید
اومدم بالا براتون یه کتاب میذارم کیف کنید
Forwarded from a pessimistic researcher (Kc)
انتشارات Springer سال ۲۰۰۱ اومد یه حرکت قشنگی زد و اینکه مقالاتی که تو حوزه نرم افزار خیلی کلیدی بودند و به نوعی هر کدومشون در یک دنیای جدید رو به رومون باز کردند و جمع کرد و با یک کیفیت خوب چاپ کرد. چون اکثر این مقالات مال سال هزار و نهصد و بوق هستند و ورژن با کیفیتی ندارند.
اگر بخوام به بعضی از مقالات مهمش اشاره کنم میتونم اینا رو اسم ببرم:
مقالهی آقای Codd که بحث دیتابیس Relational رو مطرح کرد. مقاله آقای Fred Brooks که بحث ساختار یکی از مهم ترین OS های دنیا یعنی OS/360 رو مطرح کرد. دو تا مقاله از Dijkstra که یکیش همینی بود که تو پست بالایی گفتم و اون یکیش یه مقاله است در مورد اینکه دستور goto چقدر بولشت عه و نباید ازش استفاده کرد :)))
مقاله آقای Hoare که بحث Hoare Logic رو مطرح کرد. مقاله آقای Wirth که یکی از مهم ترین زبان های برنامه نویسی یعنی Pascal رو مطرح کرد.
همه اینایی که اسم بردم جایزه Turing هم بردند.
حتی مقاله آقای Gamma که بحث Design Pattern رو مطرح کرد هم هست.
اگر بخوام به بعضی از مقالات مهمش اشاره کنم میتونم اینا رو اسم ببرم:
مقالهی آقای Codd که بحث دیتابیس Relational رو مطرح کرد. مقاله آقای Fred Brooks که بحث ساختار یکی از مهم ترین OS های دنیا یعنی OS/360 رو مطرح کرد. دو تا مقاله از Dijkstra که یکیش همینی بود که تو پست بالایی گفتم و اون یکیش یه مقاله است در مورد اینکه دستور goto چقدر بولشت عه و نباید ازش استفاده کرد :)))
مقاله آقای Hoare که بحث Hoare Logic رو مطرح کرد. مقاله آقای Wirth که یکی از مهم ترین زبان های برنامه نویسی یعنی Pascal رو مطرح کرد.
همه اینایی که اسم بردم جایزه Turing هم بردند.
حتی مقاله آقای Gamma که بحث Design Pattern رو مطرح کرد هم هست.
Forwarded from a pessimistic researcher (Kc)
یادمه یه بار توی یه مصاحبهای knuth گفت به نظرم از ابتدی تاریخ کلا دو نفر بودند که مغزشون برای کامپیوتری فکر کردن ساخته شده، یکی Turing و دیگری Dijkstra
ببینید دایکسترا وقتی میخواد یک مسئله رو توضیح بده چقدر با مخاطبش کشمش میکنه و سعی میکنه مقاله اش ذهن مخاطب رو باز کنه تا اینکه صرفا بخواد یه مقاله ای بنویسه و بگه من چقدر خفنم. و میدونه که مطلبی که میخواد در ادامه بگه برای مخاطبی که ذهنش خالیه ثقیله و برمیگرده میگه
We beg the challenged reader to stop here for a while and have a try himself
ببینید دایکسترا وقتی میخواد یک مسئله رو توضیح بده چقدر با مخاطبش کشمش میکنه و سعی میکنه مقاله اش ذهن مخاطب رو باز کنه تا اینکه صرفا بخواد یه مقاله ای بنویسه و بگه من چقدر خفنم. و میدونه که مطلبی که میخواد در ادامه بگه برای مخاطبی که ذهنش خالیه ثقیله و برمیگرده میگه
We beg the challenged reader to stop here for a while and have a try himself
Forwarded from a pessimistic researcher (Kc)
به باور صاحب نظران اولین بار این مسئله را Dijkstra در سال ۶۵ مطرح کرد، اما اینکه در کجا اولین بار مطرح شد اختلاف است.
عدهای معتقدند که این مسئله برای اولین بار در مقالهای که ایشان در سال ۶۵ با عنوان “Solution of a problem in concurrent programming control” در مجلهی Communications of the ACM چاپ کردند مطرح شد.
عدهای دیگر معتقدند که این مسئله اولین بار به عنوان یک تمرین کلاسی در سال ۶۵ توسط دایکسترا به دانشجویان کلاسش داده شد. مسئلهای که بعدها غولی دیگر به نام Tony hoare آن را مسئلهی Dinning Philosophers نامید. این مسئله در نوتهای دایکسترا با شمارهی EWD123 آمده است.
عدهای معتقدند که این مسئله برای اولین بار در مقالهای که ایشان در سال ۶۵ با عنوان “Solution of a problem in concurrent programming control” در مجلهی Communications of the ACM چاپ کردند مطرح شد.
عدهای دیگر معتقدند که این مسئله اولین بار به عنوان یک تمرین کلاسی در سال ۶۵ توسط دایکسترا به دانشجویان کلاسش داده شد. مسئلهای که بعدها غولی دیگر به نام Tony hoare آن را مسئلهی Dinning Philosophers نامید. این مسئله در نوتهای دایکسترا با شمارهی EWD123 آمده است.
Forwarded from a pessimistic researcher
حالا داستان دقیقا چیه
مرحوم دایکسترا (ارواحنا الفدا) یک مقاله ای سال ۱۹۸۸ بیرون میدن و از وضع تدریس برنامه نویسی توسط دانشگاه ها گله می کنن.
ایشان ادعا داشتن که برنامه نویسی می بایست یکی از زیرشاخه های علوم ریاضی تلقی بشه و مدرسین علاوه بر تدریس سینتکس یک زبان مباحثی مانند اثبات درستی یک برنامه با ابزارهای صوری مانند منطق Hoare رو هم تدریس کنن.
بعد از انتشار این مقاله یک مناظره بین اساتید شکل میگیره که آیا دایکسترا داره حرف درست میزنه یا نه!!!! خب چلغوزا معلومه هر چی که دایکسترا میگه درسته
اونا داشتن تو جاده ای رانندگی میکردن که دایکسترا آسفالتش کرده بود ولی خب چه میشه گفت
خلاصه متن این مناظره ها هست و لینکش رو براتون میذارم
توی اونایی که مناظره کردن نام یک دانشمند فقید دیگه یعنی ریچارد همینگ هم به چشم میخوره که خوندن حرفاش خالی از لطف نیست
https://www.psy.gla.ac.uk/~steve/educ/dijk/Dijkstra89cacm.pdf
در آخر هم دایکسترا مثل احمدی نژاد برمیگرده میگه چه خبرتونههههههه چه خبرتوننننننننه؟
و از مخاطبین میخواد که زیاد جدی نگیرن و به جهالتشون ادامه بدن
اینم جا داره بگم که توی مقاله ای که بالا فرستادم حضرت دایکسترا در اصل یک پروپوزال هم برای نحوه تدریس یک دوره برنامه نویسی برای افراد مبتدی ارائه دادند
مرحوم دایکسترا (ارواحنا الفدا) یک مقاله ای سال ۱۹۸۸ بیرون میدن و از وضع تدریس برنامه نویسی توسط دانشگاه ها گله می کنن.
ایشان ادعا داشتن که برنامه نویسی می بایست یکی از زیرشاخه های علوم ریاضی تلقی بشه و مدرسین علاوه بر تدریس سینتکس یک زبان مباحثی مانند اثبات درستی یک برنامه با ابزارهای صوری مانند منطق Hoare رو هم تدریس کنن.
بعد از انتشار این مقاله یک مناظره بین اساتید شکل میگیره که آیا دایکسترا داره حرف درست میزنه یا نه!!!! خب چلغوزا معلومه هر چی که دایکسترا میگه درسته
اونا داشتن تو جاده ای رانندگی میکردن که دایکسترا آسفالتش کرده بود ولی خب چه میشه گفت
خلاصه متن این مناظره ها هست و لینکش رو براتون میذارم
توی اونایی که مناظره کردن نام یک دانشمند فقید دیگه یعنی ریچارد همینگ هم به چشم میخوره که خوندن حرفاش خالی از لطف نیست
https://www.psy.gla.ac.uk/~steve/educ/dijk/Dijkstra89cacm.pdf
در آخر هم دایکسترا مثل احمدی نژاد برمیگرده میگه چه خبرتونههههههه چه خبرتوننننننننه؟
و از مخاطبین میخواد که زیاد جدی نگیرن و به جهالتشون ادامه بدن
اینم جا داره بگم که توی مقاله ای که بالا فرستادم حضرت دایکسترا در اصل یک پروپوزال هم برای نحوه تدریس یک دوره برنامه نویسی برای افراد مبتدی ارائه دادند
Forwarded from Rust for Python developers
#5min_Rust
درنهایت نکات مهمی که راجب
۱- سرعت بالاتری داره نسبت به
۲- دادههایی میتونند روی
۳- نمیتونیم از یک تابع به دادهای داخل تابع دیگر که روی استک هست اشاره کنیم؛ چون همونطور که دیدیم وقتی اجرا اون بخش کد تموم بشه تمام مقادیر از
درنهایت نکات مهمی که راجب
Stack باید یادتون بمونه :۱- سرعت بالاتری داره نسبت به
heap؛ چون برای دیتاهاش نیازی نداره به سیستم عامل بگه براش حافظه پیدا کنه ( system call کمتری داره ) ۲- دادههایی میتونند روی
Stack قرار بگیرند که از قبل سایزشون مشخص باشه؛ یعنی بدونیم چقدر فضای حافظه رو نیاز دارند.۳- نمیتونیم از یک تابع به دادهای داخل تابع دیگر که روی استک هست اشاره کنیم؛ چون همونطور که دیدیم وقتی اجرا اون بخش کد تموم بشه تمام مقادیر از
Stack حذف میشه و ما میمونیم و اشارهگر به خانه حافظهای که یا خالی هست یا نباید بهش اشاره میشده و این موضوع امن نیست.Forwarded from Rust for Python developers
stack_vs_heap.png
166 KB
#5min_Rust
خب توی این مثال؛ اول از همه یک مقدار حافظه از
بعد از اون برای بدست آوردن مقدار
وقتی کارمون با تابع
و
بعد از اون متغییر
وقتی
بعد از این مرحله تابع
در نهایت وقتی این کارها تموم شد (اینجا
پینوشت:
منبع نمونه کد بالا؛ این رو قبلا گذاشته بودم بنظرم خوبه دوباره زیر این پست هم باشه.
خب توی این مثال؛ اول از همه یک مقدار حافظه از
Stack به تابع main اختصاص داده میشه؛ توی اولین دستور داخل main یک متغییر داریم به اسم a و مقدار 22 که داخل Stack قرار میگیره (نوع داده int چون سایزش زمان کامپایل مشخص هست همیشه داخل stack قرار میگیره)بعد از اون برای بدست آوردن مقدار
b باید تابع دیگری صدا زده بشه؛ که اینبار add_one هست و یک فضای اختصاصی روی Stack بهش داده میشه؛ و کاری که میکنه اینه که ورودی رو +1 میکنه و برای کسی که صداش زده برمیگردونه پس یک متغییر به اسم i داره که آرگومان ورودی تابع هست و توی استک قرار میگیره و خروجی هم توسط return برای آدرس b توی main ارسال میشه 0x23f توی این مثال؛ توی این بازه که داشتیم روی add_one کار میکردیم پشت صحنه SP هم جابجا شد و بجای اینکه به آخر main روی stack اشاره کنه به انتهای آدرس add_one اشاره میکرد.وقتی کارمون با تابع
add_one تموم شد و مقدارش رو برگردوندیم؛ این بخش از Stack حذف میشه؛ باتمام متغییرها و مقادیری که توی این بخش بود (درک این موضوع به lifetime, ownership, ... کمک میکنه پس یادتون بمونه)و
SP دوباره بر میگرده و انتهای main رو نشون میده و b 23 داخل استک main قرار میگیره.بعد از اون متغییر
answer_universe رو داریم؛ این مقدار رو چون میخواستیم بمونه و با حذف Stack پاک نشه تصمیم گرفتیم بفرستیمش روی Heap اما یادتون باشه بالاتر گفتم int روی stack جا داره چون سایزش از قبل معلوم هست؛ برای اینکه به زور ببریمش روی Heap از چیزی به اسم Box استفاده میکنیم (درآینده راجبش حرف میزنم)وقتی
on_heap صدا زده میشه؛ استک فقط و فقط شامل main هست و add_one حذف شده ازش (توی تصویر نمیشد این رو نشون داد) on_heap داخل خودش b رو داره (آپدیت کردن SP یادمون نرفته فقط دوباره توضحیش نمیدم) و b رو میخوایم روی heap بفرستیم پس به سیستم درخواست میدیم یک فضایی به اندازه i32 نوع داده integer 32bit برامون روی heap پیدا کنه و بهمون بده وقتی سیستم این رو پیدا کرد دیتای 42 رو اونجا مینوسه و آدرسش 0x5f21 رو بهمون بر میگردونه و بعد هم که return , .... بعد از این مرحله تابع
on_heap هم از روی stack حذف میشه و فقط main میمونه روی main چون answer_universe هنوز به دیتای 42 روی heap نیاز داره پس اون دیتاهم روی heap وجود داره.در نهایت وقتی این کارها تموم شد (اینجا
print, ... نداریم) برنامه بطور کامل اجرا شده و main هم تموم میشه و تمام مموری پاک میشه.پینوشت:
منبع نمونه کد بالا؛ این رو قبلا گذاشته بودم بنظرم خوبه دوباره زیر این پست هم باشه.
Forwarded from Syntax | سینتکس (Daimon)
شما بزرگ ترین دشمنان و خلافکاران در علیه شرکت های تولید نرم افزار در جهان رو در تصویر میبینید!
رئیس سایت سافت ۹۸ و پی سی دانلود در یک قاب
#fun
@Syntax_fa
رئیس سایت سافت ۹۸ و پی سی دانلود در یک قاب
#fun
@Syntax_fa
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰تغییرات جدید در لینوکس کرنل ۶.۱۴
🔹نسخهی ۶.۱۴ کرنل لینوکس شامل تغییرات و بهبودهای متعددی در بخشهای مختلف سیستم است. در اینجا خلاصهای از برخی از مهمترین تغییرات آورده شده است:
________________________________________
🔹تغییرات کلی
🔸 کوچکبودن نسخه: نسخهی ۶.۱۴ یک نسخه نسبتاً کوچک است و تغییرات آن بیشتر شامل اصلاحات و بهینهسازیهای جزئی میشود.
🔸پشتیبانی از معماری s390: بخش قابل توجهی از تغییرات در این نسخه مربوط به پاکسازی و بهینهسازی کدهای مرتبط با معماری s390 (مخصوصاً در بخش KVM) است.
🔸تستهای خودکار (selftests): برخی از تستهای خودکار بهروزرسانی شدهاند تا مشکلات کوچک را شناسایی و اصلاح کنند.
________________________________________
🔹تغییرات در بخشهای مختلف
1. فایلسیستمها:
🔸سیستم فایل XFS: بهبودهایی در مدیریت خطا و بهینهسازیهای مربوط به بازنویسی فایلها (reflink) انجام شده است.
🔸سیستم فایلBtrfs: اصلاحات مربوط به مدیریت تراکنشها و جلوگیری از بروز مشکلات در هنگام ادغام ریشههای انتقال (relocation root).
________________________________________
2. شبکه:
🔸پرتکل TCP/IP: بهبودهایی در مدیریت بستههای شبکه و جلوگیری از نشت حافظه (memory leak) در برخی از تونلهای شبکه مانند RPL، Seg6 و IOAM6.
🔸اتصالهای RxRPC: اصلاحات در مدیریت صفهای اتصال و جلوگیری از رقابت (race condition) در تغییر وضعیت تماسها.
________________________________________
3. درایورهای سختافزاری:
🔹درایورهای گرافیکی (DRM):
🔸بهبود در Intel: بهبودهایی در پشتیبانی از DSC (Display Stream Compression) و مدیریت صحیح نرخ بیت (BPP).
🔸بهبود درAMD: اصلاحات در مدیریت نور پسزمینه (backlight) و بهبودهایی در پشتیبانی از Vulkan.
🔸بهبود درNVMe: اصلاحات در مدیریت اتصال و بهبودهایی در پشتیبانی از خواب (sleep) برای برخی از دستگاههای خاص.
🔸ویژگی SCSI: بهبودهایی در مدیریت خطا و جلوگیری از استفادهی پس از آزادسازی حافظه (use-after-free) در مسیرهای خطای اولیه.
________________________________________
4. مدیریت انرژی:
🔸ویژگی CPUFreq: اصلاحات در مدیریت محدودیتهای عملکرد (performance limits) و بهروزرسانیهای مربوط به درایور AMD-PState.
________________________________________
5. امنیت:
🔸 ویژگی Seccomp: بهبودهایی در پشتیبانی از uretprobe (بررسی بازگشت از فراخوانیهای سیستمی) بدون فیلتر کردن.
________________________________________
6. زمانبندی (Scheduling):
🔸 ویژگی Fair Scheduler: اصلاحات در محاسبهی طول برش زمانی (slice length) برای وظایف عادلانه (fair tasks).
________________________________________
7. مدیریت حافظه:
🔸 ویژگی KVM: بهبودهایی در مدیریت حافظهی مجازی (virtual memory) و جلوگیری از نشت حافظه در برخی از سناریوها.
________________________________________
8. پشتیبانی از Rust:
🔸 بهبودهایی در پشتیبانی از Rust در کرنل، از جمله اصلاحات در مدیریت نمادها (symbols) و جلوگیری از هشدارهای کامپایلر.
________________________________________
9.تغییرات در ابزارها و کتابخانهها
🔸 ویژگی Kbuild: بهبودهایی در اسکریپتهای ساخت کرنل، از جمله اصلاحات در مدیریت هشدارهای کامپایلر و بهینهسازیهای مربوط به نمادها.
🔸 ویژگی Clocksource: بهبودهایی در همگامسازی منابع زمان (clocksource) و جلوگیری از مشکلات مربوط به زمینههای اتمیک.
________________________________________
10.تغییرات در مستندات و تستها
🔸 مستندات: بهروزرسانیهایی در مستندات مربوط به ارسال پچها (SubmittingPatches) و بهبودهایی در مستندات مربوط به سیستمفایلها.
🔸تستهای خودکار (selftests): افزودن تستهای جدید برای بررسی عملکرد صحیح برخی از ویژگیها مانند qdisc_tree_reduce_backlog و pfifo_head_drop.
📌نویسنده: حسین سیلانی
📌منبع : آکادمی کندوی دانش
https://learninghive.ir
🔹نسخهی ۶.۱۴ کرنل لینوکس شامل تغییرات و بهبودهای متعددی در بخشهای مختلف سیستم است. در اینجا خلاصهای از برخی از مهمترین تغییرات آورده شده است:
________________________________________
🔹تغییرات کلی
🔸 کوچکبودن نسخه: نسخهی ۶.۱۴ یک نسخه نسبتاً کوچک است و تغییرات آن بیشتر شامل اصلاحات و بهینهسازیهای جزئی میشود.
🔸پشتیبانی از معماری s390: بخش قابل توجهی از تغییرات در این نسخه مربوط به پاکسازی و بهینهسازی کدهای مرتبط با معماری s390 (مخصوصاً در بخش KVM) است.
🔸تستهای خودکار (selftests): برخی از تستهای خودکار بهروزرسانی شدهاند تا مشکلات کوچک را شناسایی و اصلاح کنند.
________________________________________
🔹تغییرات در بخشهای مختلف
1. فایلسیستمها:
🔸سیستم فایل XFS: بهبودهایی در مدیریت خطا و بهینهسازیهای مربوط به بازنویسی فایلها (reflink) انجام شده است.
🔸سیستم فایلBtrfs: اصلاحات مربوط به مدیریت تراکنشها و جلوگیری از بروز مشکلات در هنگام ادغام ریشههای انتقال (relocation root).
________________________________________
2. شبکه:
🔸پرتکل TCP/IP: بهبودهایی در مدیریت بستههای شبکه و جلوگیری از نشت حافظه (memory leak) در برخی از تونلهای شبکه مانند RPL، Seg6 و IOAM6.
🔸اتصالهای RxRPC: اصلاحات در مدیریت صفهای اتصال و جلوگیری از رقابت (race condition) در تغییر وضعیت تماسها.
________________________________________
3. درایورهای سختافزاری:
🔹درایورهای گرافیکی (DRM):
🔸بهبود در Intel: بهبودهایی در پشتیبانی از DSC (Display Stream Compression) و مدیریت صحیح نرخ بیت (BPP).
🔸بهبود درAMD: اصلاحات در مدیریت نور پسزمینه (backlight) و بهبودهایی در پشتیبانی از Vulkan.
🔸بهبود درNVMe: اصلاحات در مدیریت اتصال و بهبودهایی در پشتیبانی از خواب (sleep) برای برخی از دستگاههای خاص.
🔸ویژگی SCSI: بهبودهایی در مدیریت خطا و جلوگیری از استفادهی پس از آزادسازی حافظه (use-after-free) در مسیرهای خطای اولیه.
________________________________________
4. مدیریت انرژی:
🔸ویژگی CPUFreq: اصلاحات در مدیریت محدودیتهای عملکرد (performance limits) و بهروزرسانیهای مربوط به درایور AMD-PState.
________________________________________
5. امنیت:
🔸 ویژگی Seccomp: بهبودهایی در پشتیبانی از uretprobe (بررسی بازگشت از فراخوانیهای سیستمی) بدون فیلتر کردن.
________________________________________
6. زمانبندی (Scheduling):
🔸 ویژگی Fair Scheduler: اصلاحات در محاسبهی طول برش زمانی (slice length) برای وظایف عادلانه (fair tasks).
________________________________________
7. مدیریت حافظه:
🔸 ویژگی KVM: بهبودهایی در مدیریت حافظهی مجازی (virtual memory) و جلوگیری از نشت حافظه در برخی از سناریوها.
________________________________________
8. پشتیبانی از Rust:
🔸 بهبودهایی در پشتیبانی از Rust در کرنل، از جمله اصلاحات در مدیریت نمادها (symbols) و جلوگیری از هشدارهای کامپایلر.
________________________________________
9.تغییرات در ابزارها و کتابخانهها
🔸 ویژگی Kbuild: بهبودهایی در اسکریپتهای ساخت کرنل، از جمله اصلاحات در مدیریت هشدارهای کامپایلر و بهینهسازیهای مربوط به نمادها.
🔸 ویژگی Clocksource: بهبودهایی در همگامسازی منابع زمان (clocksource) و جلوگیری از مشکلات مربوط به زمینههای اتمیک.
________________________________________
10.تغییرات در مستندات و تستها
🔸 مستندات: بهروزرسانیهایی در مستندات مربوط به ارسال پچها (SubmittingPatches) و بهبودهایی در مستندات مربوط به سیستمفایلها.
🔸تستهای خودکار (selftests): افزودن تستهای جدید برای بررسی عملکرد صحیح برخی از ویژگیها مانند qdisc_tree_reduce_backlog و pfifo_head_drop.
📌نویسنده: حسین سیلانی
📌منبع : آکادمی کندوی دانش
https://learninghive.ir
Forwarded from laravel-news
پکیج Faker فارسی برای PHP
چند روز پیش برای پروژه خودم روی PHP 8.3 نیاز داشتم تا اطلاعات فیک فارسی و منطبق با کشور ایران رو داشته باشم و متاسفانه پکیجی براش پیدا نکردم (سازگار با نسخه های قبلی PHP بودند و چندسالی توسعه داده نشده بودند، faker اصلی هم توابع محدودی locale فارسی داشت.)
توابع کد ملی و اطلاعات فیک بانکی هم به زودی اضافه می کنم.
https://github.com/amyavari/persian-faker-php
#package #faker
چند روز پیش برای پروژه خودم روی PHP 8.3 نیاز داشتم تا اطلاعات فیک فارسی و منطبق با کشور ایران رو داشته باشم و متاسفانه پکیجی براش پیدا نکردم (سازگار با نسخه های قبلی PHP بودند و چندسالی توسعه داده نشده بودند، faker اصلی هم توابع محدودی locale فارسی داشت.)
توابع کد ملی و اطلاعات فیک بانکی هم به زودی اضافه می کنم.
https://github.com/amyavari/persian-faker-php
#package #faker
GitHub
GitHub - amyavari/persian-faker-php: An extension for fakerphp/faker to generate Persian language and Iran-specific data, including…
An extension for fakerphp/faker to generate Persian language and Iran-specific data, including Persian text, addresses, personal details, and more. - amyavari/persian-faker-php
Forwarded from Linuxor ?
با گذاشتنِ r.jina.ai قبل از هر URL، محتوایِ اون صفحه رو به صورتِ مارکداون بهتون میده. مثلاً میتونید آخرین نسخهٔ مستنداتِ محصول رو به چتبات بدید تا جوابِ بهروز بده. اگر قبل از لینکِ یک PDF بگذارید متنش رو بهتون میده. رویِ بعضی از PDFهای فارسی هم کار میکنه. مثلا :
r.jina.ai/example.com
@Linuxor ~ sir_kokabi
r.jina.ai/example.com
@Linuxor ~ sir_kokabi
Forwarded from Laravel News
Introducing the Laravel Developers Report 2025 https://laravel-news.com/introducing-the-laravel-developers-report-2025
Laravel News
Introducing the Laravel Developers Report 2025 - Laravel News
Explore the Laravel Developers Report 2025 by Adeva—uncover trends, AI impact, and salary benchmarks to stay ahead in the Laravel ecosystem.