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
Merkle trees, also known as binary hash trees, are a type of binary tree.
hey can be used to efficiently verify the integrity of large sets of data.
They are used in both blockchain and non-blockchain-related projects.
hey can be used to efficiently verify the integrity of large sets of data.
They are used in both blockchain and non-blockchain-related projects.
Types of programming languages, based on "types":
- Strongly vs Weakly typed -> whether you are required to declare types for variables/functions.
- Statically vs Dynamically typed -> whether type checking is done at compile-time or run-time.
- Strongly vs Weakly typed -> whether you are required to declare types for variables/functions.
- Statically vs Dynamically typed -> whether type checking is done at compile-time or run-time.
Anything that can go wrong will go wrong
Anything that can't go wrong will go wrong anyway
Anything that can't go wrong will go wrong anyway
Software is more like science that mathematics.
You cannot prove that you'r software is correct (no bugs).
You can write a bunch of tests to show that your code hasn't failed (so far).
You cannot prove that you'r software is correct (no bugs).
You can write a bunch of tests to show that your code hasn't failed (so far).
It's possible to "increase the available RAM" on a Linux machine using disk.
The Linux virtual memory system can move data from memory disk and viceversa, in a process called swapping.
The disk area used to store memory pages is called swap space.
The Linux virtual memory system can move data from memory disk and viceversa, in a process called swapping.
The disk area used to store memory pages is called swap space.
The first 90% of a project takes 90% of development time.
The last 10% takes the other 90% of the time.
The last 10% takes the other 90% of the time.
In C++, to prevent resource leaks, use RAII
Resource Acquisition Is Initialization
Acquire resources in constructors and release them in destructors
Resource Acquisition Is Initialization
Acquire resources in constructors and release them in destructors
"Debugging is like being the detective in a crime movie where you are also the murderer."
- Filipe Fortes
- Filipe Fortes
Python's list comprehensions provides a concise way of creating a list from another.
For example:
cubes = [x**3 for x in a].
In general, they are clearer than maps and filters built-in function.
For example:
cubes = [x**3 for x in a].
In general, they are clearer than maps and filters built-in function.