Browse Source

Used sed to update all links to gitea instead of github

gh-pages
Alex Williams 9 months ago
parent
commit
9bf8250137
Signed by: aw GPG Key ID: 19EE4AAA361A7E2C
40 changed files with 161 additions and 161 deletions
  1. +1
    -1
      _posts/2015-02-22-nanomsg.md
  2. +3
    -3
      _posts/2015-03-08-json.md
  3. +6
    -6
      _posts/2015-03-16-https.md
  4. +1
    -1
      _posts/2015-03-17-bcrypt.md
  5. +6
    -6
      _posts/2015-03-18-unit.md
  6. +1
    -1
      _posts/2017-02-27-semver.md
  7. +4
    -4
      _posts/2018-05-11-json-v3.md
  8. +4
    -4
      _posts/2019-03-15-awscurl.md
  9. +3
    -3
      _posts/2020-01-02-action.md
  10. +2
    -2
      _posts/2020-06-16-keyvalue.md
  11. +1
    -1
      _posts/2020-06-18-supervisor.md
  12. +7
    -7
      _posts/2020-09-16-posixmq.md
  13. +1
    -1
      _posts/2020-10-29-rust.md
  14. +1
    -1
      _site/2015/02/22/nanomsg/index.html
  15. +3
    -3
      _site/2015/03/08/json/index.html
  16. +6
    -6
      _site/2015/03/16/https/index.html
  17. +1
    -1
      _site/2015/03/17/bcrypt/index.html
  18. +6
    -6
      _site/2015/03/18/unit/index.html
  19. +1
    -1
      _site/2017/02/27/semver/index.html
  20. +4
    -4
      _site/2018/05/11/json-v3/index.html
  21. +4
    -4
      _site/2019/03/15/awscurl/index.html
  22. +3
    -3
      _site/2020/01/02/action/index.html
  23. +2
    -2
      _site/2020/06/16/keyvalue/index.html
  24. +1
    -1
      _site/2020/06/18/supervisor/index.html
  25. +7
    -7
      _site/2020/09/16/posixmq/index.html
  26. +1
    -1
      _site/2020/10/29/rust/index.html
  27. +41
    -41
      _site/atom.xml
  28. +1
    -1
      _site/index.html
  29. +1
    -1
      _site/page10/index.html
  30. +6
    -6
      _site/page11/index.html
  31. +3
    -3
      _site/page12/index.html
  32. +1
    -1
      _site/page13/index.html
  33. +7
    -7
      _site/page2/index.html
  34. +1
    -1
      _site/page3/index.html
  35. +2
    -2
      _site/page4/index.html
  36. +3
    -3
      _site/page5/index.html
  37. +4
    -4
      _site/page6/index.html
  38. +4
    -4
      _site/page7/index.html
  39. +1
    -1
      _site/page8/index.html
  40. +6
    -6
      _site/page9/index.html

+ 1
- 1
_posts/2015-02-22-nanomsg.md View File

@ -4,7 +4,7 @@ name: nanomsg
title: Nanomsg FFI Bindings for PicoLisp
---
You can [get it on GitHub](https://github.com/aw/picolisp-nanomsg).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-nanomsg).
# PicoLisp-Nanomsg Explanation


+ 3
- 3
_posts/2015-03-08-json.md View File

@ -4,7 +4,7 @@ name: json
title: JSON Encoder/Decoder for PicoLisp
---
You can [get it on GitHub](https://github.com/aw/picolisp-json).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-json).
This library can be used to parse and serialize (encode/decode) JSON strings in [PicoLisp](http://picolisp.com/).
@ -12,7 +12,7 @@ This library can be used to parse and serialize (encode/decode) JSON strings in
# Explanation: JSON Encoder/Decoder for PicoLisp
This document provides a short walkthrough of the source code for the [PicoLisp-JSON](https://github.com/aw/picolisp-json.git) encoder/decoder.
This document provides a short walkthrough of the source code for the [PicoLisp-JSON](https://git.a1w.ca/aw/picolisp-json.git) encoder/decoder.
It's split into a few sections for easier reading:
@ -24,7 +24,7 @@ It's split into a few sections for easier reading:
Make sure you read the [README](README.md) to get an idea of what this library does.
Also, I recommend you read my [Nanomsg Explanation](https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md) for additional PicoLisp tips and ideas.
Also, I recommend you read my [Nanomsg Explanation](https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md) for additional PicoLisp tips and ideas.
# Global variables


+ 6
- 6
_posts/2015-03-16-https.md View File

@ -4,7 +4,7 @@ name: https
title: HTTP(S) client for PicoLisp
---
You can [get it on GitHub](https://github.com/aw/picolisp-https).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-https).
This library can be used to make HTTP and HTTPS requests in [PicoLisp](http://picolisp.com), with support for authentication.
@ -12,12 +12,12 @@ This library can be used to make HTTP and HTTPS requests in [PicoLisp](http://pi
# Explanation: HTTP(S) client for PicoLisp
This document provides a short walkthrough of the source code for the [PicoLisp-HTTPS](https://github.com/aw/picolisp-https.git) client.
This document provides a short walkthrough of the source code for the [PicoLisp-HTTPS](https://git.a1w.ca/aw/picolisp-https.git) client.
I won't cover concepts which were covered in previous source code explanations. You can read them here:
* [Nanomsg Explanation](https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md)
* [JSON Explanation](https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md)
* [Nanomsg Explanation](https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md)
* [JSON Explanation](https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md)
This document is split into a few sections:
@ -184,7 +184,7 @@ Let's talk about danger first. In this function, we uses [setq](http://software-
The [lisp](http://software-lab.de/doc/refL.html#lisp) function is quite special. When using `(native)` for C calls, certain functions require a callback as an argument, or "function pointer" (Google it).
The `(ne-set-server-auth)` function requires a callback as its second argument, so we create one using `(lisp)`. If you've read the [JSON explanations](https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md#make-array), you'll quickly notice there's an anonymous function in this `(lisp)` call. It essentially sends 5 arguments (which are numbers) to the `(do-auth)` function, under the name `ne_auth_creds`.
The `(ne-set-server-auth)` function requires a callback as its second argument, so we create one using `(lisp)`. If you've read the [JSON explanations](https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md#make-array), you'll quickly notice there's an anonymous function in this `(lisp)` call. It essentially sends 5 arguments (which are numbers) to the `(do-auth)` function, under the name `ne_auth_creds`.
Here's the C code to give a better picture:
@ -210,7 +210,7 @@ The main requirement is to set the `username`, `password`, and return an integer
Attempt )
```
Whoa wait, what's that `@` thing doing there? Remember we talked about the [@ result](https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md#nn_symbols)? Well, this is **NOT** that.
Whoa wait, what's that `@` thing doing there? Remember we talked about the [@ result](https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md#nn_symbols)? Well, this is **NOT** that.
This is actually a [transient symbol](http://software-lab.de/doc/native.html#libs) which refers to the main program (PicoLisp).


+ 1
- 1
_posts/2015-03-17-bcrypt.md View File

@ -4,7 +4,7 @@ name: bcrypt
title: bcrypt hashing for PicoLisp
---
You can [get it on GitHub](https://github.com/aw/picolisp-bcrypt).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-bcrypt).
This library can be used to hash strings (ex: passwords) using bcrypt in [PicoLisp](http://picolisp.com/).


+ 6
- 6
_posts/2015-03-18-unit.md View File

@ -4,7 +4,7 @@ name: unit
title: Unit Testing framework for PicoLisp
---
You can [get it on GitHub](https://github.com/aw/picolisp-unit).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-unit).
This library can be used for Unit Testing your [PicoLisp](http://picolisp.com/) code.
@ -12,13 +12,13 @@ This library can be used for Unit Testing your [PicoLisp](http://picolisp.com/)
# Explanation: Unit Testing framework for PicoLisp
This document provides a short walkthrough of the source code for the [PicoLisp-Unit](https://github.com/aw/picolisp-unit) testing framework.
This document provides a short walkthrough of the source code for the [PicoLisp-Unit](https://git.a1w.ca/aw/picolisp-unit) testing framework.
I won't cover concepts which were discussed in previous source code explanations. You can read them here:
* [Nanomsg Explanation](https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md)
* [JSON Explanation](https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md)
* [HTTPS Explanation](https://github.com/aw/picolisp-https/blob/master/EXPLAIN.md)
* [Nanomsg Explanation](https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md)
* [JSON Explanation](https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md)
* [HTTPS Explanation](https://git.a1w.ca/aw/picolisp-https/blob/master/EXPLAIN.md)
This document is split into a few sections:
@ -200,4 +200,4 @@ This library introduces simple wrappers around those predicates, which then call
This one is quite simple, all it does is check if `Expected` is equal to `Result`.
The [other assertions](https://github.com/aw/picolisp-unit/blob/master/README.md#assertions-table) are quite similar and seem to cover most test cases. I've considered adding opposite tests such as `refute`, but I've rarely found a need for them as there are alternate approaches.
The [other assertions](https://git.a1w.ca/aw/picolisp-unit/blob/master/README.md#assertions-table) are quite similar and seem to cover most test cases. I've considered adding opposite tests such as `refute`, but I've rarely found a need for them as there are alternate approaches.

+ 1
- 1
_posts/2017-02-27-semver.md View File

@ -4,7 +4,7 @@ name: semver
title: SemVer for PicoLisp
---
You can [get it on GitHub](https://github.com/aw/picolisp-semver).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-semver).
This library can validate and compare **Major.Minor.Patch** versions (ex: `"1.0.0"`).
It ignores pre-release, build, metadata, and special extensions (ex: `.alpha.1`).


+ 4
- 4
_posts/2018-05-11-json-v3.md View File

@ -4,7 +4,7 @@ name: json-v3
title: JSON Encoder/Decoder in pure PicoLisp
---
You can [get it on GitHub](https://github.com/aw/picolisp-json).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-json).
This library can be used to parse and serialize (encode/decode) JSON strings in [PicoLisp](http://picolisp.com/).
@ -12,9 +12,9 @@ This library can be used to parse and serialize (encode/decode) JSON strings in
# Explanation: JSON Encoder/Decoder in pure PicoLisp
This document provides a short walkthrough of the source code for the [PicoLisp-JSON](https://github.com/aw/picolisp-json.git) encoder/decoder.
This document provides a short walkthrough of the source code for the [PicoLisp-JSON](https://git.a1w.ca/aw/picolisp-json.git) encoder/decoder.
**Note:** This document covers `v3` of the JSON library. To view the older (C/ffi bindings) version [click here](https://github.com/aw/picolisp-json/blob/v2.2.0/EXPLAIN.md).
**Note:** This document covers `v3` of the JSON library. To view the older (C/ffi bindings) version [click here](https://git.a1w.ca/aw/picolisp-json/blob/v2.2.0/EXPLAIN.md).
It's split into a few sections for easier reading:
@ -227,4 +227,4 @@ The previously tokenized JSON string would end up like this:
## encoding JSON
The code for encoding JSON strings hasn't changed, so feel free to [read about it here](https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md#encoding-json).
The code for encoding JSON strings hasn't changed, so feel free to [read about it here](https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md#encoding-json).

+ 4
- 4
_posts/2019-03-15-awscurl.md View File

@ -4,11 +4,11 @@ name: awscurl
title: PicoLisp AWS CLI tool using OpenSSL and Curl
---
You can [get it on GitHub](https://github.com/aw/picolisp-awscurl).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-awscurl).
This command line tool can be used to sign [AWS Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) requests and make calls to various AWS APIs.
[![GitHub release](https://img.shields.io/github/release/aw/picolisp-awscurl.svg)](https://github.com/aw/picolisp-awscurl) [![Dependency](https://img.shields.io/badge/[deps] picolisp--unit-v3.0.0-ff69b4.svg)](https://github.com/aw/picolisp-unit.git) ![Build status](https://github.com/aw/picolisp-awscurl/workflows/CI/badge.svg?branch=master)
[![GitHub release](https://img.shields.io/github/release/aw/picolisp-awscurl.svg)](https://git.a1w.ca/aw/picolisp-awscurl) [![Dependency](https://img.shields.io/badge/[deps] picolisp--unit-v3.0.0-ff69b4.svg)](https://github.com/aw/picolisp-unit.git) ![Build status](https://github.com/aw/picolisp-awscurl/workflows/CI/badge.svg?branch=master)
1. [Requirements](#requirements)
2. [Usage](#usage)
@ -16,7 +16,7 @@ This command line tool can be used to sign [AWS Signature Version 4](https://doc
# Requirements
* `picolisp`: 32-bit or 64-bit `v3.1.11+`, tested up to PicoLisp `v20.6.29`, [see test runs](https://github.com/aw/picolisp-awscurl/actions/)
* `picolisp`: 32-bit or 64-bit `v3.1.11+`, tested up to PicoLisp `v20.6.29`, [see test runs](https://git.a1w.ca/aw/picolisp-awscurl/actions/)
* `libcrypto.so`: for using `--native` functions with PicoLisp `v17.12+`
* `picolisp-unit`: `v3.0.0+` for testing the library
* `openssl`: `v1.0.0+` for signing and hashing strings
@ -30,7 +30,7 @@ The file `libawscurl.l` can be included as a library, rather than using the comm
## WARNING
There is currently **no validation** on command line arguments. Be careful the input you provide. [See issue #1](https://github.com/aw/picolisp-awscurl/issues/1)
There is currently **no validation** on command line arguments. Be careful the input you provide. [See issue #1](https://git.a1w.ca/aw/picolisp-awscurl/issues/1)
### Environment variables


+ 3
- 3
_posts/2020-01-02-action.md View File

@ -4,10 +4,10 @@ name: action
title: GitHub Action to run 32-bit or 64-bit PicoLisp code
---
You can [get it on GitHub](https://github.com/aw/picolisp-action) or the [GitHub Marketplace](https://github.com/marketplace/actions/picolisp-action).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-action) or the [GitHub Marketplace](https://github.com/marketplace/actions/picolisp-action).
This action downloads, compiles, and globally installs PicoLisp.
It can be used to run PicoLisp code such as [units tests](https://github.com/aw/picolisp-unit).
It can be used to run PicoLisp code such as [units tests](https://git.a1w.ca/aw/picolisp-unit).
![Example PicoLisp tests](https://user-images.githubusercontent.com/153401/70022112-e4695580-158a-11ea-886d-0db01dbe7a66.png)
@ -35,7 +35,7 @@ It can be used to run PicoLisp code such as [units tests](https://github.com/aw/
## Example workflow
See the [picolisp-json workflow](https://github.com/aw/picolisp-json/blob/master/.github/workflows/main.yml) for a more detailed usage example.
See the [picolisp-json workflow](https://git.a1w.ca/aw/picolisp-json/blob/master/.github/workflows/main.yml) for a more detailed usage example.
## Code


+ 2
- 2
_posts/2020-06-16-keyvalue.md View File

@ -4,7 +4,7 @@ name: keyvalue
title: Redis-inspired key/value store written in PicoLisp
---
You can [get it on GitHub](https://github.com/aw/picolisp-kv).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-kv).
This program mimics functionality of a [Redis™](https://redis.io) in-memory database, but is designed specifically for [PicoLisp](https://picolisp.com) applications with optional on-disk persistence and encryption.
@ -73,7 +73,7 @@ Received data will be returned as-is (list, integer, string, etc). Wrap the resu
-> "12345"
```
Feel free to observe the example code in [client.l](https://github.com/aw/picolisp-kv/blob/master/client.l).
Feel free to observe the example code in [client.l](https://git.a1w.ca/aw/picolisp-kv/blob/master/client.l).
> **Note**: Using `(kv-send-data)` will send the data to the server and automatically block the client while waiting for a response.


+ 1
- 1
_posts/2020-06-18-supervisor.md View File

@ -4,7 +4,7 @@ name: supervisor
title: Unicorn-inspired PicoLisp daemon to spawn and manage worker processes
---
You can [get it on GitHub](https://github.com/aw/picolisp-supervisor).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-supervisor).
This program mimics functionality of [Unicorn](https://yhbt.net/unicorn/), without being limited to HTTP applications.


+ 7
- 7
_posts/2020-09-16-posixmq.md View File

@ -4,7 +4,7 @@ name: posixmq
title: POSIX Message Queues library for PicoLisp
---
You can [get it on GitHub](https://github.com/aw/picolisp-posixmq).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-posixmq).
_[POSIX Message Queues](https://man7.org/linux/man-pages/man7/mq_overview.7.html)_ provide a dependency-free mechanism for processes to exchange data in the form of messages.
@ -26,7 +26,7 @@ This library makes it simple to embed support for _POSIX Message Queues_ in [Pic
The first step is to run the unit tests: `make check`
If those fail, jump to the [TUTORIALS](https://github.com/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md) section to perform the initial setup and and system check.
If those fail, jump to the [TUTORIALS](https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md) section to perform the initial setup and and system check.
If all works well, then your system is ready to use this library.
@ -61,9 +61,9 @@ The code below illustrates how to use the queue for sending and receiving a mess
# Documentation
Additional usage and reference documentation can be found in [docs/](https://github.com/aw/picolisp-posixmq/blob/master/docs/)
Additional usage and reference documentation can be found in [docs/](https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/)
* [TUTORIALS](https://github.com/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md): some guides **for beginners** to get started using this library
* [HOWTO](https://github.com/aw/picolisp-posixmq/blob/master/docs/HOWTO.md): a set of recipes for performing more advanced tasks with this library
* [EXPLAIN](https://github.com/aw/picolisp-posixmq/blob/master/docs/EXPLAIN.md): an explanation of some key concepts, including how this library works
* [REFERENCE](https://github.com/aw/picolisp-posixmq/blob/master/docs/REFERENCE.md): technical information on the internals of this library
* [TUTORIALS](https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md): some guides **for beginners** to get started using this library
* [HOWTO](https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/HOWTO.md): a set of recipes for performing more advanced tasks with this library
* [EXPLAIN](https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/EXPLAIN.md): an explanation of some key concepts, including how this library works
* [REFERENCE](https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/REFERENCE.md): technical information on the internals of this library

+ 1
- 1
_posts/2020-10-29-rust.md View File

@ -4,7 +4,7 @@ name: rust
title: PicoLisp FFI with Rust
---
You can [get it on GitHub](https://github.com/aw/picolisp-rust).
You can [get it on my Git server](https://git.a1w.ca/aw/picolisp-rust).
This repo provides a simple example of how to use [PicoLisp](https://software-lab.de/down.html) with [Rust](https://www.rust-lang.org/tools/install) using PicoLisp's FFI `(native)` functionality.


+ 1
- 1
_site/2015/02/22/nanomsg/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">Nanomsg FFI Bindings for PicoLisp</h1>
<span class="post-date">22 Feb 2015</span>
<p>You can <a href="https://github.com/aw/picolisp-nanomsg">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-nanomsg">get it on my Git server</a>.</p>
<h1 id="picolisp-nanomsg-explanation">PicoLisp-Nanomsg Explanation</h1>


+ 3
- 3
_site/2015/03/08/json/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">JSON Encoder/Decoder for PicoLisp</h1>
<span class="post-date">08 Mar 2015</span>
<p>You can <a href="https://github.com/aw/picolisp-json">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-json">get it on my Git server</a>.</p>
<p>This library can be used to parse and serialize (encode/decode) JSON strings in <a href="http://picolisp.com/">PicoLisp</a>.</p>
@ -117,7 +117,7 @@
<h1 id="explanation-json-encoderdecoder-for-picolisp">Explanation: JSON Encoder/Decoder for PicoLisp</h1>
<p>This document provides a short walkthrough of the source code for the <a href="https://github.com/aw/picolisp-json.git">PicoLisp-JSON</a> encoder/decoder.</p>
<p>This document provides a short walkthrough of the source code for the <a href="https://git.a1w.ca/aw/picolisp-json.git">PicoLisp-JSON</a> encoder/decoder.</p>
<p>It’s split into a few sections for easier reading:</p>
@ -134,7 +134,7 @@
<p>Make sure you read the <a href="README.md">README</a> to get an idea of what this library does.</p>
<p>Also, I recommend you read my <a href="https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a> for additional PicoLisp tips and ideas.</p>
<p>Also, I recommend you read my <a href="https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a> for additional PicoLisp tips and ideas.</p>
<h1 id="global-variables">Global variables</h1>


+ 6
- 6
_site/2015/03/16/https/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">HTTP(S) client for PicoLisp</h1>
<span class="post-date">16 Mar 2015</span>
<p>You can <a href="https://github.com/aw/picolisp-https">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-https">get it on my Git server</a>.</p>
<p>This library can be used to make HTTP and HTTPS requests in <a href="http://picolisp.com">PicoLisp</a>, with support for authentication.</p>
@ -117,13 +117,13 @@
<h1 id="explanation-https-client-for-picolisp">Explanation: HTTP(S) client for PicoLisp</h1>
<p>This document provides a short walkthrough of the source code for the <a href="https://github.com/aw/picolisp-https.git">PicoLisp-HTTPS</a> client.</p>
<p>This document provides a short walkthrough of the source code for the <a href="https://git.a1w.ca/aw/picolisp-https.git">PicoLisp-HTTPS</a> client.</p>
<p>I won’t cover concepts which were covered in previous source code explanations. You can read them here:</p>
<ul>
<li><a href="https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a></li>
<li><a href="https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md">JSON Explanation</a></li>
<li><a href="https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a></li>
<li><a href="https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md">JSON Explanation</a></li>
</ul>
<p>This document is split into a few sections:</p>
@ -289,7 +289,7 @@
<p>The <a href="http://software-lab.de/doc/refL.html#lisp">lisp</a> function is quite special. When using <code class="language-plaintext highlighter-rouge">(native)</code> for C calls, certain functions require a callback as an argument, or “function pointer” (Google it).</p>
<p>The <code class="language-plaintext highlighter-rouge">(ne-set-server-auth)</code> function requires a callback as its second argument, so we create one using <code class="language-plaintext highlighter-rouge">(lisp)</code>. If you’ve read the <a href="https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md#make-array">JSON explanations</a>, you’ll quickly notice there’s an anonymous function in this <code class="language-plaintext highlighter-rouge">(lisp)</code> call. It essentially sends 5 arguments (which are numbers) to the <code class="language-plaintext highlighter-rouge">(do-auth)</code> function, under the name <code class="language-plaintext highlighter-rouge">ne_auth_creds</code>.</p>
<p>The <code class="language-plaintext highlighter-rouge">(ne-set-server-auth)</code> function requires a callback as its second argument, so we create one using <code class="language-plaintext highlighter-rouge">(lisp)</code>. If you’ve read the <a href="https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md#make-array">JSON explanations</a>, you’ll quickly notice there’s an anonymous function in this <code class="language-plaintext highlighter-rouge">(lisp)</code> call. It essentially sends 5 arguments (which are numbers) to the <code class="language-plaintext highlighter-rouge">(do-auth)</code> function, under the name <code class="language-plaintext highlighter-rouge">ne_auth_creds</code>.</p>
<p>Here’s the C code to give a better picture:</p>
@ -313,7 +313,7 @@ void ne_set_server_auth(ne_session *sess, ne_auth_creds creds, void *userdata);
<span class="nv">Attempt</span> <span class="p">)</span>
</code></pre></div></div>
<p>Whoa wait, what’s that <code class="language-plaintext highlighter-rouge">@</code> thing doing there? Remember we talked about the <a href="https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md#nn_symbols">@ result</a>? Well, this is <strong>NOT</strong> that.</p>
<p>Whoa wait, what’s that <code class="language-plaintext highlighter-rouge">@</code> thing doing there? Remember we talked about the <a href="https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md#nn_symbols">@ result</a>? Well, this is <strong>NOT</strong> that.</p>
<p>This is actually a <a href="http://software-lab.de/doc/native.html#libs">transient symbol</a> which refers to the main program (PicoLisp).</p>


+ 1
- 1
_site/2015/03/17/bcrypt/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">bcrypt hashing for PicoLisp</h1>
<span class="post-date">17 Mar 2015</span>
<p>You can <a href="https://github.com/aw/picolisp-bcrypt">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-bcrypt">get it on my Git server</a>.</p>
<p>This library can be used to hash strings (ex: passwords) using bcrypt in <a href="http://picolisp.com/">PicoLisp</a>.</p>


+ 6
- 6
_site/2015/03/18/unit/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">Unit Testing framework for PicoLisp</h1>
<span class="post-date">18 Mar 2015</span>
<p>You can <a href="https://github.com/aw/picolisp-unit">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-unit">get it on my Git server</a>.</p>
<p>This library can be used for Unit Testing your <a href="http://picolisp.com/">PicoLisp</a> code.</p>
@ -117,14 +117,14 @@
<h1 id="explanation-unit-testing-framework-for-picolisp">Explanation: Unit Testing framework for PicoLisp</h1>
<p>This document provides a short walkthrough of the source code for the <a href="https://github.com/aw/picolisp-unit">PicoLisp-Unit</a> testing framework.</p>
<p>This document provides a short walkthrough of the source code for the <a href="https://git.a1w.ca/aw/picolisp-unit">PicoLisp-Unit</a> testing framework.</p>
<p>I won’t cover concepts which were discussed in previous source code explanations. You can read them here:</p>
<ul>
<li><a href="https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a></li>
<li><a href="https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md">JSON Explanation</a></li>
<li><a href="https://github.com/aw/picolisp-https/blob/master/EXPLAIN.md">HTTPS Explanation</a></li>
<li><a href="https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a></li>
<li><a href="https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md">JSON Explanation</a></li>
<li><a href="https://git.a1w.ca/aw/picolisp-https/blob/master/EXPLAIN.md">HTTPS Explanation</a></li>
</ul>
<p>This document is split into a few sections:</p>
@ -309,7 +309,7 @@
<p>This one is quite simple, all it does is check if <code class="language-plaintext highlighter-rouge">Expected</code> is equal to <code class="language-plaintext highlighter-rouge">Result</code>.</p>
<p>The <a href="https://github.com/aw/picolisp-unit/blob/master/README.md#assertions-table">other assertions</a> are quite similar and seem to cover most test cases. I’ve considered adding opposite tests such as <code class="language-plaintext highlighter-rouge">refute</code>, but I’ve rarely found a need for them as there are alternate approaches.</p>
<p>The <a href="https://git.a1w.ca/aw/picolisp-unit/blob/master/README.md#assertions-table">other assertions</a> are quite similar and seem to cover most test cases. I’ve considered adding opposite tests such as <code class="language-plaintext highlighter-rouge">refute</code>, but I’ve rarely found a need for them as there are alternate approaches.</p>
</div>


+ 1
- 1
_site/2017/02/27/semver/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">SemVer for PicoLisp</h1>
<span class="post-date">27 Feb 2017</span>
<p>You can <a href="https://github.com/aw/picolisp-semver">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-semver">get it on my Git server</a>.</p>
<p>This library can validate and compare <strong>Major.Minor.Patch</strong> versions (ex: <code class="language-plaintext highlighter-rouge">"1.0.0"</code>).
It ignores pre-release, build, metadata, and special extensions (ex: <code class="language-plaintext highlighter-rouge">.alpha.1</code>).</p>


+ 4
- 4
_site/2018/05/11/json-v3/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">JSON Encoder/Decoder in pure PicoLisp</h1>
<span class="post-date">11 May 2018</span>
<p>You can <a href="https://github.com/aw/picolisp-json">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-json">get it on my Git server</a>.</p>
<p>This library can be used to parse and serialize (encode/decode) JSON strings in <a href="http://picolisp.com/">PicoLisp</a>.</p>
@ -117,9 +117,9 @@
<h1 id="explanation-json-encoderdecoder-in-pure-picolisp">Explanation: JSON Encoder/Decoder in pure PicoLisp</h1>
<p>This document provides a short walkthrough of the source code for the <a href="https://github.com/aw/picolisp-json.git">PicoLisp-JSON</a> encoder/decoder.</p>
<p>This document provides a short walkthrough of the source code for the <a href="https://git.a1w.ca/aw/picolisp-json.git">PicoLisp-JSON</a> encoder/decoder.</p>
<p><strong>Note:</strong> This document covers <code class="language-plaintext highlighter-rouge">v3</code> of the JSON library. To view the older (C/ffi bindings) version <a href="https://github.com/aw/picolisp-json/blob/v2.2.0/EXPLAIN.md">click here</a>.</p>
<p><strong>Note:</strong> This document covers <code class="language-plaintext highlighter-rouge">v3</code> of the JSON library. To view the older (C/ffi bindings) version <a href="https://git.a1w.ca/aw/picolisp-json/blob/v2.2.0/EXPLAIN.md">click here</a>.</p>
<p>It’s split into a few sections for easier reading:</p>
@ -332,7 +332,7 @@ In other words, our tokenized <code class="language-plaintext highlighter-rouge"
<h2 id="encoding-json">encoding JSON</h2>
<p>The code for encoding JSON strings hasn’t changed, so feel free to <a href="https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md#encoding-json">read about it here</a>.</p>
<p>The code for encoding JSON strings hasn’t changed, so feel free to <a href="https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md#encoding-json">read about it here</a>.</p>
</div>


+ 4
- 4
_site/2019/03/15/awscurl/index.html View File

@ -109,11 +109,11 @@
<div class="post">
<h1 class="post-title">PicoLisp AWS CLI tool using OpenSSL and Curl</h1>
<span class="post-date">15 Mar 2019</span>
<p>You can <a href="https://github.com/aw/picolisp-awscurl">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-awscurl">get it on my Git server</a>.</p>
<p>This command line tool can be used to sign <a href="https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html">AWS Signature Version 4</a> requests and make calls to various AWS APIs.</p>
<p><a href="https://github.com/aw/picolisp-awscurl"><img src="https://img.shields.io/github/release/aw/picolisp-awscurl.svg" alt="GitHub release" /></a> <a href="https://github.com/aw/picolisp-unit.git"><img src="https://img.shields.io/badge/[deps]&#32;picolisp--unit-v3.0.0-ff69b4.svg" alt="Dependency" /></a> <img src="https://github.com/aw/picolisp-awscurl/workflows/CI/badge.svg?branch=master" alt="Build status" /></p>
<p><a href="https://git.a1w.ca/aw/picolisp-awscurl"><img src="https://img.shields.io/github/release/aw/picolisp-awscurl.svg" alt="GitHub release" /></a> <a href="https://github.com/aw/picolisp-unit.git"><img src="https://img.shields.io/badge/[deps]&#32;picolisp--unit-v3.0.0-ff69b4.svg" alt="Dependency" /></a> <img src="https://github.com/aw/picolisp-awscurl/workflows/CI/badge.svg?branch=master" alt="Build status" /></p>
<ol>
<li><a href="#requirements">Requirements</a></li>
@ -124,7 +124,7 @@
<h1 id="requirements">Requirements</h1>
<ul>
<li><code class="language-plaintext highlighter-rouge">picolisp</code>: 32-bit or 64-bit <code class="language-plaintext highlighter-rouge">v3.1.11+</code>, tested up to PicoLisp <code class="language-plaintext highlighter-rouge">v20.6.29</code>, <a href="https://github.com/aw/picolisp-awscurl/actions/">see test runs</a></li>
<li><code class="language-plaintext highlighter-rouge">picolisp</code>: 32-bit or 64-bit <code class="language-plaintext highlighter-rouge">v3.1.11+</code>, tested up to PicoLisp <code class="language-plaintext highlighter-rouge">v20.6.29</code>, <a href="https://git.a1w.ca/aw/picolisp-awscurl/actions/">see test runs</a></li>
<li><code class="language-plaintext highlighter-rouge">libcrypto.so</code>: for using <code class="language-plaintext highlighter-rouge">--native</code> functions with PicoLisp <code class="language-plaintext highlighter-rouge">v17.12+</code></li>
<li><code class="language-plaintext highlighter-rouge">picolisp-unit</code>: <code class="language-plaintext highlighter-rouge">v3.0.0+</code> for testing the library</li>
<li><code class="language-plaintext highlighter-rouge">openssl</code>: <code class="language-plaintext highlighter-rouge">v1.0.0+</code> for signing and hashing strings</li>
@ -139,7 +139,7 @@
<h2 id="warning">WARNING</h2>
<p>There is currently <strong>no validation</strong> on command line arguments. Be careful the input you provide. <a href="https://github.com/aw/picolisp-awscurl/issues/1">See issue #1</a></p>
<p>There is currently <strong>no validation</strong> on command line arguments. Be careful the input you provide. <a href="https://git.a1w.ca/aw/picolisp-awscurl/issues/1">See issue #1</a></p>
<h3 id="environment-variables">Environment variables</h3>


+ 3
- 3
_site/2020/01/02/action/index.html View File

@ -109,10 +109,10 @@
<div class="post">
<h1 class="post-title">GitHub Action to run 32-bit or 64-bit PicoLisp code</h1>
<span class="post-date">02 Jan 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-action">get it on GitHub</a> or the <a href="https://github.com/marketplace/actions/picolisp-action">GitHub Marketplace</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-action">get it on my Git server</a> or the <a href="https://github.com/marketplace/actions/picolisp-action">GitHub Marketplace</a>.</p>
<p>This action downloads, compiles, and globally installs PicoLisp.
It can be used to run PicoLisp code such as <a href="https://github.com/aw/picolisp-unit">units tests</a>.</p>
It can be used to run PicoLisp code such as <a href="https://git.a1w.ca/aw/picolisp-unit">units tests</a>.</p>
<p><img src="https://user-images.githubusercontent.com/153401/70022112-e4695580-158a-11ea-886d-0db01dbe7a66.png" alt="Example PicoLisp tests" /></p>
@ -139,7 +139,7 @@ It can be used to run PicoLisp code such as <a href="https://github.com/aw/picol
<h2 id="example-workflow">Example workflow</h2>
<p>See the <a href="https://github.com/aw/picolisp-json/blob/master/.github/workflows/main.yml">picolisp-json workflow</a> for a more detailed usage example.</p>
<p>See the <a href="https://git.a1w.ca/aw/picolisp-json/blob/master/.github/workflows/main.yml">picolisp-json workflow</a> for a more detailed usage example.</p>
<h2 id="code">Code</h2>


+ 2
- 2
_site/2020/06/16/keyvalue/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">Redis-inspired key/value store written in PicoLisp</h1>
<span class="post-date">16 Jun 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-kv">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-kv">get it on my Git server</a>.</p>
<p>This program mimics functionality of a <a href="https://redis.io">Redis™</a> in-memory database, but is designed specifically for <a href="https://picolisp.com">PicoLisp</a> applications with optional on-disk persistence and encryption.</p>
@ -189,7 +189,7 @@
-&gt; "12345"
</code></pre></div></div>
<p>Feel free to observe the example code in <a href="https://github.com/aw/picolisp-kv/blob/master/client.l">client.l</a>.</p>
<p>Feel free to observe the example code in <a href="https://git.a1w.ca/aw/picolisp-kv/blob/master/client.l">client.l</a>.</p>
<blockquote>
<p><strong>Note</strong>: Using <code class="language-plaintext highlighter-rouge">(kv-send-data)</code> will send the data to the server and automatically block the client while waiting for a response.</p>


+ 1
- 1
_site/2020/06/18/supervisor/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">Unicorn-inspired PicoLisp daemon to spawn and manage worker processes</h1>
<span class="post-date">18 Jun 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-supervisor">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-supervisor">get it on my Git server</a>.</p>
<p>This program mimics functionality of <a href="https://yhbt.net/unicorn/">Unicorn</a>, without being limited to HTTP applications.</p>


+ 7
- 7
_site/2020/09/16/posixmq/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">POSIX Message Queues library for PicoLisp</h1>
<span class="post-date">16 Sep 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-posixmq">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-posixmq">get it on my Git server</a>.</p>
<p><em><a href="https://man7.org/linux/man-pages/man7/mq_overview.7.html">POSIX Message Queues</a></em> provide a dependency-free mechanism for processes to exchange data in the form of messages.</p>
@ -135,7 +135,7 @@
<p>The first step is to run the unit tests: <code class="language-plaintext highlighter-rouge">make check</code></p>
<p>If those fail, jump to the <a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md">TUTORIALS</a> section to perform the initial setup and and system check.</p>
<p>If those fail, jump to the <a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md">TUTORIALS</a> section to perform the initial setup and and system check.</p>
<p>If all works well, then your system is ready to use this library.</p>
@ -168,13 +168,13 @@
<h1 id="documentation">Documentation</h1>
<p>Additional usage and reference documentation can be found in <a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/">docs/</a></p>
<p>Additional usage and reference documentation can be found in <a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/">docs/</a></p>
<ul>
<li><a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md">TUTORIALS</a>: some guides <strong>for beginners</strong> to get started using this library</li>
<li><a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/HOWTO.md">HOWTO</a>: a set of recipes for performing more advanced tasks with this library</li>
<li><a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/EXPLAIN.md">EXPLAIN</a>: an explanation of some key concepts, including how this library works</li>
<li><a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/REFERENCE.md">REFERENCE</a>: technical information on the internals of this library</li>
<li><a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md">TUTORIALS</a>: some guides <strong>for beginners</strong> to get started using this library</li>
<li><a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/HOWTO.md">HOWTO</a>: a set of recipes for performing more advanced tasks with this library</li>
<li><a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/EXPLAIN.md">EXPLAIN</a>: an explanation of some key concepts, including how this library works</li>
<li><a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/REFERENCE.md">REFERENCE</a>: technical information on the internals of this library</li>
</ul>
</div>


+ 1
- 1
_site/2020/10/29/rust/index.html View File

@ -109,7 +109,7 @@
<div class="post">
<h1 class="post-title">PicoLisp FFI with Rust</h1>
<span class="post-date">29 Oct 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-rust">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-rust">get it on my Git server</a>.</p>
<p>This repo provides a simple example of how to use <a href="https://software-lab.de/down.html">PicoLisp</a> with <a href="https://www.rust-lang.org/tools/install">Rust</a> using PicoLisp’s FFI <code class="language-plaintext highlighter-rouge">(native)</code> functionality.</p>


+ 41
- 41
_site/atom.xml View File

@ -4,7 +4,7 @@
<title>PicoLisp Libraries</title>
<link href="https://picolisp.a1w.ca/atom.xml" rel="self"/>
<link href="https://picolisp.a1w.ca/"/>
<updated>2020-11-22T14:17:29+00:00</updated>
<updated>2020-11-22T14:22:29+00:00</updated>
<id>https://picolisp.a1w.ca</id>
<author>
<name>Alexander Williams</name>
@ -17,7 +17,7 @@
<link href="https://picolisp.a1w.ca/2020/10/29/rust/"/>
<updated>2020-10-29T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2020/10/29/rust</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-rust&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-rust&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This repo provides a simple example of how to use &lt;a href=&quot;https://software-lab.de/down.html&quot;&gt;PicoLisp&lt;/a&gt; with &lt;a href=&quot;https://www.rust-lang.org/tools/install&quot;&gt;Rust&lt;/a&gt; using PicoLisp’s FFI &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(native)&lt;/code&gt; functionality.&lt;/p&gt;
@ -135,7 +135,7 @@ Extracted struct:
<link href="https://picolisp.a1w.ca/2020/09/16/posixmq/"/>
<updated>2020-09-16T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2020/09/16/posixmq</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-posixmq&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-posixmq&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://man7.org/linux/man-pages/man7/mq_overview.7.html&quot;&gt;POSIX Message Queues&lt;/a&gt;&lt;/em&gt; provide a dependency-free mechanism for processes to exchange data in the form of messages.&lt;/p&gt;
@ -161,7 +161,7 @@ Extracted struct:
&lt;p&gt;The first step is to run the unit tests: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;make check&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If those fail, jump to the &lt;a href=&quot;https://github.com/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md&quot;&gt;TUTORIALS&lt;/a&gt; section to perform the initial setup and and system check.&lt;/p&gt;
&lt;p&gt;If those fail, jump to the &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md&quot;&gt;TUTORIALS&lt;/a&gt; section to perform the initial setup and and system check.&lt;/p&gt;
&lt;p&gt;If all works well, then your system is ready to use this library.&lt;/p&gt;
@ -194,13 +194,13 @@ Extracted struct:
&lt;h1 id=&quot;documentation&quot;&gt;Documentation&lt;/h1&gt;
&lt;p&gt;Additional usage and reference documentation can be found in &lt;a href=&quot;https://github.com/aw/picolisp-posixmq/blob/master/docs/&quot;&gt;docs/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Additional usage and reference documentation can be found in &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/&quot;&gt;docs/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md&quot;&gt;TUTORIALS&lt;/a&gt;: some guides &lt;strong&gt;for beginners&lt;/strong&gt; to get started using this library&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/aw/picolisp-posixmq/blob/master/docs/HOWTO.md&quot;&gt;HOWTO&lt;/a&gt;: a set of recipes for performing more advanced tasks with this library&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/aw/picolisp-posixmq/blob/master/docs/EXPLAIN.md&quot;&gt;EXPLAIN&lt;/a&gt;: an explanation of some key concepts, including how this library works&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/aw/picolisp-posixmq/blob/master/docs/REFERENCE.md&quot;&gt;REFERENCE&lt;/a&gt;: technical information on the internals of this library&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md&quot;&gt;TUTORIALS&lt;/a&gt;: some guides &lt;strong&gt;for beginners&lt;/strong&gt; to get started using this library&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/HOWTO.md&quot;&gt;HOWTO&lt;/a&gt;: a set of recipes for performing more advanced tasks with this library&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/EXPLAIN.md&quot;&gt;EXPLAIN&lt;/a&gt;: an explanation of some key concepts, including how this library works&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/REFERENCE.md&quot;&gt;REFERENCE&lt;/a&gt;: technical information on the internals of this library&lt;/li&gt;
&lt;/ul&gt;
</content>
</entry>
@ -210,7 +210,7 @@ Extracted struct:
<link href="https://picolisp.a1w.ca/2020/06/18/supervisor/"/>
<updated>2020-06-18T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2020/06/18/supervisor</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-supervisor&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-supervisor&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This program mimics functionality of &lt;a href=&quot;https://yhbt.net/unicorn/&quot;&gt;Unicorn&lt;/a&gt;, without being limited to HTTP applications.&lt;/p&gt;
@ -325,7 +325,7 @@ Options:
<link href="https://picolisp.a1w.ca/2020/06/16/keyvalue/"/>
<updated>2020-06-16T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2020/06/16/keyvalue</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-kv&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-kv&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This program mimics functionality of a &lt;a href=&quot;https://redis.io&quot;&gt;Redis™&lt;/a&gt; in-memory database, but is designed specifically for &lt;a href=&quot;https://picolisp.com&quot;&gt;PicoLisp&lt;/a&gt; applications with optional on-disk persistence and encryption.&lt;/p&gt;
@ -405,7 +405,7 @@ Options:
-&amp;gt; &quot;12345&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Feel free to observe the example code in &lt;a href=&quot;https://github.com/aw/picolisp-kv/blob/master/client.l&quot;&gt;client.l&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Feel free to observe the example code in &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-kv/blob/master/client.l&quot;&gt;client.l&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(kv-send-data)&lt;/code&gt; will send the data to the server and automatically block the client while waiting for a response.&lt;/p&gt;
@ -666,10 +666,10 @@ COMMAND LIST Commands are case-insensitive and don't always require
<link href="https://picolisp.a1w.ca/2020/01/02/action/"/>
<updated>2020-01-02T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2020/01/02/action</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-action&quot;&gt;get it on GitHub&lt;/a&gt; or the &lt;a href=&quot;https://github.com/marketplace/actions/picolisp-action&quot;&gt;GitHub Marketplace&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-action&quot;&gt;get it on my Git server&lt;/a&gt; or the &lt;a href=&quot;https://github.com/marketplace/actions/picolisp-action&quot;&gt;GitHub Marketplace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This action downloads, compiles, and globally installs PicoLisp.
It can be used to run PicoLisp code such as &lt;a href=&quot;https://github.com/aw/picolisp-unit&quot;&gt;units tests&lt;/a&gt;.&lt;/p&gt;
It can be used to run PicoLisp code such as &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-unit&quot;&gt;units tests&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/153401/70022112-e4695580-158a-11ea-886d-0db01dbe7a66.png&quot; alt=&quot;Example PicoLisp tests&quot; /&gt;&lt;/p&gt;
@ -696,7 +696,7 @@ It can be used to run PicoLisp code such as &lt;a href=&quot;https://github.com/
&lt;h2 id=&quot;example-workflow&quot;&gt;Example workflow&lt;/h2&gt;
&lt;p&gt;See the &lt;a href=&quot;https://github.com/aw/picolisp-json/blob/master/.github/workflows/main.yml&quot;&gt;picolisp-json workflow&lt;/a&gt; for a more detailed usage example.&lt;/p&gt;
&lt;p&gt;See the &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json/blob/master/.github/workflows/main.yml&quot;&gt;picolisp-json workflow&lt;/a&gt; for a more detailed usage example.&lt;/p&gt;
&lt;h2 id=&quot;code&quot;&gt;Code&lt;/h2&gt;
@ -730,11 +730,11 @@ It can be used to run PicoLisp code such as &lt;a href=&quot;https://github.com/
<link href="https://picolisp.a1w.ca/2019/03/15/awscurl/"/>
<updated>2019-03-15T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2019/03/15/awscurl</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-awscurl&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-awscurl&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This command line tool can be used to sign &lt;a href=&quot;https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html&quot;&gt;AWS Signature Version 4&lt;/a&gt; requests and make calls to various AWS APIs.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/aw/picolisp-awscurl&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/release/aw/picolisp-awscurl.svg&quot; alt=&quot;GitHub release&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/aw/picolisp-unit.git&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/[deps]&amp;#32;picolisp--unit-v3.0.0-ff69b4.svg&quot; alt=&quot;Dependency&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;https://github.com/aw/picolisp-awscurl/workflows/CI/badge.svg?branch=master&quot; alt=&quot;Build status&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-awscurl&quot;&gt;&lt;img src=&quot;https://img.shields.io/github/release/aw/picolisp-awscurl.svg&quot; alt=&quot;GitHub release&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://github.com/aw/picolisp-unit.git&quot;&gt;&lt;img src=&quot;https://img.shields.io/badge/[deps]&amp;#32;picolisp--unit-v3.0.0-ff69b4.svg&quot; alt=&quot;Dependency&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;https://github.com/aw/picolisp-awscurl/workflows/CI/badge.svg?branch=master&quot; alt=&quot;Build status&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;#requirements&quot;&gt;Requirements&lt;/a&gt;&lt;/li&gt;
@ -745,7 +745,7 @@ It can be used to run PicoLisp code such as &lt;a href=&quot;https://github.com/
&lt;h1 id=&quot;requirements&quot;&gt;Requirements&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;picolisp&lt;/code&gt;: 32-bit or 64-bit &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;v3.1.11+&lt;/code&gt;, tested up to PicoLisp &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;v20.6.29&lt;/code&gt;, &lt;a href=&quot;https://github.com/aw/picolisp-awscurl/actions/&quot;&gt;see test runs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;picolisp&lt;/code&gt;: 32-bit or 64-bit &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;v3.1.11+&lt;/code&gt;, tested up to PicoLisp &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;v20.6.29&lt;/code&gt;, &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-awscurl/actions/&quot;&gt;see test runs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libcrypto.so&lt;/code&gt;: for using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--native&lt;/code&gt; functions with PicoLisp &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;v17.12+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;picolisp-unit&lt;/code&gt;: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;v3.0.0+&lt;/code&gt; for testing the library&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;openssl&lt;/code&gt;: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;v1.0.0+&lt;/code&gt; for signing and hashing strings&lt;/li&gt;
@ -760,7 +760,7 @@ It can be used to run PicoLisp code such as &lt;a href=&quot;https://github.com/
&lt;h2 id=&quot;warning&quot;&gt;WARNING&lt;/h2&gt;
&lt;p&gt;There is currently &lt;strong&gt;no validation&lt;/strong&gt; on command line arguments. Be careful the input you provide. &lt;a href=&quot;https://github.com/aw/picolisp-awscurl/issues/1&quot;&gt;See issue #1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There is currently &lt;strong&gt;no validation&lt;/strong&gt; on command line arguments. Be careful the input you provide. &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-awscurl/issues/1&quot;&gt;See issue #1&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;environment-variables&quot;&gt;Environment variables&lt;/h3&gt;
@ -831,7 +831,7 @@ Options:
<link href="https://picolisp.a1w.ca/2018/05/11/json-v3/"/>
<updated>2018-05-11T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2018/05/11/json-v3</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-json&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This library can be used to parse and serialize (encode/decode) JSON strings in &lt;a href=&quot;http://picolisp.com/&quot;&gt;PicoLisp&lt;/a&gt;.&lt;/p&gt;
@ -839,9 +839,9 @@ Options:
&lt;h1 id=&quot;explanation-json-encoderdecoder-in-pure-picolisp&quot;&gt;Explanation: JSON Encoder/Decoder in pure PicoLisp&lt;/h1&gt;
&lt;p&gt;This document provides a short walkthrough of the source code for the &lt;a href=&quot;https://github.com/aw/picolisp-json.git&quot;&gt;PicoLisp-JSON&lt;/a&gt; encoder/decoder.&lt;/p&gt;
&lt;p&gt;This document provides a short walkthrough of the source code for the &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json.git&quot;&gt;PicoLisp-JSON&lt;/a&gt; encoder/decoder.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This document covers &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;v3&lt;/code&gt; of the JSON library. To view the older (C/ffi bindings) version &lt;a href=&quot;https://github.com/aw/picolisp-json/blob/v2.2.0/EXPLAIN.md&quot;&gt;click here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This document covers &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;v3&lt;/code&gt; of the JSON library. To view the older (C/ffi bindings) version &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json/blob/v2.2.0/EXPLAIN.md&quot;&gt;click here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It’s split into a few sections for easier reading:&lt;/p&gt;
@ -1054,7 +1054,7 @@ In other words, our tokenized &lt;code class=&quot;language-plaintext highlighte
&lt;h2 id=&quot;encoding-json&quot;&gt;encoding JSON&lt;/h2&gt;
&lt;p&gt;The code for encoding JSON strings hasn’t changed, so feel free to &lt;a href=&quot;https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md#encoding-json&quot;&gt;read about it here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The code for encoding JSON strings hasn’t changed, so feel free to &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md#encoding-json&quot;&gt;read about it here&lt;/a&gt;.&lt;/p&gt;
</content>
</entry>
@ -1063,7 +1063,7 @@ In other words, our tokenized &lt;code class=&quot;language-plaintext highlighte
<link href="https://picolisp.a1w.ca/2017/02/27/semver/"/>
<updated>2017-02-27T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2017/02/27/semver</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-semver&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-semver&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This library can validate and compare &lt;strong&gt;Major.Minor.Patch&lt;/strong&gt; versions (ex: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;1.0.0&quot;&lt;/code&gt;).
It ignores pre-release, build, metadata, and special extensions (ex: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.alpha.1&lt;/code&gt;).&lt;/p&gt;
@ -1192,7 +1192,7 @@ if left &amp;gt; right then return T # left is newer
<link href="https://picolisp.a1w.ca/2015/03/18/unit/"/>
<updated>2015-03-18T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2015/03/18/unit</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-unit&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-unit&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This library can be used for Unit Testing your &lt;a href=&quot;http://picolisp.com/&quot;&gt;PicoLisp&lt;/a&gt; code.&lt;/p&gt;
@ -1200,14 +1200,14 @@ if left &amp;gt; right then return T # left is newer
&lt;h1 id=&quot;explanation-unit-testing-framework-for-picolisp&quot;&gt;Explanation: Unit Testing framework for PicoLisp&lt;/h1&gt;
&lt;p&gt;This document provides a short walkthrough of the source code for the &lt;a href=&quot;https://github.com/aw/picolisp-unit&quot;&gt;PicoLisp-Unit&lt;/a&gt; testing framework.&lt;/p&gt;
&lt;p&gt;This document provides a short walkthrough of the source code for the &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-unit&quot;&gt;PicoLisp-Unit&lt;/a&gt; testing framework.&lt;/p&gt;
&lt;p&gt;I won’t cover concepts which were discussed in previous source code explanations. You can read them here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md&quot;&gt;Nanomsg Explanation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md&quot;&gt;JSON Explanation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/aw/picolisp-https/blob/master/EXPLAIN.md&quot;&gt;HTTPS Explanation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md&quot;&gt;Nanomsg Explanation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md&quot;&gt;JSON Explanation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-https/blob/master/EXPLAIN.md&quot;&gt;HTTPS Explanation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This document is split into a few sections:&lt;/p&gt;
@ -1392,7 +1392,7 @@ if left &amp;gt; right then return T # left is newer
&lt;p&gt;This one is quite simple, all it does is check if &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Expected&lt;/code&gt; is equal to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Result&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://github.com/aw/picolisp-unit/blob/master/README.md#assertions-table&quot;&gt;other assertions&lt;/a&gt; are quite similar and seem to cover most test cases. I’ve considered adding opposite tests such as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;refute&lt;/code&gt;, but I’ve rarely found a need for them as there are alternate approaches.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-unit/blob/master/README.md#assertions-table&quot;&gt;other assertions&lt;/a&gt; are quite similar and seem to cover most test cases. I’ve considered adding opposite tests such as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;refute&lt;/code&gt;, but I’ve rarely found a need for them as there are alternate approaches.&lt;/p&gt;
</content>
</entry>
@ -1401,7 +1401,7 @@ if left &amp;gt; right then return T # left is newer
<link href="https://picolisp.a1w.ca/2015/03/17/bcrypt/"/>
<updated>2015-03-17T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2015/03/17/bcrypt</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-bcrypt&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-bcrypt&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This library can be used to hash strings (ex: passwords) using bcrypt in &lt;a href=&quot;http://picolisp.com/&quot;&gt;PicoLisp&lt;/a&gt;.&lt;/p&gt;
@ -1515,7 +1515,7 @@ if left &amp;gt; right then return T # left is newer
<link href="https://picolisp.a1w.ca/2015/03/16/https/"/>
<updated>2015-03-16T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2015/03/16/https</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-https&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-https&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This library can be used to make HTTP and HTTPS requests in &lt;a href=&quot;http://picolisp.com&quot;&gt;PicoLisp&lt;/a&gt;, with support for authentication.&lt;/p&gt;
@ -1523,13 +1523,13 @@ if left &amp;gt; right then return T # left is newer
&lt;h1 id=&quot;explanation-https-client-for-picolisp&quot;&gt;Explanation: HTTP(S) client for PicoLisp&lt;/h1&gt;
&lt;p&gt;This document provides a short walkthrough of the source code for the &lt;a href=&quot;https://github.com/aw/picolisp-https.git&quot;&gt;PicoLisp-HTTPS&lt;/a&gt; client.&lt;/p&gt;
&lt;p&gt;This document provides a short walkthrough of the source code for the &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-https.git&quot;&gt;PicoLisp-HTTPS&lt;/a&gt; client.&lt;/p&gt;
&lt;p&gt;I won’t cover concepts which were covered in previous source code explanations. You can read them here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md&quot;&gt;Nanomsg Explanation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md&quot;&gt;JSON Explanation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md&quot;&gt;Nanomsg Explanation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md&quot;&gt;JSON Explanation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This document is split into a few sections:&lt;/p&gt;
@ -1695,7 +1695,7 @@ if left &amp;gt; right then return T # left is newer
&lt;p&gt;The &lt;a href=&quot;http://software-lab.de/doc/refL.html#lisp&quot;&gt;lisp&lt;/a&gt; function is quite special. When using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(native)&lt;/code&gt; for C calls, certain functions require a callback as an argument, or “function pointer” (Google it).&lt;/p&gt;
&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(ne-set-server-auth)&lt;/code&gt; function requires a callback as its second argument, so we create one using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(lisp)&lt;/code&gt;. If you’ve read the &lt;a href=&quot;https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md#make-array&quot;&gt;JSON explanations&lt;/a&gt;, you’ll quickly notice there’s an anonymous function in this &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(lisp)&lt;/code&gt; call. It essentially sends 5 arguments (which are numbers) to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(do-auth)&lt;/code&gt; function, under the name &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ne_auth_creds&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(ne-set-server-auth)&lt;/code&gt; function requires a callback as its second argument, so we create one using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(lisp)&lt;/code&gt;. If you’ve read the &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md#make-array&quot;&gt;JSON explanations&lt;/a&gt;, you’ll quickly notice there’s an anonymous function in this &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(lisp)&lt;/code&gt; call. It essentially sends 5 arguments (which are numbers) to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(do-auth)&lt;/code&gt; function, under the name &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ne_auth_creds&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Here’s the C code to give a better picture:&lt;/p&gt;
@ -1719,7 +1719,7 @@ void ne_set_server_auth(ne_session *sess, ne_auth_creds creds, void *userdata);
&lt;span class=&quot;nv&quot;&gt;Attempt&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Whoa wait, what’s that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@&lt;/code&gt; thing doing there? Remember we talked about the &lt;a href=&quot;https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md#nn_symbols&quot;&gt;@ result&lt;/a&gt;? Well, this is &lt;strong&gt;NOT&lt;/strong&gt; that.&lt;/p&gt;
&lt;p&gt;Whoa wait, what’s that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@&lt;/code&gt; thing doing there? Remember we talked about the &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md#nn_symbols&quot;&gt;@ result&lt;/a&gt;? Well, this is &lt;strong&gt;NOT&lt;/strong&gt; that.&lt;/p&gt;
&lt;p&gt;This is actually a &lt;a href=&quot;http://software-lab.de/doc/native.html#libs&quot;&gt;transient symbol&lt;/a&gt; which refers to the main program (PicoLisp).&lt;/p&gt;
@ -1937,7 +1937,7 @@ void ne_set_server_auth(ne_session *sess, ne_auth_creds creds, void *userdata);
<link href="https://picolisp.a1w.ca/2015/03/08/json/"/>
<updated>2015-03-08T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2015/03/08/json</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-json&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This library can be used to parse and serialize (encode/decode) JSON strings in &lt;a href=&quot;http://picolisp.com/&quot;&gt;PicoLisp&lt;/a&gt;.&lt;/p&gt;
@ -1945,7 +1945,7 @@ void ne_set_server_auth(ne_session *sess, ne_auth_creds creds, void *userdata);
&lt;h1 id=&quot;explanation-json-encoderdecoder-for-picolisp&quot;&gt;Explanation: JSON Encoder/Decoder for PicoLisp&lt;/h1&gt;
&lt;p&gt;This document provides a short walkthrough of the source code for the &lt;a href=&quot;https://github.com/aw/picolisp-json.git&quot;&gt;PicoLisp-JSON&lt;/a&gt; encoder/decoder.&lt;/p&gt;
&lt;p&gt;This document provides a short walkthrough of the source code for the &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-json.git&quot;&gt;PicoLisp-JSON&lt;/a&gt; encoder/decoder.&lt;/p&gt;
&lt;p&gt;It’s split into a few sections for easier reading:&lt;/p&gt;
@ -1962,7 +1962,7 @@ void ne_set_server_auth(ne_session *sess, ne_auth_creds creds, void *userdata);
&lt;p&gt;Make sure you read the &lt;a href=&quot;README.md&quot;&gt;README&lt;/a&gt; to get an idea of what this library does.&lt;/p&gt;
&lt;p&gt;Also, I recommend you read my &lt;a href=&quot;https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md&quot;&gt;Nanomsg Explanation&lt;/a&gt; for additional PicoLisp tips and ideas.&lt;/p&gt;
&lt;p&gt;Also, I recommend you read my &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md&quot;&gt;Nanomsg Explanation&lt;/a&gt; for additional PicoLisp tips and ideas.&lt;/p&gt;
&lt;h1 id=&quot;global-variables&quot;&gt;Global variables&lt;/h1&gt;
@ -2195,7 +2195,7 @@ enum json_value_type {
<link href="https://picolisp.a1w.ca/2015/02/22/nanomsg/"/>
<updated>2015-02-22T00:00:00+00:00</updated>
<id>https://picolisp.a1w.ca/2015/02/22/nanomsg</id>
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://github.com/aw/picolisp-nanomsg&quot;&gt;get it on GitHub&lt;/a&gt;.&lt;/p&gt;
<content type="html">&lt;p&gt;You can &lt;a href=&quot;https://git.a1w.ca/aw/picolisp-nanomsg&quot;&gt;get it on my Git server&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&quot;picolisp-nanomsg-explanation&quot;&gt;PicoLisp-Nanomsg Explanation&lt;/h1&gt;


+ 1
- 1
_site/index.html View File

@ -117,7 +117,7 @@
<span class="post-date">29 Oct 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-rust">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-rust">get it on my Git server</a>.</p>
<p>This repo provides a simple example of how to use <a href="https://software-lab.de/down.html">PicoLisp</a> with <a href="https://www.rust-lang.org/tools/install">Rust</a> using PicoLisp’s FFI <code class="language-plaintext highlighter-rouge">(native)</code> functionality.</p>


+ 1
- 1
_site/page10/index.html View File

@ -117,7 +117,7 @@
<span class="post-date">17 Mar 2015</span>
<p>You can <a href="https://github.com/aw/picolisp-bcrypt">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-bcrypt">get it on my Git server</a>.</p>
<p>This library can be used to hash strings (ex: passwords) using bcrypt in <a href="http://picolisp.com/">PicoLisp</a>.</p>


+ 6
- 6
_site/page11/index.html View File

@ -117,7 +117,7 @@
<span class="post-date">16 Mar 2015</span>
<p>You can <a href="https://github.com/aw/picolisp-https">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-https">get it on my Git server</a>.</p>
<p>This library can be used to make HTTP and HTTPS requests in <a href="http://picolisp.com">PicoLisp</a>, with support for authentication.</p>
@ -125,13 +125,13 @@
<h1 id="explanation-https-client-for-picolisp">Explanation: HTTP(S) client for PicoLisp</h1>
<p>This document provides a short walkthrough of the source code for the <a href="https://github.com/aw/picolisp-https.git">PicoLisp-HTTPS</a> client.</p>
<p>This document provides a short walkthrough of the source code for the <a href="https://git.a1w.ca/aw/picolisp-https.git">PicoLisp-HTTPS</a> client.</p>
<p>I won’t cover concepts which were covered in previous source code explanations. You can read them here:</p>
<ul>
<li><a href="https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a></li>
<li><a href="https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md">JSON Explanation</a></li>
<li><a href="https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a></li>
<li><a href="https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md">JSON Explanation</a></li>
</ul>
<p>This document is split into a few sections:</p>
@ -297,7 +297,7 @@
<p>The <a href="http://software-lab.de/doc/refL.html#lisp">lisp</a> function is quite special. When using <code class="language-plaintext highlighter-rouge">(native)</code> for C calls, certain functions require a callback as an argument, or “function pointer” (Google it).</p>
<p>The <code class="language-plaintext highlighter-rouge">(ne-set-server-auth)</code> function requires a callback as its second argument, so we create one using <code class="language-plaintext highlighter-rouge">(lisp)</code>. If you’ve read the <a href="https://github.com/aw/picolisp-json/blob/master/EXPLAIN.md#make-array">JSON explanations</a>, you’ll quickly notice there’s an anonymous function in this <code class="language-plaintext highlighter-rouge">(lisp)</code> call. It essentially sends 5 arguments (which are numbers) to the <code class="language-plaintext highlighter-rouge">(do-auth)</code> function, under the name <code class="language-plaintext highlighter-rouge">ne_auth_creds</code>.</p>
<p>The <code class="language-plaintext highlighter-rouge">(ne-set-server-auth)</code> function requires a callback as its second argument, so we create one using <code class="language-plaintext highlighter-rouge">(lisp)</code>. If you’ve read the <a href="https://git.a1w.ca/aw/picolisp-json/blob/master/EXPLAIN.md#make-array">JSON explanations</a>, you’ll quickly notice there’s an anonymous function in this <code class="language-plaintext highlighter-rouge">(lisp)</code> call. It essentially sends 5 arguments (which are numbers) to the <code class="language-plaintext highlighter-rouge">(do-auth)</code> function, under the name <code class="language-plaintext highlighter-rouge">ne_auth_creds</code>.</p>
<p>Here’s the C code to give a better picture:</p>
@ -321,7 +321,7 @@ void ne_set_server_auth(ne_session *sess, ne_auth_creds creds, void *userdata);
<span class="nv">Attempt</span> <span class="p">)</span>
</code></pre></div></div>
<p>Whoa wait, what’s that <code class="language-plaintext highlighter-rouge">@</code> thing doing there? Remember we talked about the <a href="https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md#nn_symbols">@ result</a>? Well, this is <strong>NOT</strong> that.</p>
<p>Whoa wait, what’s that <code class="language-plaintext highlighter-rouge">@</code> thing doing there? Remember we talked about the <a href="https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md#nn_symbols">@ result</a>? Well, this is <strong>NOT</strong> that.</p>
<p>This is actually a <a href="http://software-lab.de/doc/native.html#libs">transient symbol</a> which refers to the main program (PicoLisp).</p>


+ 3
- 3
_site/page12/index.html View File

@ -117,7 +117,7 @@
<span class="post-date">08 Mar 2015</span>
<p>You can <a href="https://github.com/aw/picolisp-json">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-json">get it on my Git server</a>.</p>
<p>This library can be used to parse and serialize (encode/decode) JSON strings in <a href="http://picolisp.com/">PicoLisp</a>.</p>
@ -125,7 +125,7 @@
<h1 id="explanation-json-encoderdecoder-for-picolisp">Explanation: JSON Encoder/Decoder for PicoLisp</h1>
<p>This document provides a short walkthrough of the source code for the <a href="https://github.com/aw/picolisp-json.git">PicoLisp-JSON</a> encoder/decoder.</p>
<p>This document provides a short walkthrough of the source code for the <a href="https://git.a1w.ca/aw/picolisp-json.git">PicoLisp-JSON</a> encoder/decoder.</p>
<p>It’s split into a few sections for easier reading:</p>
@ -142,7 +142,7 @@
<p>Make sure you read the <a href="README.md">README</a> to get an idea of what this library does.</p>
<p>Also, I recommend you read my <a href="https://github.com/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a> for additional PicoLisp tips and ideas.</p>
<p>Also, I recommend you read my <a href="https://git.a1w.ca/aw/picolisp-nanomsg/blob/master/EXPLAIN.md">Nanomsg Explanation</a> for additional PicoLisp tips and ideas.</p>
<h1 id="global-variables">Global variables</h1>


+ 1
- 1
_site/page13/index.html View File

@ -117,7 +117,7 @@
<span class="post-date">22 Feb 2015</span>
<p>You can <a href="https://github.com/aw/picolisp-nanomsg">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-nanomsg">get it on my Git server</a>.</p>
<h1 id="picolisp-nanomsg-explanation">PicoLisp-Nanomsg Explanation</h1>


+ 7
- 7
_site/page2/index.html View File

@ -117,7 +117,7 @@
<span class="post-date">16 Sep 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-posixmq">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-posixmq">get it on my Git server</a>.</p>
<p><em><a href="https://man7.org/linux/man-pages/man7/mq_overview.7.html">POSIX Message Queues</a></em> provide a dependency-free mechanism for processes to exchange data in the form of messages.</p>
@ -143,7 +143,7 @@
<p>The first step is to run the unit tests: <code class="language-plaintext highlighter-rouge">make check</code></p>
<p>If those fail, jump to the <a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md">TUTORIALS</a> section to perform the initial setup and and system check.</p>
<p>If those fail, jump to the <a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md">TUTORIALS</a> section to perform the initial setup and and system check.</p>
<p>If all works well, then your system is ready to use this library.</p>
@ -176,13 +176,13 @@
<h1 id="documentation">Documentation</h1>
<p>Additional usage and reference documentation can be found in <a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/">docs/</a></p>
<p>Additional usage and reference documentation can be found in <a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/">docs/</a></p>
<ul>
<li><a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md">TUTORIALS</a>: some guides <strong>for beginners</strong> to get started using this library</li>
<li><a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/HOWTO.md">HOWTO</a>: a set of recipes for performing more advanced tasks with this library</li>
<li><a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/EXPLAIN.md">EXPLAIN</a>: an explanation of some key concepts, including how this library works</li>
<li><a href="https://github.com/aw/picolisp-posixmq/blob/master/docs/REFERENCE.md">REFERENCE</a>: technical information on the internals of this library</li>
<li><a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/TUTORIALS.md">TUTORIALS</a>: some guides <strong>for beginners</strong> to get started using this library</li>
<li><a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/HOWTO.md">HOWTO</a>: a set of recipes for performing more advanced tasks with this library</li>
<li><a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/EXPLAIN.md">EXPLAIN</a>: an explanation of some key concepts, including how this library works</li>
<li><a href="https://git.a1w.ca/aw/picolisp-posixmq/blob/master/docs/REFERENCE.md">REFERENCE</a>: technical information on the internals of this library</li>
</ul>
</div>


+ 1
- 1
_site/page3/index.html View File

@ -117,7 +117,7 @@
<span class="post-date">18 Jun 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-supervisor">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-supervisor">get it on my Git server</a>.</p>
<p>This program mimics functionality of <a href="https://yhbt.net/unicorn/">Unicorn</a>, without being limited to HTTP applications.</p>


+ 2
- 2
_site/page4/index.html View File

@ -117,7 +117,7 @@
<span class="post-date">16 Jun 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-kv">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-kv">get it on my Git server</a>.</p>
<p>This program mimics functionality of a <a href="https://redis.io">Redis™</a> in-memory database, but is designed specifically for <a href="https://picolisp.com">PicoLisp</a> applications with optional on-disk persistence and encryption.</p>
@ -197,7 +197,7 @@
-&gt; "12345"
</code></pre></div></div>
<p>Feel free to observe the example code in <a href="https://github.com/aw/picolisp-kv/blob/master/client.l">client.l</a>.</p>
<p>Feel free to observe the example code in <a href="https://git.a1w.ca/aw/picolisp-kv/blob/master/client.l">client.l</a>.</p>
<blockquote>
<p><strong>Note</strong>: Using <code class="language-plaintext highlighter-rouge">(kv-send-data)</code> will send the data to the server and automatically block the client while waiting for a response.</p>


+ 3
- 3
_site/page5/index.html View File

@ -117,10 +117,10 @@
<span class="post-date">02 Jan 2020</span>
<p>You can <a href="https://github.com/aw/picolisp-action">get it on GitHub</a> or the <a href="https://github.com/marketplace/actions/picolisp-action">GitHub Marketplace</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-action">get it on my Git server</a> or the <a href="https://github.com/marketplace/actions/picolisp-action">GitHub Marketplace</a>.</p>
<p>This action downloads, compiles, and globally installs PicoLisp.
It can be used to run PicoLisp code such as <a href="https://github.com/aw/picolisp-unit">units tests</a>.</p>
It can be used to run PicoLisp code such as <a href="https://git.a1w.ca/aw/picolisp-unit">units tests</a>.</p>
<p><img src="https://user-images.githubusercontent.com/153401/70022112-e4695580-158a-11ea-886d-0db01dbe7a66.png" alt="Example PicoLisp tests" /></p>
@ -147,7 +147,7 @@ It can be used to run PicoLisp code such as <a href="https://github.com/aw/picol
<h2 id="example-workflow">Example workflow</h2>
<p>See the <a href="https://github.com/aw/picolisp-json/blob/master/.github/workflows/main.yml">picolisp-json workflow</a> for a more detailed usage example.</p>
<p>See the <a href="https://git.a1w.ca/aw/picolisp-json/blob/master/.github/workflows/main.yml">picolisp-json workflow</a> for a more detailed usage example.</p>
<h2 id="code">Code</h2>


+ 4
- 4
_site/page6/index.html View File

@ -117,11 +117,11 @@
<span class="post-date">15 Mar 2019</span>
<p>You can <a href="https://github.com/aw/picolisp-awscurl">get it on GitHub</a>.</p>
<p>You can <a href="https://git.a1w.ca/aw/picolisp-awscurl">get it on my Git server</a>.</p>
<p>This command line tool can be used to sign <a href="https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html">AWS Signature Version 4</a> requests and make calls to various AWS APIs.</p>
<p><a href="https://github.com/aw/picolisp-awscurl"><img src="https://img.shields.io/github/release/aw/picolisp-awscurl.svg" alt="GitHub release" /></a> <a href="https://github.com/aw/picolisp-unit.git"><img src="https://img.shields.io/badge/[deps]&#32;picolisp--unit-v3.0.0-ff69b4.svg" alt="Dependency" /></a> <img src="https://github.com/aw/picolisp-awscurl/workflows/CI/badge.svg?branch=master" alt="Build status" /></p>
<p><a href="https://git.a1w.ca/aw/picolisp-awscurl"><img src="https://img.shields.io/github/release/aw/picolisp-awscurl.svg" alt="GitHub release" /></a> <a href="https://github.com/aw/picolisp-unit.git"><img src="https://img.shields.io/badge/[deps]&#32;picolisp--unit-v3.0.0-ff69b4.svg" alt="Dependency" /></a> <img src="https://github.com/aw/picolisp-awscurl/workflows/CI/badge.svg?branch=master" alt="Build status" /></p>
<ol>
<li><a href="#requirements">Requirements<