#+TITLE: Random notes about =dds= * Building and installing Running the following: #+BEGIN_SRC shell raco pkg install #+END_SRC in the =dds= directory will build and install the dependencies and then link the directory as a package. * Building the Scribble documentation To build the Scribble documentation, run the following: #+BEGIN_SRC shell raco setup -l dds #+END_SRC The =dds= package must already be installed. Execute the following code block to open the documentation in the last visited browser window. #+BEGIN_SRC elisp :results silent (shell-command "firefox doc/dds/index.html") #+END_SRC * Racket Package catalog bug <2020-11-26 Thu> =raco pkg= had a bug which caused it to fail with the following error: #+BEGIN_EXAMPLE Resolving "graph-lib" via https://download.racket-lang.org/releases/7.9/catalog/ .raco-wrapped pkg install: cannot find package on catalogs package: graph-lib #+END_EXAMPLE The fix coming from [[https://github.com/mbutterick/pollen/issues/239][here]] was to do the following: #+BEGIN_SRC shell raco pkg config --set catalogs https://download.racket-lang.org/releases/7.9/catalog/ "" #+END_SRC It looks like it make =raco pkg= redetect the proper URLs for Racket package catalogs. * Roadmap :old: I moved the roadmap to [[file:README.org][README]]. ** DONE Write a function to look the symbol at point [3/3] - [X] add a racket-helpdesk-online - [X] add keyboard shortcuts to key maps - [X] check/add documentation ** DONE Finish the [[file:example/example.org][example]] on random networks ** DONE Fix the generation of interaction graphs ** DONE Setup =dds= as a package - https://blog.racket-lang.org/2017/10/tutorial-creating-a-package.html ** DONE Make =raco test= play nicely with my tests ** DONE Replace =let= with =test-begin= in tests ** DONE Initialise the random seed in each =test-case= As of [2020-05-24 Sun], I have the impression that the seed is not globally set. ** DONE Factor out the code for functions ** DONE Move =boolean-power= and =boolean-power-stream= to =utils= ** DONE Tabulate multiple functions with the same domain ** DONE Think about interactions between Racket code blocks When a code block calls another code block, the result seems to be dumped to a string. This means that I cannot directly use the result from calling a block, and that I have to do some writing and reading between the two. Check [[/home/scolobb/Candies/Science/People/Ion/rs-control/rs-control.org][rs-control.org]] to see what quick fixes I did recently. ** DONE Make shortcuts for TBF/TBN and SBF/SBN ** DONE Implement drawing the interaction graphs of TBN ** DONE Implement truth tables grouped by Nai Number of activated inputs in the Boolean input vectors. Mainly to illustrate how abstract representation works and breaks. ** DONE Review =build-interactive-process-graph= This function includes context sequences in states to differentiate between the same states appearing at different steps of the interactive process. In fact, I don't care about that at all, because if I want to have the complete interactive process, I can just use =build-interactive-process=. /Comment on <2020-11-09 Mon>/: Yeah, but I need the context sequence in the state to be able to define the dynamics properly. This actually shows that the context sequence must be part of the state if we want to capture reaction systems in the framework of discrete dynamical systems. Secondly, =build-interactive-process-graph= assumes that the input context sequence is a /prefix/ of an infinite context sequence in which the majority of contexts are empty. This is a rather weird assumption. Because of these two aspects, I found that this function was rather useless in working with actual reaction systems, in particular in my collaboration with Ion on control of reaction systems. ** TODO Review =build-interaction-graph= Check that the definition of this function really follows the definition of the interaction graph. Pay attention to the existential vs. universal quantifiers. ** TODO Write the docs properly with Scribble https://docs.racket-lang.org/scribble/srcdoc.html ** TODO Submit =update-graph= to =stchang= ** TODO Implement the BN \to RS conversion ** TODO Implement the minimisation of TBF/SBF ** TODO Contribute to Racket - Make sequence-filter allow multivalued sequences, provided the arity of the predicate is consistent with the arity of the sequence. - Add a sequence->hash function that accepts a multivalued sequence of keys and values (exactly like what in-hash produces) and copies them into a hash table. ** TODO Test network inference with [[https://docs.racket-lang.org/racklog/index.html][Racklog]] * Local Variables :noexport: # Local Variables: # eval: (auto-fill-mode) # ispell-local-dictionary: "en" # org-link-file-path-type: relative # End: