-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
69 lines (54 loc) · 2.15 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
TODOs
=====
Implement basic TCP socket API (in header, after the FS):
- `i32 carbon_socket_tcp_create(void);`
- `void carbon_socket_tcp_bind(i32 fd, ...);`
- `void carbon_socket_tcp_listen(i32 fd);`
- `void carbon_socket_tcp_connect(int fd, ...)`
Investigate and consider implementing a Promise async API to do work (like in JS).
Investigate and consider implementing a second version for `carbon_fs_read_entire_file` function, using `mmap` instead of `fread`.
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>.
- <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 == тесты
- print == печать
- println == печать_линия
- foreach == для_каждого
;; Local Variables:
;; mode: text
;; coding: utf-8
;; End: