Arrays
- Constant-time random access. Map to a memory address
- Space efficient. Just the data
- Data locality. Better cache usage (image scanning all elements)
- Fixed size. Overcomed by allocating huge arrays (wasteful) or resizing dynamically (good amortized performance)
- Constant-time random access. Map to a memory address
- Space efficient. Just the data
- Data locality. Better cache usage (image scanning all elements)
- Fixed size. Overcomed by allocating huge arrays (wasteful) or resizing dynamically (good amortized performance)
Cloud Armor protects your infrastructure from DDoS attacks
You define rules (for example to whitelist or deny certain IP addresses or CIDR ranges) to create security policies
These policies are enforced at the Point of Presence level (closer to the source of the attack)
You define rules (for example to whitelist or deny certain IP addresses or CIDR ranges) to create security policies
These policies are enforced at the Point of Presence level (closer to the source of the attack)
time-of-check-to-time-of-use errors
A program is vulnerable if it makes two file-based function calls where the 2nd call depends on the results of the 1st call.
Since the two calls are not atomic, the file can change between calls.
This is an example of race condition.
A program is vulnerable if it makes two file-based function calls where the 2nd call depends on the results of the 1st call.
Since the two calls are not atomic, the file can change between calls.
This is an example of race condition.
"Walking on water and developing software from a specification are easy if both are frozen."
- Edward V Berard
- Edward V Berard
"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
- Linus Torvalds
- Linus Torvalds
1969:
What're you doing with that 2KB of RAM?
Sending people to the moon
2020:
What're you doing with that 1.5GB of RAM?
Closing a tab in Chrome
What're you doing with that 2KB of RAM?
Sending people to the moon
2020:
What're you doing with that 1.5GB of RAM?
Closing a tab in Chrome
You spend many hours using your editor. Take your time to learn how to use it efficiently:
- Keyboard shortcuts
- Navigate to files
- Search and replace based on regular expressions
- Useful plugins
This alone will make you much more productive, and compounds over time.
- Keyboard shortcuts
- Navigate to files
- Search and replace based on regular expressions
- Useful plugins
This alone will make you much more productive, and compounds over time.
C++ developed by Bjorn Strauss up at Bell Labs in 1983
Also known as "C with classes", it's one of the most used languages. Some examples:
- Adobe Photoshop
- MYSQL Server
- Mozilla Firefox
- Gaming industry
- Banking and finance applications
cout<<"Hello World";
Also known as "C with classes", it's one of the most used languages. Some examples:
- Adobe Photoshop
- MYSQL Server
- Mozilla Firefox
- Gaming industry
- Banking and finance applications
cout<<"Hello World";
"Those who can imagine anything, can create the impossible."
- Alan Turing
- Alan Turing
Some "real life" applications of hash tables:
- Compilers symbol tables: to keep track of variables
- Games: from chessboard position to what to do next
- Caches
- DNS: from domain to server IP
- Spell checkers: from wrong spelling to list of words the user meant to type
- Compilers symbol tables: to keep track of variables
- Games: from chessboard position to what to do next
- Caches
- DNS: from domain to server IP
- Spell checkers: from wrong spelling to list of words the user meant to type
In 2003, James Strachan created Groovy as an improvement on Java
It is both a static and dynamic language with features similar to those of Python, Ruby, and Smalltalk.
print "Hello World!\n"
It is both a static and dynamic language with features similar to those of Python, Ruby, and Smalltalk.
print "Hello World!\n"
Ruby was created by Yukihiro Matsumoto in 1995
- Combines ideas from various other languages like Perl, Small talk, BASIC, Lisp
- Ruby is most commonly found in web development
- It also includes dynamic typing and garbage collection
puts 'Hello, world!'
- Combines ideas from various other languages like Perl, Small talk, BASIC, Lisp
- Ruby is most commonly found in web development
- It also includes dynamic typing and garbage collection
puts 'Hello, world!'
Challenges of building distributed systems:
- How to connect different networks, OS, hardware, programming languages, ...
- How to extend them
- How to handle security
- How to scale them: algorithms, concurrency, infrastructure, ...
- How to make them fail-tolerant
- How to connect different networks, OS, hardware, programming languages, ...
- How to extend them
- How to handle security
- How to scale them: algorithms, concurrency, infrastructure, ...
- How to make them fail-tolerant
Compiler warnings are to be taken seriously
Otherwise, just disable them, at your own peril.
Otherwise, just disable them, at your own peril.
"Code is like humor. When you have to explain it, it's bad."
- Cory House
- Cory House
"C++ is designed to allow you to express ideas, but if you don't have ideas or don't have any clue about how to express them, C++ doesn't offer much help."
- Bjarne Stroustrup
- Bjarne Stroustrup