Parallel Programming refers to the creation of software that can be run in parallel across multiple processors or cores.
- Beginning Concurrency Patterns Dec 30
- Go Native Concurrency Primitives & Best Practices Dec 30
- Parallelism and Concurrency; What's the Difference? Dec 29
- Go 1.16 Release Overview Mar 24
- It’s a 2021 PI (π) Day Special! Try Your Very Own Monte Carlo PI (π) Simulation! Mar 15
- A Quick Recap of Single-Core vs Multi-Core Processing Feb 16
Reflection is the ability to examine, understand, and modify the internal structure of an object through reading/writing of metadata at runtime. Most statically typed languages have a built-in reflection capability, most likely through the use of a library. It is important to understand that because reflection happens at runtime there is no type checking at compile time for reflection based code. This can lead to unpredictable behavior and bugs. Reflection also has a performance impact, as it requires a lot of runtime processing to perform in order to manipulate objects in memory.
Remediation is the process of fixing a vulnerability through a patch, configuration change, or other means. In application security this generally involves a code change to fix a vulnerability.
Risk, the most common term in cybersecurity, is the measure of potential for loss due to a vulnerability. Risk is often expressed as the probability of a vulnerability being exploited multiplied by the impact of the exploit. Due to the unpredictable nature of software, and computing in general, it is impossible to accurately calculate the probability of a vulnerability being discovered and exploited in the wild. Risk is the nearest proxy we can use to measure the potential for loss.
Side effects are generally unintended consequences of a function or program. These unintended consequences can be good or bad. In general, side effects are considered bad because they can make it difficult to reason about the behavior of a program and can lead to inconsistent behavior.