-
Notifications
You must be signed in to change notification settings - Fork 331
/
tasks.yml
276 lines (276 loc) · 9.47 KB
/
tasks.yml
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
categories:
- title: Command Line
tasks:
- title: Parse Command Line Arguments
slug: parse-command-line-arguments
- title: Using the ANSI Terminal
slug: using-the-ansi-terminal
description: >
Use ANSI escape codes for cursor location, font, and colour in video text
terminal emulators.
- title: Compilation & Linking
tasks:
- title: Compile and Link to a Bundled C Library
slug: link-with-a-bundled-c-library
provided by an OCaml module.
- title: Generate OCaml Bindings for a C Library
slug: generate-ocaml-bindings-c-library
C library, using the OCaml foreign function interface.
- title: Compression
tasks:
- title: Decompress a Single File Compressed With GZIP
slug: decompress-single-file-gzip
- title: Compress a Single File with GZIP
slug: compress-single-file-gzip
- title: Decompress a ZIP Archive Containing Multiple Files
slug: decompress-zip-archive
- title: Create a ZIP Archive Containing Multiple Files
slug: create-zip-archive
- title: Decompressing a Tarball
slug: decompressing-a-tarball
- title: Compress a Directory Into a Tarball
slug: compress-a-directory-into-a-tarball
- title: Concurrency & Parallelism
subcategories:
- title: Single-Threaded Concurrency
tasks:
- title: Create and Await Promises
slug: create-and-await-promises
description: |
Create promises and run them in parallel,
as well as sequentially. Includes a sleep task.
- title: Timeout Reading From Stdin With Promises
slug: timeout-promise
description: |
Prompt the user to input some text on stdin -
if the user does not finish before the timeout, abort.
- title: Parallelism & Multi-Threading
tasks:
- title: Spawn a Thread and Receive a Response
slug: spawn-a-thread-and-receive-a-response
- title: Pass Data Between Parallel Threads
slug: pass-data-between-parallel-threads
- title: Cryptography
tasks:
- title: Calculate the SHA-256 Digest of a File
slug: calculate-sha-256-digest-of-file
- title: Sign and Verify a Message With an HMAC Digest
slug: sign-and-verify-hmac-digest
- title: Salt and Hash a Password With PBKDF2
slug: salt-and-hash-password-with-pkgdf2
- title: Data Structures & Algorithms
subcategories:
- title: Sorting
tasks:
- title: Sorting Lists and Arrays
slug: sorting-lists-and-arrays
- title: Hash Tables
tasks:
- title: Use a Hash Table With Given Key and Value Types
slug: use-hash-table-with-given-key-value-types
- title: Database
subcategories:
- title: SQLite
tasks:
- title: SQLite CREATE, INSERT, SELECT
slug: sqlite-create-insert-select
- title: SQLite Full Text Search
slug: sqlite-full-text-search
- title: PostgreSQL
tasks:
- title: PostgreSQL CREATE, INSERT, SELECT
slug: postgresql-create-insert-select
- title: PostgreSQL Aggregate Query
slug: postgresql-aggregate-query
- title: PostgreSQL Full Text Search
slug: postgresql-full-text-search
- title: Data Formats
subcategories:
- title: CSV
tasks:
- title: Read Tuples / Records from CSV
slug: read-csv
- title: Serialise Tuples / Records to CSV
slug: serialise-csv
- title: JSON
tasks:
- title: Serialise JSON Data
slug: serialise-to-json
- title: Deserialise JSON Data
slug: deserialise-from-json
- title: YAML
tasks:
- title: Serialise YAML Data
slug: serialise-to-yaml
- title: Deserialise YAML Data
slug: deserialise-from-yaml
description: |
Deserialise a YAML file whose structure maps to some OCaml types.
- title: Deserialise and Post-Process YAML Data
slug: deserialise-post-process-from-yaml
description: |
Deserialise a YAML file whose structure does not directly map to some OCaml types.
- title: XML
tasks:
- title: Parse XML
slug: xml-parse
- title: Generate XML
slug: xml-generate
- title: Date and Time
tasks:
- title: Get Today's Date
slug: get-todays-date
- title: Measure Elapsed Time
slug: measure-elapsed-time
- title: Convert a Local Time to Another Time Zone
slug: convert-time-to-another-time-zone
- title: Convert Between Date and Unix Timestamp
slug: convert-date-unix-timestamp
- title: Display Formatted Date and Time
slug: display-formatted-date-time
- title: Parse Date and Time from String
slug: parse-date-time-from-string
- title: Debugging
tasks:
- title: Debug Print a Value
slug: debug-print-a-value
- title: Log a Debug / Error Message to Stdout / Stderr
slug: log-debug-error-message
- title: Log to the Unix Syslog
slug: log-to-unix-syslog
- title: Encoding
tasks:
- title: URL- / Percent-Encode a String
slug: url-percent-encode-string
- title: Encode a String as application/x-www-form-urlencoded
slug: encode-x-www-form-urlencoded
- title: Encode and Decode Bytestrings From Hex-Strings
slug: encode-decode-hex
- title: Encode and Decode Base64
slug: encode-decode-base64
- title: Read and Write Integers in Little-Endian Byte Order
slug: read-write-integers-little-endian
- title: File System
tasks:
- title: Read and Write from a Text File
slug: read-and-write-text-file
- title: Basic File and Directory Operations
slug: basic-file-system-operations
description: |
Exists, copy, move (rename), delete, change directory, list directory, delete directory.
- title: File Size
slug: file-size
- title: Change File Permissions
slug: change-file-permissions
- title: Walk File Tree
slug: walk-file-tree
- title: Find Files Matching a Pattern
slug: find-files-matching-a-pattern
- title: Random Values
tasks:
- title: Generate Random `int`, `float`, and `char`
slug: generate-random-values
- title: Mathematics
subcategories:
- title: Vector & Matrix Operations
tasks:
- title: Normalise a Vector
slug: normalize-vector
- title: Matrix Addition and Multiplication
slug: matrix-addition-multiplication
- title: Invert a Matrix
slug: invert-matrix
- title: Nearest-Neighbour Search
slug: nearest-neighbour-search
- title: Geographical Calculations
tasks:
- title: Calculate Geodistance Between Two Points
slug: calculate-geodistance-between-points
- title: Networking
tasks:
- title: TCP Client
slug: tcp-client
description: |
TCP client that makes requests to the echo TCP
server from the [TCP server recipe](https://ocaml.org/cookbook/tcp-server).
- title: TCP Server
slug: tcp-server
description: |
TCP server that responds to every incoming message by
sending the received message back to the client. The
[TCP client recipe](https://ocaml.org/cookbook/tcp-client) provides a matching client.
- title: Operating System
tasks:
- title: Run an External Command and Process Stdout
slug: run-command-process-stdout
- title: Run Piped External Commands
slug: run-piped-commands
- title: Read an Environment Variable
slug: read-environment-variable
- title: Graphical User Interfaces
tasks: []
- title: Text Processing
subcategories:
- title: Unicode / UTF-8
tasks:
- title: Collect Unicode Graphemes
slug: collect-unicode-graphemes
- title: UTF-8 Text Processing
slug: utf8-text-processing
description: |
Handling of UTF-8 strings, including length, validation, character extraction,
byte indexing, and case mapping.
- title: Regular Expressions
tasks:
- title: Validate an Email Address
slug: regex-validate-email
- title: Extract Phone Numbers from Text
slug: regex-extract-phone-numbers
- title: Replace All Occurrences of a Text Pattern With Another Pattern
slug: regex-replace-pattern
- title: Match on Groups in Regular Expressions
slug: regex-parse-date
description: |
Use Regexp to parse a YYYY-MM-DD date.
- title: Web Programming
subcategories:
- title: HTTP Clients
tasks:
- title: Make a HTTP GET Request
slug: http-get-request
- title: Make a HTTP GET Request With Basic Authentication
slug: http-get-basic-auth
- title: Download a File to a Temporary Directory
slug: download-file-to-temporary-dir
- title: Make a Partial Download With HTTP Range Header
slug: make-partial-download-with-http-range-header
- title: Make an HTTP POST/PATCH Request with Bearer Token Authentication
slug: http-post-patch-request-bearer-auth
- title: Dealing with HTML
tasks:
- title: Render an HTML Template
slug: render-html-template
- title: Extract All Links From an HTML String
slug: extract-links-from-html
- title: Running a Web Server
tasks:
- title: Start a Web Server With a 'Hello World' Endpoint
slug: start-a-web-server-hello-world
- title: Start a Web Server That Serves an HTML Template
slug: start-a-web-server-html-template
- title: Use Basic Authentication to Secure a Route
slug: use-basic-auth-on-web-server
- title: Media Types (MIME)
tasks:
- title: Get MIME Type From String
slug: get-mime-type-from-string
- title: Get MIME Type From Filename
slug: get-mime-type-from-filename
- title: Parse MIME Type of an HTTP Response
slug: parse-mime-type-of-http-response
- title: URL and URI Processing
tasks:
- title: Parse a URI from String and Access Individual Parts
slug: uri-parsing
- title: Encode a URI to String
slug: uri-encoding