Big IT Words in Simple Words Part 2

Fox Mulder89

Well-known member
  • Dec 31, 2012
    2,460
    942
    113
    gampaha
    Simulated Annealing

    It’s Mount Everest, the biggest challenge you’ve ever faced. Your goal is to reach the summit, but it’s impractical to climb Mount Everest over and over again. You have one chance. You are more cautious now. Instead of always climbing upwards, you occasionally move to a lower point and explore other paths, to reducing your chance of taking the wrong path. The higher you climb, the lower the probability you move to a lower point and explore.

    Dynamic Programming

    Dad: *Writes down “1+1+1+1+1+1+1+1 =” on a sheet of paper*
    Dad: What’s that equal to?
    Kid: *counting and 3 seconds later* Eight!
    Dad: *Writes down another “+1″ on the left*
    Dad: What about now?
    Kid: *instantly* Nine!
    Dad: Wow, how did you calculate so fast?
    Kid: You just added one more!
    Dad: So you didn’t need to recount because you remembered it was eight before. Brilliant!

    The example above describes memoization (yes memoization not memorization), a top-down approach in dynamic programming, which store the results of previous computations for future use.


    Concurrency



    Let’s say you work as a secretary in company A. You have to answer phone calls, arrange meetings, typing documents, etc. You always have to switch back and forth between your tasks based on priority. Every time the phone rings, you have to stop whatever task you are working on.

    Concurrency is a property of programs and systems that allow tasks to run in overlapping time periods.


    Race Condition

    This is what will happen if you allow concurrent transactions in a banking system and race condition isn’t handled:

    You have $1000 in your bank account.
    Someone transfers $500 to you and you withdraw $300 from ATM.
    Imagine both transactions are performed at the same time, both transactions will see $1000 as your current balance.
    Now, transaction A adds $500 to your account and you have $1500. However, transaction B also sees $1000 as your current balance and it completes a millisecond later, it deducts $300 from $1000 and updates your account balance as $700.
    You now have $700 instead of $1200 because transaction B overwrites transaction A.
    This happens because the banking system isn’t aware of other ongoing transactions.
    So, what can you do to handle the above situation? One really simple way is mutual exclusion.


    Deadlock

    Deadlock is another common issue in concurrency system.

    Let’s use the same banking system analogy with a different scenario. Just keep in mind that access to a bank account is locked whenever there’s an ongoing transaction.

    Peter transfer $1000 to you (transaction A) and you transfer $500 to him at the same time (transaction B).
    Transaction A locks Peter’s account and deducts $1000 from Peter’s account.
    Transaction B locks your account and deducts $500 from your account.
    Then, transaction A tries access your account to add the $1000 from Peter.
    At the same time, transaction B also tries to add your $500 to Peter’s account.
    However, since both transactions aren’t completed, both can’t access the locked accounts. Both wait for each other to complete. Deadlock.

    Here’s a real life example:

    Boy: Let her approach me first.
    Girl: Let him approach me first.


    Brute-force Attack

    Try hundreds and thousands of different keys. An experienced burglar will try the most commonly used keys first.

    A brute-force attack tries every possible passwords, and usually starts by guessing commonly used passwords like “123456”, “abcdef”, etc.


    Social Engineering

    A couple just moved in next door. They are really nice and helpful. They often invite you over for dinner. One day, you mentioned that you are going for a two-week vacation soon. They happily offered to take care of your dog. You left a spare key for them. Since then, you have not heard any news about them.

    Social engineering is tricking users into revealing their private information.


    Trojan Horse

    A burglar pretends to be a plumber and you unlock the door for him. He fixes your leaking pipe and everything looks perfectly normal. After he left, you discovered that your jewelry is missing.

    A trojan horse is malware program that pretends to be useful or helpful and runs malicious code in the background.


    Rootkit

    Your door lock is jammed and you call a locksmith. He fixes your door lock and secretly duplicates another key.

    A rootkit gains administrator or root access of a computer through various ways like social engineering, then disguise as necessary files that is hard to detect by antivirus software.
     

    Fox Mulder89

    Well-known member
  • Dec 31, 2012
    2,460
    942
    113
    gampaha
    දැක්කේ Big tit වගේ..:P

    skeptical_zps5c971414.gif