Map [1]
| Operation | Time Complexity |
|---|---|
| Access | O(log n) |
| Search | O(log n) |
| Insertion | O(n) for <= 32 elements, O(log n) for > 32 elements [2] |
| Deletion | O(n) for <= 32 elements, O(log n) for > 32 elements |
| # Preloading usually required an extra query. | |
| # To do it in one query, a `join` is needed, and the call to `preload` needs to know the name of join | |
| # This macro does both the `join` and `preload` together | |
| defmodule Preloader do | |
| import Ecto, only: [assoc: 2] | |
| alias Ecto.Query.Builder.{Join, Preload} | |
| defmacro preload_join(query, association) do | |
| expr = quote do: assoc(l, unquote(association)) | |
| binding = quote do: [l] |
| #!/bin/bash | |
| PID_FILE=~/.restic_backup.pid | |
| TIMESTAMP_FILE=~/.restic_backup_timestamp | |
| if [ -f "$PID_FILE" ]; then | |
| if ps -p $(cat $PID_FILE) > /dev/null; then | |
| echo $(date +"%Y-%m-%d %T") "File $PID_FILE exist. Probably backup is already in progress." | |
| exit 1 | |
| else |