(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| # v19 2025-11-06 | |
| # prevent listing files in folders | |
| Options -Indexes | |
| # some security rules | |
| <IfModule mod_rewrite.c> | |
| RewriteEngine On | |
| # prevent php execution in uploads | |
| RewriteRule /uploads/.*\.php - [F] |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| // svgPathToCommands('M10,10 l 5,7 C-5,7.2,.3-16,24,10 z'); | |
| // | |
| // produces: | |
| // | |
| // [ { marker: "M", values: [ 10, 10 ] }, | |
| // { marker: "l", values: [ 5, 7 ] }, | |
| // { marker: "C", values: [ -5, 7.2, 0.3, -16, 24, 10 ] }, | |
| // { marker: "z", values: [ ] } ] | |
| // | |
| // commandsToSvgPath(svgPathToCommands('M10,10 l 5,7 C-5,7.2,.3-16,24,10 z')) |
| version: '2' | |
| services: | |
| nginx: | |
| image: nginx:alpine | |
| ports: | |
| - "8000:80" | |
| volumes: | |
| - ./nginx.conf:/etc/nginx/nginx.conf:ro | |
| links: | |
| - fpm |
| import Foundation | |
| import Combine | |
| enum APIError: Error, LocalizedError { | |
| case unknown, apiError(reason: String), parserError(reason: String) | |
| var errorDescription: String? { | |
| switch self { | |
| case .unknown: | |
| return "Unknown error" |