Journal 2025-03-14
Pi Day!
Ok, I hit an issue with nesting in #:transmissions. Can leave that for now.
Grrr. Might have to dive back into the core : the settings precedence doesn't seem quite right. It appears to be putting config.ttl above manifest.ttl rather than vice versa (if a manifest is given).
This is right at the limit of what I ccan remember (why I need #:semem). Ok, curiosity :
danny@danny-desktop:~/hyperdata/transmissions$ cloc --vcs=git --md .
| cloc | github.com/AlDanial/cloc v 1.98 T=3.18 s (216.4 files/s, 56724.5 lines/s) |
|---|
| Language | files | blank | comment | code |
|---|---|---|---|---|
| Markdown | 252 | 16302 | 14 | 56817 |
| HTML | 84 | 16542 | 536 | 22546 |
| Text | 32 | 4217 | 0 | 19251 |
| JSON | 43 | 0 | 0 | 16403 |
| SVG | 17 | 0 | 11 | 11039 |
| JavaScript | 215 | 2197 | 1788 | 9880 |
| CSS | 18 | 218 | 98 | 1216 |
| Nunjucks | 19 | 98 | 0 | 735 |
| YAML | 1 | 5 | 0 | 116 |
| TypeScript | 2 | 12 | 5 | 102 |
| Bourne Shell | 3 | 19 | 21 | 92 |
| Python | 1 | 8 | 37 | 46 |
| Bourne Again Shell | 1 | 2 | 2 | 2 |
| -------- | -------- | -------- | -------- | -------- |
| SUM: | 688 | 39620 | 2512 | 138245 |
Only a fraction of the files in the top 3 types are relevant, most is test data etc. But I think there's a lot of important Turtle classified as text.
I'm happy with the JS figures at this point in time. When finished (as much as it'll ever be), I reckon there should be about 50 'active' JS files, maybe 20 in the core (model, api, engine), 30 key processors. The same number of 'passive' - tests. The ratio of JS file count and LOC isn't great IMHO. Average is about 50, I'd rather have that around the max (hmm, the Jasmine tests are long-winded, not a big deal, so maybe it's not as bad as it seems).
Transmission nesting issue
#:todo move to #:transmissions docs
#:todo alsomake test for command-line named transmission calls
The sparqlstore-to-site-indexes #transmissions application should be a good place to use nested transmissions. I set them up, but didn't fully test. With :
:sparqlstore-to-indexes a :Transmission ;
:pipe (:p10 :p20 :p30 :p40 :p50) .
...
:p40 a :Accumulate ;
:settings :accumulator .
:p50 a :make-html-index .
# HTML
:make-html-index a :Transmission ;
:pipe (:p100 :SM2) .
...
It falls ove3r trying to make the processor connection,
TypeError: Cannot read properties of undefined (reading 'receive')
at Accumulate.<anonymous> (file:///home/danny/hyperdata/transmissions/src/model/Connector.js:28:33)
...
Somewhere around, in Transmission.js :
getFirstNode() { // used for nested transmissions
logger.log(this)
logger.log(this.processors[0])
return this.processors[0]
}