Hello software developers,
Please check your code to ensure you're not making one of the following mistakes related to cryptography.
- Writing your own home-grown cryptography primitives (For example: Mifare Classic)
- Exception: For the sake of learning, but don't deploy it in production.
- Using a fast hash function (e.g. MD5, SHA256) for storing passwords. Use bcrypt instead.
- Not using a cryptographically secure random number generator
| +-----------------------------------------------------------------------------------------------------+ | |
| | name | bits | bytes | min | actual min value | max | actual max value | | |
| |---------+--------+--------+-------+----------------------------+--------+---------------------------| | |
| | boolean | 1-bit | -- | false | | true | | | |
| | byte | 8-bit | 1-byte | -2^7 | -128 | 2^7-1 | 127 | | |
| | short | 16-bit | 2-byte | -2^15 | -32'768 | 2^15-1 | 32'767 | | |
| | char | 16-bit | 2-byte | 0 | '\u0000' | 2^16-1 | '\uffff' (65535) | | |
| | int | 32-bit | 4-byte | -2^31 | -2'147'483'648 | 2^31-1 | 2'147'483'647 | | |
| | long | 64-bit | 8-byte | -2^63 | -9'223'372'036'854'775'808 | 2^63-1 | 9'223'372'036'854'775'807 | | |
| | float | 32-bit | 4-byte | +/- -3.4028235 * 10^38 | +/- 3.4028235 * 10^38 |
(by @andrestaltz)
So you're curious in learning this new thing called (Functional) Reactive Programming (FRP).
Learning it is hard, even harder by the lack of good material. When I started, I tried looking for tutorials. I found only a handful of practical guides, but they just scratched the surface and never tackled the challenge of building the whole architecture around it. Library documentations often don't help when you're trying to understand some function. I mean, honestly, look at this:
Rx.Observable.prototype.flatMapLatest(selector, [thisArg])
Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence.