YouTube
C Programming and Memory Management - Full Course
Learn how to manually manage memory in the C programming language and build not one, but two garbage collectors from scratch! If you're used to working with languages and tools that handle it for you, this course will teach you how all that works under the…
🎬 دوره آموزش مدیریت حافظه در C
داخل این ویدیو مدرس دوره Teej که از maintainer های Neovim هست، به صورت جامع با مفاهیم پایهای زبان C شروع میکنه، ساختارهای داده، توابع، اشارهگرها و... رو توضیح میده. هدف این دوره، درک عمیقتر از نحوه عملکرد برنامهها در سطح حافظه هست و درنهایت در زبان برنامهنویسی ساختگی خودمون Snek_lang، با دو الگوریتم متفاوت
GC (Garbage Collector) مینویسیم.
🔗 لینک یوتیوب دوره
🖤 - PiBytes
داخل این ویدیو مدرس دوره Teej که از maintainer های Neovim هست، به صورت جامع با مفاهیم پایهای زبان C شروع میکنه، ساختارهای داده، توابع، اشارهگرها و... رو توضیح میده. هدف این دوره، درک عمیقتر از نحوه عملکرد برنامهها در سطح حافظه هست و درنهایت در زبان برنامهنویسی ساختگی خودمون Snek_lang، با دو الگوریتم متفاوت
GC (Garbage Collector) مینویسیم.
🔗 لینک یوتیوب دوره
اگه با دیدن از یوتیوب مشکل داشتید، میتونید فایلش رو از ربات های دانلودر بگیرید.
#course@pibytes
🖤 - PiBytes
🔥3❤1👍1
یکی از مشکلات دیگر ایرانی بودن و بطور کلی RTL زبانان، اینه که حین ترکیب با حروف زبانهای LTR تقریباَ توی تمام برنامه ها دچار بینظمی میشن.
برای نمونه، در عکس بالا که یک جمله با حروف انگلیسی شروع شده میبینیم که بهم ریخته درحالیکه با استفاده از کاراکترهای کنترلی درست نوشته میشه و وقتی اون حرف نامرئی رو در ابتدای خط قرار بدی، کل اون پاراگراف از جهت تعیین شده استفاده میکنه.
کاراکترهای کنترلی حروفی نامرئی هستند که برای شما وظایفی رو انجام میدن، مثل همین چینش صحیح در متن که میتونید با لمس جلوی ایموجی 👉🏼 کاراکتر مدنظر رو کپی کنید تا ازش برای چینش صحیح متون استفاده کنید.
⬅️ Force RTL 👉🏼
➡️ Force LTR 👉🏼
🖤 - PiBytes
برای نمونه، در عکس بالا که یک جمله با حروف انگلیسی شروع شده میبینیم که بهم ریخته درحالیکه با استفاده از کاراکترهای کنترلی درست نوشته میشه و وقتی اون حرف نامرئی رو در ابتدای خط قرار بدی، کل اون پاراگراف از جهت تعیین شده استفاده میکنه.
کاراکترهای کنترلی حروفی نامرئی هستند که برای شما وظایفی رو انجام میدن، مثل همین چینش صحیح در متن که میتونید با لمس جلوی ایموجی 👉🏼 کاراکتر مدنظر رو کپی کنید تا ازش برای چینش صحیح متون استفاده کنید.
⬅️ Force RTL 👉🏼
➡️ Force LTR 👉🏼
نکته نهایی که باید بهش دقت کنید بعد از کپی کردن کاراکتر در متن، اگه چینش درست شد اما یک جای خالی توی متنتون ایجاد شد (ستاره قرمز داخل عکس) و بهش حساسیت دارید، برای اینکه اثرش نمونه کافیه یکبار دیگه از کل متن کپی بگیرید و دوباره پیست کنید، حالا همه چی درسته.
🖤 - PiBytes
❤6🔥2
با پرامپت زیر یک تصویر از کلمه مدنظرتون میتونید بسازید که تصویرش، مفهومِ اون کلمه رو برسونه مثل عکسای بالا:
🖤 - PiBytes
Conceptual sketch logo of the word ‘[متن شما]’, hand-drawn pencil style on dotted grid notebook paper, bold and heavy pencil strokes, thicker sketch lines, enhanced cross-hatching shading, slightly oversized and dominant typography, one random letter creatively transformed into a small symbolic object related to the word, strong black-and-white contrast, vintage textured paper, clean centered layout, expressive negative space, modern minimalist yet visually impactful logo concept#prompt@pibytes
🖤 - PiBytes
❤4
Sync Everything With Syncthing
Syncthing برنامه ای متنباز برای سینککردن اطلاعات در دستگاههای مختلف!
گیتهاب پروژه:
🖤 - PiBytes
Syncthing برنامه ای متنباز برای سینککردن اطلاعات در دستگاههای مختلف!
خیلی وقت بود دنبال برنامهای میگشتم که براحتی بتونه دایرکتوریهارو بین دستگاههای مختلف sync کنه و خب استفاده اصلیم هم این بود که وقتی کد میزنم یا توی آبسیدین یادداشتی مینویسم نخوام از سیستم های auto syncing ابری که معمولاً پولی هستن استفاده کنم، تا اینکه چند وقت پیش با مشورت چت جیپیتی میخواستم همچین ابزاری خودم بنویسم که فهمیدم قبلا نوشته شده و اوپنسورسه!
طرز استفادهاش هم خیلی راحته، روی دستگاه های که میخواید فایل ها بینشون سینک بشن نصبش کنید، Device ID هاشون رو به همدیگه بدید و سپس پوشه هایی که میخواید بین دستگاه ها سینک بشه رو انتخاب کنید و توی قسمت sharing حتما تیکش رو برای دستگاه هایی که میخواید اون پوشه با اونها سینک بشه بزنید. تنظیمات پیشرفته تری هم داره که دراین مقال نمیگنجه ولی خب خودکار سریعترین پروتکل روتشخیص میده، مثلا اگه همزمان
اتصال وایفای و کابل در دسترس باشه خب کابل رو انتخاب میکنه که سریعتره.
گیتهاب پروژه:
https://github.com/syncthing/syncthing
#tool@pibytes
🖤 - PiBytes
🔥8
MIRA, Your Personal Assistant
میتونم بگم خفنترین هوش مصنوعیای که توی تلگرام تا الان دیدم، میرا بوده، خودش که اینو میگه:
✨ Get to know Mira
🖤 - PiBytes
میتونم بگم خفنترین هوش مصنوعیای که توی تلگرام تا الان دیدم، میرا بوده، خودش که اینو میگه:
من میرا هستم؛ یک دستیار هوش مصنوعی همیشه آنلاین، پرانرژی و خوشاخلاق که توی تلگرام کنارته! هر سوالی داشتی، از تکنولوژی و برنامهنویسی گرفته تا موضوعات روزمره و حتی مشاوره و سرگرمی، با حوصله و زبان ساده جواب میدم. با من میتونی سریع به جواب برسی، ایده بگیری، یا حتی فقط یه همصحبت باحال داشته باشی.
جدا ازینکه ai جالبیه، واقعا طراحی خود ربات خیلی خفنه:)
✨ Get to know Mira
#tool@pibytes
🖤 - PiBytes
🐳5❤1❤🔥1
TLCL-24.11.pdf
7.5 MB
کتاب The Linux Command Line برای شماست اگه تصمیم جدی گرفتید که با شل و محیط ترمینال آشنا بشید، با ابزارهای متنوع و زیادی که دراختیار دارید تسک هاتون رو داخل ترمینال انجام بدید، با vi آشنایی نسبی پیدا کنید، کمی شبکه یادبگیرید و درنهایت با shell scripting یادبگیرید.
🖤 - PiBytes
من از خوندنش لذت بردم، میتونه فاندامنتال خوبی براتون بسازه بخصوص اگه تازه وارد هستید، اگرم کار کشته هستید که کتابای خوب بیشتری معرفی کنید ما بخونیم:)
#book@pibytes
🖤 - PiBytes
💯4👍1🔥1
معرفی صرافی Swap Wallet
🔘 Swap your assets
🖤 - PiBytes
با استفاده از سواپ ولت به راحتی میتونید ریال رو تبدیل به کریپتو بکنید و منتقلش کنید به کیف پولتون، مزیت فعلیش اینه که خیلی راحت میتونید ریال رو داخل ربات تبدیل به تتر و یا دیگر ارز های دیجیتال بکنید.
مزیت جالب این صرافی نسبت به صرافی های ایرانی دیگه اینه که با تتر داخل ربات استارز یا تلگرام پریمیوم میتونید خریداری کنین که قیمت هاش رو با فرگمنت چک کردم، یکیه، و عملا دارید بدون سود دادن به واسط خرید میکنید، درواقع از فرگمنت هم ارزونتر میوفته براتون چون کارمزد انتقال تون از صرافی به ولت رو دیگه نمیدید:)
🔘 Swap your assets
#tool@pibytes
🖤 - PiBytes
❤5💯1
PiBytes
معرفی صرافی Swap Wallet با استفاده از سواپ ولت به راحتی میتونید ریال رو تبدیل به کریپتو بکنید و منتقلش کنید به کیف پولتون، مزیت فعلیش اینه که خیلی راحت میتونید ریال رو داخل ربات تبدیل به تتر و یا دیگر ارز های دیجیتال بکنید. مزیت جالب این صرافی نسبت به صرافی…
شاید یکی از فیچر هایی که توی تلگرام کمبودش واقعا حس میشه این باشه که وقتی من پیامم رو ادیت میکنم، جاهایی هم که با امضای من فوروارد شده (show sender name) ادیت بشه...🚶♂
الان دیدم پست بالا کلی باگ نوشتاری داشت و من نمیتونم دیگه جاهایی ک فور شده دست ببرم تو متن و حتما باید بازارسال شه، تف.
+ این یکیو پاک نمیکنم میزارم بمونه 😂
🖤 - PiBytes
الان دیدم پست بالا کلی باگ نوشتاری داشت و من نمیتونم دیگه جاهایی ک فور شده دست ببرم تو متن و حتما باید بازارسال شه، تف.
پ.ن: قبل ازینکه موزیک داخل پروفایل بیاد گفته بودم همچین ایده ای باحال میتونه باشه، بعد چند ماه اپدیتش اومد
+ این یکیو پاک نمیکنم میزارم بمونه 😂
#note@pibytes
🖤 - PiBytes
👍1😁1💯1
پرچم ملی شیر و خورشید در آپدیت ایکس!
🖤 - PiBytes
بالاخره پرچم 🦁☀️ در نسخه اندروید اپلیکیشن X هم اومد، اگه نمیبینیدش باید آپدیت کنید، کش برنامه رو پاک کنید، توقف اجباری بزنید و بعد درست میشه.
#news@pibytes
🖤 - PiBytes
🔥11👍1
دیدین بعضی کانالای تلگرامی ریاکشن منفی شون بازه ولی هیچ ریاکت منفی ای نمیگیرن؟
ترفندش اینه که دست ممبرهارو برای انتخاب ریاکشن باز میزارید اما تعداد ریاکت های مختلفی که هر پست میتونه بگیره رو محدود میکنید (مثلا دو تا یا سه تا) و خب بعد کافیه با هرکدوم از اکانت های فیک خودتون یکی از انواع ریاکت های مثبت رو بزنید به پست خودتون. البته اینم بگم خود تلگرام نمیزاره بیشتر از ۱۱ ریاکشن مختلف روی یک پست بخوره، این دیگه محدودیت خود تلگرامه.
اینطوری طرفش فکرمیکنه دستش بازه مخالفت کنه یا لااقل شما ظاهر قضیه رو اینطور جلوه میدی ولی خب نمیزاری باهات مخالف باشن:)))
🖤 - PiBytes
ترفندش اینه که دست ممبرهارو برای انتخاب ریاکشن باز میزارید اما تعداد ریاکت های مختلفی که هر پست میتونه بگیره رو محدود میکنید (مثلا دو تا یا سه تا) و خب بعد کافیه با هرکدوم از اکانت های فیک خودتون یکی از انواع ریاکت های مثبت رو بزنید به پست خودتون. البته اینم بگم خود تلگرام نمیزاره بیشتر از ۱۱ ریاکشن مختلف روی یک پست بخوره، این دیگه محدودیت خود تلگرامه.
اینطوری طرفش فکرمیکنه دستش بازه مخالفت کنه یا لااقل شما ظاهر قضیه رو اینطور جلوه میدی ولی خب نمیزاری باهات مخالف باشن:)))
پینوشت: من فقط دو تا ریاکشن 💩 و 🤮 رو بستم که جدا از منفی بودنشون و اثری که روی الگوریتم های تلگرام میزاره، بنظرم نه برای مخاطب جالبه و نه من محتوایی میزارم که عن/است**** بخوره (ناراحت میشما) :/
پینوشت۲: چنل من با اینکه ریاکت منفی نمیگیره اینطوری نیست، میتونید امتحان کنید، مثلا رو این پست تا میتونید ریاکت منفی بزنید 😂✨
#note@pibytes
🖤 - PiBytes
🍌5👍3🌭3⚡1👎1
لینک زیر درخواستی از تلگرام برای عوض کردن پرچم فعلی به پرچم ملی شیروخورشید است، لینک رو داخل مرورگر بازکنید، مطمعن باشید لاگین کردید و بعدش حتماً لایک کنید، نیازی به کامنت گذاشتن نیست.
✌️Update Iran Flag Emoji to Sun & Lion
🖤 - PiBytes
✌️Update Iran Flag Emoji to Sun & Lion
🖤 - PiBytes
❤🔥8👎1
شهید جمهورمون هم زنده شد. سبحاناللّه!
🖤 - PiBytes
تگ parody برای چیه؟ خب بعضی اکانت ها توی توییتر PCF هستن، یعنی اکانتی که شبیه یک شخص
یا نهاد واقعیه، ولی اصل نیست و سه مدل کلی داره:
Parody - Commentary - Fan
اکانت Parody برای طنز تقلیدیه و تمسخره میکنه. ممکنه اسم و عکسش خیلی شبیه نسخهی واقعی باشه، ولی معلومه شوخیه، نه اکانت رسمی.
اکانت Commentary تحلیلی و تفسیریه که محتواش دربارهی نقد، نظر، واکنش و تحلیل درمورد یک شخص یا جریانه.
اکانت Fan که اکانت طرفداریه. بازنشر میده، آرشیو میسازه، حمایت میکنه و کارش از روی علاقهست.
#meme@pibyte
🖤 - PiBytes
😁7👍1👎1
DevBytes
Read less, know more
📍 لینک دانلود برنامه از گوگل پلی
🖤 - PiBytes
Read less, know more
کمتر بخون و بیشتر بدون، برنامه ای کاربردی برای افرادی که از دنبال کردن هزاران سورس خبری خسته شدن یا وقتش رو ندارن و میخوان خلاصه مفید در ۶۴ کلمه، اخبار کامپیوتری، کد اسنیپت ها، و هر آنچه که یک دولوپر نیاز داره درجریان باشه رو یکجا داشته باشن. میتونید برنامهاش رو از گوگل پلی بگیرید یا به مرورگرتون اضافش کنید و استفاده کنید.
📍 لینک دانلود برنامه از گوگل پلی
#tool@pibytes
🖤 - PiBytes
🔥4
بعد از مدتها فرصت کردم ردیت رو نصب کنم و باهاش یکم ور برم، تنها چیزی که میتونم بگم اینه که حجم اطلاعات مفیدی که توی شبکه های دیگه رد و بدل میشه درمقابلش شوخیه، افزایش تضمینی ایکیو پس از استفاده صحیح. 🫱🏼🫲🏾
🖤 - PiBytes
+ توی ردیت بعد از اتمام ساخت اکانت نمیتونید یوزرنیم تون رو تغییر بدید، اگه با گوگل ثبت نام کنید یوزرنیم رندوم براتون میزنه، حتما از آپشن ایمیل+پسورد استفاده کنید موقع ثبت نام اگه میخواید خودتون آیدیتون رو تنظیم کنید.
+ اگه ردیت دارید فالو کنید بک میدم.
🖤 - PiBytes
💯6👍1😁1
یک منبع جامع داخلی برای دوره های آموزشی سایت های مختلف خارجی، کتاب ها و پادکست ها و...
Courses of Udemy, PluralSight, TheGreatCourses and more...
https://farinplus.ir/
🖤 - PiBytes
Courses of Udemy, PluralSight, TheGreatCourses and more...
https://farinplus.ir/
🖤 - PiBytes
❤8
هیچ تصمیم درست و غلطی وجود نداره
هر تصمیمی نتیجه و عواقبی داره که راه گریزی ازش نیست.
تنها و بهترین راه زندگی کردن زیستن و حس کردن و مشاهده ی اون نتیجست.
و بدترین راه زندگی کردن: فکر کردن دربارهی اون نتیجست.
🖤 - PiBytes
هر تصمیمی نتیجه و عواقبی داره که راه گریزی ازش نیست.
تنها و بهترین راه زندگی کردن زیستن و حس کردن و مشاهده ی اون نتیجست.
و بدترین راه زندگی کردن: فکر کردن دربارهی اون نتیجست.
#quote@pibytes <هبوط>
🖤 - PiBytes
🍓7👎4
زمان انتخاب رشته بود و داشتم از یکی از آشناها که برنامهنویس واقعاً خفنیه درمورد رشته مهندسی کامپیوتر مشورت میگرفتم، ی جمله ای بهم گفت که هنوز تو ذهنمه.
گفت برنامهنویس شی توهم میتونی فلان برنامه خفن رو بنویسی، ولی نمیتونی اونطوری که باید بنویسی! (منظورش این بود که چیزی که اونا نوشتن کجا و چیزی که تو مینویسی کجا! حتی اگر خروجی درظاهر یکسان باشه.)
بیایید به همین خاطر یک تابع جنریت اعداد رندوم خیلی ساده بنویسیم تا بهتر حرفشو درک کنیم:)
🖤 - PiBytes
گفت برنامهنویس شی توهم میتونی فلان برنامه خفن رو بنویسی، ولی نمیتونی اونطوری که باید بنویسی! (منظورش این بود که چیزی که اونا نوشتن کجا و چیزی که تو مینویسی کجا! حتی اگر خروجی درظاهر یکسان باشه.)
بیایید به همین خاطر یک تابع جنریت اعداد رندوم خیلی ساده بنویسیم تا بهتر حرفشو درک کنیم:)
#note@pibytes
🖤 - PiBytes
❤1
Modulo Bias Error
وقتی که ی تابع رندوم توی C نوشتم براساس تکرار زیاد برنامه متوجه میشدم که یکسری حالات بیشتر رخ میدن، حتی با اینکه تابع ()rand رو برحسب زمان seed میدادم!
بعدش متوجه شدم مشکل از محاسبات خودم بوده، و طوری که من کد رو نوشته بودم دچار خطای Modulo Bias میشدم که باعث میشد بعضی حالات احتمال بیشتری داشته باشند!
اول بدونیم که تابع ()rand یک عدد مثبت در بازه [0 , RAND_MAX] رو تولید میکنه. کد اول که دارای خطای Modular Bias هست به این شکله:
فرض کنید RAND_MAX یک عدد خیلی کوچیک مثل 15 باشه، در این حالت اگه من اعداد رندوم از بازه [0, 5] بخوام، چون طول بازهام 6 هست، اون رنج بزرگتر صفر تا 15 باید مپ بشه روی اعداد 0 تا 5 تا من نتیجه دلخواهم رو بگیرم، حالا به ازای تمام خروجی های یک تا پانزده ()rand این اتفاق میوفته:
دقت کردید؟ اعداد {0,1,2,3} 3 بار تکرار شدن درحالیکه اعداد {4,5} 2 بار تکرار شدن!
اینجا خطا رو با rejection sampling برطرف میکنیم:
چه اتفاقی افتاد؟ با متغییر limit شانس همه رو برابر کردیم، مقدار limit بزرگترین عددی در بازه [0, RAND_MAX] هست که به طول بازه دلخواه ما بخش پذیره، توی مثال خودمون limit برابر با 12 میشه و توی حلقهی do while باعث میشیم که اگه خروجی دربازه [0,limit - 1] نبود، دوباره انتخاب بشه تا شانس همه برابر باشه:)
🖤 - PiBytes
وقتی که ی تابع رندوم توی C نوشتم براساس تکرار زیاد برنامه متوجه میشدم که یکسری حالات بیشتر رخ میدن، حتی با اینکه تابع ()rand رو برحسب زمان seed میدادم!
بعدش متوجه شدم مشکل از محاسبات خودم بوده، و طوری که من کد رو نوشته بودم دچار خطای Modulo Bias میشدم که باعث میشد بعضی حالات احتمال بیشتری داشته باشند!
اول بدونیم که تابع ()rand یک عدد مثبت در بازه [0 , RAND_MAX] رو تولید میکنه. کد اول که دارای خطای Modular Bias هست به این شکله:
int rng_int(int main, int max)}
int range = max - min + 1;
int random = rand() % range;
return random + min;
}
فرض کنید RAND_MAX یک عدد خیلی کوچیک مثل 15 باشه، در این حالت اگه من اعداد رندوم از بازه [0, 5] بخوام، چون طول بازهام 6 هست، اون رنج بزرگتر صفر تا 15 باید مپ بشه روی اعداد 0 تا 5 تا من نتیجه دلخواهم رو بگیرم، حالا به ازای تمام خروجی های یک تا پانزده ()rand این اتفاق میوفته:
0 % 6 = 0 1 % 6 = 1
2 % 6 = 2 3 % 6 = 3
4 % 6 = 4 5 % 6 = 5
6 % 6 = 0 7 % 6 = 1
8 % 6 = 2 9 % 6 = 3
10 % 6 = 4 11 % 6 = 5
12 % 6 = 0 13 % 6 = 1
14 % 6 = 2 15 % 6 = 3دقت کردید؟ اعداد {0,1,2,3} 3 بار تکرار شدن درحالیکه اعداد {4,5} 2 بار تکرار شدن!
اینجا خطا رو با rejection sampling برطرف میکنیم:
int rng_int(int main, int max){
unsigned range = (unsigned)max - min + 1;
unsigned limit = RAND_MAX - (RAND_MAX % range);
int random;
do {
random = rand();
} while((unsigned)random >= limit);
return min + (random % (int)range)چه اتفاقی افتاد؟ با متغییر limit شانس همه رو برابر کردیم، مقدار limit بزرگترین عددی در بازه [0, RAND_MAX] هست که به طول بازه دلخواه ما بخش پذیره، توی مثال خودمون limit برابر با 12 میشه و توی حلقهی do while باعث میشیم که اگه خروجی دربازه [0,limit - 1] نبود، دوباره انتخاب بشه تا شانس همه برابر باشه:)
درنهایت، خطای Mudolo Bias چیه؟ خب ماجولو (با همین تلفظ گوگولی) همون اپراتور % هستش و در دنیای احتمالات به سنگینی احتمال به یک سمت درحالیکه انتظار میره همه شانس برابری داشته باشن میگن Bias، مثل وقتی که یک طرف سکه سنگین تر از اونیکی طرفه:)
📍Read more in Telegraph
#script@pibytes
🖤 - PiBytes
❤10👍2
سیسوگ، بهشت برنامهنویسان low-level
🖤 - PiBytes
سیسوگ یکی از موفقترین کامیونیتی های ایرانی است که در زمینه آموزش الکترونیک، IoT، مباحث سختافزار و سطح پایین برنامهنویسی و لینوکس فعالیت میکند.
سیسوگ نام پرنده ای است که در دشتها و کوههای سیستان زندگی میکند. بومیان آن دیار بر این اعتقاداند که سیسوگ پرنده ای است آزاد و رام کردن و به قفس انداختن آن امری است غیرممکن. سیسوگ نماد آزادی است؛ نماد رهایی از هر نوع قید و بند.
📍Website 📍 Telegram channel
🖤 - PiBytes
🔥7