مقدمة - Rust للغلابة
ฝัง
- เผยแพร่เมื่อ 1 ต.ค. 2024
- An introduction to systems programming in Rust for Arabic speakers.
Follow me on:
Twitch: / asoli_dev
X: x.com/AhmedSol...
00:04 Introduction to the first episode of Rust for the poor
02:31 Learning Rust for problem-solving and mindset development
07:30 Focus on understanding fundamental differences in Rust coding.
10:41 Challenges in coding expectations
17:37 Understanding the importance of writing and organizing code
20:16 Understanding memory allocation and data representation in Rust
26:19 Introduction to Rust for Beginners
29:32 Introduction to Rust programming language basics
36:54 Receiving and understanding a code for the bulk code
40:44 Understanding and utilizing Artifact in Rust
46:30 Standardization is important for Tokyo
49:05 Introduction to Rust programming language
56:00 Discussing interpolation and string manipulation in Rust
58:32 The Spread Operator in JavaScript
1:04:19 Introduction to Rust programming language and Cargo
1:08:10 Discussion on using tools and finding comfort in familiarity
1:14:18 Introduction to Byte Fig in Rust language
1:17:22 Discussion on programming functions and memory
1:22:49 Understanding the concept of imaginary numbers in Rust
1:26:34 Understanding the functioning of RAM and network cards in a computer system.
1:32:17 Introduction to key concepts in Rust programming language for beginners
1:35:11 Understanding the Function X code
1:40:26 The stack frame expresses entering and operating within the stack.
1:43:17 Discussion on the importance of learning about programming languages
1:47:45 The wicket has a larger space than the old one
1:49:39 Understanding the basics of studying and taking Potter
1:55:36 Understanding memory and kernel in Rust
1:58:35 Understanding the process and function of Rust programming
2:04:41 Discussion on the complexities of the subject and its implications
2:08:55 Introduction to Rust programming language for beginners
2:15:40 Discussion about memory and file storage
2:19:01 Understanding the size of 1 byte in computer memory.
2:24:12 Understanding byte requirements in Rust programming.
2:26:27 Discussing the details of entering places and memory allocation
2:31:59 Understanding compiler behavior in Rust programming language
2:35:28 Discussing the impact of religion on work and decision-making
2:41:02 Advancements in IP address reading and compiler installation
2:44:54 Importance of operations on a machine for programming
00:04 Introduction to the first episode of Rust for the poor
02:31 Learning Rust for problem-solving and mindset development
07:30 Focus on understanding fundamental differences in Rust coding.
10:41 Challenges in coding expectations
17:37 Understanding the importance of writing and organizing code
20:16 Understanding memory allocation and data representation in Rust
26:19 Introduction to Rust for Beginners
29:32 Introduction to Rust programming language basics
36:54 Receiving and understanding a code for the bulk code
40:44 Understanding and utilizing Artifact in Rust
46:30 Standardization is important for Tokyo
49:05 Introduction to Rust programming language
56:00 Discussing interpolation and string manipulation in Rust
58:32 The Spread Operator in JavaScript
1:04:19 Introduction to Rust programming language and Cargo
1:08:10 Discussion on using tools and finding comfort in familiarity
1:14:18 Introduction to Byte Fig in Rust language
1:17:22 Discussion on programming functions and memory
1:22:49 Understanding the concept of imaginary numbers in Rust
1:26:34 Understanding the functioning of RAM and network cards in a computer system.
1:32:17 Introduction to key concepts in Rust programming language for beginners
1:35:11 Understanding the Function X code
1:40:26 The stack frame expresses entering and operating within the stack.
1:43:17 Discussion on the importance of learning about programming languages
1:47:45 The wicket has a larger space than the old one
1:49:39 Understanding the basics of studying and taking Potter
1:55:36 Understanding memory and kernel in Rust
1:58:35 Understanding the process and function of Rust programming
2:04:41 Discussion on the complexities of the subject and its implications
2:08:55 Introduction to Rust programming language for beginners
2:15:40 Discussion about memory and file storage
2:19:01 Understanding the size of 1 byte in computer memory.
2:24:12 Understanding byte requirements in Rust programming.
2:26:27 Discussing the details of entering places and memory allocation
2:31:59 Understanding compiler behavior in Rust programming language
2:35:28 Discussing the impact of religion on work and decision-making
2:41:02 Advancements in IP address reading and compiler installation
2:44:54 Importance of operations on a machine for programming
يا محلاها ليالي العيد اللي زي هيك 🤍🤍
اي والله
شكرا لبشمهندس محمود النجار على وجوده في الفيديو بصراحة انا شايف انه اضاف رونق خاص وعكس مشاعرنا من خلف الشاشة كما يجب
وكمان بخصوص طول الفيديو انا معنديش مشكلة مدة الاستريم تكون فوق ال ٧ ساعات هشوفه كامل عادي على مرة واحدة طالما ان الاستريمر هو بشمهندس أحمد سليمان ❤
جامد جدا بصراحه
لاول مره احس بفائده الاساسيات اللي الواحد تعب في مذاكرتها، شكرا CS50 🤍
39:39
يعني اي artifacts
في السياق دا ؟
وبرضو لأن كلمة artifacts
بتقابلني كتير في مشاريع اوبن سورس
بلاقي directory
اسمه artifacts
ومش بكون عارف أهميته أو وظيفته في الهيكل بتاع البروجكت
فلو أمكن توضيح الجزئية دي لو تكرمت
معناها "مخرجات" او "منتجات".
انا بجد مبسوط و (متمزج) من الفيديو و حابب النوع ده من الفيديوهات اللي يكون خاص بالـ CS و How it works بعيد عن اللغة لأن دي كونسبتس بحب افهمها و للأسف المحتوي ده مش منتشر اوي و يمكن لو احتاجت تفهم و دورت مش هتلاقي اللي محتاج تفهمه بسهولة ❤❤
حقيقي شكرا و مستني باقي السلسلة (حتلي لو مش مهتم بـ Rust تحديدا) ❤
History is being written
This series will be legendary for the next generation! ✨
💙ربنا يحفظك
بسم الله مشاء الله عليك يا مهندس احمد انت عقلك فيه كميه معلومات رهيبه عايز اعرفها كلها ان شاء الله وعايز اعرف احمل الكتاب منين
ربنا يبارك في حضرتك
جزاك الله خيرا
كان عندك حق فعلا إن ال Crate أفضل Dependency Manager، عجبتنى قوى ال Features
أنا جايلك من Golang و بقولك مفتقدين الكلام ده عندنا يا أستاذ أحمد.
فى رأيى المتواضع الذى لا يعتد به فى المحافل الدولية و لا المحلية حتى، و مع كامل احترامى للباشمهندس محمود لو أمكن تستضيف حد كمان Backend هيكون أفضل علشان تغطى Spectrum كبير من المتابعين اللى ممكن ما يعرفش ال Analogies الخاصة بال Frontend.
yakhi allah yaktob ajrak
We should change our mental model weird, but sounds great
اقسم بالله القناة دي كنز مخفي ❤
Can we do socket programming using rust
ممكن ال terminal and nvim config
جميل جدا
يسلام طب عاوزين حلقه golang للغلابه😊
You are right about Go. It can install modules from git and there is an option to install modules from proxy/package manager.
شكرا على الشرح.
ممكن الفيديوهات الجاية الصوت يكون أعلى شوية.
It was a wonderful episode, the way it was presented was genius, waiting for more.
I recommend watching the episodes live on Twitch.
The questions and discussion were more than wonderful
This was amazing please continue the series of rust lang
Thank you so much Asoli for sharing and explaining this knowledge, rbna ygazek kheer. For me personally, these details you went through is the real deal and what I truly needed. I wish if you have went in depth and explained the heap in detail as well. If you may please don’t hold back to go through wte you think are fundamentals and essentials.
C# بتهندل
string interpolation
that's a really good stream, thanks for doing this for Arabic speakers, i don't think there are any good Arabic content for Rust, even for English speakers there are only a few. intermediate to advanced content in any field is always lacking, so doing this is really good, thank you!
Personally speaking I've read the book and watched Jon Gjengset's streams on Rust which also falls under the intermediate to advanced section, but it's for English speakers (which i have no problem with but others may have a problem) I also read about some Async programming for Rust (plan to finish the Tokio series on mini-Redis still).
Also, is it possible to be personally included in future streams? I would really love to be a part of this and learn along the way.
anyway, keep up the good work!
Absolutely. We stream on twitch (link in description). I announce them on my twitter as well.
يريت بردو نعرف رايك عن زيج
وفي موضوغ نقسي تتكلم عنه بشكل تقصيلي SEARCH ENGINES
واستمر يا هندسة عشان بجد بستفيد
تسلم
I think this is the first arabic content about rust, I've just heard about it watching theprimeagen
شفت الفيديو من اولو لاخرو وهعيدو تاني عشان اضمن ما فلتتش مني حاجه، بس الفيديو كان جبار ومهم واتمنى تستمر السلسلة لين ما نوصل لمواضيع اعمق ومتقدمة أكثر، وشكرا بجد ❤
Reminds me of th thinking in types series you made ages ago
rust compiles the documentation and rustdocs compile the documentation
intresting
if rustdocs compiles the code in the documentation as actual code that's amazing
heard of it in python but didn't heard compiling them
in emacs there is something called tangled mode or something it's slightly the same idea
أنا بعشق فكرة ال Do my own X ❤️
"Data wins arguments" by ahmed farghal ❤
Great explanation, thanks a lot and interested for more.
Amazing as usual Ahmed. I always love to watch you explain low level concepts.
افضل اسلوب شرح شوفته في حياتي لل memory وال low level 💙
متنساناش ان شاء الله فال heap .. لو شرحتو لينا بنفس العمق ده هيبقي عظمة جداا
دي شويه Topics هبقي مبسوط اوي لو حضرتك ذكرتها في الفيديوهات الجايا 🫶
- فيديو يكون فيه Advanced debugging tips & tricks .. بحيث نقدر نفهم state معينه او مشكله واقفين فيها نقدر نحلها ازاي .. او اي سبب المشكله او مثلا نفهم جزء معين بيشتغل ازاي dynamically
- شرح advanced لجانب الsecurity بتاع rust ... وازاي بتحل مشاكل ال memory issues الي في C ... وهل الحل نهائي ولالا ؟ .. وهل في اي security vulnerabilities
ممكن تبقي موجوده في rust مختلفة عن الmemory issues بسبب اخطاء من ال developer مثلا
- General Tips and tricks to understand large rust Codebase Faster with Productivity
بحيث لو حبينا نقرا بروجكت كبير وحابين نتعلم منو حاجا معينه او نفهم اتبني ازاي وبيشتغل ازاي
بس كدا .. كل سنه وحضرتك طيب وعيد سعيد عليك 💖
You are one of the greatest teachers I have ever seen
في قناة اسمها
Core dumped
بتوضح مفاهيم كتير عن ال low level و ال memory وال operating system وما شابه شرح سلس وفي انيميشن ظريف جداً
ممكن ت share ال vimrc ؟
2:28:41 you can visualize it with lego blocks
I enjoyed every second Ahmed, Thanks alot!
One of the best explanations I have ever seen for memory
A separate video for memory would be really appreciated
شغل جميل ربنا يجزيكم خير ومنتظرين باقي الفيديوهات
شغل جامد اوووووووووووووي😍😍😍
C's printf format parameters are checked against specifiers (for number and data types) at compile time (-Wformat -Werror)
This works differently. In GCC this is more of a linting rule than the compiler using the language constructs to enforce the formatting. It’s also fairly limited in what it can catch in comparison.
Rust is the best and the worst language
You didn't say anything, explain!
Great explanation, can't wait for the next video; thanks
is interface in typescript == struct in rust
الفيديو مفيد جد ومعلومات رائعة.
لكن راست ليس لها مستقبل , سواء في التطبيقات أو في الأنظمة.
هي لغة مبالغ فيها, وحقيقتها أقل مما يقال عنها.
إذا كنت تبحث عن لغة حديثة للأنظمة فاستثمر في زيغ. غير ذلك استثمر في : غو , كوتلن, سويفت, دارت. جس. انتهى
اختلف معك.
بنسمع الكلام ده من 2017 عن راست و قبله عن وفاة ال php
لا راست طلعت مجرد تريند و لا ال php ماتت 🤝
ماشاءالله تبارك الله شرح ممتاز بارك الله فيك يارب تستمر وياريت لو نستخدم vscode بيبقي أوضح ف الشرح وبيكون كل ال files ظاهرة وكدا يعني
الحقيقة اني بستخدم اللي انا مرتاح فيه.
@@asoli_devأنا بالنسبه ليا مش مشكله خالص وحضرتك جزاك الله خيرا يعني اكيد عايزينك تبقي مرتاح ف الشرح عشان نخرج بأكبر استفاده
عظمةةةة❤
leetcode for rust == rustlings:
شكرا جزيلا يا بشمهندس على مشاركتك العظيمة ، ربنا يكرمك اكتر و اكتر
easy transition from C to Rust btw
Amazing is not enough for description this video It is really astonishing 😍😍 Thank u so much. Waiting for next
شكرا يا بشمهندس والله علي الجمال دا
عاش جدا
هنتابعها كاملة أول باول ان شاء الله
For the challenge at 1:01:40 OCaml and Haskell type check string interpolation at compile time. Not sure if this is also available in Rust or not but OCaml and Haskell do type check the placeholders with the expected data types. So the following line of OCaml won't compile because Printf.printf expects an integer in the second placeholder but it got a string
Printf.printf "%s %d" "Hello, world" "5"
The OCaml compiler is also your friend so you'd get nice error messages that actually help you to solve the problem. For example the compiler will output something similar to the Rust error message like the following one:
3 | Printf.printf "%s %d" "Hello, world" "5"
^^^^
Error: This expression has type string but an expression was expected of type int
Can't wait for the next video!🥰
This was amazing, please continue the series.
Resources:
exercises: Rustlings
book: the rust programming language
# combine them for good learning experience
docs: Rust Standard Library
Thank you for your comments. I've added your "chapters" to the video description if you don't mind.
@@asoli_dev it's my pleasure to contribute to such a course
please keep uploading , thanks 🙏
Great effort, thanks a lot.
كل مصطلحاتك بالانجليزي! هل اللغة العربية متاخرة في مجال البرمجة؟ هل يوجد مصطلحات عربية توازي الانجليزية؟ لان الكورس تقنيا بالانجليزي وليس بالعربي.. انت تحشر كلمات عامية عربية بنص المصلحات التقنية وبس
اللغة العربية ليست متأخرة في مجال البرمجة... اللغة العربية ليست موجودة في مجال البرمجة 😂
انا مش هدفي اني اعرب المصطلحات التقنيه. انا مش بعمل دروس لغة، لو بتدور على مكان بيقول كل المصطلحات بالعربي يبقى مش ده المكان المناسب.
مش اللغة العربية بس .. اى مبرمج فى اى مكان فى العالم بيكتب و يتعلم انجليزى
تانى مرة اتفرج على الفيديو و سعيد انى عيدته بتركيز الحقيقة علشان الجزء الاخير تحديداً .. شكرا جزيلا على الشرح و حقيقى الموضوع ممتع جدا
فكرة reorder دى مبهرة و الحلقة فى العموم خلت الواحد عايز يراجع حاجات كتير حتى عن استخدامه ل php
Give this man the Oscar!
Can I join?
This was phanominal ♥
محتوى جميل, كمل !!
Very good explanation :D Thank you, I learned a lot.
As far as I know, the stack is not part of the OS wala part of the hardware. The OS and the processor do provide functionalities that make stack management easy should the compiler decide to use those functionalities, things like push, pop, and the stack and frame registers. But the thing is, these are all optional functionalities, and these registers can be used as general purpose registers 3ady gedan :D for example in gcc you can pass -fomit-frame-pointer, which will have the generated assembly only use the stack pointer and use the frame pointer as a general purpose register; which can lead to better performance. there are even languages that do not rely on the stack at all, usually called stackless languages.
Correct. Did I say that it’s a hardware concept?
@@asoli_dev تقريباً 😂
يعني أنا فاكر انك كنت بترد على حد في الشات، وقولت كدا، بس ممكن اكون فهمت غلط
الستيرم طويل أوي مكسل ادور بصراحة 😂
انا معتقدش ابدا اني قلت انه حاجة مخصوص في الهاردوير، لكن نظام التشغيل بالفعل بيقسم الميموري لكل ثريد، يعني كل ثريد بيبقى له ستاك محدود و هو اللي بيعترض لما تستهلك اكتر من الحد المسموح. باختصار،
Stack overflow is an OS-level error. You can take a look yourself to memory maps on Linux for instance in `/proc//maps` to see the address range (map) for stack, heap, anonymous memory, and more.
شكراا جزيلاا ❤، ربنا يجازيكم كل خير
Simple and to point ❤❤
This deserves recognition !
Maybe I didn’t get this point, but why did the struct at 2:34:52 use an align of 1 byte, wouldn’t that allow the struct to be written in two words and introduce unnecessary memory gaps
The struct size is 2 bytes (a word is 8 bytes on 64bit arch)
@@ahmedfarghal9314 yes i got this point, but the align of the struct was 1, wouldn’t that allow the struct to be written in two separate words, for example
xxxx xxxa
bxxx xxxx
Loved the way that to you're not going to explain the boring stuff
By default, Rust makes these two promises about the in-memory representation of structures:
Structures may be differently sized than their contents for performance reasons.
Structures may internally store data in a different order than we specified if the optimizer believes it will aid performance.
Most modern CPUs align data on 32-bit boundaries for memory and cache. Accessing 8 bits (one byte) or 16 bits (two bytes) is fast for two reasons. One, because the CPU provides primitives to do so, and, two, the structures can be packed within those 32-bit boundaries.
A 24-bit (three byte) structure does not naturally align to a 32-bit memory map. So, by default, Rust wastes 8-bits of memory per struct to ensure fast access to our computer’s memory structure. This behavior is especially helpful when we’re dealing with arrays or other contiguous blocks of 3-byte structures. That’s because every other structure would start at the 24th bit of a 32-bit block, reducing both cache and read efficiency.
انا مش احسن واحد بيشرح ف خدتها copy paste في الجزء بتاع ال struct sizing اتمنى لو الكلام دا غلط او مش في ال context الصح توضحلي
الكلام صح، ده اللي بشرحه في الجزء الاخير من الفيديو
Nice idea
Are you a embedded developer ?
I’m not. I’m a distributed systems engineer.
just make your own Nand2Tetris already!
❤❤
I have a suggestion: if you can create a course on Udemy about systems engineering or distributed systems, including both theoretical concepts and practical examples, I would definitely purchase it. I believe such a course would be extremely beneficial.
نفس الإقتراح عندي ، احمد متمكن و عندو خبر كبير
شكرا يا بشمهندس وجزاك الله خيراا
اعتقد انه الافضل كان يتم البدأ بنبذة بسيطة عن اللغة وايه مميزاتها وعيوبها بين اشهر اللغات زي السي بلص او جووو وايه التطبيقات الموجهة اليها وايه الناس المطلوب منهم دراستها يعني كل واحد علي حسب مجاله فاعتقد انها هتكون افضل بداية بدون ذكر تفاصيل او سينتكس اللغة وانا بشوف الاسلوب ده ف يكثير من الفيديوهات الاجنبية بتوفر وقت علي المتابع قبل ما يستمر في الفيديو
اتمني قبول النقض بصدر رحب شكرا علي مجهودك ووقتك القييم واتمني اخذ الفيد باك فيما بعد وربنا يوفقك لما فيه الخير
شكرا على رأيك
❤❤❤❤
الله حيو ،
zig build>>
اسلوبكم ممتع جدا ❤❤❤
الشرح ممتاز ، ربنا يكرمك
غلبان يكابتن والله غلبان😢
nice keep going
runplayground == rust online ide
Nice, very great content in arabic, the next Jon Gjengset but in arabic? 🫡
I use vim btw 😂😂😂
You don't need to tell them what editor your using😂😂😂