Tech With Nikola

Tech With Nikola

Welcome to my channel! My name is Nikola and I am a software engineer with over 10 years of experience in the field.

I have a strong passion for technology and am constantly seeking to learn and explore new technologies and techniques. I believe that the best way to truly understand something is to get hands-on experience and try it out for oneself.

Throughout my career, I have focused on a number of areas, including high performance and low-latency systems, cryptography, game engines, networking, and cryptocurrencies. I am also an avid gamer and enjoy playing video games.

I have a number of other interests and hobbies. I enjoy playing basketball and have done martial arts. I am also an avid chess player and enjoy the mental challenge and strategy involved in the game.

I hope that my videos will be helpful and informative.

Visit my blog: techwithnikola.com/
Twitter: twitter.com/techwithnikola
LinkedIn: www.linkedin.com/in/nikola-stojiljkovic-67a91931/

Introduction to Hash Maps

Introduction to Hash Maps

Пікірлер

  • @shis10
    @shis107 сағат бұрын

    Amazing video . 🙌🏻🔥💯💯♥️

  • @antwanwimberly1729
    @antwanwimberly1729Күн бұрын

    Ahh…the swap file in Linux!!! I used to allocate a portion of my hard drive for swapping!! Wow!!! Such a refresher !!

  • @antwanwimberly1729
    @antwanwimberly1729Күн бұрын

    I thought the hard drive was physical memory, not RAM. My bad.

  • @Mike-kq5yc
    @Mike-kq5ycКүн бұрын

    Actually GiB refers to Gibibyte which is a power of 2. And Gigabyte is a power of 10 :)

  • @krituos
    @krituos2 күн бұрын

    Amazing video, wish I saw it while still in college 😊

  • @user-bg2it5kf9q
    @user-bg2it5kf9q3 күн бұрын

    Ram.Ram. 🎉

  • @shappp1
    @shappp14 күн бұрын

    that music player & video game example is hilarious to think about

  • @XueYlva
    @XueYlva7 күн бұрын

    absolute banger of a tech channel thanks, will watch again -IGN

  • @zekicaneksi
    @zekicaneksi8 күн бұрын

    bro nice but so slow god damn i fell assleep

  • @tkingless
    @tkingless8 күн бұрын

    Cannot wait to watch the sequel

  • @rmcgraw7943
    @rmcgraw79438 күн бұрын

    U r a young man. I remember only 640k

  • @priyankthakkar6597
    @priyankthakkar65978 күн бұрын

    Wow.... A great video to start with dynamic programming. It is like brain is forced to think after a long time

  • @paradox3210
    @paradox32109 күн бұрын

    Good video. You sound exactly like Antti from "Road to Vostok" 👀

  • @emrekurt7368
    @emrekurt73689 күн бұрын

    For maze problem. Solutions writen in c# Here is DP solution: private static Dictionary<(int, int), int> memo = new Dictionary<(int, int), int>(); public static int DPSol(int n, int m) { if(memo.ContainsKey((n,m))) return memo[(n,m)]; if (n == 1 || m == 1) return 1; int answer = DPSol(n - 1, m) + DPSol(n, m - 1); memo[(n,m)] = answer; return answer; } And here is brute force solution: public static int BFSol(int n, int m) { if (n == 1 || m == 1) return 1; return BFSol(n - 1, m) + BFSol(n, m - 1); }

  • @Noobatsecs69
    @Noobatsecs6910 күн бұрын

    I'm taking DSA next year and this is a great introduction to it, thanks! (P.S you just got a new subscriber)

  • @Noobatsecs69
    @Noobatsecs6910 күн бұрын

    This is a great introduction to number theory, I'll be taking discrete math next year lol

  • @soumendudedas4893
    @soumendudedas489310 күн бұрын

    This is the BEST explanation i have had about this topic. I am a newbie to such concepts and you have explained in such an elegant way. Liked n subbed

  • @waynehawkins654
    @waynehawkins65412 күн бұрын

    This was great. I'm a bit lost (11:09 in) how virtual has 12 to 31 bits left and we somehow fit this in physical address that is 12 to 29. So we are missing 2 bits. What is happening with the last two bits. What did we do with it or are they ignored and we hit a limit of virtual because the size of the physical

  • @pet.me102
    @pet.me10213 күн бұрын

    Not gonna lie, I have watched a few videos about dynamic programming, but your video is the only one that I love the most and understand because it has examples lol. Keep up the good work bro, I already subscribed.

  • @lightbringer9940
    @lightbringer994013 күн бұрын

    Good video but one thing that seems wrong or unclear to me is the address translation. You say the last 12 bits are copied into the physical address space for the offset. Isn't this odd? Sounds like you are overwriting data that is in physicsl memory already. Would it not be better to compute the offset from virtual page address and just add it to the physical address you've just read from the map. That extra animation step of copying the physical address and offset into physical address is throwing me off. Maybe someone can clarify for me.

  • @samson10077
    @samson1007713 күн бұрын

    Thank you for your high quality work. 👏👏👏

  • @oneloveafrica8860
    @oneloveafrica886015 күн бұрын

    it was so good

  • @yaroslavpanych2067
    @yaroslavpanych206715 күн бұрын

    Worst freacking video ever! This is maybe how it works for x86-like architecture, but 99.99% of other cpu have nothing to do with thic crap! And I didn't see any kind of disclaimer in any place of video! Wordt video!

  • @a_dzakyfaishalariq1821
    @a_dzakyfaishalariq182115 күн бұрын

    good progaming evriywan

  • @manibhushankumarsingh5196
    @manibhushankumarsingh519616 күн бұрын

    00:04 Dynamic programming combines the correctness of brute force and the efficiency of greedy algorithms 02:15 The Fibonacci function is slow with a time complexity of the golden ratio to the nth power. 04:23 Dynamic programming is a technique to improve the efficiency of recursive algorithms by remembering previously computed values. 06:30 Dynamic programming problems can be solved from the bottom up for efficiency 08:45 Using dynamic programming to solve the minimum number of coins problem 10:58 Dynamic programming can be used to find the minimum number of coins needed to reach a target sum. 13:12 The bottom-up approach is preferred due to lower constant factor and shorter length. 15:36 The rabbit can reach the bottom right corner of a grid by only moving down or right. 17:37 Mastering Dynamic Programming

  • @hacerdemirel9833
    @hacerdemirel983316 күн бұрын

    Where are you from?

  • @jamespilcher5287
    @jamespilcher528717 күн бұрын

    I've written some 6502 assembler for the BBC Master, where the most complicated it got was having to write to a memory-mapped hardware register to switch banks of RAM so that you can access 128Kb with a 16bit address bus. It's a bit mind-boggling to think about all this indirection that goes on in modern memory systems. All this back and forth would bring 8bit systems to their knees!

  • @danielabildgaard6137
    @danielabildgaard613719 күн бұрын

    Wow, I was really surprised! I was just relaxing on KZread to fall asleep and came across your video. I thought it might be trash, but it turned out to be very good with excellent detail and explanation. Great job! Best video on youtube so fare 🎉🎉🎉

  • @gertrudestrawberry
    @gertrudestrawberry19 күн бұрын

    Thank you! I've been using git for over a decade and you've finally made it clear! If I ran the internet, this video would be shown at the top of any "how to" search about git.

  • @chaitanyaagrawal6534
    @chaitanyaagrawal653420 күн бұрын

    Can you also call a programm a process with threads etc. or are those two seperat things?

  • @suyogpatil-cb7td
    @suyogpatil-cb7td20 күн бұрын

    How to make (edit ) this type of content? Can anybody share software name or any youtube playlist to learn

  • @starvedstudent5007
    @starvedstudent500720 күн бұрын

    Great video! Sorry you weren't able to get it as trained as you would have liked. I have implemented neural networks and used the game Snake to train them as well so it's nice to see similar interests out there. I also ended up in a similar situation. The program ran well but I didn't get the results I was hoping for. It did "okay" but never really excelled at the game. I'm guessing it has to do with what information the network is being fed and how its fitness is being evaluated - which is frustrating because both of those feel like total shots in the dark at times. I've spent hours trying different combinations and strategies for both and nothing seems to help. Have you considered giving the network the ability to add / remove inputs and outputs? I've also dabbed in creating artificial life ecosystems with NEAT and in that setting, the agents have the ability to gain new senses over time. What often happens is that simple sensor inputs or simple locomotive outputs evolve first as those give the agents the means to at least eat food and navigate around their environment. Once those genes have propagated throughout the gene pool, competition usually starts driving the agents to evolve and utilize more complicated sensors / outputs, which they are able to do because they were given the opportunity to focus on locomotion and eating before being bogged down by extra stimuli (that often just gets interpreted as noise if the agent is not trained to make sense of it). Sorry if I am preaching to the choir but I believe its this uninterpreted noise that usually bottle necks the evolutionary process. One a different note: One interesting thing I did was add multiple snakes in one large 50 x 50 grid, to see them actively compete against each other and fight for a single apple. The game works essentially like Snake combined with Tron, as snakes evolved strategies to trap each other. By far the coolest thing I observed though was when one snake evolved to stick to the bottom-left corner. It would stick to that corner doing clockwise rotations and would only venture out towards an apple if it ever spawned near the bottom-left corner. After eating the apple, it would curl back up and stick to its corner again - all the while every other snake adapted a strategy of just darting towards the apple while dodging snakes. Last tidbit: Transformers and LLM's are cool and all but genetic algorithms mixed with neural architecture will always be my favorite. If anything, a mix of the two or the two working in tandem will certainly bring artificial life to the masses :) But for now, we evolve snakes, even though no asked us to.

  • @SloppyPuppy
    @SloppyPuppy20 күн бұрын

    You are using the right measure but are calling GiB a Gigabyte, don't fall for Microsofts misinformation, it's a GiBiByte, It's a Giga-Bi-Byte. Meaning it's the equivalent capacity in base 2 that being 2^30 instead of 10^9, 1 kiB has 1024 Bytes, 1kB has 1000Bytes. No computer works in kB, they work in kiB, but now you know the reason why even though you bought a 1TB drive, supposedly your PC registers it as ~930GB, because Microsoft are lying assholes.

  • @clodomirvianna6350
    @clodomirvianna635023 күн бұрын

    Thank you for this amazing video! It's truly refreshing to encounter such well-scripted and nicely illustrated content. It makes really enjoyable trying to learn such complex concepts.

  • @RajuGod-to5ne
    @RajuGod-to5ne23 күн бұрын

    समझ गया गीता पढ़ कर अपने मन को तू मार डाला गीता पड़ता है अच्छी पशुओं को क्यों पड़ता है दोनों पक्ष पढ़कर सपना दोनों के बराबर फैसला कर पाएगा क्या सत्य है क्या गलत दोनों पक्ष पड़ेगा तब तेरे को समझ आएगा क्या धर्म है क्या धर्महै विदाई तो है यादों में फैलने वाला कलयुग का मरियमराज फैसला करना है तो दोनों पक्षों पर जाकर फैसला करके दिखाओ फिर तुम्हें तो साफ साफ कृष्णा भी तुम्हें गलत नजर आएंगे जो अपने फायदा के लिए करोड़ और वह आदमी का वध करवा दिया गुरु और केले का संबंध तोड़ दिया पिता और पुत्र का बीच में दरार डाल दिया गलतीकिसका था युधिष्ठिर का गलती था कि दुर्योधन कागलती था क्या युधिष्ठिर को पता नहीं था कि धर्मराज है दूसरे को पत्नी को जुआ में रखना क्या यही धर्म है रखना था तो अपना पांच भाई मैसेज को रखना अजूबा खेलने क्या धर्म में आता है तो फिर वह कैसे धर्मराज हुआ जो गलत धर्मराज ही नहीं था उसका साथ देने वाला तो गलत है ना सजा दो धर्मराज कोमिलना था सजा तो पांडव का बनता है किसने गलत फैसला किया शिवा तो दोनों दोनों खेले थे कछुआ खेलने वाले दोनों दोनों आधार में हुई कि नहीं जयपुर धर्म था तो उसको जुएं नहीं खेलना था अर्जुन ने जीता था अर्जुन ने विवाह किया था विवाह तो अर्जुन के साथ हुआ था इसलिए अर्जुन की पत्नी था दूसरे का पत्नी को रखने का किसने अधिकार दिया था युधिष्ठिर को

  • @naveennayak8365
    @naveennayak836525 күн бұрын

    Those who can't remember the past are condemned to repeat it . - Dynamic Programming.

  • @RafaelRodrigues-ug1lt
    @RafaelRodrigues-ug1lt25 күн бұрын

    Me traga mais sugestões assim de canal algoritmo do KZread, very good

  • @kfawell
    @kfawell25 күн бұрын

    That was a well produced video. Of course he pointed out the important concept of dependencies. I am curious, why did you choose to have arrows pointing the opposite way to convention? To be clear, the conventional way is to point towards the dependencies.

  • @TechWithNikola
    @TechWithNikola25 күн бұрын

    Thank you :-) If you are referring to the topological sort order part, my reasoning was that sorting the graph in the topological order means that node u comes before node v if there is an edge from u to v. I probably used this article at the time: en.m.wikipedia.org/wiki/Topological_sorting

  • @avivb4598
    @avivb459826 күн бұрын

    Thank god I found this gem before my exam!

  • @silloo2072
    @silloo207228 күн бұрын

    Commenting for the algorithm 😅

  • @anantchitranshi6137
    @anantchitranshi613729 күн бұрын

    DMA

  • @user-mr3mf8lo7y
    @user-mr3mf8lo7y29 күн бұрын

    Quite good video. Just a minor comment. You use the word 'Security' in sections but I would call it 'Liability'. Thanks,.

  • @jameslai322
    @jameslai32229 күн бұрын

    Excellent description on how cpu/memory/os are working together! Well done!

  • @ThePsychoMessiah
    @ThePsychoMessiah29 күн бұрын

    "Programs used to crash in the 1950s or so"? Calm down, it hasn't been that long since Windows XP would ask you to "send an error report".

  • @carloshenriquedesouzacoelho
    @carloshenriquedesouzacoelho29 күн бұрын

    From Aritmetic concepts , the virtual memóry obeys bijective function (injective and surjective ) about Domain and Image . It is unbelievable !

  • @whtiequillBj
    @whtiequillBj29 күн бұрын

    @0:54 and before that there were 16 bit CPUs that could only address which was only 64 Kilobytes. In the early days it was more around the problem with memory collisions rather then accessing something that is out of range. In the 1960s you wouldn't find the kind of problem you're talking about because the processing power was too expensive to have that kind of problem. Paper Tape and Punch Cards don't have the same problems with accessing memory out of range.

  • @user-kw5qv6zl5e
    @user-kw5qv6zl5eАй бұрын

    Im just sitting here fascinated...and it makes sense.. knowing just the basics... nice work...a dumb thing to say but this is relaxing...straight to the point ..ask a question ...then answer it... terrific

  • @TechWithNikola
    @TechWithNikola23 күн бұрын

    Thanks. I’m glad you like this style.

  • @brokecoder
    @brokecoderАй бұрын

    I think to only get good a DP, is to start thinking about problems that you tend to solve without DP, from the angle of DP.

  • @soumyajitdas4433
    @soumyajitdas4433Ай бұрын

    Is Page Table update and TLB update treated as 1 atomic operation? If yes, how do we maintain atomicity? If no, how do we handle scenarios where the TLB has stale entry?

  • @vishalkarna3763
    @vishalkarna3763Ай бұрын

    Wonderful illustration of Virtual Memory. Good Job !

  • @TechWithNikola
    @TechWithNikola23 күн бұрын

    Thanks