-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
72 lines (56 loc) · 2.53 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
TODOs
=====
Investigate and consider implementing a second version for `carbon_fs_read_entire_file` function, using `mmap` instead of `fread`.
Introduce these functions for completeness:
- `u8 carbon_string_starts_with_substr(const char *s, const char *sub)`.
- `u8 carbon_strview_starts_with(CBN_StrView sv, CBN_StrView prefix)`.
- `u8 carbon_strview_ends_with(CBN_StrView sv, CBN_StrView suffix)`.
Logging functions (API):
- `carbon_log_info`, `carbon_log_warn`, `carbon_log_error`.
- `carbon_log(CARBON_LOG_INFO, ...)`, `carbon_log(CARBON_LOG_WARN, ...)`, `carbon_log(CARBON_LOG_ERROR, ...)`.
- They're going to be macros that use the `carbon_println` macro to print the logs, using the already established format:
- INFO level: {YELLOW} -> "[*] __FILE__:__LINE__ (__func__) :: %$"
- WARN level: {MAGENTA} -> "[?] __FILE__:__LINE__ (__func__) :: %$"
- ERROR level: {RED} -> "[!] __FILE__:__LINE__ (__func__) :: %$"
Buy and configure the domain for the product's website: `carbonlib.org`.
Implement argument/flag CLI parsing, just like in Go: <https://pkg.go.dev/flag>.
- Tsoding's video on it: <https://www.youtube.com/watch?v=mpqaQIrVgew>.
- Tsoding's repository: <https://github.com/tsoding/flag.h>.
Take a look at this: <https://en.cppreference.com/w/cpp/preprocessor/replace>.
Take a look at this: <https://santhoshkris.medium.com/threading-macros-in-clojure-eb08faf85f80>.
Implement motion detection algorithm:
- Given 2 imgs, return bool whether movement is detected going
from one img to the other.
- `u8 motion_detection(const u8 *first, const u8 *second)`
Create `CARBON_NO_BOUND_CHECKS` macro, which allows disabling bounds
checking on all relevant operations.
Implement CNN (Convolutional Neural Network):
- `carbon_cnn_*` module
- `CBN_ConvNeuralNet` or `CBN_ConvNet`
Implement object detection algorithm:
- YOLO (You Only Look Once)
- SSD (Single Shot Detector)
Custom arena/linear memory allocator:
- `carbon_mem_arena_init`
- `carbon_mem_arena_alloc`
- `carbon_mem_arena_free`
Implement hashing functions:
- `carbon_crypto_md5`
- `carbon_crypto_sha1`
- `carbon_crypto_sha256`
- `carbon_crypto_keccak256`
Research:
- Index of Coincidence (IoC)
- Symmetric encryption algorithms (e.g. AES)
- Modes of operation (e.g. CBC, CTR, GCM)
- Key sizes (e.g. 128, 192, 256, 384, 512)
- Key-agreement protocol (e.g. DH, ECDH)
Add russian alternatives to all functions (in cyrillic script).
- carbon == углерод
- implementation == выполнение
- test == тест
- tests == тесты
;; Local Variables:
;; mode: text
;; coding: utf-8
;; End: