Erlang Tutorial

Поделиться
HTML-код
  • Опубликовано: 30 окт 2024

Комментарии • 184

  • @vickyconnelly3831
    @vickyconnelly3831 7 лет назад +20

    Thank you so much for this. I requested it months ago and though you were never going to do it :(
    I learned a lot from the video however you really should have covered message passing between processes (since that is the main thing about erlang). Still this is great! Love you!

    • @derekbanas
      @derekbanas  7 лет назад +7

      Thank you :) Sorry it took so long. I'll cover Elixir next and will definitely do a little about message passing.

    • @delamberty
      @delamberty 3 года назад

      Thank you, waiting for elixir part

    • @AliAzizQualityEducation
      @AliAzizQualityEducation Год назад

      Erlang Interview latest Q & A : ruclips.net/video/2DiEAAo2Rbo/видео.html

    • @JuLimaNeres-ft2ri
      @JuLimaNeres-ft2ri Месяц назад

      47:23 47:24 47:27 47:28

  • @jaspersanchez7606
    @jaspersanchez7606 4 года назад +4

    This is the best Erlang tutorial so far. Thank you so much for this!

    • @derekbanas
      @derekbanas  4 года назад +1

      Thank you for the compliment :)

  • @OrchidAlloy
    @OrchidAlloy 5 лет назад +20

    Only downside to this tutorial is using Eclipse

  • @MarvinDHernandez
    @MarvinDHernandez 4 года назад +2

    The custom for loop does not yield the correct answer if Min != 1. It also does not print out the numbers from low to high (as stated in the video). The following does work :
    for(Max, Min) when Max < Min ->
    ok;

    for(Max, Min) when Max >= Min ->
    io:fwrite("Num : ~p
    ", [Min]),
    for(Max, Min+1).
    Thanks Don for pointing out the order was incorrect.

  • @thanhquocbaonguyen8379
    @thanhquocbaonguyen8379 3 года назад

    thank you for your video briefly going through all the introductions into the Erlang language. it was really helpful for my internship.

    • @derekbanas
      @derekbanas  3 года назад +1

      I’m very happy to be of help :) I wish you the best on your internship

  • @littleolliebenjy
    @littleolliebenjy 7 лет назад +1

    Thanks for the video on Erlang Derek!

  • @ethanpaulmorgan5123
    @ethanpaulmorgan5123 7 лет назад +5

    Thank you Derek, you're a phenomenal man. Keep up the fantastic work :D

  • @mukut5ul
    @mukut5ul 3 года назад +2

    sum([],Sum) ->Sum;
    sum(H|T,Sum)->H+Sum.
    Throwing error in main sum([1,2,3]).
    sum/0 undefined
    Should be right cal?
    sum([1,2,3],0).

  • @RockingGuySumit
    @RockingGuySumit 7 лет назад

    thanks a lot Derek Banas, I am one of those who requested you to make video on Erlang programming. you replied me too on that comment request. i will tell everyone in my university to watch this video(without 'ad block'). thank you.

    • @derekbanas
      @derekbanas  7 лет назад

      Thank you very much :) I appreciate it greatly when people turn off adblock :D

  • @MrNemhiszemel
    @MrNemhiszemel 7 лет назад +6

    Thank you for creating this video. It is really great!
    I found one thing, which I hardly understand first:
    You put that extra parameter into the function "sum" around 35:10 and say that the value would be seen as it runs but after that while you ran it nothing was visible from the "io:.." line..
    I put this into main():
    sum([1,2,3], 0)
    and I received this as output:
    Sum : 0
    Sum : 1
    Sum : 3
    6
    I think this is the way the function should work. It needs to get that extra parameter..

    • @tiborszalay2812
      @tiborszalay2812 6 лет назад +2

      Thank you so much, I have been thinking of the solution for several hours. Derek of course should not be blamed because the IDE has a very annoying caching which can confuse a lot of us. Messing up the code on purpose then going back resets that caching.

  • @markh1791
    @markh1791 2 года назад

    Wow, that was a great summary. Thanks!

  • @MathematicalCowboy
    @MathematicalCowboy 4 года назад +3

    Did you also create an Elixir tutorial? You're great! Where do you teach, Derek? How do you know so many different programming languages? Do you also know Wolfram Mathematica? Mathematica is very cool! The way Mathematica deals with lists is very similar to how lists are handled in Python, Haskell, Erlang, etc. List comprehensions and writing recursive functions that traverse and manipulate lists. Very cool stuff. And you are a wonderful teacher! I love your videos. Oh yeah, can you PLEASE make a video that introduces us to concurrent programming in Erlang. I sort of get the basics of it, but concurrent programming can get very confusing. Much more complicated than regular functional programming. Thank you.

    • @derekbanas
      @derekbanas  4 года назад +1

      Thank you for the nice compliment :) Here is my Elixir tutorial ruclips.net/video/pBNOavRoNL0/видео.html I used to teach at a community college years ago, but aside from that I've been making videos like this for over a decade. I'll see what I can do about your requests.

    • @AliAzizQualityEducation
      @AliAzizQualityEducation Год назад

      Erlang Interview latest Q & A : ruclips.net/video/2DiEAAo2Rbo/видео.html

  • @mukut5ul
    @mukut5ul 3 года назад

    Nice tutorial for starting up erlang

  • @ilyeshammadi7278
    @ilyeshammadi7278 7 лет назад +5

    Great video as always, will be awesome to do one for Elixir.

    • @derekbanas
      @derekbanas  7 лет назад +3

      Thank you :) Elixir will be up very soon

  • @uzKantHarrison
    @uzKantHarrison 5 лет назад +1

    Another great video to get started with a new language, you even talk about concurrency! Good good job!

  • @pabloraindogarcia8107
    @pabloraindogarcia8107 3 года назад +1

    Omg advanced mathematics videos pleaaase topology, calculus of variations, etc in one video.

    • @derekbanas
      @derekbanas  3 года назад

      Calculus is coming next. I just finished Linear Algebra

  • @keviballa9033
    @keviballa9033 7 лет назад +11

    Your voice sounds different in a good way

    • @derekbanas
      @derekbanas  7 лет назад +4

      Thank you :) For a short period I added a slight treble boost to my voice, but now it is 100% natural

  • @temidaratemitade2325
    @temidaratemitade2325 4 года назад

    This makes a lot of sense,thank you.

  • @RjAhtesham
    @RjAhtesham 3 года назад

    AMAZING, AND THANKS FOR THIS TUTORIAL

    • @derekbanas
      @derekbanas  3 года назад

      Thank you very much :) I'm happy I could help

  • @MagicShasam
    @MagicShasam 2 года назад

    Great Video! Thank you

  • @2271masoud
    @2271masoud 7 лет назад

    Thanks derek.great tutorial

  • @AgentFlea
    @AgentFlea 7 лет назад

    Appreciate your work mister

  • @bharat639
    @bharat639 7 лет назад

    Excellent tutorial.

  • @andressolar517
    @andressolar517 3 года назад

    excellent tutorial!!! Thx

  • @marcelabend7857
    @marcelabend7857 Год назад

    Hey Derek, the link in the description does not work. I also tried to check out your "LEARN TRIGONOMETRY" but it's the same issue. Just wanted to let you know.

  • @gabriellindemann2163
    @gabriellindemann2163 7 лет назад

    Hey Derek! Thanks a lot for covering the stuff I requested, I'm very grateful :) Are you going to do Phoenix sometime after Elixir? Could you perhaps share what videos are coming up next? :)

    • @derekbanas
      @derekbanas  7 лет назад +2

      I'm very happy that you liked the video :) Phoenix is coming, but first I'll cover Elixir, F# and Swift 3

  • @draakisback
    @draakisback 7 лет назад

    very cool that you did Erlang. I'm surprised that it was more highly in demand then elixir but I guess knowing Erlang helps with elixir as well. thank you for the video, it will be invaluable for me.

    • @derekbanas
      @derekbanas  7 лет назад

      Thank you :) I'll do Elixir next

    • @draakisback
      @draakisback 7 лет назад

      Elixir is great, the syntax is a drastic improvement over Erlang by itself, but it also comes with some really nice features that aren't in erlang.
      It also seems to be gaining a ton of traction in the industry despite it being a FP language. (I wish clojure was getting the same traction.)

    • @AliAzizQualityEducation
      @AliAzizQualityEducation Год назад

      Erlang Interview latest Q & A : ruclips.net/video/2DiEAAo2Rbo/видео.html

  • @MatsBohlinsson
    @MatsBohlinsson 4 года назад

    Extremely good!

  • @Ellenki_007
    @Ellenki_007 3 года назад +1

    Today i learnt upto 29:50 but you never taught how to take user inputs in this programming lanuage I am exhausted I need a break any ideas anyone what i should do.

  • @SouthernSemicolon
    @SouthernSemicolon 4 года назад

    Thank you so much guy. I love your video.

  • @pauldhartley
    @pauldhartley 7 месяцев назад

    I think there is an error in the for loop example as Min is not used. This is demonstrated in the spawn example. Otherwise good video, thank you. I see this has already been mentioned below.

  • @michaeltheisen
    @michaeltheisen 2 года назад

    how do you keep managing to save my life at least once every school quarter?
    we just started erlang and I got lost so I googled a tutorial and lo and behold!!

  • @Mcblaze55
    @Mcblaze55 7 лет назад

    For the do math protion you have A + B, A - B. But your program only outputs the A - B portion and not both math operations. Why is that? I'm currently trying to create a program that has a main function and is passing 2 variables to two other functions which are sum and difference but only one function output and its only the bottom one.

  • @johannbauer2863
    @johannbauer2863 5 лет назад +1

    That looks like a functional prolog :D

  • @SVGc1993
    @SVGc1993 3 года назад

    It bothered me that you put semicolon in the beginning of a new line in the if statement at 14:39.... Just WHY. I looked up for if-else statement on Erlang somewhere else and you are the only one using it like that. It made me think semicolon meant "else", when it actually is there for finishing a single if statement.

  • @MattieCooper10000
    @MattieCooper10000 7 лет назад

    Splendid! Thanks!

  • @michaelrichter119
    @michaelrichter119 6 лет назад +2

    Very nice, I learned a lot! But I think your for-function needs tweaking, since it ignores the Min-value. How about something like this:
    for(Max, Min) when Max =< Min ->
    ok;
    for(Max, Min) when Max > Min ->
    io:fwrite("Num: ~p
    ", [Max]),
    for(Max-1,Min).

    • @MarvinDHernandez
      @MarvinDHernandez 4 года назад

      Does not print out numbers from low to high. Also, both Max and Min should get printed out.

  • @ramasubbareddy6147
    @ramasubbareddy6147 6 лет назад

    you are simply super, keep going

    • @derekbanas
      @derekbanas  6 лет назад +1

      Thank you :) Many more videos are coming

  • @johnpaul2402
    @johnpaul2402 3 месяца назад

    Who's here after the stack overflow developer survey 😂

  • @MarkVolkmann
    @MarkVolkmann 5 месяцев назад

    Does Erlang really refer to function parameters as attributes?

  • @chuanweitu2886
    @chuanweitu2886 6 лет назад

    35:58 there is an compile error. Why can still run the program? Please Help.

  • @venkatakalyanichillapalli562
    @venkatakalyanichillapalli562 3 года назад

    Please do more videos on erlang programming language

  • @sugandhsai
    @sugandhsai 7 лет назад

    man you are good...I wish I had this skill.

    • @derekbanas
      @derekbanas  7 лет назад +1

      Thank you :) You can do anything I can I promise

  • @alessadrodiantonio3186
    @alessadrodiantonio3186 6 лет назад

    I would like to know in case my console dose not taking my orders to run the code
    what i have done , I have written this code , then to run the fist example in the video. I have to set the path for example C:\Users\acer\eclipse-workspace\Tut.erl.
    my problem is that the console is not taking it to continue on running the example .
    I am learning this for my project at the school.
    thanks for your tutorial its very good for beginners.

    • @alessadrodiantonio3186
      @alessadrodiantonio3186 6 лет назад

      and I always have a box with msg telling me : there are no runtime launched , please start a runtime to send to commands to.

  • @vinuhosanagar1
    @vinuhosanagar1 7 лет назад

    Thank you Derek. When is C# going to resume?
    I mean WPF MVVM, Xamarin, Unity?

    • @derekbanas
      @derekbanas  7 лет назад +1

      In a week I'll upload 2 more C# tutorials. I hope to start Unity soon after

  • @doanahmed2983
    @doanahmed2983 7 лет назад

    do you have angular 2 tutorial ? or i could not see, keep up good work, thanks a lot for each video separately

    • @derekbanas
      @derekbanas  7 лет назад

      Thank you :) I only have an Angular 1 tutorial at this time

  • @romanext921
    @romanext921 2 года назад

    41:40 why is the record needed when we can create maps with #{} ?

  • @ethanpaulmorgan5123
    @ethanpaulmorgan5123 7 лет назад

    I understand that this isn't to do with Erlang, But what is the best lisp dialect to learn? Possibly to make small games/software

    • @derekbanas
      @derekbanas  7 лет назад

      Common Lisp is what you'll see with most commercial apps. For games I definitely wouldn't use Lisp

    • @scopestacker9787
      @scopestacker9787 7 лет назад

      Emacs Lisp perhaps. But it already has Pong and Tetris lol

    • @ethanpaulmorgan5123
      @ethanpaulmorgan5123 7 лет назад

      I'm looking into Common Lisp as Derek already has a tutorial on it. But thanks anyway @scopestacker

    • @ethanpaulmorgan5123
      @ethanpaulmorgan5123 7 лет назад

      Okay. Thanks Derek :)

  • @cacianobeast
    @cacianobeast 7 лет назад

    you and mindspace are the two best tutorial makers

    • @derekbanas
      @derekbanas  7 лет назад

      Thank you for the compliment :)

  • @BlackJaguarTV
    @BlackJaguarTV 7 лет назад +10

    please do a brainfuck tutorial :D

    • @scopestacker9787
      @scopestacker9787 7 лет назад

      Haha, this would be definitely something for later

  • @lisbey759
    @lisbey759 4 года назад

    min 35:46 when you dont care about the function Arity .... lol :)

  • @johngalew2155
    @johngalew2155 7 лет назад

    Shalt ye do algorithms videos any time soon? if yes could thou please include "Dynamic Programming"?

    • @derekbanas
      @derekbanas  7 лет назад

      I have an algorithms tutorial ruclips.net/video/f5OD9CKrZEw/видео.html I'll see what I can do about dynamic programming

  • @raj-cp5nu
    @raj-cp5nu 7 лет назад

    Hey Derek what sort of industries/jobs use Erlang

    • @derekbanas
      @derekbanas  7 лет назад +1

      It is used a lot in the telephone space. That is where it originated. It is also used by messaging apps like whatsapp, facebook, yahoo, etc.

  • @saajid6149
    @saajid6149 7 лет назад

    When is C# again?And what is the first game ur doing?

    • @derekbanas
      @derekbanas  7 лет назад +1

      I'll have another C# tutorial next Saturday. Unity is in the works

  • @rollinpotato9222
    @rollinpotato9222 7 лет назад

    Derek can you please make a tutorial on opencv? Thank you! Love your videos!

  • @pavanikumbam5714
    @pavanikumbam5714 2 года назад

    Can you give example for one camel case program in erlang

  • @cliffmathew
    @cliffmathew 5 лет назад

    thanks

  • @martinh7544
    @martinh7544 7 лет назад

    U are the best!

  • @ravenclaw2437
    @ravenclaw2437 7 лет назад

    I never hear about that language, what people use for?

    • @derekbanas
      @derekbanas  7 лет назад +1

      The people that I know that use it use it because it scales extremely well for large distributed systems. It is great at running millions of concurrent processes.

  • @vinuhosanagar1
    @vinuhosanagar1 7 лет назад

    thank you. Is MVVM included in agenda?

  • @brucewayne7195
    @brucewayne7195 7 лет назад +2

    what can you do with this language

    • @Twister915
      @Twister915 7 лет назад +2

      It's used for applications that need to stay online for years, processing tons of requests. It's popular in telecoms for processing SMS and internal authentications. It's very popular in chat servers, and was used for a while by Facebook, and has always been used by WhatsApp. The entire point of erlang is high throughput, cross process communications, in a simple language.

    • @KrishnaDasPC
      @KrishnaDasPC 6 лет назад

      Whatsapp was originally made in Erlang.

  • @vasilnszografos2231
    @vasilnszografos2231 7 лет назад

    Can you create a series of videos for the Clojure programming language ?

    • @derekbanas
      @derekbanas  7 лет назад +1

      I'm working on it. Here is my Lisp tutorial in the mean time if your interested ruclips.net/video/ymSq4wHrqyU/видео.html

  • @rawannona5682
    @rawannona5682 7 лет назад +1

    helloo i have question pls about imo application ..deos imo recorder video calls in a server or imo save all video call online in server ...thank you ...

  • @sobanya_228
    @sobanya_228 6 лет назад

    Why is Erlang called purely functional? You just throw in IO everywhere.

  • @scopestacker9787
    @scopestacker9787 7 лет назад

    Hmm, Erlang Syntax highlightning seems a bit poor in Eclipse. Good part by the way!

    • @derekbanas
      @derekbanas  7 лет назад +1

      Yes I know it kind of stinks. I used Eclipse only because I was asked to set it up that way. I'd use Sublime or Atom

  • @paulfrischknecht3999
    @paulfrischknecht3999 4 года назад

    i don't know about you, but I could not care less about what the standard library provides and built in structures/operators and pattern matching and everything in Erlang. If you have seen this tuff in any language you got the gist. The actor model/shared nothing and message passing and error handling stuff is what really makes erlang stand out. All the actual sequential implementation of the processes could be done in any language for all I care... It is unfortunate that you cannot easily use C or any language to implement the processes... the process system should be independent of how the processes are implemented.

  • @SurajKumar-dh9uo
    @SurajKumar-dh9uo 7 лет назад

    Finally!!!!

  • @daniellaszlo7049
    @daniellaszlo7049 7 лет назад

    Will you also make a video about Elixir? Would be aweeesome :)

    • @derekbanas
      @derekbanas  7 лет назад +2

      Yes that is coming next. I just need some time to finish it

    • @daniellaszlo7049
      @daniellaszlo7049 7 лет назад

      Derek Banas yay, thank you!

  • @itbitsofknowledge5597
    @itbitsofknowledge5597 4 года назад

    Whatsapp was created using such a complex language?😱😱 Calling and video calla are possible in this language?

    • @derekbanas
      @derekbanas  4 года назад +1

      I wouldn't use Erlang for that

  • @rydohg
    @rydohg 7 лет назад +7

    No April fools?

    • @ethanpaulmorgan5123
      @ethanpaulmorgan5123 7 лет назад +2

      Shit, you're making me skeptical now haha

    • @derekbanas
      @derekbanas  7 лет назад +26

      No I always want to do a whitespace tutorial, but I never get to it. Maybe next year :)

  • @АртёмБухавцов
    @АртёмБухавцов 7 лет назад +1

    cool!

  • @pavlospanteliadis5595
    @pavlospanteliadis5595 6 лет назад

    I'm watching your videos because I have a mandatory course in functional programming and I FOOCKIN HATE IT!

    • @lincolnsand5127
      @lincolnsand5127 6 лет назад

      Functional programming is good. Stop being silly.

  • @GASRON
    @GASRON 7 лет назад

    can u made few another video about erlang?

    • @derekbanas
      @derekbanas  7 лет назад

      I'll do anything with enough requests

  • @manhpham3917
    @manhpham3917 5 лет назад +1

    Good

  • @RoniStiawan_physics
    @RoniStiawan_physics 7 лет назад

    Please make R and Julia tutorial. thanks

  • @Karonclip
    @Karonclip 2 года назад

    A bit of java here

  • @eldersprig
    @eldersprig 7 лет назад

    Elixer?

    • @derekbanas
      @derekbanas  7 лет назад +1

      It is coming in about a week

  • @YTcss
    @YTcss 7 лет назад

    how do you even learn so many programming language when i'm struggling to even get one right :'D

    • @derekbanas
      @derekbanas  7 лет назад +1

      After you learn a few the rest are pretty easy. Stick to it and you'll be able to switch

    • @scopestacker9787
      @scopestacker9787 7 лет назад +2

      Once you learned 2 languages, one functional, one object oriented, you will be able to learn anything quickly. Trust me there is no magic.

    • @scopestacker9787
      @scopestacker9787 7 лет назад +1

      Also the best way to learn is in my opinion to take existing code study and modify it and you ll get to it very fast

    • @YTcss
      @YTcss 7 лет назад

      woah didn't expect to get any reply from my silly comment especially from Derek hahah. Anyway thanks guys for all the feedback and comment. Cheers :)

    • @strengthbro0
      @strengthbro0 5 лет назад

      @@YTcss how's your quest going since it's been 2 years?

  • @scopestacker9787
    @scopestacker9787 7 лет назад

    Tomorrow Elixir showtime?

    • @derekbanas
      @derekbanas  7 лет назад +1

      The Elixir tutorial will probably be up next Saturday. Sorry these learn in ones are hard to make.

  • @constantinezh7156
    @constantinezh7156 6 лет назад

    Sup Derek? ?

  • @mib3487
    @mib3487 7 лет назад

    Thanks for the java tutorials bro.
    What's ur major

    • @derekbanas
      @derekbanas  7 лет назад

      You're very welcome :) I went to school for electrical engineering and illustration

    • @Dekutard
      @Dekutard 7 лет назад

      Derek Banas HOW DO YOU KNOW EVERYTHING

    • @derekbanas
      @derekbanas  7 лет назад

      I don't. I'm actually not that smart

    • @mib3487
      @mib3487 7 лет назад

      What made you interested in CS?

    • @mib3487
      @mib3487 7 лет назад

      Derek Banas ^

  • @temidaratemitade2325
    @temidaratemitade2325 4 года назад

    what's your email id, Got few questions for you

    • @derekbanas
      @derekbanas  4 года назад

      RUclips is the best way to reach me. My email gets 5,000 messages a day

  • @andreberloth9325
    @andreberloth9325 4 года назад

    I made it!

  • @jakkjs3290
    @jakkjs3290 7 лет назад

    watched

    • @derekbanas
      @derekbanas  7 лет назад +1

      Thank you :)

    • @jakkjs3290
      @jakkjs3290 7 лет назад

      Derek Banas i want lern E so what do you recommend but i want speak with any friend American on fecabook ; WhatsApp; anything​ . so.what I do ?

    • @derekbanas
      @derekbanas  7 лет назад

      Have you seen Duolingo? www.duolingo.com/

    • @jakkjs3290
      @jakkjs3290 7 лет назад

      Derek Banas thanks for u I'll install on Google play . . I hope you come one visit to Egypt . welcome to anytime

    • @derekbanas
      @derekbanas  7 лет назад

      Thank you :) I would definitely like to visit some day

  • @TheMatrix987
    @TheMatrix987 2 года назад

    I Made It!

  • @kumu2024
    @kumu2024 Год назад

    Thanks. But I never seen any other computer language that is so dirty, not understandable syntax like erlang.
    Horrible syntax, horrible to convert to any other language.
    I am trying to convert Wings3D .. and it is just so not understandable code. .. oh!
    I tried to find any converter to assembly that works not just some sites admit that but you don't find it. or to any other language, there is not. Don't waste your time with this horrible language.

  • @goldensimp7729
    @goldensimp7729 7 лет назад

    second

  • @skullteria
    @skullteria 7 лет назад +5

    The language looks unnecessary complicated. Why should anyone prefer this syntax? hipster nerd swag? btw the syntax is not an excuse for the use of compiled code

    • @derekbanas
      @derekbanas  7 лет назад +5

      It isn't for everyone. It is a specialized language that is great at executing thousands of processes

    • @skullteria
      @skullteria 7 лет назад +3

      What I meant with my last sentence was: I know the great power of this language in use for this specific area, but I also know that this doesn't explain why they designed the syntax so unattractive. As cool as the power of the language is as lame is the syntax u have to use for it. Btw I love this tutorial u explain everything so simple and interesting. The power of the compiler is awesome, but the language for the compiler is the problem.

    • @OverG88
      @OverG88 7 лет назад +3

      Erlang is actually very simple language and fairly old. It just uses different approach to solve problems. It will take way less time to learn Erlang than e.g. Scala.

    • @markdanforth3226
      @markdanforth3226 6 лет назад +3

      Hipster nerd swag is very dismissive considering the language came out decades before those terms became a thing. Not knocking on you in particular just the phrasing. Listen to Joe Armstrong's (inventor of Erlang) speeches.

    • @sobanya_228
      @sobanya_228 6 лет назад +2

      After watching video about prolog and then this video, this syntax is actually makes sense.
      It's not like in 1985 there was many modern syntaxes around. There was no Haskell, Python or Ruby. Between syntaxes of Prolog, Lisp and C, seems like Prolog was the best choice at the time.

  • @harsharaikkonen1
    @harsharaikkonen1 5 лет назад

    Excellent tutorial

  • @bharat639
    @bharat639 7 лет назад

    Excellent tutorial.