James Cutajar
James Cutajar
  • Видео 19
  • Просмотров 1 020 722
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/RUclipsCode/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 761

Видео

Proof that algorithms are interesting!
Просмотров 9248 месяцев назад
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
Просмотров 963 тыс.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

Комментарии

  • @Tekno1796
    @Tekno1796 9 дней назад

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

  • @dashmasterful
    @dashmasterful 15 дней назад

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

  • @ThiagoRodrigues-ib5dk
    @ThiagoRodrigues-ib5dk 18 дней назад

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

  • @ejpianoivan5829
    @ejpianoivan5829 23 дня назад

    Y gregorio?

  • @KeloaTV
    @KeloaTV 26 дней назад

    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 Месяц назад

    extremely helpful! Thanks James!

  • @anandrajgunnala5955
    @anandrajgunnala5955 Месяц назад

    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 RUclips. 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!

  • @RohitSingh-em2pm
    @RohitSingh-em2pm 8 месяцев назад

    Nice video, but why so few views?