James Cutajar
James Cutajar
  • 19
  • 1 021 269
Evolutionary Algorithm for the Travelling Salesperson Problem (Genetic Algorithm)
Explaining how a Genetic Algorithm works to find a solution for the travelling salesman problem (TSP).
www.manning.com/books/grokking-artificial-intelligence-algorithms?a_aid=cutajarj&a_bid=6a1b836a
Promo code (35% off): au35cut
Please support this channel by purchasing "Advanced Algorithms and Data Structures" using the above link.
You can also purchase any book from Manning.com using the 35% discount promo code and this link:
www.manning.com/?a_aid=cutajarj
Github link for source code:
github.com/cutajarj/UA-camCode/tree/main/travellingSalespersonProblem
Genetic algorithms is a type of an evolutionary algorithm used to get an approximate solution to many types of intractable problems.
Переглядів: 1 781

Відео

Proof that algorithms are interesting!
Переглядів 9278 місяців тому
Explaining an algorithm based on graph depth first search (DFS) that generates a random maze every time we run it. www.manning.com/books/algorithms-and-data-structures-in-action?a_aid=cutajarj&a_bid=cbe70a85 Promo code (35% off): au35cut Please support this channel by purchasing "Advanced Algorithms and Data Structures" using the above link. You can also purchase any book from Manning.com using...
Impress your friends with Cryptographic Hashing!
Переглядів 4458 місяців тому
Cryptographic hashing functions, such as sha-2 are used in many applications in Cryptography. In this video I give an introduction on what they do and how they work. www.manning.com/books/real-world-cryptography?a_aid=cutajarj&a_bid=ad500e09 Promo code (35% off): au35cut Please support me by purchasing "Real-World Cryptography - David Wong" using the above link. You can also purchase any book f...
What's so special about function programming?
Переглядів 7029 місяців тому
Introduction to Functional Programming, where we explain the core principles of coding functionally, with examples in python. The principles include having no side effects, immutability and referential transparency. www.manning.com/books/grokking-functional-programming?a_aid=cutajarj&a_bid=d8702096 Please support me by purchasing "Grokking Functional Programming - Michał Płachta" using the abov...
Coding Interview: Find K Closest Elements
Переглядів 3,2 тис.Рік тому
Introduction and solution on the Find K Closest Elements coding interview. Variations of this algorithm have been asked by a few big tech companies such as Google, Facebook, Microsoft, Netflix, Amazon, so it's important to know how to solve it efficiently. Please support me through my Udemy courses: Pass your coding interview in, Java : www.udemy.com/course/beat-the-codility-coding-interview-in...
Coding Interview: Vigenere Cipher in 9 mins
Переглядів 1 тис.2 роки тому
Introduction and code on how to implement the Vigenere Cipher. The Cipher is an improvement over the Caesar version however it's far some secure. It's good to know how to implement in case you get asked to code something similar during an interview. The algorithm is easy to implement if you know the right tools and technique. Please support me through my Udemy courses: Pass your coding intervie...
Knuth Shuffle made simple in 5 mins
Переглядів 9 тис.2 роки тому
Knuth Shuffle, aka Fisher-Yates shuffle or simply list shuffle is a way to randomly order things in an array or list. In this video we explain how it works and implement it. Please support me through my Udemy courses: Pass your coding interview in, Java : www.udemy.com/course/beat-the-codility-coding-interview-in-java/?referralCode=FF8ECC71208BD571CE81 Python: www.udemy.com/course/beat-the-codi...
Moving Average for Python in 6 mins
Переглядів 7 тис.2 роки тому
A simple explanation of to compute and implement the moving average (aka rolling average, or running average) of a timeseries. Please support me through my Udemy courses: Multithreading in, Go Lang: www.udemy.com/course/multithreading-in-go-lang/?referralCode=D20A3CBD00E90DB2ABF8 Python: www.udemy.com/course/parallel-computing-in-python/?referralCode=6FEC1503E429D7510154 Java: www.udemy.com/cou...
Internationalization and localization in Web Applications
Переглядів 2,7 тис.3 роки тому
Talk given at all-in.global/ about how internationalization and localization works in common web applications. Please support me through my Udemy courses: Pass your coding interview in Java : www.udemy.com/course/beat-the-codility-coding-interview-in-java/?referralCode=FF8ECC71208BD571CE81 Python: www.udemy.com/course/beat-the-codility-coding-interview-in-python/?referralCode=0F7DC2EE6CDED3193C...
Python's Thread Barriers in 8 mins
Переглядів 2,9 тис.3 роки тому
A simple explanation of how thread barriers work and can be use for synchronization. The video is taken from my Udemy course titled "Learn Parallel Computing in Python" www.udemy.com/course/parallel-computing-in-python/?referralCode=6FEC1503E429D7510154 Learn about race conditions, threads, processes, barriers, deadlocks, wait groups and many other concepts from the concurrent programming world...
Go Lang's Mutex for Thread Synchronization
Переглядів 2,8 тис.3 роки тому
A simple example of how to use Go Lang's Mutexes for thread synchronization. The video is taken from my Udemy's course titled "Multithreading Programming with Go" www.udemy.com/course/multithreading-in-go-lang/?referralCode=D20A3CBD00E90DB2ABF8 Learn about race conditions, threads, processes, deadlocks, wait groups and many other concepts from the concurrent programming world. Please support me...
Codility's MaxCounters Coding Interview - Part 4
Переглядів 2,1 тис.4 роки тому
Coding interview here: app.codility.com/programmers/lessons/4-counting_elements/max_counters/ Problem from the Counting Elements section. Please support me through my Udemy courses: Pass your coding interview in, Java : www.udemy.com/course/beat-the-codility-coding-interview-in-java/?referralCode=FF8ECC71208BD571CE81 Python: www.udemy.com/course/beat-the-codility-coding-interview-in-python/?ref...
Codility's MaxCounters Coding Interview - Part 3
Переглядів 2,3 тис.4 роки тому
Coding interview here: app.codility.com/programmers/lessons/4-counting_elements/max_counters/ Problem from the Counting Elements section. Please support me through my Udemy courses: Pass your coding interview in, Java : www.udemy.com/course/beat-the-codility-coding-interview-in-java/?referralCode=FF8ECC71208BD571CE81 Python: www.udemy.com/course/beat-the-codility-coding-interview-in-python/?ref...
Codility's MaxCounters Coding Interview - Part 2
Переглядів 3,6 тис.4 роки тому
Coding interview here: app.codility.com/programmers/lessons/4-counting_elements/max_counters/ Problem from the Counting Elements section. Please support me through my Udemy courses: Pass your coding interview in, Java : www.udemy.com/course/beat-the-codility-coding-interview-in-java/?referralCode=FF8ECC71208BD571CE81 Python: www.udemy.com/course/beat-the-codility-coding-interview-in-python/?ref...
Codility's MaxCounters Coding Interview - Part 1
Переглядів 9 тис.4 роки тому
Coding interview here: app.codility.com/programmers/lessons/4-counting_elements/max_counters/ Problem from the Counting Elements section. Please support me through my Udemy courses: Pass your coding interview in, Java : www.udemy.com/course/beat-the-codility-coding-interview-in-java/?referralCode=FF8ECC71208BD571CE81 Python: www.udemy.com/course/beat-the-codility-coding-interview-in-python/?ref...
Apache Kafka in 6 minutes
Переглядів 964 тис.5 років тому
Apache Kafka in 6 minutes
K-Means Clustering in Scala
Переглядів 1,3 тис.5 років тому
K-Means Clustering in Scala
Time Zones and DST for Coders
Переглядів 5845 років тому
Time Zones and DST for Coders
Coding Interview Workshop
Переглядів 6 тис.5 років тому
Coding Interview Workshop

КОМЕНТАРІ

  • @suleakcay3531
    @suleakcay3531 День тому

    That is very beatiful video! Thank you.

  • @Tekno1796
    @Tekno1796 11 днів тому

    Thank you so much for this video. Summarizes the general concepts brilliantly.

  • @dashmasterful
    @dashmasterful 16 днів тому

    Damn. Finally a good video on Kafka. Thank you!

  • @ThiagoRodrigues-ib5dk
    @ThiagoRodrigues-ib5dk 19 днів тому

    I just needed to watch it to become clear. Thanks a lot.

  • @ejpianoivan5829
    @ejpianoivan5829 25 днів тому

    Y gregorio?

  • @KeloaTV
    @KeloaTV 27 днів тому

    great video ! love this animation style and the simple explanation

  • @lucianoinso
    @lucianoinso Місяць тому

    This is genius, thank you so much!

  • @SamirJahchan
    @SamirJahchan Місяць тому

    It was very well presented, in a simple and effective way. This put me on the page about Kafka technology.

  • @moveonvillain1080
    @moveonvillain1080 Місяць тому

    Idk how many videos I went over but not a single one would say that partition in Kafka is JUST A QUEUE. They would unnecessarily make it complicated with more technical jargon. Thank You good Sir🧔‍♂👋🎩

  • @satoshi1285
    @satoshi1285 Місяць тому

    Great Video! I love it!

  • @pepper856
    @pepper856 2 місяці тому

    extremely helpful! Thanks James!

  • @anandrajgunnala5955
    @anandrajgunnala5955 2 місяці тому

    Well explained 🙏🏻

  • @mateushesed
    @mateushesed 2 місяці тому

    Please continue with the Golang content! It's so good!

  • @user-rh7xd6ie8z
    @user-rh7xd6ie8z 2 місяці тому

    Beautiful, thank you!!

  • @James__Bond_007
    @James__Bond_007 2 місяці тому

    bless you sir

  • @VisionViral05
    @VisionViral05 2 місяці тому

    promotion ka tareeka thoda cazual hai😂

  • @shivamanand8998
    @shivamanand8998 2 місяці тому

    To add Kekfa helps to achieve 2 main goals 1. Use Ques for async communication 2. Achieve a pub-sub model

  • @adriancontreras7691
    @adriancontreras7691 3 місяці тому

    best explanation ever!

  • @chaosaroundyou8748
    @chaosaroundyou8748 3 місяці тому

    simply beautiful, thank you

  • @kshow666
    @kshow666 3 місяці тому

    Great intro to the fundamentals! Great use of example too

  • @wassimchebaane5261
    @wassimchebaane5261 3 місяці тому

    thank you for this clear video

  • @Namrata766
    @Namrata766 4 місяці тому

    A great starter video. 😊

  • @kirilnavalihin1222
    @kirilnavalihin1222 4 місяці тому

    Simple

  • @ketanjoshi4568
    @ketanjoshi4568 4 місяці тому

    Love the brevity of the video !

  • @bensdevjourney7081
    @bensdevjourney7081 4 місяці тому

    I love this animation style and want to use one similar for a course's extra credit project! What software did you use to create these if you don't mind me asking?

  • @mberle1
    @mberle1 4 місяці тому

    Could there be figures that do not change locations? For example, "A,B,C,D,E" could A ever be the first post-randomiztion?

    • @fullmuppet
      @fullmuppet 4 місяці тому

      Yes. But the same is true with a "real life" shuffle. If you shuffle a deck of cards, any cards could be in the same position after the shuffle. Indeed, to be a true random shuffle, this needs to be the case. If items were guaranteed *not* to be in the same position, that provides information about the previous state, which means it can't be truly random.

  • @jakestandley7668
    @jakestandley7668 4 місяці тому

    Great vid!

  • @iezioaudi22
    @iezioaudi22 5 місяців тому

    thanks!!

  • @manhamvan5909
    @manhamvan5909 5 місяців тому

    sub: Apache Kafka is the answer to the problems faced by the distribution and the scaling of messaging systems. let me try to illustrate this by an example imagine we were to design a system that listens to various basketball game updates from various sources such updates might include game scoring participants and timing information it then displays the games status on various channels such as mobile devices and computer browsers in our architecture we have a process that reads these updates and writes them in a queue we call this process a producer since it's producing these updates onto the queue at the head of this queue a number of downstream processes consume these updates to display them on the various channels we call these processes consumers over time we decide to expand and start following more and more games the problem is that our servers are now struggling to handle the load this is mainly because the queue is hosted on one server which is running out of memory and processing capacity our consumers are also struggling in a similar fashion so now we start thinking of how we can add more computing power by distributing our architecture but how do we go about distributing AQ data structure by its nature the items in a queue follow a specific ordering we could try to randomly distribute the contents of the queue onto multiple ones if we do this our consumers might consume the updates in the wrong order this would result in inconsistencies for example the wrong scoring being displayed across the channels one solution is to let the application specify the way to distribute the items in the queue in our example we could distribute the items using the match name meaning that the updates coming from the same match would be on the same queue this strategy would maintain an ordering per basketball match this is the basic fundamental difference of Kafka from other messaging systems that is item sent and received Kafka require a distribution strategy let's have a look at some more detail and terminology used in Kafka each one of these queues is called the partition and the total number of partitions is called a partition count each server holding one or more of these partitions is called a broker and each item in a partition is called a record the field used decide which partition the record should be stored in it's called the partition key it's up to the application to decide which field to use as the partition key if no key is specified Kafka simply assigns a random partition a grouping of partitions handling the same type of data is called a topic in order to identify each record uniquely Kafka provides a sequential number to each record this is called an offset essentially a recording that topic is identified by a partition number and an offset in our application since we have now distributed our data in the topic using the name as the partition key we can now also parallelize our consumer applications having one consumer per partition guarantees ordering per game consumers can live on one machine or distributed amongst multiple ones one important concept in Kafka is that consumers are very lightweight and we can create many of them without affecting performance this is mainly because Kafka only needs to maintain the latest offsets read by each consumer typically consumers read one record after the other and resume from where they left after a restart however in Kafka it's up to the consumer implementation to decide on how to consume records it's quite common to have consumers to read all the records from the beginning on startup or to read the record in different orders such as reading back to front for example in Kafka each consumer belonging to the same consumer group do not share partitions this means that each consumer would read different records from the other consumers multiple consumer groups are useful when you have different applications reading the same contents in our example we could have a consumer group called mobile and another consumer group called computer these groups will read the same records but update different channels each consumer in these groups will have separate offset pointers to keep track which latest record was read if consumers can read using custom ordering how can Kafka determine that the record has been consumed and it can safely delete that record so it can free up space the answer is that tough comp provides various policies that allow it to do a record cleanup for example using irritation policy you can provide a record age limits say 24 hours after which the records are automatically deleted using this policy if your consumer application is never down for more than this age limit no messages are lost another capability of Kafka is to store records in a fault tolerant and durable way each record is stored on persistent storage so that if a broker goes down it can recover when it comes back up additionally Kafka replicates partitions so that when a broker goes down a backup partition takes over and processing can resume this replication is configured using a replication factor for example a replication factor of three leads to three copies of a partition one leader and two backups this means that we can tolerate up to two brokers going down at the same time Kafka can be a solution to your scalability and redundancy problems if the problem is well stated and the technologies are well understood there are of course a lot more technical and implementation details which can be found on kafkas documentation I hope that this short video has been helpful at providing an introduction but the fundamental concepts in Kafka if you like it please give it a thumbs up and subscribe.

  • @thegodfatheram
    @thegodfatheram 5 місяців тому

    Thank you sir very simple and informative explanation

  • @joaocampos9615
    @joaocampos9615 5 місяців тому

    Thank you, not many info or vídeos about divolte and avron :)

  • @shanemay-gunlogson9575
    @shanemay-gunlogson9575 5 місяців тому

    Best intro to Kafka video I've seen. Thank you.

  • @fryt-zv3tm
    @fryt-zv3tm 6 місяців тому

    what software do you use for illustration?

    • @MirekKrenc
      @MirekKrenc 5 місяців тому

      The same question - what tool did you use to make such nice animations and presentation?

  • @ruiguimaraes9989
    @ruiguimaraes9989 6 місяців тому

    Top stuff! Very clear and simple explanation. Thanks!

  • @MirekKrenc
    @MirekKrenc 6 місяців тому

    Nice and clear explanation - thank you.

  • @hadesunseen6388
    @hadesunseen6388 7 місяців тому

    thank you for sharing

  • @chrismenui7344
    @chrismenui7344 7 місяців тому

    how to scale queue? each queue need it's own distribution strategy replication factor

  • @Sunshine-sv6lw
    @Sunshine-sv6lw 7 місяців тому

    Only a person who has deep knowledge on a subject can explain anything with clarity in a short video. Looking forward to more videos from you!

  • @mikahoy
    @mikahoy 7 місяців тому

    view a lot of videos about kafka, and you 're video is the best one

  • @mosalman5174
    @mosalman5174 7 місяців тому

    Simple clear and concise. Thank you James

  • @griglog1309
    @griglog1309 7 місяців тому

    Its crazy how good this video is

  • @vijayakumareyunni6010
    @vijayakumareyunni6010 8 місяців тому

    Excellent explanation and solution

  • @mhwadah
    @mhwadah 8 місяців тому

    thank you for all the hard work. this is vary informative. ps. could you please tell me what is the application/s used to create the infographics images

  • @onyeukwuhycient438
    @onyeukwuhycient438 8 місяців тому

    This is the best and simplistic explanation I've seen on Muxes so far all over UA-cam. Thanks a bunch for this great resource

  • @nskmptrck5492
    @nskmptrck5492 8 місяців тому

    Thanks a million for this one, from West Africa🎉

  • @anshumanchoudhary4732
    @anshumanchoudhary4732 8 місяців тому

    Thanks!

  • @CornPaper
    @CornPaper 8 місяців тому

    great video but, why do you talk like that it was hard to hear what you where talking about, while you stop and start a sentence at random points.

    • @CornPaper
      @CornPaper 8 місяців тому

      sounds like bad AI

  • @gerardtoconnor
    @gerardtoconnor 8 місяців тому

    Love how you break it down into simple concepts, animations on point as usual, thanks James!

  • @tikidai
    @tikidai 8 місяців тому

    Wow! Amazing content in your channels. Much Love ❤️

  • @mr_possible6197
    @mr_possible6197 8 місяців тому

    Excellend explanation, thanks!