aboutsummaryrefslogtreecommitdiff
path: root/README.rst
blob: f09a862a27c9f29099a3121e160da1c58fab30ed (plain)
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
README for Reading-Heap
***********************

Reading-Heap
============

Reading-Heap: a service and clients for managing your media consumption
order.

Description
===========

What is a Reading Heap?
-----------------------

It's a *heap* of things you want to *read*. Shocking, I know. But what
does that mean? Simply, it means you add a priority when you put an item
on the heap, and when you ask the heap what to read it will take your
priorities into account (another name for a heap is a priority queue,
after all).

What sets Reading Heap apart?
-----------------------------

Reading-Heap is implemented as a service, so any zmq-enabled language
can write a client for it. You could possibly write a client to add an
article from your phone via a web service, grab the details into your
wayland clipboard from the command line, and maybe one day file it into
your org-mode agenda buffer.

Installation
============

Dependencies
------------

* `Guile 3`_ (or later)
* `guile-config`_
* `guile-json`_
* `Guile-Simple-ZMQ`_
* `ZeroMQ`_

Build Dependencies
------------------

* `GNU AutoMake`_
* `GNU AutoConf`_
* `Guile Hall`_ (optionally)

Procedure
---------

.. role:: bash(code)
   :language: bash

The usual autotools make process applies here. We've put the call to
:bash:`hall build -x` in the autogen.sh script, and only run it if we
find `Guile Hall`_.

.. code-block:: bash

   ./autogen.sh
   ./configure
   make
   sudo make install

Usage
=====

Server
------

To start this whole thing, put the following in your favorite autostart
mechanism, or just run it from the command line.

.. code-block:: bash

   rh-server

If you need to shut it down, you can use the command-line client.

.. code-block:: bash

   rh-client shutdown

Command-line Client
-------------------

Let's say you're a refined sort with good taste, and you want to read
that collection of Emily Dickinson poems you've had next to your bed for
the last year. You might do this:

.. code-block:: bash

   rh-client new --priority 1 --title "The Poems of Emily Dickinson: Reading Edition" --author "Emily Dickinson (Author) RW Franklin (Editor)" --location "Nightstand"

To get something back out, you would issue a 'next' command:

.. code-block:: bash

   rh-client next

To let the system know you've been edified by the verse:

.. code-block:: bash

   rh-client consume

.. _`Guile 3`: https://www.gnu.org/software/guile/
.. _`guile-config`: https://gitlab.com/a-sassmannshausen/guile-config
.. _`guile-json`: https://github.com/aconchillo/guile-json
.. _`Guile-Simple-ZMQ`: https://github.com/jerry40/guile-simple-zmq
.. _`ZeroMQ`: https://zeromq.org/
.. _`GNU AutoMake`: https://www.gnu.org/software/automake/
.. _`GNU AutoConf`: https://www.gnu.org/software/autoconf/
.. _`Guile Hall`: https://gitlab.com/a-sassmannshausen/guile-hall