Compare commits

...

497 Commits
main ... main

Author SHA1 Message Date
sejo ef5fa7a84e added {contact} to {home} 2024-04-26 20:16:38 +02:00
sejo d878f552f0 macros are not deprecated anymore, removed notes and tasks accordingly 2024-04-26 19:51:24 +02:00
sejo d999030fde reworded message regarding up-to-date status of tutorial 2024-04-26 19:45:50 +02:00
sejo 55c844241b reverting to the original colors in the text 2024-04-26 19:36:30 +02:00
sejo d977fde66e Revert "update colors everywhere"
This reverts commit 1c3ed6c366.
2024-04-26 19:33:19 +02:00
sejo 4d6c2df645 added Hope in the Dark 2024-04-18 23:40:56 +02:00
sejo 132a31b383 updated license 2024-04-18 22:28:34 +02:00
sejo 292459a64b we dedicate this work to the public domain! 2024-04-18 22:17:28 +02:00
sejo 606ce2d7a8 updated social links 2024-04-18 11:06:11 +02:00
sejo 11a42964de updating the {log}, {now}, {ahora} with links to upcoming {talks and workshops} 2024-04-17 20:35:11 +02:00
sejo d783d0d675 updated links 2024-04-17 20:24:35 +02:00
sejo da19220e64 maintenance and updating of {talks and workshops} 2024-04-17 20:21:09 +02:00
sejo 794d6570ba agregados libros de marzo 2024-03-28 21:53:01 +01:00
sejo 3672940675 note on welcoming contributions 2024-03-28 21:49:27 +01:00
sejo f8772f31c0 added note regarding the status of the tutorial and ebook 2024-03-28 20:47:53 +01:00
sejo df3573f7a5 add notes regarding zero-page labels as constants
e.g.:
|40 @color-clear

and then use it as .color-clear

thanks tbsp!
2024-03-28 20:46:51 +01:00
sejo 4aa4b7095c removed RTN macros 2024-03-28 19:41:15 +01:00
sejo ecc8ac8d30 update roadmap with macro stuff 2024-03-28 19:37:44 +01:00
sejo 953b48531b update roadmap 2024-03-28 19:04:21 +01:00
sejo a9fe51c6ea end of third stream! 2024-03-16 21:15:38 +01:00
sejo b733fa0e65 updated example sprite for 1bpp (thanks snufkinvc and evincarofautumn), color table for low nibble and other minor changes 2024-03-16 21:02:45 +01:00
sejo f729efed18 starting with drawing pixels, minor changes 2024-03-16 19:15:05 +01:00
sejo a720c15e72 added link to twitch.tv 2024-03-14 22:16:23 +01:00
sejo dcc7470bfd second stream notes 2024-03-14 22:14:20 +01:00
sejo 806aa98322 minor corrections to drawing pixels section 2024-03-14 21:07:23 +01:00
sejo f4c8f22e31 screen device and minor formatting 2024-03-14 20:37:34 +01:00
sejo 1c3ed6c366 update colors everywhere 2024-03-14 20:20:03 +01:00
sejo 6cb90c4151 updated suggested colors, thanks devine and booniepepper! 2024-03-14 20:13:48 +01:00
sejo 0e928f46a7 minor corrections to the shorts section 2024-03-14 19:38:58 +01:00
sejo a339bd307c change KB to KiB 2024-03-14 19:17:49 +01:00
sejo 9f665ff709 note about newline printing 2024-03-09 19:04:57 +01:00
sejo 9998b8b4f0 info de taller de computación somática 2024-03-09 18:35:54 +01:00
sejo 12365a6d5a added link to learn-uxn 2024-03-09 18:03:16 +01:00
sejo 2643c954d3 created page on {maintenance practice} 2024-03-09 18:00:33 +01:00
sejo 4f87352e8a note about uxntal playground 2024-03-09 18:00:21 +01:00
sejo 62348ab53c link to 100R - uxn for downloading emulators 2024-03-09 17:39:42 +01:00
sejo 3948ca27e6 work-in-progress appendix for running uxn 2024-03-09 15:52:06 +01:00
sejo aafc711f17 minor formatting for the final of {uxn tutorial day 1} 2024-03-09 15:38:34 +01:00
sejo 616b71de72 rewriting first program for learn-uxn, thanks 256k! 2024-03-09 15:10:45 +01:00
sejo dd87cd2837 updated usage, installation and toolchain section 2024-03-09 13:35:02 +01:00
sejo f7783b9e0e link to nchrs notes, small formatting 2024-03-09 13:04:06 +01:00
sejo 09ea42025d clarifications in postfix notation 2024-03-09 12:46:45 +01:00
sejo 46d7ba9ad7 update intro quotes and links 2024-03-09 12:39:18 +01:00
sejo e84f5d8037 updated link to learn-uxn 2024-03-09 12:19:21 +01:00
sejo 3a5b5afd49 added a metamorphosis to {books} 2024-03-04 21:38:05 +01:00
sejo 2183f2b7a8 actualización en home y now 2024-02-26 20:33:41 +01:00
sejo 11259de321 libros pendientes enero/febrero 2024-02-26 20:29:52 +01:00
sejo 76d54eecc0 agrega {propuesta taller computación somática} 2024-01-31 19:20:52 +01:00
sejo 0efc3b8d9f agregados Imago y Solaris 2024-01-12 15:07:09 +01:00
sejo c0f633ec7f corrected link to {bouncer-2d prototype} pdf 2024-01-06 22:35:35 +01:00
sejo eea73fa140 {poñg} updates for {now} and {log} 2024-01-06 19:56:45 +01:00
sejo 76fe6e7b64 notas sobre {poñg}, {bouncer-2d prototype} y ramificaciones 2024-01-06 19:38:54 +01:00
sejo 925ed185b6 ritos de madurez en {books} 2024-01-06 18:17:33 +01:00
sejo 9b851bea01 added amanecer 2024-01-02 07:27:20 +01:00
sejo 22ee973b6d links to {bilingüismo} 2023-12-28 15:30:34 +01:00
sejo b8a3cdfdf6 removed ssb from {contact(o)} 2023-12-27 17:09:39 +01:00
sejo 8ce6443ef4 updated {videos} description 2023-12-27 17:01:20 +01:00
sejo b94735c336 created {videos} 2023-12-27 17:00:13 +01:00
sejo 54527a5489 added jarotsim talk video to {jarotsim} 2023-12-27 16:38:14 +01:00
sejo 9a35432e87 nota sobre subtítulos 2023-12-27 16:20:11 +01:00
sejo 78dc2b4851 jarotsim en/at hlci video 2023-12-27 16:14:04 +01:00
sejo fe784946a1 added header in spanish, icon link goes to {inicio} 2023-12-24 20:19:39 +01:00
sejo dc7cda1926 corrected notes about 12022 2023-12-23 19:48:54 +01:00
sejo ded32a2813 added terramar en 12022 2023-12-23 18:49:55 +01:00
sejo d34b3ef11c update in {now}/{ahora} for {highlights of 12023} 2023-12-23 18:04:28 +01:00
sejo de2d6e94b0 created {highlights of the year 12023} and {books} 2023-12-23 17:48:14 +01:00
sejo 65440b7f07 create {oleaje} 2023-12-22 12:52:04 +01:00
sejo 3b5e8787c8 added {theme of the year} 2023-12-20 20:28:59 +01:00
sejo 5c80579f52 changed link from qiudanz tag to technique 2023-12-13 17:23:50 +01:00
sejo 927e6cb444 jarotsim at hlci! 2023-12-13 17:21:53 +01:00
sejo da30f850a4 reorder home and add images 2023-12-11 19:29:23 +01:00
sejo 862b531d94 time of presentation HLCI 2023-12-07 12:25:19 +01:00
sejo 0d1e98b179 thoughts on screens 2023-11-26 21:37:16 +01:00
sejo c3a4fd047e change footer font to small from x-small 2023-11-26 20:57:44 +01:00
sejo b75755799f make incoming links the same size as everything 2023-11-26 20:40:46 +01:00
sejo 3fa057f6b8 link to {poetry} 2023-11-26 20:23:15 +01:00
sejo d4a8446031 link to tildegit repo 2023-11-26 20:19:33 +01:00
sejo c95352723f updated gemini project links 2023-11-26 19:32:53 +01:00
sejo 83f36a5258 thoughts section 2023-11-26 19:29:56 +01:00
sejo b510138346 default color-scheme is light 2023-11-26 16:22:21 +01:00
sejo 75ce2f1df2 nav color and padding corrections for mobile 2023-11-26 16:20:14 +01:00
sejo 7bf08fcaef change default icon to 64px 2023-11-26 16:15:32 +01:00
sejo 6b6ef0abcc updating og:image 2023-11-26 15:53:57 +01:00
sejo 9193cc6471 logo with color! 2023-11-26 15:50:38 +01:00
sejo c001743436 link to esglua 2023-11-26 15:19:23 +01:00
sejo eab2c1cc50 remove "more serious" 2023-11-26 15:11:29 +01:00
sejo f663b7057c implemented dark/light css theme based on prefers-color-scheme 2023-11-26 15:08:26 +01:00
sejo ebf9f808d4 banner image in about/acerca 2023-11-25 16:35:16 +01:00
sejo 770a6fc09b updated opguides' link to decoder 2023-11-20 18:55:09 +01:00
sejo 9cbc9c338f added uxn tutorial to-do items to roadmaps 2023-10-28 20:29:21 +02:00
sejo 5baa1f0106 la sala goes offline 2023-10-22 13:03:54 +02:00
sejo 2429ef7935 reemplazando enlaces de {norpet} a {norpet mascota digital} 2023-10-21 17:28:36 +02:00
sejo bd955aaf1d agragada traducción norpet mascota digital 2023-10-21 17:25:57 +02:00
sejo 5ee9693955 de-emphasize txiemonks 2023-10-21 17:23:29 +02:00
sejo 570fe2b438 agregando traducción de {norpet} 2023-10-21 17:21:29 +02:00
sejo d96db56845 added video transcript 2023-05-30 11:11:00 +02:00
sejo 35b562e401 updated link to slomoco archive 2023-04-01 22:21:17 +02:00
sejo 9d1925f02e link to escenaconsejo 2023-03-13 23:40:53 +01:00
sejo 6767e62851 added images to {hamiltonian cards} 2023-03-13 23:29:26 +01:00
sejo 197a5e09e3 hamiltonian cards 2023-03-13 23:29:09 +01:00
sejo cc2bbfe74a quitando enlace de ícono rss 2023-02-24 19:23:44 +01:00
sejo 6831886360 updated now: break. updates in roadmap. 2023-02-24 19:19:43 +01:00
sejo a2a48c9aec links a the sala y prev highlights 2022-12-31 13:46:46 +01:00
sejo 0898080d03 la sala y the sala 2022-12-31 13:27:45 +01:00
sejo 7603272020 highlights of 12022 2022-12-31 13:25:14 +01:00
sejo 0685c5172b correction of DEH behavior in example, thanks Thomas! 2022-12-19 21:19:05 +01:00
sejo 2d03f06f12 qiudanz tag performance 2022-12-06 19:39:38 +01:00
sejo f02d15855a performance info on {qiudanz tag} 2022-12-04 12:28:31 +01:00
sejo 0c57665f03 link to stream 2022-12-04 11:46:27 +01:00
sejo f3a0b5a2c1 qiudanz tag notes 2022-12-04 11:23:26 +01:00
sejo d6880c5302 link to cyclic tag systems 2022-12-04 08:29:25 +01:00
sejo ec8aa47d1f returned rel=me link to merveilles 2022-11-23 17:48:17 +01:00
sejo e421befa69 spectra.video link to tutorial 2022-11-21 12:13:54 +01:00
sejo 3806c54cb7 version 1.0.4 intro to uxn programming book 2022-11-13 19:28:50 +01:00
sejo f4a2170571 link to nasu.tal without line number 2022-11-13 17:41:20 +01:00
sejo 42a0eafec8 new intro including the launcher 2022-11-13 15:34:35 +01:00
sejo d74942e0e5 launcher.rom and portable wc 2022-11-13 14:25:31 +01:00
sejo cbb479c16a raw addresses runes 2022-11-13 13:50:20 +01:00
sejo 4e36e2ba63 small corrections, thanks bouncepaw! 2022-11-01 21:44:46 +01:00
sejo 6ddacc125e add to TODO reviewing assembler results from uxn day 1 2022-11-01 21:44:15 +01:00
sejo 6b1980ab08 link to performances 2022-10-31 12:21:55 +01:00
sejo d7fdf023ae updates regarding Hybrid Live Coding Interfaces 2022 2022-10-31 12:16:56 +01:00
sejo 7ed0dbafbd raw character rune is now raw string rune 2022-10-31 12:16:27 +01:00
sejo 772fdcbe01 corrected link to darena in repo, thanks Philip! 2022-10-16 21:35:57 +02:00
sejo c180891068 txiemonks small update 2022-10-16 21:35:09 +02:00
sejo 7b2ab1080d added {location} and {ubicación} 2022-10-16 21:33:50 +02:00
sejo c31d29d433 removed sunbeam.city link 2022-10-16 19:42:28 +02:00
sejo db398c4995 removed {biosejo*} 2022-10-16 19:40:28 +02:00
sejo 2ea7c88d9f removed {running} and {queso mango} 2022-10-16 19:36:44 +02:00
sejo 3f7eb8bae0 removed links to repo 2022-10-16 19:30:32 +02:00
sejo a7d1e81932 removed {sejo} 2022-10-16 19:20:19 +02:00
sejo 5ae3587514 remove repo and sejo from header and footer 2022-10-16 19:12:24 +02:00
sejo e193b8fee5 updated omemo keys 2022-10-03 21:04:44 +02:00
sejo 9be3e582f9 regresan recetas al sitio 2022-09-28 23:43:11 +02:00
sejo 43a34fa9ea moving pages to queso mango 2022-09-23 20:37:18 +02:00
sejo d95798bb0d replaced human-powered with human-scale 2022-09-21 15:21:01 +02:00
sejo b89721a6f0 10km done! removed from now/ahora 2022-09-19 18:30:37 +02:00
sejo b6ee6991ce updated 10km and 5km personal records! 2022-09-19 18:22:25 +02:00
sejo 3795d2f3aa link to an anarchist solution to global warming 2022-09-03 14:52:54 +02:00
sejo 61d17600a7 added several links of friends' sites 2022-09-03 13:39:29 +02:00
sejo 9bd60d50fc corrected link 2022-08-26 12:43:15 +02:00
sejo 2314c2438b permacomputing wiki link 2022-08-26 12:40:09 +02:00
sejo 7bef9375ab reordering & rule 110 marble machine 2022-08-26 12:38:28 +02:00
sejo 063dbc326c biosejo 120220825 2022-08-25 12:29:26 +02:00
sejo b9554c709a added solarpunk to 'la sala' description 2022-08-23 16:01:35 +02:00
sejo e9f9ea84ad link to atom feed w/ blobcat by Diego aquiesdon.de 2022-08-23 15:35:48 +02:00
sejo 013b4248e8 atom feed in html header 2022-08-23 15:22:33 +02:00
sejo 1a056314fb a couple of solarpunk references 2022-08-22 18:37:08 +02:00
sejo d8b3165c38 added computer dance by analivia cordeiro
via sicchio
2022-08-16 18:41:58 +02:00
sejo 6917790bf9 updated now+home, biosejo with less prominence 2022-08-07 20:48:59 +02:00
sejo a889a24caf a fine frenzy link 2022-08-03 19:52:57 +02:00
sejo a4df7d57f7 selected projects in home page 2022-07-24 16:35:07 +02:00
sejo c4a44a7d1f new omemo key added 2022-07-24 16:27:38 +02:00
sejo 8bc3168bb1 included dynamicland link, thanks murilo! 2022-07-17 21:26:18 +02:00
sejo 6dd43c7b52 biosejo 120220717 2022-07-17 20:43:01 +02:00
sejo e68b1394d3 atom feed of log is now a valid atom feed 2022-07-10 21:00:53 +02:00
sejo 4f2439b61b make log a valid html journal 2022-07-10 20:49:34 +02:00
sejo 2b657eec77 removed track_id from video link 2022-07-10 16:23:09 +02:00
sejo 6b21940f85 updated link rel and id in biosejos' atom feed 2022-07-10 15:37:25 +02:00
sejo a394f12fcc biosejo 120220710 2022-07-10 15:20:15 +02:00
sejo f3f80606eb now in madrid 2022-07-10 15:20:03 +02:00
sejo 746d195c81 updated now, removed biosejo's latest post link
(this in order to reduce the number of updates to perform when making a
new post)
2022-06-08 11:10:18 -05:00
sejo dc7720ad34 corrected note with not 2022-06-07 13:02:14 -05:00
sejo 7adbd12bd0 biosejo 120220607 2022-06-07 12:59:20 -05:00
sejo 2b290fc467 link to #uxn in merveilles 2022-06-06 16:11:44 -05:00
sejo 95646cf935 reformatted footer
included home and pages links,
removed social media icons
2022-06-04 15:04:43 -05:00
sejo 6826d4ee7e corrected link to nasu's source code
and included the anchor to the theme subroutines.
thanks tbsp!
2022-05-31 16:18:50 -05:00
sejo ad61221acd reworded description 2022-05-24 21:00:46 -05:00
sejo 22f87c77b6 corrected title in atom feed 2022-05-19 20:27:21 -05:00
sejo 23079ee2eb biosejo 120220519 2022-05-19 20:26:16 -05:00
sejo 5bf62002ea small correction 2022-05-11 09:19:32 -05:00
sejo ec63173e11 clean up trailing whitespace 2022-05-11 09:17:54 -05:00
sejo 2a4c408900 biosejo 120220511 2022-05-11 09:17:37 -05:00
sejo afa7eef7f8 corrected valid atom link and attributes 2022-05-04 19:02:59 -05:00
sejo d90eaabe12 valid atom feed banner 2022-05-04 18:53:41 -05:00
sejo 231df83104 add biosejo atom feed 2022-05-04 18:42:59 -05:00
sejo ccd681e207 corrected use of updated date on atom feeds 2022-05-04 18:42:30 -05:00
sejo f1a97e256c assign target="_blank" with quotation marks 2022-05-04 18:41:24 -05:00
sejo 2d18085a28 added biosejo to now page 2022-05-03 21:45:20 -05:00
sejo 3a20f3f007 changed generator name in atom feeds 2022-05-03 18:20:41 -05:00
sejo 63b7eb2e7b description in header now uses double quotes 2022-05-03 18:06:16 -05:00
sejo f9a62e034b removed again gemini-link header indicators 2022-05-03 18:00:58 -05:00
sejo ce50bed53e update now, link a biosejo 2022-05-03 17:54:59 -05:00
sejo d35e0602fc started biosejo 2022-05-03 17:47:56 -05:00
sejo 1be7ceddcc Merge pull request 'Traducción de la actualización: Día 2 y Día 6' (#11) from jotaemese/compudanzas:traducción_tutorial_de_uxn_día_6 into main
Reviewed-on: https://codeberg.org/sejo/compudanzas/pulls/11
2022-04-30 20:42:08 +02:00
jota 7c6873603c Traducción de la actualización: Día 2 y Día 6 2022-04-30 12:56:10 -03:00
sejo cb7d290de8 nueva clave omemo 2022-04-27 17:09:09 -05:00
sejo 3e7ea42fd1 omemo keys 2022-04-27 10:09:05 -05:00
sejo 6a2fbe82c2 h2 in social media info 2022-04-27 10:08:56 -05:00
sejo 83a7bd0bd8 minor formatting edits 2022-04-26 18:10:43 -05:00
sejo 9e41971844 link a sejo en archipielago 2022-04-26 11:15:41 -05:00
sejo 6aebd7fb72 now: updating books 2022-04-26 11:15:25 -05:00
sejo e1e5734faa add ebook version number 2022-04-22 14:34:02 -05:00
sejo 1021d814c6 new version of e-book 2022-04-22 14:16:17 -05:00
sejo cbc08122f4 sanitize html of list elements 2022-04-22 14:11:18 -05:00
sejo 66c71b0ecd add description and use of screen/auto 2022-04-22 12:50:12 -05:00
sejo 772a96eda0 header level indicators 2022-04-22 12:43:59 -05:00
sejo 82cf46e23d update roadmap for uxn tutorial: uxnemu and screen/auto 2022-04-22 09:25:15 -05:00
sejo 034de7e8de done updating datetime+file devices 2022-04-22 09:24:45 -05:00
sejo ca3fd37cee updated file device(s) and datetime 2022-04-22 09:17:18 -05:00
sejo 67dffd5866 reordering of first paragraph 2022-04-22 09:15:58 -05:00
sejo 07e10f3ac4 cambio de color para listas 2022-04-22 09:10:59 -05:00
sejo 9b0f05ec51 xmpp address 2022-04-20 18:19:16 -05:00
sejo 7226b865d5 compatibility with nano 4.8? 2022-04-20 18:19:06 -05:00
sejo 37f8812a02 new reference: the handheld is dead 2022-04-19 12:30:12 -05:00
sejo d7ec8781fd corrección de sub-etiquetas de Archivo y Consola 2022-04-19 10:00:51 -05:00
sejo cc42352771 corrected load-theme and save-theme; thanks Willem! 2022-04-19 10:00:16 -05:00
sejo a887b9eb18 rewording 2022-04-17 13:47:42 -05:00
sejo c34fc540bd description rewording 2022-04-17 11:11:15 -05:00
sejo f075d1031c about sejo 2022-04-14 21:56:45 -05:00
sejo c1a3077ea1 reduced margin-top from h1 2022-04-14 21:22:26 -05:00
sejo d01611750e new formatting 2022-04-14 21:20:48 -05:00
sejo 540da33a7c removed body padding top 2022-04-14 21:20:24 -05:00
sejo 181158b761 inline header icon 2022-04-14 21:12:18 -05:00
sejo 9fb0d2f5c9 rewording of support pages 2022-04-14 21:02:54 -05:00
sejo bdc46984ed note on instructions for running uxnemu 2022-04-14 21:02:32 -05:00
sejo 9e5be4f5f8 new color palette 2022-04-14 20:58:56 -05:00
sejo a702e35fe3 sections in support 2022-04-14 20:50:26 -05:00
sejo 55247b3a58 footer and nav changes 2022-04-14 20:37:10 -05:00
sejo d866c8c913 new format 2022-04-14 20:36:40 -05:00
sejo 7d8e976584 new format for incoming links 2022-04-14 20:04:18 -05:00
sejo 95e60642ac post.lurk.org and merveilles links on footer 2022-04-14 20:01:00 -05:00
sejo f0bbb6fdbc secciones en ahora 2022-04-14 19:48:15 -05:00
sejo 8d6345062d english-only home 2022-04-14 19:47:55 -05:00
sejo 07c2d0ea9e inicio en español 2022-04-14 19:46:43 -05:00
sejo df2845faaf replaced arrow for external links 2022-04-13 17:49:28 -05:00
sejo e830e611e1 nuevo formato de contacto 2022-04-12 21:05:22 -05:00
sejo 35a572c530 notes on updating uxn tutorial 2022-04-08 15:38:00 -05:00
sejo 783889ff99 link to demo video 2022-04-07 20:59:30 -05:00
sejo 2d432f57f6 updated support with itch.io link 2022-04-07 20:57:22 -05:00
sejo dc12b3e88f link to (a)live computing dance and embed video 2022-04-07 20:53:48 -05:00
sejo ef5f5251c0 update home with current links 2022-04-07 20:53:33 -05:00
sejo 983b35e0fc release of jarotsim 2022-04-07 20:49:22 -05:00
sejo 305a47f0c3 removed LIMITS call 2022-04-07 20:46:50 -05:00
sejo 63f34fca33 added music link 2022-04-07 19:12:43 -05:00
sejo 996511c7ba updated jarotsim info and media 2022-04-07 19:11:19 -05:00
sejo 587f352926 jarotsim docs corrections 2022-04-06 19:39:44 -05:00
sejo 43581a984c jarotsim documentation 2022-04-06 19:28:30 -05:00
sejo 8cb7d48921 addded more permacomputing references 2022-04-06 10:22:37 -05:00
sejo a10a4e1986 new jarotsim images, pixel-art based 2022-04-05 13:45:42 -05:00
sejo 085993d76a lambda subcategory and λ-2D 2022-04-05 13:27:15 -05:00
sejo e3eeba2877 fix {wikilinks} in list items 2022-04-03 14:41:50 -05:00
sejo 1f49af73ce agrega a jarotsim y actualiza ahora/now y log 2022-04-02 12:10:48 -06:00
sejo a879d19ce8 get modified date from ls instead of stat 2022-03-28 17:26:49 -06:00
sejo e64ed6a753 more efficient cleanup 2022-03-28 17:03:17 -06:00
sejo f1febf6e73 more efficient image updating 2022-03-28 16:49:58 -06:00
sejo c76ece0395 tmp dir is actually not used 2022-03-28 16:43:37 -06:00
sejo ad88a46531 cleanup local links in gemini 2022-03-28 15:28:42 -06:00
sejo 4082e7cecd generate gmisub feed 2022-03-28 11:14:16 -06:00
sejo 3249b44e06 corrected heading levels 2022-03-27 21:38:25 -06:00
sejo a35cef5c43 translation link between uxn tutorial appendix a 2022-03-27 21:35:16 -06:00
sejo e0a9f1473b añadido lang=es 2022-03-27 21:31:48 -06:00
sejo a159c2c40c moved log templates to etc/generador 2022-03-27 20:57:59 -06:00
sejo 7c88bc3977 corrected domain in feeds 2022-03-27 20:02:45 -06:00
sejo f8216957aa copy home to index 2022-03-27 19:56:43 -06:00
sejo e65582e22c esglua updates 2022-03-27 19:54:45 -06:00
sejo 06db0cf856 checked single script and translation templates 2022-03-27 19:53:29 -06:00
sejo 0458ac2ac7 moving to lua-based generator 2022-03-27 19:42:34 -06:00
sejo c4ad94e8f9 defined most translation links 2022-03-27 19:35:10 -06:00
sejo 870066ef79 translations and language specific templates implementation 2022-03-27 19:19:32 -06:00
sejo 5190019fc3 generate nav 2022-03-27 18:19:09 -06:00
sejo 68f533e6c3 calculate and print number of pages 2022-03-27 18:09:27 -06:00
sejo c5fe6f2833 lua generator 2022-03-27 17:55:43 -06:00
sejo b931ab0070 all entries now with wikilink 2022-03-27 17:55:20 -06:00
sejo 97a25953d9 removed newline between raw lines 2022-03-27 17:54:55 -06:00
sejo 0faa22b438 home description 2022-03-27 17:54:28 -06:00
sejo a2ba3e8520 programming links 2022-03-27 17:54:02 -06:00
sejo 98a7f9272f programming in lua book 2022-03-25 17:47:59 -06:00
sejo a05c5e3691 corrections on (a)live computing dance 2022-03-21 17:38:31 -06:00
sejo f5ac5c6f49 corrected log entry, removed <> 2022-03-21 11:19:36 -06:00
sejo fb0be92a70 (a)live computing dance page 2022-03-21 11:19:22 -06:00
sejo ffa4d85b3d embed video for qiudanz technique mode 1 2022-03-20 15:50:27 -06:00
sejo 71750b998f (a)live computing dance info and updates 2022-03-20 15:49:50 -06:00
sejo ff2bb3e896 added tangible computing projects 2022-03-17 09:48:54 -06:00
sejo 77224929d2 updated moco22 status 2022-03-17 09:48:38 -06:00
sejo c8b0569987 updated now/ahora page and upcoming performance 2022-03-15 12:42:37 -06:00
sejo a5a9a11b74 update maratón lala 2022 2022-03-15 12:42:02 -06:00
sejo de2b0549f3 c.s. preservation links 2022-02-27 12:49:55 -06:00
sejo 2a7faa45db link to illustrated notes 2022-02-23 14:59:55 -06:00
sejo 2505592254 link a mindstorms 2022-02-22 20:00:41 -06:00
sejo b9413d9a9c reading: mindstorms and the dawn of everything 2022-02-22 18:19:39 -06:00
sejo 0d6e3a30b4 corrected link to {intro to uxn programming} workshop 2022-02-21 12:41:41 -06:00
sejo 359786fa2c corrección: Ctrl is A, Alt is B 2022-02-21 12:40:18 -06:00
sejo 13193b0c7a actualización página {uxn} con enlaces a tutoriales, libros-e, y workshop 2022-02-18 17:17:19 -06:00
sejo 99e367e8f0 add links to forth tutorials 2022-02-17 20:21:32 -06:00
sejo 3f2545e846 actualizadas palabras forth y ejemplos para running 2022-02-17 20:07:22 -06:00
sejo 8576729e8e thoughtful programming and forth philosophy link 2022-02-17 20:06:52 -06:00
sejo df747fae60 removed la sala from {now} 2022-02-17 16:09:50 -06:00
sejo 040a93093f quitando 'la sala' de {ahora} 2022-02-17 16:09:36 -06:00
sejo 643f3af2eb updated roadmap, removing norpet and adding non-electronic references 2022-02-17 15:00:13 -06:00
sejo 2ba8f72974 nota sobre compatibilidad del ciclo for usando keys 2022-02-16 19:32:30 -06:00
sejo 5adf51333c referencia de wang tiles and turing machines 2022-02-14 19:40:05 -06:00
sejo d3a5841592 enlace a sala xmpp uxñ 2022-02-14 15:04:49 -06:00
sejo 3be4fed083 references: sliding blocks and martin gardner 2022-02-14 14:27:42 -06:00
sejo 00c8e164a4 referencia dominos 2022-02-14 11:40:48 -06:00
sejo f0e854800e dimensiones iguales para botones de apoyo 2022-02-11 17:53:31 -06:00
sejo e4810e2676 crédito de revisión exhaustiva a Roboe 2022-02-11 16:28:23 -06:00
sejo 5166ec1643 target blank en botones de apoyo 2022-02-11 16:22:23 -06:00
sejo 03726ea27a enlaces de apoyo + liberapay 2022-02-11 16:19:35 -06:00
sejo f651a62e3f corrección de enlace a libro 2022-02-11 16:19:23 -06:00
sejo bb09e197e2 reemplazado woohoo por wuju 2022-02-10 17:47:51 -06:00
sejo 94e5ba6a9f reemplazada mayúscula en inicio de línea por minúscula 2022-02-10 17:44:49 -06:00
sejo 9bc605766b Merge pull request 'Revisión del día 3 del tutorial de Uxn' (#10) from Roboe/compudanzas:revisión/día-3 into main
Reviewed-on: https://codeberg.org/sejo/compudanzas/pulls/10
2022-02-11 00:08:12 +01:00
Roberto MF ac25060355 Morfología: «sub-etiqueta»
(Mismo caso que en el commit 3b9fb64999 )

Los prefijos en español, mientras no acompañen a un grupo, se añaden a la palabra, por lo que debe escribirse «subetiqueta».
2022-02-10 23:37:28 +01:00
Roberto MF 89de9c5ffa Gramática, comprensión: condicional
La explicación del condicional incluye una negativa en los dos casos posibles. Eso hace difícil la comprensión de la explicación en una primera lectura.

Como la propia instrucción JCN funciona con una condición negativa («cuando el byte no sea 0, salta; en otro caso, continúa»), opto por incluír el caso específico en el segundo caso («si el byte es 0») en lugar de la fórmula habitual «si X, A; si no, B».
2022-02-10 23:30:23 +01:00
Roberto MF 53207878fb [intervención alta] Titivillus: bytes de 7 bits
Los bytes constan de 8 bits siempre; sin embargo, la máscara AND aparece varias veces sin el bit menos significativo. Se coteja con el original y se corrige el error allí también.

Sin embargo, no queda claro claro del todo el valor 10 escrito a la derecha. El número en binario corresponde al valor 8 (suma de potencias de dos: 2³).
2022-02-10 23:30:23 +01:00
Roberto MF 318e57a398 [intervención alta] Errata, contenido: resultado de aplicar la máscara AND
Esta es una intervención alta de contenido. El resultado de aplicar una máscara AND mantiene los bits de la entrada para las posiciones en las que la máscara tiene el valor 1, pero convierte a 0 los bits de la entrada para las posiciones en las que la máscara tiene el valor 0. Este resultado se ve reflejado en la *salida* de la instrucción, no en la *entrada*.

Como se indica erróneamente tanto en el texto original como en la traducción, corrijo ambos textos.
2022-02-10 23:30:23 +01:00
Roberto MF baf77c4c9c Gramática: «una ventaja»
Posiblemente anacoluto entre las formaciones «una ventaja significativa de esta nueva rutina es [...]» y «la ventaja más significativa de esta rutina es [...]».
2022-02-10 23:30:23 +01:00
Roberto MF 70ab8a27cb Titivillus: «superior:g» 2022-02-10 23:30:23 +01:00
Roberto MF 5717c7fd02 Gramática, consistencia: «basado en la pila»
Homogenizo con el mismo uso en el día 1.
2022-02-10 23:30:23 +01:00
Roberto MF 9b8238e0ca Titivillus, tratamiento, consistencia: «observe»
En el texto es consistente el tratamiento al lector de tú, no de usted.
2022-02-10 23:30:18 +01:00
Roberto MF 0d4d2daa65 Titivillus: «la te sea» 2022-02-10 23:25:05 +01:00
Roberto MF 54e5798f60 Titivillus, sintaxis: «teclaDEI» 2022-02-10 23:25:05 +01:00
Roberto MF 3eaa23671e Titivillus, sintaxis: «Controlador/tecla DEI»
Para leer el valor, es necesario utilizar la runa punto (.) antes de la etiqueta del dispositivo.
2022-02-10 23:25:05 +01:00
Roberto MF 62e6ad749b Gramática, ambigüedad: «vector controlador»
La palabra «controlador», que sirve tanto de sustantivo como de adjetivo. Al ir seguido de otro sustantivo, se entiende que es un adjetivo que afecta al anterior. Cotejado con el original, «controller vector», el significado que se quiere reflejar es que el vector es parte del dispositivo controlador, para lo cual opto por utilizar la forma «vector del (dispositivo) controlador», que elimina la ambigüedad gramatical.
2022-02-10 23:25:05 +01:00
Roberto MF 65ef266fa2 Gramática, consistencia: «byte de la tecla», «byte del botón»
Es inconsistente en el texto el uso de los bytes específicos que se refieren a la tecla o al botón pulsados. Opto por unificar en las expresiones «bytes de tecla» y «byte de botón», usando los grupos «de tecla» o «de botón» como sintagma adjetivo.
2022-02-10 23:25:05 +01:00
Roberto MF 9d5ccdd3bb [intervención alta] Comprensión: en uxnemu, las teclas emulan botones
En el emulador uxnemu, los botones no «están» en el mismo lugar que las teclas, sino que, como no hay botones de controladora, algunas teclas del teclado actúan a la vez de tecla y de botón. Considero necesario aclarar este punto para ayudar a la comprensión de esta ambigüedad de uxnemu.
2022-02-10 23:25:05 +01:00
Roberto MF 0dd85a5b68 Contexto: «el controlador de NES»
Para ayudar a la comprensión de aquellos lectores que no la conozcan, se añade un pequeño inciso indicando que NES es una videoconsola clásica de 8 bits de Nintendo.
2022-02-10 23:25:05 +01:00
Roberto MF 49d638ba7a Ortografía, comprensión: «teclado/controlador» 2022-02-10 23:25:05 +01:00
sejo 292ca4b33a limpieza de trailing whitespace 2022-02-10 14:47:52 -06:00
sejo c506c16cb3 sanitize < > in list elements 2022-02-10 09:03:33 -06:00
sejo 5ef0c556dc typo in sign for LTH - thanks Rostiger! 2022-02-10 08:54:39 -06:00
sejo 73718267c8 actualizaciones de e-books 2022-02-09 19:29:05 -06:00
sejo b08f7040a7 nueva tabla de controlador 2022-02-09 17:29:37 -06:00
sejo 5307f92bbc nueva tabla para sprite low nibble 2bpp 2022-02-09 17:20:30 -06:00
sejo 5fb42f51de nueva tabla high nibble 2bpp 2022-02-09 17:08:49 -06:00
sejo 05e302a7d5 cambiado 'rotado' por 'invertido' 2022-02-09 17:03:02 -06:00
sejo 03825d4288 new tables in pixel and 1bpp sprites 2022-02-09 16:59:01 -06:00
sejo 9fb05eb4dd clase num para celdas en tabla 2022-02-09 16:58:02 -06:00
sejo 2b865728a4 changed format of pixel byte table 2022-02-09 16:22:19 -06:00
sejo 73278e1957 formato en hexadecimal 2022-02-09 16:14:22 -06:00
sejo fc7898d88a nota en el uso de hexdump para información de sprites 2022-02-09 11:46:48 -06:00
sejo e7fc392b10 reemplazada tecla Esc por Home 2022-02-08 17:48:24 -06:00
sejo c7277b56ad remove updated date from home 2022-02-08 13:13:58 -06:00
sejo 41f5d82a0c actualizada receta de queso de soya 2022-02-07 12:51:00 -06:00
sejo ca7a39a1a6 quitado enlace a post.lurk del footer, para dejar la información en contacto 2022-02-06 18:48:09 -06:00
sejo f3310215cc cambio de orden en contact(o) 2022-02-06 18:46:40 -06:00
sejo 0fce642664 agregados datos ssb de compudanzas 2022-02-06 18:44:38 -06:00
sejo 9f88ad1286 titivillus: s/nos/dos/ 2022-02-03 20:49:32 -06:00
sejo 9a45d7da99 agregado enlace a {hexadecimal} 2022-02-03 19:06:00 -06:00
sejo ab75057acb Merge pull request 'correciones_posrebase' (#9) from jotaemese/compudanzas:correciones_posresbase into main
Reviewed-on: https://codeberg.org/sejo/compudanzas/pulls/9
2022-02-03 23:16:41 +01:00
jota a364b12544 Un acento en pixelado 2022-02-03 19:01:13 -03:00
jota 25af2eec25 Correciones que no se añadieron en el rebase 2022-02-03 18:59:24 -03:00
sejo effd2d04b4 nuevo estilo de tablas 2022-02-03 14:43:54 -06:00
sejo 20e1c5bb70 cambio texto medio maratón 2022-02-03 14:43:40 -06:00
sejo 79cdcb7f11 changed moco cfp deadline 2022-02-03 11:09:19 -06:00
sejo 2824e1f0fc Merge pull request 'jota/acentos_en_código_y_ocb' (#8) from Roboe/compudanzas:jota/acentos_en_código_y_ocb into main
Reviewed-on: https://codeberg.org/sejo/compudanzas/pulls/8
2022-02-03 02:00:48 +01:00
jota d4b2142558 Último OCB: Día 1 2022-02-03 01:47:04 +01:00
jota 87f25fcd99 OCB: Día 1 2022-02-03 01:47:03 +01:00
jota f677c4b01f Acentos añadidos al código y otras correciones breves 2022-02-03 01:46:00 +01:00
sejo 33f83f3063 clarifying note about invites 2022-02-01 19:32:03 -06:00
sejo 8e92b760d6 enlace a Roboe 2022-02-01 15:03:06 -06:00
sejo af5cf7060a Merge pull request 'Revisión del día 2 del tutorial de Uxn' (#7) from Roboe/compudanzas:revisión/día-2 into main
Reviewed-on: https://codeberg.org/sejo/compudanzas/pulls/7
2022-02-01 21:58:01 +01:00
sejo 5e4f9b0f22 add ssb 2022-02-01 12:00:35 -06:00
sejo a5c8914792 la sala en log 2022-02-01 11:45:33 -06:00
sejo 07eb4b10ae link to book 2022-01-31 22:04:06 -06:00
sejo 54d3cc6fb2 la sala initial description and links 2022-01-31 22:02:02 -06:00
sejo 706b84b15d ssb en pausa 2022-01-31 17:58:28 -06:00
sejo 4cbb65f459 enlace a tralfanum 2022-01-31 16:41:02 -06:00
sejo 0e9747548a updated bookmarks 2022-01-31 16:37:39 -06:00
Roberto MF 7877c7b6b9 [intervención alta] Comprensión: instrucción SFT
La descripción de los valores sobre los que actúa la instrucción estaban invertidos del orden habitual. Tomo como referencia la explicación de la sección «desplazamiento de bits» donde sí está en el orden habitual para reescribir la explicación. Además, reflejo los nombres utilizados en la signatura de la instrucción.

También añado una coma para la elipsis del verbo del segundo término de la enumeración.
2022-01-31 23:15:52 +01:00
Roberto MF 95acdef8b6 Titivillus: «leeyendo» 2022-01-31 22:43:00 +01:00
Roberto MF 7554902682 Titivillus: «tildes» 2022-01-31 22:43:00 +01:00
Roberto MF a2fafc5b6f Titivillus, ortotipografía: título acabado en : 2022-01-31 22:43:00 +01:00
Roberto MF 06dd7eb67c Ortografía: «pixel» y «píxeles» 2022-01-31 22:43:00 +01:00
Roberto MF 0e553a6cdf Ortotipografía, consistencia: espacio entre signos de paréntesis
Por calco de la sintaxis para comentarios del lenguaje Uxntal, en el texto aparecen comentarios entre paréntesis con espacio después del signo de apertura y antes del de cierre.

He corregido todas las ocurrencias salvo aquellas que indican la signatura de las instrucciones, por entender que en aquellas es útil ser consistente con la sintaxis de Uxntal y la práctica habitual de anotar las macros de igual manera.
2022-01-31 22:43:00 +01:00
Roberto MF 1536ca0f2e Titivillus, consistencia: artículo y separador 2022-01-31 22:43:00 +01:00
Roberto MF f88f700624 Titivillus, ortotipografía: exclamación inicial 2022-01-31 22:43:00 +01:00
Roberto MF f81f8f1977 Ortotipografía: «6to» 2022-01-31 22:43:00 +01:00
Roberto MF 76c33399d9 Titivillus, ortografía: «donde» e interrogación inicial 2022-01-31 22:43:00 +01:00
sejo 14fb005c4d cambio colores links 2022-01-31 13:50:01 -06:00
sejo ddad51bd80 new week in now 2022-01-31 13:44:17 -06:00
sejo 28c9247c71 Merge pull request 'Revisión del día 1 del tutorial de Uxn' (#6) from Roboe/compudanzas:revisión/día-1 into main
Reviewed-on: https://codeberg.org/sejo/compudanzas/pulls/6
2022-01-31 20:23:07 +01:00
Roberto MF 9b869eda7f Titivillus, ortografía: «descanzo» 2022-01-27 20:59:58 +01:00
Roberto MF 83a3c1013f Titivillus, ortografía: «en el» 2022-01-27 20:59:37 +01:00
Roberto MF a8571a22f4 Titivillus: punto al final de párrafo, no dos puntos 2022-01-27 20:57:21 +01:00
Roberto MF e33212ee8d Vocabulario: «loop»
Tal y como se indica en la nota de traducción, la voz inglesa «loop» se traduce por «bucle».
2022-01-27 20:57:21 +01:00
Roberto MF fc0196c6e9 Titivillus, gramática: «llamar macros»
Como en la frase precedente: «llamar a macros»
2022-01-27 20:57:21 +01:00
Roberto MF 25ef007f7e Ortotipografía, consistencia: «FORTH»
El término ha sido escrito en minúsculas en el resto del texto, acorde con el estilo propio del autor: «forth».
2022-01-27 20:57:20 +01:00
Roberto MF cb6c026a58 Titivillus: «de el» 2022-01-27 20:57:20 +01:00
Roberto MF d78ce1a562 Gramática, comprensión: «dirección de dispositivo escribir en consola»
Hace falta un conector para entender correctamente la frase. Para mantener el concepto «dirección de dispositivo», opto por aclarar que «escribir en consola» es un dispositivo. Además, puesto que el complemento directo es bastante extenso, muevo el complemento circunstancial «a la pila» antes del complemento directo, más cerca del verbo.
2022-01-27 20:57:20 +01:00
Roberto MF 9f6e1cae28 Ortografía: «éste», «ésta», «éstos», «éstas»
Los adjetivos demostrativos «este/a/os/as» no llevan tilde.

Además, cuando se utiliza como pronombre demostrativo, se desaconseja el uso de la tilde en la última revisión de la Ortografía de las Academias de la Lengua Española, siguiendo el camino de simplificación de la ortografía de otras instituciones de la lengua.
2022-01-27 20:57:20 +01:00
Roberto MF 3b9fb64999 Morfología: «pre procesamiento», «sub etiqueta», «sub direcciones»
Los prefijos en español, mientras no acompañen a un grupo, se añaden a la palabra, por lo que debería escribirse «preprocesamiento», «subetiqueta» y «subdirecciones».
2022-01-27 20:57:20 +01:00
Roberto MF 45983bfc13 Gramática: «que hacen escribir y leer su código una experiencia más "cómoda"»
Falta un conector: «hacen de escribir y leer [...] una experiencia [...]». También se puede optar por la opción sin rodeos innecesarios y más sencilla «hacen que escribir y leer [...] sea más cómodo».

Cotejando el original, se utiliza el adjetivo coloquial «confy», para lo cual utiliza las comillas. No son necesarias en español puesto que no se hace uso de un término coloquial en la traducción.
2022-01-27 20:57:20 +01:00
Roberto MF 6a0a1abb9b Ortografía: «caracter»
El Diccionario panhispánico de dudas recoge que el singular es «carácter», aunque su plural traspasa la tónica y no lleve tilde. Se puede leer más sobre esto en Fundéu:

https://www.fundeu.es/recomendacion/caracter-y-caracteres-no-caracter-ni-caracteres-1386/
2022-01-27 20:57:20 +01:00
Roberto MF 6f8e4d8713 Vocabulario, consistencia: «estandard»
En el primer día del libro se hace uso de la adaptación «estandard» para la voz inglesa «standard», aunque en los días siguientes se utiliza «estándar». La adaptación más extendida de esta voz, tildada según las normas de acentuación, es «estándar», que recoge el diccionario de la RAE:

https://dle.rae.es/estándar
2022-01-27 20:57:20 +01:00
Roberto MF 062f53bc26 Titivillus: «saltee»
Cotejado con el original («skip»)
2022-01-27 20:57:20 +01:00
Roberto MF 5b7217db09 Ortotipografía: puntos finales en listas
En la lista no ordenada de elementos, los elementos están terminados en punto sin aparente consistencia. Puesto que en el resto del libro se tiende a no terminar los elementos listados en punto, probablemente por la simplificación ortotipográfica de sejo, se sugiere hacer lo mismo en esta.
2022-01-27 20:57:20 +01:00
Roberto MF 7c1c2a2dff Ortotipografía, consistencia: espacio antes de los dos puntos
En esta lista no ordenada de elementos, los elementos empiezan por una instrucción y continúan con una descripción detallada introducida por dos puntos. Los dos puntos se separan de la instrucción por un espacio, previsiblemente para evitar confundirlos dos puntos como parte de la instrucción. En el resto de las listas similares en el libro los dos puntos no se preceden de un espacio y no parece haber problema de comprensión.
2022-01-27 20:57:20 +01:00
Roberto MF c16c3504f5 Titivillus, ortografía: «linea» 2022-01-27 20:57:20 +01:00
Roberto MF d29d7d878c Legibilidad: «el(los) resultado(s)», etc.
En estos casos, los paréntesis pueden dificultar la lectura o distraer del discurso, así que se puede optar por la fórmula «el o los resultados», que resulta más natural y menos intrusiva.
2022-01-27 20:57:20 +01:00
Roberto MF f2c084033b Titivillus: «devuelta» 2022-01-27 20:57:19 +01:00
Roberto MF a0eb043514 Titivillus, ortografía: «fué», «bién»
Tanto «fue» como «bien» son dos monosílabos no incluídos entre las excepciones de tilde diacrítica.
2022-01-27 20:57:05 +01:00
Roberto MF 18db668848 Formato: título de segundo nivel 2022-01-26 03:12:27 +01:00
Roberto MF 365d48fdaf Titivillus: «on en guix»
Al cotejarlo con el original, encuentro que no existe el mismo texto. Tanto la eliminación de la palabra «on» como su sustitución por «o» servirían el mismo propósito, en cualquier caso.
2022-01-26 03:10:51 +01:00
Roberto MF 95e85d3eec Vocabulario, variedad geográfica: «betabel»
El término «betabel» no es entendible en la variedad del español de España. El diccionario de la RAE la recoge como un regionalismo de México, así que posiblemente no sea entendible en otras variedades de Hispanoamérica. Como alternativa a indicar los dos términos lado a lado, se sugiere añadir una nota de traducción auxiliar con el término equivalente «remolacha» si se considera apropiado, puesto que se utiliza como símil para explicar la distribución de instrucciones de la cpu uxn.
2022-01-26 03:05:48 +01:00
Roberto MF 2a57a5c3f6 Titivillus, ortografía: «explicitamente»
Los adverbios terminados en «-mente», aunque consten de dos tónicas, se acentúan de acuerdo al adjetivo del que derivan. En este caso, «explícita» es una palabra esdrújula, que siempre se acentúan.
2022-01-26 03:02:15 +01:00
Roberto MF 8225e12d8f Gramática: «y/o»
En todo el libro se utiliza la expresión «y/o» para las disyunciones, posiblemente por calco del inglés. La disyunción «o» en español no es excluyente, de manera general. Es decir, «y/o» resulta en una expresión lógica redundante, puesto que los casos referentes a «y», conjunción (los dos términos deben cumplirse), están incluídos en «o», disyunción no excluyente (uno o ambos términos deben cumplirse). Puede leerse más acerca de esto en Wikilengua, que a su vez cita el consejo de la RAE:

http://www.wikilengua.org/index.php/y/o#y.2Fo
2022-01-26 03:00:19 +01:00
Roberto MF 17b5181e80 Ortotipografía: inciso
Los incisos van entre pares de comas.
2022-01-26 02:58:14 +01:00
Roberto MF fdf2fb4a7b Gramática: «empujado en la pila»
El resto del capítulo utiliza la fórmula «a la pila». Posiblemente utilizar «en» es un anacoluto con la expresión «introducir en», que también es válida y resulta de una traducción menos literal. En la variedad del español de España se entiende mejor esta última, así que podría ser interesante valorar su inclusión si no afecta a la legibilidad y comprensión en la variedad de Hispanoamérica.
2022-01-26 02:58:14 +01:00
Roberto MF 57b4af0675 Titivillus, gramática: «dónde»
Este caso corresponde al uso átono, no al interrogativo, que es el que se tilda.
2022-01-26 02:58:14 +01:00
Roberto MF b6483cdd7e Vocabulario: «set»
La voz inglesa «set» puede reemplazarse por «conjunto», siendo un vocablo extendido con ese uso en español.
2022-01-26 02:58:14 +01:00
Roberto MF 4c0a5bf30b Ortografía: «por que»
La función que cumple la partícula «por que» es interrogativa, por lo que debería escribirse con tilde: «por qué». Se puede leer más acerca de los distintos usos en Fundéu:

https://www.fundeu.es/recomendacion/porque-porque-por-que-y-por-que-935/
2022-01-26 02:58:14 +01:00
Roberto MF 1215ecc0d2 Ortografía: «sólo»
La palabra «sólo» aparece en todo el texto escrita con tilde. El uso de esta tilde se recomendó opcional en la última revisión de la Ortografía de las Academias de la Lengua Española, siguiendo el camino de simplificación de la ortografía de otras instituciones de la lengua. Sugiero que, al encajar con el estilo ortográfico simplificado de sejo, se reemplace por «solo» en el resto del libro. Pueden encontrarse artículos lingüísticos divulgativos y contextuales a favor de esta decisión normativa en la descripción de un experimento que realicé:

https://addons.mozilla.org/es/firefox/addon/dia-crítica/
2022-01-26 02:58:14 +01:00
Roberto MF 5f35851a56 Ortotipografía: enumeraciones con y
Las enumeraciones y algunas conjunciones de oraciones en el texto preceden la conjunción «y» de una coma. En español, esta coma no es apropiada para separar el último término de la enumeración o las oraciones que se unen.

Posiblemente se trate de un calco del inglés. Se puede leer sobre este uso en la Fundéu, que cita a su vez el Diccionario panhispánico de dudas:
https://www.fundeu.es/recomendaciones/no-se-escribe-coma-delante-de-la-yde-las-enumeraciones-1123/
2022-01-26 02:58:08 +01:00
Roberto MF e1d4942426 Titivillus: «queres» 2022-01-26 02:43:00 +01:00
Roberto MF 938b7978e1 Titivillus, ortografía: «tí» 2022-01-26 02:42:52 +01:00
sejo c70c478767 links entre proposals y publications 2022-01-23 19:55:25 -06:00
sejo be1e0a5a98 update now 2022-01-23 18:21:53 -06:00
sejo c247dd3bb4 formato home y about 2022-01-23 18:20:17 -06:00
sejo 5537f6909b norpet submission 2022-01-23 17:41:04 -06:00
sejo 731e73d28b link a digital systems 2022-01-23 17:36:21 -06:00
sejo 259e6ea040 norpet page 2022-01-23 17:31:26 -06:00
sejo 5323ce542f minor style changes 2022-01-22 19:53:12 -06:00
link2xt bc2050da14 fix 3 typos in day 2 of the uxn tutorial 2022-01-22 14:11:42 -06:00
sejo 802a5960eb redacción ahora 2022-01-21 19:58:47 -06:00
sejo 02d393fce8 reformat contact 2022-01-21 19:53:05 -06:00
sejo 9571894fa1 ahora 2022-01-21 19:51:43 -06:00
sejo 5dec1eb382 file 'with ... as' 2022-01-21 19:51:30 -06:00
sejo e539d2a428 incoming links for multiple wikilinks in a line 2022-01-21 19:50:02 -06:00
sejo 275898c511 info rearranging 2022-01-21 19:42:34 -06:00
sejo 60a36c2d07 modify footer 2022-01-21 19:22:31 -06:00
sejo bbbcf61612 norpet stub 2022-01-21 18:50:08 -06:00
sejo 8fe19b79d7 link a reading 2022-01-21 18:48:21 -06:00
sejo 7952aa78ef documentation many wikilinks per line 2022-01-21 18:45:52 -06:00
sejo 27ba37108d more than one wikilink per line! 2022-01-21 18:44:13 -06:00
sejo e78dc24793 enlace y notas sobre chamorrx 2022-01-20 17:31:30 -06:00
sejo a66d9ad948 corrected link to book 2022-01-20 17:02:19 -06:00
sejo 36287a1fee reading file 2022-01-19 16:24:54 -06:00
sejo 244c551aab escher circuits 2022-01-17 21:15:33 -06:00
sejo 5b61c1bd94 updates on roadmap: limits and wiki ssg stuff 2022-01-16 19:00:12 -06:00
sejo 1723bc5505 removed line in english 2022-01-16 18:44:00 -06:00
sejo 2830b81d80 links entre libros 2022-01-15 21:24:31 -06:00
sejo 81337f40fc gemsub feed link 2022-01-15 21:22:54 -06:00
sejo 244dcd098d link a log 2022-01-15 21:21:58 -06:00
sejo d1b2bf24f0 update now/ahora 2022-01-15 21:14:39 -06:00
sejo c1b1892561 link a lambda diagrams 2022-01-15 21:07:54 -06:00
sejo 188d75310b link a intro a programación uxn 2022-01-15 19:58:35 -06:00
sejo 53b9b4756e introducción a programación uxn 2022-01-15 19:14:53 -06:00
sejo 9dddc1122d pequeñas correcciones 2022-01-15 19:14:34 -06:00
sejo 52d28de39d link al caracolito sin scheme 2022-01-14 16:57:49 -06:00
sejo d335d785d9 enlaces a /casa de ~jota 2022-01-14 16:55:55 -06:00
sejo 62731cd6aa quitar trabajo en proceso; corrección de encabezados de apéndices 2022-01-14 15:45:47 -06:00
sejo 471083a26d Merge branch 'main' of tildegit.org:sejo/compudanzas 2022-01-14 15:43:37 -06:00
sejo 9749e2e62b Merge pull request 'revisión_pausada_y_demases' (#7) from jota/compudanzas:revisión_pausada_y_demases into main
Reviewed-on: sejo/compudanzas#7
2022-01-14 21:42:34 +00:00
jota 9216e39cef Betabel en vez de remolacha. :) 2022-01-14 18:16:16 -03:00
jota f0b64c335a Más revisiones/correciones 2022-01-14 16:21:44 -03:00
sejo 4b762001a9 human computers and rustic computing links 2022-01-14 12:49:25 -06:00
jota b16a6c8045 Revisión pausada del Día 7 y Apéndice A, y correciones de otros Días. 2022-01-14 12:03:51 -03:00
sejo 94ac3a7c00 contador de 3 bits compuertas habituales 2022-01-13 18:42:14 -06:00
sejo a366da3859 added missing NIP instruction 2022-01-13 17:39:35 -06:00
jota bb7925f997 Revisión pausada del Día 5 y 6, y correciones breves de otros Días 2022-01-13 19:18:41 -03:00
jota cc10cd9624 Revision pausada del Día 3 y 4, y correciones breves de otros Días. 2022-01-13 12:21:44 -03:00
sejo 8c972f8398 enlace a octal en lugar de octales 2022-01-12 17:20:44 -06:00
sejo 3f2de48d7c Merge pull request 'traducción_día_7,_apéndice_a_y_demases' (#6) from jota/compudanzas:traducción_día_7_y_demases into main
Reviewed-on: sejo/compudanzas#6
2022-01-12 23:19:29 +00:00
jota 7a31edc11e Olvide guardar los cambios del Día 1 :) 2022-01-12 19:59:12 -03:00
jota 6517b7913d Revisión pausada del Día 1 y 2, adición de la parte en español en Hexadecimal y otras correciones breves. 2022-01-12 19:46:50 -03:00
jota 04273debea Traducción terminada del Día 7 y Apéndice A. Revisión breve de demases. 2022-01-12 15:33:35 -03:00
jota 2f7ea7474c Traducción del Día 7 y demases 2022-01-12 12:42:37 -03:00
sejo c0074c1b60 enlace a tutorial de uxn 2022-01-11 18:49:40 -06:00
sejo 089370325a cambio del enlace inicial 2022-01-11 18:46:24 -06:00
sejo 73630a15de corrección de enlaces a {tutorial de uxn} 2022-01-11 18:20:48 -06:00
sejo ea43a7f5e6 Merge pull request 'traducción_día_6_y_demases' (#5) from jota/compudanzas:traducción_día_6_y_ocb into main
Reviewed-on: sejo/compudanzas#5
2022-01-12 00:15:12 +00:00
jota d0a1719f05 Traducción terminada del Día 6, actualización del índice y documentos del Día 7 y Apéndice A añadidos. 2022-01-11 20:00:19 -03:00
jota 22323c4ab5 Traducción de macros en los demas días y revisiones del Día 6 2022-01-11 18:10:49 -03:00
jota 804a750d8b WIP: Traducción Día 6 y otros cambios breves 2022-01-11 16:32:15 -03:00
sejo 63740eac22 itch.io widget 2022-01-10 17:52:45 -06:00
sejo d5a0401b00 Merge pull request 'Traducción Tutorial de Uxn Día 5 + correcciones breves Day 5 y Día 2' (#4) from jota/compudanzas:traducción_tutorial_de_uxn_día_5 into main
Reviewed-on: sejo/compudanzas#4
2022-01-10 21:50:01 +00:00
jota 013f06e5f4 Añadí el documento del Día 6 2022-01-10 18:31:57 -03:00
jota b535a227b8 Añadí el documento del Día 6 2022-01-10 18:30:16 -03:00
jota b1879381b1 Añadí el documento del Día 6 2022-01-10 17:32:08 -03:00
jota c6052a9e05 Traducción del Tutorial de Uxn Día 5, revisión del Día 5 (inglés) y correción breve del Día 2 (español) 2022-01-10 17:00:16 -03:00
jota 97d4c7b9f6 Traducción del Tutorial de Uxn Día 5, revisión del Día 5 (inglés) y correción breve del Día 2 (español) 2022-01-10 16:59:20 -03:00
sejo 63277cfb66 Merge pull request 'Revisión del día 1 (inglés y español) y el índice del tutorial (español)' (#3) from jota/compudanzas:tutorial_rev_dia_1_e_indice into main
Reviewed-on: sejo/compudanzas#3
2022-01-10 19:45:42 +00:00
jota 9496df9334 Revisión del día 1 (inglés y español) y el índice del tutorial (español) 2022-01-10 11:20:31 -03:00
sejo f4c517a192 publications page 2022-01-09 18:23:33 -06:00
sejo a91497f0b7 intro to uxn programming book 2022-01-09 15:25:18 -06:00
sejo 3c4dd48c55 correcciones para compatibilidad 2022-01-08 19:43:02 -06:00
sejo 88ecd85fe1 replaced rfc3339 option 2022-01-08 12:58:19 -06:00
sejo d28a7889b4 posix compatible awk 2022-01-08 11:59:43 -06:00
sejo c41e65b551 cleaned up root dir 2022-01-07 20:38:44 -06:00
sejo 77ecb71c8f virtual pet jam in roadmap 2022-01-07 20:33:12 -06:00
sejo c66b28f92a revision day 7 2022-01-07 20:17:13 -06:00
sejo 073dd3057c revision day 6 2022-01-07 19:22:09 -06:00
sejo 06cb8de530 archivo de día 5 provisional 2022-01-07 17:44:16 -06:00
sejo 3c42655a6f Merge branch 'main' of tildegit.org:sejo/compudanzas 2022-01-07 17:41:53 -06:00
sejo 98fd37df09 Merge pull request 'Correciones de los días 2, 3 y 4' (#2) from jota/compudanzas:tutorial_de_uxn_días_2_a_4 into main
Reviewed-on: sejo/compudanzas#2
2022-01-07 23:41:09 +00:00
jota 8e5177007a Me olvide unas corcheas malpuestas 2022-01-07 20:38:36 -03:00
sejo 59fa19dce0 removed mouse mention 2022-01-07 17:34:44 -06:00
sejo 73c3772200 add .gitignore to tracked files 2022-01-07 17:33:42 -06:00
jota 6ede6de779 Correciones de los días 2, 3 y 4 2022-01-07 20:29:40 -03:00
sejo 937e1cba8c revision uxn tutorial day 5 2022-01-07 16:45:18 -06:00
sejo 0086bd73a5 Merge branch 'main' of tildegit.org:sejo/compudanzas 2022-01-07 15:16:11 -06:00
sejo 3aa890efe4 corrected mouse device specs on day 5 2022-01-07 15:15:29 -06:00
sejo abaec8f8ce Merge pull request 'Añadidos los días 2, 3 y 4 al tutorial en español de Uxn' (#1) from jota/compudanzas:tutorial_de_uxn_días_2_a_4 into main
Reviewed-on: sejo/compudanzas#1
2022-01-07 21:13:54 +00:00
sejo 118503c983 make no es necesario 2022-01-07 15:01:17 -06:00
jota a0e7168657 Añadidos los días 2, 3 y 4 al tutorial en español de Uxn 2022-01-07 17:45:19 -03:00
220 changed files with 13230 additions and 2054 deletions

9
.gitignore vendored Normal file
View File

@ -0,0 +1,9 @@
*swp
Makefile
web/*
gem/*
src/pages.gmo
tmp/*
gemtest
webtest
src/log.gmo

121
LICENSE Normal file
View File

@ -0,0 +1,121 @@
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.

View File

@ -1,27 +1,25 @@
# compudanzas
this repository contains the scripts and source files for the compudanzas site in gemini and the web
this repository contains the script and source files for the compudanzas site in gemini and the web
* generated in web/ : [https://compudanzas.net](https://compudanzas.net)
* generated in gem/ : [gemini://compudanzas.net](gemini://compudanzas.net/)
# generate site
call the shell script:
the generator script requires lua.
```
./generasitio.sh
it was developed using lua 5.3.3 but it probably works with previous versions.
in order to call the script and build the site:
```sh
$ lua generasitio.lua
```
# files
## archive
* `generasitio.sh`: the shell script that copies files and call the other scripts with the corresponding arguments (like last modified date)
* `gemtext2html.awk`: converts the files in .gmo format (modified .gmi) to an html version, according to the spec and my own taste
* `gmo2gmi.awk`: converts the files in .gmo format to real .gmi
* `genindice.awk`: generates the index of all pages
* `links.py`: calculates the incoming links between pages and adds them to the files
* `genlog.awk`: generates the log files (atom, twtxt, gemsub) from `src/log.txt`
* `gmo.nanorc`: syntax highlighting for .gmo format in nano
the `etc/generador/` directory contains the previous generator files and `README.md`, written in bash, awk and python.
# .gmo format
@ -34,10 +32,10 @@ the same format as gmi (gemtext), but with the following line types:
## inline wikilinks
the generator can parse and convert inline {wikilinks}, one per line
the generator can parse and convert inline {wikilinks}, as many as needed per line
* in html, it gets converted to an inline link
* in gemtext, a link is added after the line with the link
* in html, they get converted to an inline link
* in gemtext, the links are added after the line with the text
.gmo text:
@ -62,8 +60,6 @@ see the roadmap for updates that want to happen.
spaces inside the wikilinks are converted to underscores.
for the moment, only one wikilink per line is allowed.
## gemtext-like wikilinks
the generator can also parse normal links in gemtext, one per line
@ -89,12 +85,6 @@ converted to gemtext:
=> ./references.gmi references
```
## incoming links calculation
`links.py` takes both of those types of wikilinks in order to perform its calculation.
it looks at the contents between the curly brackets, converts them to a filename format (replacing spaces for underscores), and assummes that file actually exists.
# license
[peer production license](https://wiki.p2pfoundation.net/Peer_Production_License)
[CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/)

98
etc/generador/README.md Normal file
View File

@ -0,0 +1,98 @@
# compudanzas
this repository contains the scripts and source files for the compudanzas site in gemini and the web
* generated in web/ : [https://compudanzas.net](https://compudanzas.net)
* generated in gem/ : [gemini://compudanzas.net](gemini://compudanzas.net/)
# generate site
call the shell script:
```
./generasitio.sh
```
# files
* `generasitio.sh`: the shell script that copies files and call the other scripts with the corresponding arguments (like last modified date)
* `gemtext2html.awk`: converts the files in .gmo format (modified .gmi) to an html version, according to the spec and my own taste
* `gmo2gmi.awk`: converts the files in .gmo format to real .gmi
* `genindice.awk`: generates the index of all pages
* `links.py`: calculates the incoming links between pages and adds them to the files
* `genlog.awk`: generates the log files (atom, twtxt, gemsub) from `src/log.txt`
* `gmo.nanorc`: syntax highlighting for .gmo format in nano
# .gmo format
the same format as gmi (gemtext), but with the following line types:
* `+` add this line to the html file but not to the gmi file
* `&` add this line to the gmi file but not to the html file
# wikilinks
## inline wikilinks
the generator can parse and convert inline {wikilinks}, as many as needed per line
* in html, they get converted to an inline link
* in gemtext, the links are added after the line with the text
.gmo text:
```
see the {roadmap} for updates that want to happen.
```
converted to html:
```html
<p>
see the <a href='./roadmap.html'>roadmap</a> for updates that want to happen.
</p>
```
converted to gemtext:
```gemtext
see the roadmap for updates that want to happen.
=> ./roadmap.gmi roadmap
```
spaces inside the wikilinks are converted to underscores.
## gemtext-like wikilinks
the generator can also parse normal links in gemtext, one per line
* in html, it gets converted to an inline link
* in gemtext, the link is left as is
.gmo text:
```
=> ./references.gmi {references}
```
converted to html:
```html
<p><a href='./references.html'>references</a></p>
```
converted to gemtext:
```
=> ./references.gmi references
```
## incoming links calculation
`links.py` takes both of those types of wikilinks in order to perform its calculation.
it looks at the contents between the curly brackets, converts them to a filename format (replacing spaces for underscores), and assummes that file actually exists.
# license
[peer production license](https://wiki.p2pfoundation.net/Peer_Production_License)

View File

@ -55,23 +55,17 @@ function appendNav( t ){
}
function wikiLink( t ){
i = match( t, /{.+}/)
if ( i ){
ifinal = index(t, "}") # índice del } final
out = ""
while(match(t,/\{[^{}]+\}/)){ # has {key}
nombre = substr(t, RSTART+1, RLENGTH-2)
link = nombre2Link( nombre, "_" )
enlace = "<a href='./" link ".html'>" nombre "</a>"
out = out substr(t, 1, RSTART-1) enlace
prev = substr(t, 1, i-1) # string previa al link
# link = substr(t, i, ifinal-i+1) # {link}
nombre = substr(t, i+1, ifinal-i-1) # link
link = nombre
nombre = nombre2Link( nombre, "_" )
post = substr(t, ifinal+1) # string posterior
return prev "<a href='./" nombre ".html'>" link "</a>" post
}
else{
return t
t = substr(t, RSTART+RLENGTH)
}
out = out t "\n"
return out
}
function nombre2Link( t, r ){ # convierte un nombre con espacios, a uno con r (e.g. "_"
@ -109,8 +103,8 @@ NR == 1{
/^\+ /{ # include literal
sub(/^+ /,"",$0) # elimina el +
sub(/^\+[[:blank:]]+/,""){ # include literal
# sub(/^+ /,"",$0) # elimina el +
appendContenido( $0 )
next
}
@ -183,8 +177,8 @@ NR == 1{
sub(".gmi$",".html",$1)
# quita { }
sub("{","",texto)
sub("}","",texto)
sub(/\{/,"",texto)
sub(/\}/,"",texto)
# crea link <a>
appendContenido("<p><a href='"$1"' class=arrow>"texto"</a></p>")
@ -203,7 +197,7 @@ NR == 1{
next
}
/^* /{ # lista
/^\* /{ # lista
if(!modo_pre){
if(!modo_lista){ # inicia la lista
if(modo_parrafo){
@ -213,8 +207,10 @@ NR == 1{
modo_lista = 1
appendContenido( "<ul>" )
}
sub("*[[:blank:]]+","<li>",$0)
sub("$","</li>",$0)
gsub("<","\\&lt;",$0)
gsub(">","\\&gt;",$0)
sub(/\*[[:blank:]]+/,"<li>",$0)
sub(/$/,"</li>",$0)
appendContenido( wikiLink($0) )
}
else
@ -352,20 +348,22 @@ END{
print "<footer>"
# footer with filename:
sub("tmp/","",FILENAME)
print "<p>"
print "<a href='https://tildegit.org/sejo/compudanzas/src/branch/main/src/" FILENAME "' rel='external noreferrer noopener' target=_blank>source file</a> &mdash;"
print "most recent update: "
print "<time datetime='"fecha"'>1" fecha"</time> &mdash; "
sub(".gmo",".gmi",FILENAME)
print "<a href='gemini://compudanzas.net/" FILENAME "' rel='external noreferrer noopener' target=_blank>view in gemini://</a>"
print "</p><hr/>"
if( FILENAME !~ /^home/ ){
print "<p>"
print "<a href='https://tildegit.org/sejo/compudanzas/src/branch/main/src/" FILENAME "' rel='external noreferrer noopener' target=_blank>source file</a> &mdash;"
print "most recent update: "
print "<time datetime='"fecha"'>1" fecha"</time> &mdash; "
sub(".gmo",".gmi",FILENAME)
print "<a href='gemini://compudanzas.net/" FILENAME "' rel='external noreferrer noopener' target=_blank>view in gemini://</a>"
print "</p>"
}
print "<hr/>"
# links:
print "<p><a href='./about.html'>about</a> <a href='./contact.html'>contact</a> <a href='./support.html'>support</a></p>"
# print "<p><a href='https://webring.xxiivv.com/#random' target='_blank' title='webring' rel='external noreferrer noopener'>webring</a>"
print "<p><a class='icon' href='./home.html' title='" sitio "'><img src='./img/iconocompudanzas_32.png' width=32 height=32 alt='icono de compudanzas'/></a>"
print "<a href='https://webring.xxiivv.com/#random' target='_blank' title='webring'><img src='./img/icon.black.svg' width='32' height='32' alt='xxiivv webring'/></a></p>"
print "<a href='https://webring.xxiivv.com/#random' target='_blank' title='webring' class='icon'><img src='./img/icon.black.svg' width='32' height='32' alt='xxiivv webring'/></a></p>"
print "<p><a href='https://post.lurk.org/@compudanzas' target='_blank' title='mastodon' rel='external me noreferrer noopener'>@compudanzas</a></p>"
print "<p>texts, images, and code are shared with the <a href='https://wiki.p2pfoundation.net/Peer_Production_License' target=_blank rel='external noreferrer noopener' title='Peer Production License'>peer production license</a></p>"
print "</footer>"
print "</body>"

View File

@ -5,12 +5,12 @@ mkdir -p gem
mkdir -p tmp
fecha=$(date --rfc-3339=date)
fecha=$(date +%F)
echo "empezando conversión, estamos en ${fecha}"
echo "revisando y copiando imágenes..."
for f in $(find src/ -regextype awk -regex ".*(jpg|png|gif|svg)")
for f in $(find src/ -regex ".*\(jpg\|png\|gif\|svg\)")
do
path="web/${f#src/}" # quita el prefijo de src/ y agrega web/
gempath="gem/${f#src/}" # quita el prefijo de src/ y agrega gem/
@ -59,7 +59,7 @@ do
htmlpath="web/${path%gmo}html" # agrega "web/" y cambia el sufijo
gempath="gem/${path%gmo}gmi" # agrega "gem/"
fecha=$(date -r src/$path --rfc-3339=date)
fecha=$(date -r src/$path +%F)
# haz la conversión
awk -v fecha=$fecha -f gemtext2html.awk $f > $htmlpath

View File

@ -23,7 +23,7 @@ BEGIN{
FS = "\t"
"date --rfc-3339=date"| getline fecha
"date +%F"| getline fecha
system("cp " loggmoheader " " loggmopath)
system("cp " gematomheader " " atomgempath)
@ -60,9 +60,9 @@ BEGIN{
print "<title>" $2 "</title>" >> atomgempath
print "<updated>" $1 "</updated>" >> atomgempath
if ( match($3, /{.+}/) ){ # si hay wikilink
gsub("{","",$3)
gsub("}","",$3)
if ( match($3, /\{.+\}/) ){ # si hay wikilink
gsub(/\{/,"",$3)
gsub(/\}/,"",$3)
filename = $3
gsub(" ","_",filename)

View File

@ -3,7 +3,7 @@ function nombre2Link( t, r ){ # convierte un nombre con espacios, a uno con r (e
return t
}
/^+ /{ # literal html
/^\+ /{ # literal html
next # salta la línea
}
@ -21,16 +21,20 @@ function nombre2Link( t, r ){ # convierte un nombre con espacios, a uno con r (e
# si tienen sintaxis de wikilink, y no son líneas de enlace, agrega el link
# (el % es por las líneas de uxn jaja)
/^[^=%]*{.+}/{
i = match( $0, /{.+}/)
ifinal = index($0, "}") # índice del } final
link = substr($0, i, ifinal-i+1) # {link}
nombre = substr($0, i+1, ifinal-i-1) # link
filename = nombre2Link( nombre, "_" )
enlaces = ""
t = $0
while(match(t,/\{[^{}]+\}/)){ # has {key}
nombre = substr(t, RSTART+1, RLENGTH-2)
link = nombre2Link( nombre, "_" )
enlace = "=> ./" link ".gmi " nombre "\n"
enlaces = enlaces enlace
t = substr(t, RSTART+RLENGTH)
}
gsub(/[{}]/,"")
print $0
print "=> ./" filename ".gmi " nombre
gsub(/\n$/,"",enlaces)
print enlaces
next
}
@ -47,10 +51,11 @@ END{
print ""
sub("tmp/","",FILENAME)
if(FILENAME != "home.gmo"){
print "most recent update on: 1" fecha
print "updated on 1" fecha
print "=> https://tildegit.org/sejo/compudanzas/src/branch/main/src/" FILENAME " source file"
}
print ""
print "=> ./home.gmi compudanzas home"
print "=> ./home.gmi compudanzas"
print "=> ./contact.gmi contact"
print "=> https://wiki.p2pfoundation.net/Peer_Production_License text, images, and code are shared with the peer production license"
}

67
etc/generador/links.py Normal file
View File

@ -0,0 +1,67 @@
import re
import os
import shutil
def filename2Wikilink( s ):
return '{' + s.replace('_',' ').replace('.gmo','') + '}'
def wikilink2Filename( s, ext='.gmi' ):
return s.strip("{}").replace(' ','_') + ext
os.chdir('src/')
incoming = {}
for filename in os.listdir():
if filename.endswith('.gmo'):
# copy to tmp
shutil.copy(filename, '../tmp/'+filename)
# if filename != 'pages.gmo' and filename != 'index.gmo':
if filename != 'pages.gmo':
# convert filename to wikilink
wikilink=filename2Wikilink(filename)
if wikilink not in incoming:
incoming[wikilink] = set()
# open file and search for all outgoing links
with open(filename) as file:
pre_mode = False
for line in file:
if re.match("```",line) != None: # toggle preformatted mode
pre_mode = not pre_mode
if pre_mode: # skip preformatted mode
continue
while re.search("\{[^{}]+\}",line):
m = re.search("\{[^{}]+\}",line)
match = m.group() # matched string
if match not in incoming: # create a new set for that page
incoming[match] = set()
# add this file
incoming[match].add(wikilink)
line = line[m.end()+1:]
os.chdir('../tmp/')
# remove incoming links for:
# incoming.pop('{pages}')
incoming.pop('{home}')
#incoming.pop('{license}')
for key,links in incoming.items():
# get filename for key
filename = wikilink2Filename(key,'.gmo')
# print(key)
# open file in append mode
with open(filename, 'a') as file:
if len(links):
# write incoming links
# print( '{} incoming links\n'.format( len(links) ) )
file.write("\n\n# incoming links\n")
for link in links:
gemlink = '=> ./{} {}'.format(wikilink2Filename(link), link)
file.write(gemlink+"\n")
else:
print( '{}: orphan\n'.format(key) )
file.write("\n\nno incoming links\n")

View File

@ -4,5 +4,6 @@ updates of the project
=> ./tw.txt [twtxt]
=> ./atom.xml [atom feed]
& => ./feed.gmi [gemsub feed]
# entries

53
etc/removed/biosejo.gmo Normal file
View File

@ -0,0 +1,53 @@
# biosejo
a chronological account of sejo's life and research.
posts are listed below in reverse chronological order (most recent first.)
# 12022
## Movement: A personal reframing
Renewing a focus and commitment with physical movement.
=> ./biosejo_120220825.gmi {biosejo 120220825}
## On sticky notes
These days I've been working with paper, sticky notes, a lot, and I've been thinking about them. The following are some loose ideas regarding them and potential digital counterparts.
=> ./biosejo_120220717.gmi {biosejo 120220717}
## The other side
Hello from Madrid!
=> ./biosejo_120220710.gmi {biosejo 120220710}
## Closure(s) and not
A post about some recent events, closures, new beginnings, and other reflections.
=> ./biosejo_120220607.gmi {biosejo 120220607}
## Packing and unpacking
Moving things around and deciding what to keep and what to leave behind, internally and externally.
=> ./biosejo_120220519.gmi {biosejo 120220519}
## On systems, dreams and practice
Updates regarding systems I'm using, dreams that are coming back, and insights on daily practice.
=> ./biosejo_120220511.gmi {biosejo 120220511}
## Here we go: Intro, research and notes
In which I introduce {biosejo} and talk about my plans regarding research, note-taking, and movement.
=> ./biosejo_120220503.gmi {biosejo 120220503}
# subscribe
you can get the posts by subscribing to the following artisanal atom feed:
=> ./biosejo.xml [biosejo atom feed]
+ <a href="https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fcompudanzas.net%2Fbiosejo.xml" target="_blank" rel="noreferrer noopener external" class="icon"><img src="./img/banner_valid-atom.png" alt="[Valid Atom 1.0]" title="Validate my Atom 1.0 feed" /></a>
additionally, updates here are replicated in the {log} and its multiple feeds.

512
etc/removed/biosejo.xml Normal file
View File

@ -0,0 +1,512 @@
<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom'>
<id>https://compudanzas.net/biosejo.html</id>
<title>biosejo - compudanzas</title>
<author><name>sejo</name></author>
<generator>a mano</generator>
<link href='https://compudanzas.net/biosejo.xml' rel='self'/>
<link href='https://compudanzas.net/biosejo.html' rel='alternate'/>
<updated>2022-08-25T12:00:00Z</updated>
<entry>
<title>Movement: A personal reframing - biosejo 120220825</title>
<updated>2022-08-25T12:00:00+02:00</updated>
<link rel='alternate' href='https://compudanzas.net/biosejo_120220825.html'/>
<id>https://compudanzas.net/biosejo_120220825.html</id>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<h1>Movement: A personal reframing - biosejo 120220717</h1>
<p>Renewing a focus and commitment with physical movement.
</p>
<p>For the past years I've had several cycles of disenchantment with computers. Although nice things have come out of them, like Compudanzas, they have also represented a source of anxiety: it seems I have internalized that my way of contributing to the world, society and a solarpunk present and future *has* to be through computers. This thought has been reinforced by a way of looking to my own history, as I've been "always around computers", "always excelling at mathematical and logical thinking". "This is what I'm good at, this is where I can be most helpful". The disenchantment leaves me floating in the void.
</p>
<p>These past few days I arrived to an interesting revelation, a reframing of this personal history. Yes, the computers always there are true, but it's also true that I've been *always moving*. Be it in triathlon, skating, cycling, running, parkour, dancing (and running and cycling and compudanzas and running :), I can look at my life and see that physical movement has been always there. Some days ago I talked with some people of my elementary school that I had lost contact with and I noticed that for them it would be pretty consistent to hear that I'm doing a PhD in Computer Science and Technology, and that I'm preparing for a running race. Everything has changed, but also nothing has changed.
</p>
<p>I realized that yes, I might have been able to e.g. help and teach people how to program because I have more experience compared to them. But in a similar way, I could guide or share with other people towards and through physical movement. I have a lot of experience, even if I'm not a "pro". (I've never held a position of "professional programmer", and yet I could be there for others).
</p>
<p>I see moving in community as something important. We can learn a lot about ourselves and the world. Additionally, moving and having fun is something I want for a solarpunk present and future. I can reframe movement as my focus.
</p>
<p>Something interesting is that I think the new frame is "backwards compatible" with what I'm doing already. The movement-based core of my PhD and what I'm and will be doing there is a possible way to *move with others*. Another possible way comes from the embodied activities / games / dances from Compudanzas. And as a note to self, there are multiple other ways as well, and I don't need to "coat" them with computation so that I feel they are valid when coming from me. I have done it already, I'm not sure what got me blocked.
</p>
<p>I'm happy to have arrived at this perspective, and I'm happy to share it. I'm feeling very good and excited now :)
</p>
</div>
</content>
</entry>
<entry>
<title>On sticky notes - biosejo 120220717</title>
<updated>2022-07-17T21:00:00+02:00</updated>
<link rel='alternate' href='https://compudanzas.net/biosejo_120220717.html'/>
<id>https://compudanzas.net/biosejo_120220717.html</id>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<h1>On Sticky Notes - biosejo 120220717</h1>
<p>These days I've been working with paper, sticky notes, a lot, and I've been thinking about them. The following are some loose ideas regarding them and potential digital counterparts.
</p>
<p>I enjoy the thought of being in a Computer Science and Engineering PhD program working with paper, sitting on the floor, writing by hand, collaborating as a group. We are gathering reflections, features, ideas, from movement-based design methods in several projects, and we are writing them in sticky notes. I like how this simple, paper-based technology can afford so many uses and re-uses, and how it can be used to organize thought spatially.
</p>
<p>Due to their relatively fragile quality, I've been practicing my typographic skills transcribing all them into a table. This table has gotten me excited: I know and can imagine a lot of things that can be done when one has a list of strings of text. I've thought about visualizing the "sticky notes", showing or allowing for spatial arrangements, clusters, similarities, etc. Additionally, I've been thinking about a possible "mirror" representation that joins the tangible and the digital note.
</p>
<p>I find it interesting: the arrangement of several notes on paper can be documented and read in a photo, but at the same that is not necesarily parseable (automatically?). What would it imply to parse that information? And how does one, would I, represent the corresponding data? Is it just a matter of points in space, x and y coordinates linked to a sticky note id? That can replicate the image, and can aid in re-creating the spatial relationships (what are the points closer to point "i"?), but is that the information that we want to document / convey / show at the end?
</p>
<p>There's also the possibility of making groups, assigning tags - would that be just another extra field in the data structure? I feel this specifically is a rabbit hole regarding "information science", librarians, or something along those lines.
</p>
<p>When creating the digital table, there was the thought: can we then re-create the sticky notes set, or can we re-print one that was lost? When transcribing we are losing some typographic information. What happens when we update a sticky note in paper? How easy it is to find the corresponding digital representation to update it as well? Seems like some text-search would be enough here. But what happens when the digital representation is updated? How would we find and update the paper version?
</p>
<p>Would it make to have some ID system? And what about some "RFID" to locate the notes? (?) And coming back to spatial arrangements, how could we "scan" and gather the arrangement of the paper notes in order to save that data? (This is coming back to the spatial arrangement questions; what is what we'd like to save) Would having visual markers help in this scanning? And what about leveraging the advanced technologies used with so-called Augment Reality?
</p>
<p>I feel all of these questions have been definitely been explored already (e.g. [1]), but I find it interesting to be arriving at them, kind of unexpectedly. I guess my recent interests in the zettelkasten, combined with tangible computing, and now being under this new environment, are arising wanting to be (re)mixed.
</p>
<p><a href="https://www.researchgate.net/publication/221514765_Augmented_Surfaces_A_Spatially_Continuous_Work_Space_for_Hybrid_Computing_Environments" rel="external noreferrer noopener" target="_blank" class="arrow">[1] Augmented Surfaces: A Spatially Continuous Work Space for Hybrid Computing Environments </a></p>
<p>I'm excited to be in a place where I can contemplate these questions and do something about them. They may end up being combined with the stronger line of bodily movement in the research project!
</p>
<p>I welcome further ideas and references regarding these questions. Feels worth it to have these thought running in the back of my mind.
</p>
</div>
</content>
</entry>
<entry>
<title>The other side - biosejo 120220710</title>
<updated>2022-07-10T15:00:00+02:00</updated>
<link rel='alternate' href='https://compudanzas.net/biosejo_120220710.html'/>
<id>https://compudanzas.net/biosejo_120220710.html</id>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<h1>The other side - biosejo 120220710</h1>
<p>Hello from the other side - these characters are now written from Madrid, Spain!
</p>
<p>This past month was hectic: even though we felt ready, once we were faced with the surprising news of our visas being ready, we realized we still had several things to solve in Mexico! Additionally, once we arrived in Madrid, we have had another set of issues to overcome, combined with a lot of movement (walking, running, biking) and exploration. Hence, not a lot of time to sit down and write, until today.
</p>
<p>I see people walking on the street. Everything seems "normal". This is our new normal, it seems. I'm still getting used to the idea of being so far away from everyone and everything I knew. It is kind of unbelievable: the world is indeed very big!
</p>
<p>I'm very excited and motivated for this new stage of life!
</p>
<p>I love that for the most part, the work I've been doing these days regarding my Computer Science and Technology PhD has happened sitting in the floor together with other people, working with paper, writing by hand. Is this some kind of dream come true?
</p>
<p>Meanwhile, the Thesis Talk 2022 event happened: I wasn't selected for the final round this time, but my video can be found along with others in the event's site:
</p>
<p><a href="https://www.uc3m.es/doctorado/thesis-talk-2022" rel="external noreferrer noopener" target="_blank" class="arrow">Thesis Talk 2022 | UC3M</a></p>
<p><a href="https://media.uc3m.es/video/62a041428f4208d58e8b4570?track_id=62a041d38f4208248f8b4567" rel="external noreferrer noopener" target="_blank" class="arrow">My thesis talk video</a></p>
<p>I started working already with the aim of submitting a paper in a couple of months. It's a little bit daunting but also very exciting! I'm very curious to see how things start to fall in place during the following days and weeks.
</p>
<p>I'm glad I have this space to share some aspects of this new experience.
</p>
<p>See you soon!
</p>
</div>
</content>
</entry>
<entry>
<title>Closure(s) and not - biosejo 120220607</title>
<updated>2022-06-07T13:00:00-05:00</updated>
<link rel='alternate' href='https://compudanzas.net/biosejo_120220607.html'/>
<id>https://compudanzas.net/biosejo_120220607.html</id>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<h1>Closure(s) and not - biosejo 120220607</h1>
<p>A post about some recent events, closures, new beginnings, and other reflections.
</p>
<p>Testing, testing... We are reconnecting...
</p>
<p>The past couple of weeks have been a time of closing cycles. We had our farewell party, and my semester of teaching creative coding ended. With it, it was also the end my two years of teaching there. I'm very grateful about these events and experiences.
</p>
<p>Regarding paperwork, we are getting closer. It was very exciting to go to the consulate to request our visas. The idea of us moving to another continent felt even more real when going there. But we still have to wait...
</p>
<p>Interestingly, at the beginning of this year I decided that my "word of the year" would be Patience. I decided it because I was looking for a job change and other transformations, for example regarding my personal physical training. I knew that I had to take the process slowly, calmly, with compassion. Similar to how I treated the learning processes of my students.
</p>
<p>Due to how this Phd process started and has been happening, I have come back to the word again and again. Patience.
</p>
<p>Regarding the program, I did submit my video entry to the Thesis Talk event. Once its online I'll share it around here.
</p>
<p>Additionally, I have been making my 4-years long plan. It's funny because I tend to have trouble imagining that amount of time. Recently I think I've gotten more used to the idea of planning for a year. Four times that is a lot, but I'm super thankful with my advisors/directors who have been helping me with that. The word Patience comes again: it's okay (and I would say it's needed) to go slow.
</p>
<p>My process of reading and note-taking continues. Now I'm trying to use Zim Wiki, especially because it's more lightweight and that can be definitely felt in my relatively old computer. I haven't tried it yet, but it seems that regarding mobile/Android support, I can use the Markor program
</p>
<p><a href="https://zim-wiki.org/" rel="external noreferrer noopener" target="_blank" class="arrow">Zim - A Desktop Wiki</a></p>
<p><a href="https://gsantner.net/project/markor.html" rel="external noreferrer noopener" target="_blank" class="arrow">Markor Editor</a></p>
<p>Finally, I have been thinking a lot about so-called "social media" and the presence that I want for me there. I still haven't arrived to a conclusion, and I wonder if I will, but I have been thinking about embracing abundance and letting myself shine.
</p>
<p>Additionally, regarding my use of it, and the patterns of visiting these websites to check updates (even when most of them are in the fediverse, and not super engineeredto become addictive), I got inspired by this post by ~cblgh, that describes a setup for a "single-purpose" computer dedicated to social media. In my case, I'm attempting to use an Android device that has an OS version with some "digital wellness" features like the possibility of assigning timers to specific programs.
</p>
<p><a href="https://cblgh.org/social%20media%20computer/" rel="external noreferrer noopener" target="_blank" class="arrow">social media computer - alexander cobleigh</a></p>
<p>The writing of this post had been running away from me. I'm glad to have it done now, and I don't feel bad about letting a couple of weeks slip away. That's a novelty in my case, because some other times I would have gotten a little bit intense about "losing the streak".
</p>
<p>I feel calm, and I wish you could all see the tree-based sight I have in front of me.
</p>
</div>
</content>
</entry>
<entry>
<title>Packing and unpacking - biosejo 120220519</title>
<updated>2022-05-19T20:00:00-05:00</updated>
<link rel='alternate' href='https://compudanzas.net/biosejo_120220519.html'/>
<id>https://compudanzas.net/biosejo_120220519.html</id>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<h1>Packing and unpacking - biosejo 120220519</h1>
<p>Moving things around and deciding what to keep and what to leave behind, internally and externally.
</p>
<h1 id='Packing'>Packing</h1>
<p>During the past week we rehearsed packing for the grand move, in order to see if we were in our space and weight budget. It was a nice way to conclude a process that we have been going through in the past few weeks, "minimizing" our stuff and figuring out what we really need (and what we really want to really need)
</p>
<p>As we were going our budget a little bit, this was a good opportunity to push further and let go of some other stuff.
</p>
<p>In parallel, we have been having a nice experience of gifting stuff to friends, finding places to donate things (e.g. hacklabs that could use electronic components), trying to sell some others, and bringing the rest to recycling places.
</p>
<p>This is definitely a big jump into the unknown, so we are hoping we don't end up needing something that we thought we wouldn't.
</p>
<p>In any case, doing all this brought me in contact with several past notebooks and works of mine: these were windows for me to see who I was, who I have been, and who I wanted to be.
</p>
<h1 id='Unpacking'>Unpacking</h1>
<p>During this week, these windows-notebooks made me ponder a lot about my identity, especially about my online identity. Part of me would prefer not to, and just flow (embracing chaos and the absurd?). I'd prefer to use that time in some other way.
</p>
<p>However, another part of me is intrigued about how I've changed, online and offline.
</p>
<p>It seems that now I'm more conscious, compassionate, understanding, and open-minded. It seems that before I was way more sure of myself and my actions, and also more outgoing. I wasn't hesitant to start projects, to connect with people (online) or to embrace my humor. Always an introvert, though :)
</p>
<p>I wonder if that overconfidence came from being younger or only from being more naive. Both seem difficult to revert, but probably something can be done about it.
</p>
<p>Regarding naivete, I can identify how, when becoming more privacy-aware, I stopped using my legal name online, I deleted a lot of traces and connections, and I went "into the dark".
</p>
<p>I can also identify how, when becoming more aware of the upcoming <a href='./collapse.html'>collapse</a>, I stopped doing a lot of things that I found fun, I became somewhat cynic (despite not wanting to!), I questioned everything I was doing and being part of, I got paralyzed, and again, I went inwards, "into the dark".
</p>
<p>Additionally, all of this got combined with becoming aware of feminism and realizing all the stupid stuff I did due to being a man. I guess I over-corrected and then I wanted to lower my voice, to not occupy any space, to stop initiating and instigating creative projects. Going into the dark.
</p>
<p>As one can imagine, and as I realize now, thanks to a slow process that has been aided by this big change: that is not a nice way to live! And neither it's helpful, for me or for anyone!
</p>
<p>Side note: I was a little bit hesitant to write about this, but now I'm finding it very illuminating and lighter-feeling-inducing :)
</p>
<p>So here I am, slowly crawling outside. Slowly repeating, "my voice is important". I realize and remember, I'm part of a so-called minority, I shouldn't be the one shutting up. My voice is important. How does one gets their confidence back? How does one cultivate it? It's okay to shine.
</p>
<p>My outline implied talking about some other personal conflicts (the performance of professionalism), but interestingly this has given me enough to process already.
</p>
<p>Thanks for being here, dear reader, allowing all this to go outside.
</p>
</div>
</content>
</entry>
<entry>
<title>On systems, dreams and practice - biosejo 120220511</title>
<updated>2022-05-11T09:00:00-05:00</updated>
<link rel='alternate' href='https://compudanzas.net/biosejo_120220511.html'/>
<id>https://compudanzas.net/biosejo_120220511.html</id>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<h1>On systems, dreams and practice - biosejo 120220511</h1>
<p>Updates regarding systems I'm using, dreams that are coming back, and insights on daily practice.
</p>
<p>Something I like about weekly processes like this one is the perspective it sheds to the arbitrary, human-decided period of seven days. I guess it's like some kind of prism or lens: it can be seen as too long, or as too short of a period.
</p>
<p>I take several notes of the things I'm doing or want to be doing each day; this past week I made a new list of what are the things I want to be talking about in the post.
</p>
<h1 id='Systems'>Systems</h1>
<p>Going from more to less technical: Obsidian the tool, a thesis talk as a framework, and some new perspectives on reading.
</p>
<h2 id='Obsidian'>Obsidian</h2>
<p>I started using Obsidian.md, a text-editor focused on "interconnected note-taking" (my words).
<p><a href="https://obsidian.md" rel="external noreferrer noopener" target="_blank" class="arrow">Obsidian</a></p>
</p>
<p>I had read several good comments about it, but I thought it was yet another note-taking "app" with its specific database and probably non-compatible way of saving notes.
</p>
<p>Last week I found out it uses a directory with plain-text (markdown) files, and that it was completely compatible with the way I started writing in ceti, my digital zettelkasten that I mentioned on <a href='./biosejo_120220503.html'>biosejo 120220503</a>.
</p>
<p>Additionally, it has many nice features like link auto-completion, suggestion of possible backlinks, templates for new files, a nice way of previewing the markdown format, and the "famous" graph view to see the interconnectedness of the notes.
</p>
<p>I decided to use it as an ergonomic way of getting my notes on "paper" (on file?) while at the same figuring out what are the features that I would like to implement on my own tool. Again, the fact that all of the notes are text files allows me to write on them "manually" or to use Obsidian as an interface.
</p>
<h2 id='Thesis talk'>Thesis talk</h2>
<p>The doctorate school of my university is organizing a "Thesis talk" event, where PhD students/candidates present their project to a non-specialized audience in up to 3 minutes.
</p>
<p>I thought it would be a great idea to participate! I saw it as a way of getting involved with the school activities even though I'm not "there" yet, and also (and maybe more importantly?) as an opportunity to have a deadline and push myself to define in a clear and concise manner the research project I'll be developing.
</p>
<p>It happens that in June a requirement of the program is to present an initial research plan. I saw the Thesis Talk as a way to prepare for that!
</p>
<p>My advisor approved the idea: now I am signed up for the event, and I have until the end of May to submit a video recording of my presentation. If I make the cut to the final event, I would be able to present it live on the end of June: In theory we should be there in the university by then.
</p>
<p>I guess a past version of me wouldn't believe that I signed up for this: I'm glad I'm able now to bring myself to the table, and participate.
</p>
<h2 id='Reading'>Reading</h2>
<p>One way I see that the two previous points are connected is that I'm using my zettelkasten and the thesis talk opportunity as a way and system to figure out how to read better and how to map the different topics of the state of the art and also of my interests.
</p>
<p>The past few days it happened to me that I remembered some specific diagram and framework from an article I had read before this system, and I had a little bit of a problem to re-locate it.
</p>
<p>Thankfully, I'm using Zotero to manage my references and I could find it again.
</p>
<p>However, I've been in similar situations before: reading something casually, thinking that it wouldn't be important in the future, and then weeks/months/years later having an insight related to that, but with the reference being.
</p>
<p>This situation reminded me of that, and motivated me to keep my intention of growing this "external brain" in the form of my zettelkasten.
</p>
<p>Now the thing to overcome is sometimes feeling overwhelmed by the thought of "reading right", with notes and so on; this feeling has happened a couple of times in such a way that it makes me prefer not to do it right now.
</p>
<h1 id='Dreams'>Dreams</h1>
<p>This past week I had a very nice and useful insight about re-contextualizing my work.
</p>
<p>Most of my life I have admired the work of Nintendo. Nowadays I'm not a fan of the ways they have been handling some things like anti-piracy. Regardless of that, even though I didn't have a lot of games, I've been a fan of how they use cuteness, humor and ingenuity in play.
</p>
<p>I'm sure they are not the only ones who work in that way; let's say I'm only taking them as a referent. During my life there have been only very few big companies where I had said I'd like to be part of, and Nintendo is still one of them. For the record, Pixar would be the other one, although right now I wouldn't know what I'd like to do there.
</p>
<p>The point here is that I realized that my PhD research project, based on playful computing for body games and experiences, could lead me to Nintendo.
</p>
<p>Interestingly, that almost immediately changed the way I looked at the project, and allowed me to think of resources (like cuteness) that I wasn't probably considering yet.
</p>
<p>The real insight came when I realized that I don't have to be working for three or four years towards that: I can work right now "as if I was" already there. Or, said in another way: I don't have to be ever there to work and create as if I was there!
</p>
<p>I can keep analyzing what are the elements that I like about their creations and creative processes, and use them in my own way with my own team. The goal of eventually getting there is very nice and motivating, and I'm not discarding it as impossible or undesirable: it's just that I find it great how I can already feel very different and even more excited about my research right now!
</p>
<p>I have found it very interesting how this perspective has allowed me to think beyond the arbitrary "academic limits" that I had unconsciously set for myself and the project, despite not having a lot of academic experience.
</p>
<p>This new way of looking at things has been a nice counterpoint to some instances of self-doubt and of getting overwhelmed with all the topics and their interconnectedness.
</p>
<p>One step at a time, as if I was already in the dreamt place.
</p>
<h1 id='Practice'>Practice</h1>
<p>For me, all of this connects to the idea of practice, and to how I've been traditionally attracted to the ideas of discipline, determination, daily practice, and to people that have their "own thing" that develop during all their life.
</p>
<p>We watched Tony Hawk's documentary, Until the wheels fall off, and it made me think deeply again about these things.
</p>
<p>Interestingly, I tend to feel as if I didn't have my "own thing" yet, but to my partner it's obvious it's "computers". And well, not only to them: cleaning up the house and getting rid of previous documents and school papers, I read many times that several instances of myself in the past ~16 years thought that they were "good with computers" and wanted to work and create with them.
</p>
<p>I get a little bit intense and I think: "Well, if that's my thing, am I really practicing enought and getting better at it as time passes?"
</p>
<p>I can recognize how there have been times where e.g. I had a 100+ days practice of generative art, but at some point I lost focus. I guess that when I think I don't have "my thing" it's because 1) I'd like to see it as a creative practice, 2) I haven't been able to feel like I'm pulling it off, i.e. consciously and constantly getting better at it.
</p>
<p>In any case, I see now how the PhD project can serve me to have this focused framework and explore these ideas of practice. What would I normally do, if I was already "there" in the dreamt place? What would I practice? How would I enjoy and have fun?
</p>
<p>Also, to help this, I think and I know I have to be careful with the resources I consume: reading a lot of critical theory paralyzes me and makes me feel I can't do anything because everything seems to be "wrong".
</p>
<p>Similar to how performance allows us to enter in a state of "suspension of disbelief", I think I can find a way to enter a state where I can practice, play, enjoy, and have fun.
</p>
<p>In any case, I know some "critical people" have argued for the importance of play and fun. For the moment, I'll let them do the arguing, and I'll stop thinking I have to justify myself.
</p>
<p>One step at a time :)
</p>
<p>As a final note, and as an intersting turn (?) of events, we have been playing with our NDS consoles, and I got a way to download and play even more games. Even though this could be part of the research I'd like to do, I prefer to think of it as just giving myself the opportunity to have fun.
</p>
<p>Feel free to <a href='./contact.html'>contact</a> me to further discuss any of this. For the record, I'm glad to have this space to share!
</p>
<p>See you next week!
</p>
</div>
</content>
</entry>
<entry>
<title>Here we go: Intro, research and notes - biosejo 120220503</title>
<updated>2022-05-03T18:00:00-05:00</updated>
<link rel='alternate' href='https://compudanzas.net/biosejo_120220503.html'/>
<id>https://compudanzas.net/biosejo_120220503.html</id>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<h1>Here we go: Intro, research and notes - biosejo 120220503</h1>
<p>In which I introduce <a href='./biosejo.html'>biosejo</a> and talk about my plans regarding research, note-taking, and movement.
</p>
<h1 id='Intro'>Intro</h1>
<p>I tend to enjoy writing in chronological posts.
</p>
<p>Now that I think of it, I've done that in several instances for a period corresponding to at least half of my life.
</p>
<p>Here in the compudanzas site I've been exploring a <a href='./wiki.html'>wiki</a>-like structure, because non-linear arrangements, and specifically hypertext-based ones, have attracted me for a long time as well. I hadn't had the chance to explore this until I received plenty of inspiration from the Merveilles webring, especially from the XXIIVV wiki.
</p>
<p><a href="https://webring.xxiivv.com/" rel="external noreferrer noopener" target="_blank" class="arrow">Merveilles webring</a></p>
<p><a href="https://wiki.xxiivv.com/site/home.html" rel="external noreferrer noopener" target="_blank" class="arrow">XXIIVV</a></p>
<p>I have enjoyed the process a lot. I even started a digital Zettelkasten now, to create a living archive of my knowledge that I can explore to find new insights (more on this below).
</p>
<p>However, I also enjoy reading other people's chronological posts. I was okay reading them, not writing them, until... something (relevant) changed.
</p>
<p>I'm starting a predoctoral research position focusing on playful applications of computing to improve proprioception and movement!
</p>
<p>We have yet to move to another country in another continent. Meanwhile I've been reading, noticing that this would be a great time to improve my long-term retention of what I read, and therefore deciding to improve how I actually read and learn.
</p>
<p>This is where the Zettelkasten comes into play, but I'll talk more about it in a moment.
</p>
<p>The thing is that I decided that it would be a great exercise for me to linearize here not only my research, but also the surrounding events (aka "life"). On one hand I love knowledge-sharing, on the other this could be a way to keep close people (that will now be relatively far away) in touch with what I'm living, and on the third hand (or first foot?) I find this could be a great way to practice my writing.
</p>
<p>My intention is to write and share here once a week.
</p>
<h1 id='The Zettelkasten'>The Zettelkasten</h1>
<p>Very simply put, the Zettelkasten is a method to take and organize interconnected notes that tend to represent someone's knowledge. You can read more about it in the following link; these past few days I've been reading many of those posts!
</p>
<p><a href="https://zettelkasten.de/posts/overview/" rel="external noreferrer noopener" target="_blank" class="arrow">Getting Started - Zettelkasten Methon</a></p>
<p>I decided to start one because I realized that for my preliminary readings for the PhD program I wasn't really taking meaningful notes.
</p>
<p>Additionally, because what I'll be doing will be super interdisciplinary: relating movement, psychology, social sciences, philosophy, neuroscience, and also computer science and electronics, I thought that I would need a way to make sense of all this and to avoid getting lost.
</p>
<p>I had read about the method already, but now I went deeper and then started with a simple system based on plain text files. The automation and ergonomics will come later whenever I start feeling friction.
</p>
<p>My objective here is to improve my reading, being more deliberate about it. I tend to read relatively fast, sometimes just skimming, and I kind of "get" the main points, especially when I talk with my partner about them.
</p>
<p>However, I notice I could get a lot more out of reading if I take a more attentive and careful approach, creating and tending notes, interconnecting them with previous ones. Also, I can see how this can lead to longer-term retention and knowledge creationg.
</p>
<p>I'm excited about it!
</p>
<h1 id='Movement and less screens'>Movement and less screens</h1>
<p>Lastly, I want to share that I'm currently going through a process of simplification. Following a relatively common trend in my circles, I want to spend less time online, and less time in distraction (procrastination disguised as distraction?).
</p>
<p>For the zettelkasten I'm taking notes in paper first, and I'm also using paper notebooks to organize my ideas. This very post was outlined in paper!
</p>
<p>Also, the text-based focus of what I'm doing right now means that I can use my main computer in "text mode" or "console mode", and that I can use my android tablet with termux and a keyboard to have a similar and more portable writing experience.
</p>
<p><a href="https://termux.com/" rel="external noreferrer noopener" target="_blank" class="arrow">Termux</a></p>
<p>I'm also getting back to <a href='./running.html'>running</a> and moving, and I'm being more deliberate with my on-screen time by using a timer.
</p>
<p>It has been great to alternate focus with breaks, in contrast to being aimlessly in front of the computer for a long time!
</p>
<p>I'm really excited about all this and what's coming next.
</p>
<p>I reiterate my intention: See you next week!
</p>
</div>
</content>
</entry>
</feed>

View File

@ -0,0 +1,64 @@
# Here we go: Intro, research and notes - biosejo 120220503
In which I introduce {biosejo} and talk about my plans regarding research, note-taking, and movement.
# Intro
I tend to enjoy writing in chronological posts.
Now that I think of it, I've done that in several instances for a period corresponding to at least half of my life.
Here in the compudanzas site I've been exploring a {wiki}-like structure, because non-linear arrangements, and specifically hypertext-based ones, have attracted me for a long time as well. I hadn't had the chance to explore this until I received plenty of inspiration from the Merveilles webring, especially from the XXIIVV wiki.
=> https://webring.xxiivv.com/ Merveilles webring
=> https://wiki.xxiivv.com/site/home.html XXIIVV
I have enjoyed the process a lot. I even started a digital Zettelkasten now, to create a living archive of my knowledge that I can explore to find new insights (more on this below).
However, I also enjoy reading other people's chronological posts. I was okay reading them, not writing them, until... something (relevant) changed.
I'm starting a predoctoral research position focusing on playful applications of computing to improve proprioception and movement!
We have yet to move to another country in another continent. Meanwhile I've been reading, noticing that this would be a great time to improve my long-term retention of what I read, and therefore deciding to improve how I actually read and learn.
This is where the Zettelkasten comes into play, but I'll talk more about it in a moment.
The thing is that I decided that it would be a great exercise for me to linearize here not only my research, but also the surrounding events (aka "life"). On one hand I love knowledge-sharing, on the other this could be a way to keep close people (that will now be relatively far away) in touch with what I'm living, and on the third hand (or first foot?) I find this could be a great way to practice my writing.
My intention is to write and share here once a week.
# The Zettelkasten
Very simply put, the Zettelkasten is a method to take and organize interconnected notes that tend to represent someone's knowledge. You can read more about it in the following link; these past few days I've been reading many of those posts!
=> https://zettelkasten.de/posts/overview/ Getting Started - Zettelkasten Methon
I decided to start one because I realized that for my preliminary readings for the PhD program I wasn't really taking meaningful notes.
Additionally, because what I'll be doing will be super interdisciplinary: relating movement, psychology, social sciences, philosophy, neuroscience, and also computer science and electronics, I thought that I would need a way to make sense of all this and to avoid getting lost.
I had read about the method already, but now I went deeper and then started with a simple system based on plain text files. The automation and ergonomics will come later whenever I start feeling friction.
My objective here is to improve my reading, being more deliberate about it. I tend to read relatively fast, sometimes just skimming, and I kind of "get" the main points, especially when I talk with my partner about them.
However, I notice I could get a lot more out of reading if I take a more attentive and careful approach, creating and tending notes, interconnecting them with previous ones. Also, I can see how this can lead to longer-term retention and knowledge creationg.
I'm excited about it!
# Movement and less screens
Lastly, I want to share that I'm currently going through a process of simplification. Following a relatively common trend in my circles, I want to spend less time online, and less time in distraction (procrastination disguised as distraction?).
For the zettelkasten I'm taking notes in paper first, and I'm also using paper notebooks to organize my ideas. This very post was outlined in paper!
Also, the text-based focus of what I'm doing right now means that I can use my main computer in "text mode" or "console mode", and that I can use my android tablet with termux and a keyboard to have a similar and more portable writing experience.
=> https://termux.com/ Termux
I'm also getting back to running and moving, and I'm being more deliberate with my on-screen time by using a timer.
It has been great to alternate focus with breaks, in contrast to being aimlessly in front of the computer for a long time!
I'm really excited about all this and what's coming next.
I reiterate my intention: See you next week!

View File

@ -0,0 +1,100 @@
# On systems, dreams and practice - biosejo 120220511
Updates regarding systems I'm using, dreams that are coming back, and insights on daily practice.
Something I like about weekly processes like this one is the perspective it sheds to the arbitrary, human-decided period of seven days. I guess it's like some kind of prism or lens: it can be seen as too long, or as too short of a period.
I take several notes of the things I'm doing or want to be doing each day; this past week I made a new list of what are the things I want to be talking about in the post.
# Systems
Going from more to less technical: Obsidian the tool, a thesis talk as a framework, and some new perspectives on reading.
## Obsidian
I started using Obsidian.md, a text-editor focused on "interconnected note-taking" (my words).
=> https://obsidian.md Obsidian
I had read several good comments about it, but I thought it was yet another note-taking "app" with its specific database and probably non-compatible way of saving notes.
Last week I found out it uses a directory with plain-text (markdown) files, and that it was completely compatible with the way I started writing in ceti, my digital zettelkasten that I mentioned on {biosejo 120220503}.
Additionally, it has many nice features like link auto-completion, suggestion of possible backlinks, templates for new files, a nice way of previewing the markdown format, and the "famous" graph view to see the interconnectedness of the notes.
I decided to use it as an ergonomic way of getting my notes on "paper" (on file?) while at the same figuring out what are the features that I would like to implement on my own tool. Again, the fact that all of the notes are text files allows me to write on them "manually" or to use Obsidian as an interface.
## Thesis talk
The doctorate school of my university is organizing a "Thesis talk" event, where PhD students/candidates present their project to a non-specialized audience in up to 3 minutes.
I thought it would be a great idea to participate! I saw it as a way of getting involved with the school activities even though I'm not "there" yet, and also (and maybe more importantly?) as an opportunity to have a deadline and push myself to define in a clear and concise manner the research project I'll be developing.
It happens that in June a requirement of the program is to present an initial research plan. I saw the Thesis Talk as a way to prepare for that!
My advisor approved the idea: now I am signed up for the event, and I have until the end of May to submit a video recording of my presentation. If I make the cut to the final event, I would be able to present it live on the end of June: In theory we should be there in the university by then.
I guess a past version of me wouldn't believe that I signed up for this: I'm glad I'm able now to bring myself to the table, and participate.
## Reading
One way I see that the two previous points are connected is that I'm using my zettelkasten and the thesis talk opportunity as a way and system to figure out how to read better and how to map the different topics of the state of the art and also of my interests.
The past few days it happened to me that I remembered some specific diagram and framework from an article I had read before this system, and I had a little bit of a problem to re-locate it.
Thankfully, I'm using Zotero to manage my references and I could find it again.
However, I've been in similar situations before: reading something casually, thinking that it wouldn't be important in the future, and then weeks/months/years later having an insight related to that, but with the reference being.
This situation reminded me of that, and motivated me to keep my intention of growing this "external brain" in the form of my zettelkasten.
Now the thing to overcome is sometimes feeling overwhelmed by the thought of "reading right", with notes and so on; this feeling has happened a couple of times in such a way that it makes me prefer not to do it right now.
# Dreams
This past week I had a very nice and useful insight about re-contextualizing my work.
Most of my life I have admired the work of Nintendo. Nowadays I'm not a fan of the ways they have been handling some things like anti-piracy. Regardless of that, even though I didn't have a lot of games, I've been a fan of how they use cuteness, humor and ingenuity in play.
I'm sure they are not the only ones who work in that way; let's say I'm only taking them as a referent. During my life there have been only very few big companies where I had said I'd like to be part of, and Nintendo is still one of them. For the record, Pixar would be the other one, although right now I wouldn't know what I'd like to do there.
The point here is that I realized that my PhD research project, based on playful computing for body games and experiences, could lead me to Nintendo.
Interestingly, that almost immediately changed the way I looked at the project, and allowed me to think of resources (like cuteness) that I wasn't probably considering yet.
The real insight came when I realized that I don't have to be working for three or four years towards that: I can work right now "as if I was" already there. Or, said in another way: I don't have to be ever there to work and create as if I was there!
I can keep analyzing what are the elements that I like about their creations and creative processes, and use them in my own way with my own team. The goal of eventually getting there is very nice and motivating, and I'm not discarding it as impossible or undesirable: it's just that I find it great how I can already feel very different and even more excited about my research right now!
I have found it very interesting how this perspective has allowed me to think beyond the arbitrary "academic limits" that I had unconsciously set for myself and the project, despite not having a lot of academic experience.
This new way of looking at things has been a nice counterpoint to some instances of self-doubt and of getting overwhelmed with all the topics and their interconnectedness.
One step at a time, as if I was already in the dreamt place.
# Practice
For me, all of this connects to the idea of practice, and to how I've been traditionally attracted to the ideas of discipline, determination, daily practice, and to people that have their "own thing" that develop during all their life.
We watched Tony Hawk's documentary, Until the wheels fall off, and it made me think deeply again about these things.
Interestingly, I tend to feel as if I didn't have my "own thing" yet, but to my partner it's obvious it's "computers". And well, not only to them: cleaning up the house and getting rid of previous documents and school papers, I read many times that several instances of myself in the past ~16 years thought that they were "good with computers" and wanted to work and create with them.
I get a little bit intense and I think: "Well, if that's my thing, am I really practicing enought and getting better at it as time passes?"
I can recognize how there have been times where e.g. I had a 100+ days practice of generative art, but at some point I lost focus. I guess that when I think I don't have "my thing" it's because 1) I'd like to see it as a creative practice, 2) I haven't been able to feel like I'm pulling it off, i.e. consciously and constantly getting better at it.
In any case, I see now how the PhD project can serve me to have this focused framework and explore these ideas of practice. What would I normally do, if I was already "there" in the dreamt place? What would I practice? How would I enjoy and have fun?
Also, to help this, I think and I know I have to be careful with the resources I consume: reading a lot of critical theory paralyzes me and makes me feel I can't do anything because everything seems to be "wrong".
Similar to how performance allows us to enter in a state of "suspension of disbelief", I think I can find a way to enter a state where I can practice, play, enjoy, and have fun.
In any case, I know some "critical people" have argued for the importance of play and fun. For the moment, I'll let them do the arguing, and I'll stop thinking I have to justify myself.
One step at a time :)
As a final note, and as an intersting turn (?) of events, we have been playing with our NDS consoles, and I got a way to download and play even more games. Even though this could be part of the research I'd like to do, I prefer to think of it as just giving myself the opportunity to have fun.
Feel free to {contact} me to further discuss any of this. For the record, I'm glad to have this space to share!
See you next week!

View File

@ -0,0 +1,41 @@
# Packing and unpacking - biosejo 120220519
Moving things around and deciding what to keep and what to leave behind, internally and externally.
# Packing
During the past week we rehearsed packing for the grand move, in order to see if we were in our space and weight budget. It was a nice way to conclude a process that we have been going through in the past few weeks, "minimizing" our stuff and figuring out what we really need (and what we really want to really need)
As we were going our budget a little bit, this was a good opportunity to push further and let go of some other stuff.
In parallel, we have been having a nice experience of gifting stuff to friends, finding places to donate things (e.g. hacklabs that could use electronic components), trying to sell some others, and bringing the rest to recycling places.
This is definitely a big jump into the unknown, so we are hoping we don't end up needing something that we thought we wouldn't.
In any case, doing all this brought me in contact with several past notebooks and works of mine: these were windows for me to see who I was, who I have been, and who I wanted to be.
# Unpacking
During this week, these windows-notebooks made me ponder a lot about my identity, especially about my online identity. Part of me would prefer not to, and just flow (embracing chaos and the absurd?). I'd prefer to use that time in some other way.
However, another part of me is intrigued about how I've changed, online and offline.
It seems that now I'm more conscious, compassionate, understanding, and open-minded. It seems that before I was way more sure of myself and my actions, and also more outgoing. I wasn't hesitant to start projects, to connect with people (online) or to embrace my humor. Always an introvert, though :)
I wonder if that overconfidence came from being younger or only from being more naive. Both seem difficult to revert, but probably something can be done about it.
Regarding naivete, I can identify how, when becoming more privacy-aware, I stopped using my legal name online, I deleted a lot of traces and connections, and I went "into the dark".
I can also identify how, when becoming more aware of the upcoming {collapse}, I stopped doing a lot of things that I found fun, I became somewhat cynic (despite not wanting to!), I questioned everything I was doing and being part of, I got paralyzed, and again, I went inwards, "into the dark".
Additionally, all of this got combined with becoming aware of feminism and realizing all the stupid stuff I did due to being a man. I guess I over-corrected and then I wanted to lower my voice, to not occupy any space, to stop initiating and instigating creative projects. Going into the dark.
As one can imagine, and as I realize now, thanks to a slow process that has been aided by this big change: that is not a nice way to live! And neither it's helpful, for me or for anyone!
Side note: I was a little bit hesitant to write about this, but now I'm finding it very illuminating and lighter-feeling-inducing :)
So here I am, slowly crawling outside. Slowly repeating, "my voice is important". I realize and remember, I'm part of a so-called minority, I shouldn't be the one shutting up. My voice is important. How does one gets their confidence back? How does one cultivate it? It's okay to shine.
My outline implied talking about some other personal conflicts (the performance of professionalism), but interestingly this has given me enough to process already.
Thanks for being here, dear reader, allowing all this to go outside.

View File

@ -0,0 +1,32 @@
# Closure(s) and not - biosejo 120220607
A post about some recent events, closures, new beginnings, and other reflections.
Testing, testing... We are reconnecting...
The past couple of weeks have been a time of closing cycles. We had our farewell party, and my semester of teaching creative coding ended. With it, it was also the end my two years of teaching there. I'm very grateful about these events and experiences.
Regarding paperwork, we are getting closer. It was very exciting to go to the consulate to request our visas. The idea of us moving to another continent felt even more real when going there. But we still have to wait...
Interestingly, at the beginning of this year I decided that my "word of the year" would be Patience. I decided it because I was looking for a job change and other transformations, for example regarding my personal physical training. I knew that I had to take the process slowly, calmly, with compassion. Similar to how I treated the learning processes of my students.
Due to how this Phd process started and has been happening, I have come back to the word again and again. Patience.
Regarding the program, I did submit my video entry to the Thesis Talk event. Once its online I'll share it around here.
Additionally, I have been making my 4-years long plan. It's funny because I tend to have trouble imagining that amount of time. Recently I think I've gotten more used to the idea of planning for a year. Four times that is a lot, but I'm super thankful with my advisors/directors who have been helping me with that. The word Patience comes again: it's okay (and I would say it's needed) to go slow.
My process of reading and note-taking continues. Now I'm trying to use Zim Wiki, especially because it's more lightweight and that can be definitely felt in my relatively old computer. I haven't tried it yet, but it seems that regarding mobile/Android support, I can use the Markor program
=> https://zim-wiki.org/ Zim - A Desktop Wiki
=> https://gsantner.net/project/markor.html Markor Editor
Finally, I have been thinking a lot about so-called "social media" and the presence that I want for me there. I still haven't arrived to a conclusion, and I wonder if I will, but I have been thinking about embracing abundance and letting myself shine.
Additionally, regarding my use of it, and the patterns of visiting these websites to check updates (even when most of them are in the fediverse, and not super engineeredto become addictive), I got inspired by this post by ~cblgh, that describes a setup for a "single-purpose" computer dedicated to social media. In my case, I'm attempting to use an Android device that has an OS version with some "digital wellness" features like the possibility of assigning timers to specific programs.
=> https://cblgh.org/social%20media%20computer/ social media computer - alexander cobleigh
The writing of this post had been running away from me. I'm glad to have it done now, and I don't feel bad about letting a couple of weeks slip away. That's a novelty in my case, because some other times I would have gotten a little bit intense about "losing the streak".
I feel calm, and I wish you could all see the tree-based sight I have in front of me.

View File

@ -0,0 +1,22 @@
# The other side - biosejo 120220710
Hello from the other side - these characters are now written from Madrid, Spain!
This past month was hectic: even though we felt ready, once we were faced with the surprising news of our visas being ready, we realized we still had several things to solve in Mexico! Additionally, once we arrived in Madrid, we have had another set of issues to overcome, combined with a lot of movement (walking, running, biking) and exploration. Hence, not a lot of time to sit down and write, until today.
I see people walking on the street. Everything seems "normal". This is our new normal, it seems. I'm still getting used to the idea of being so far away from everyone and everything I knew. It is kind of unbelievable: the world is indeed very big!
I'm very excited and motivated for this new stage of life!
I love that for the most part, the work I've been doing these days regarding my Computer Science and Technology PhD has happened sitting in the floor together with other people, working with paper, writing by hand. Is this some kind of dream come true?
Meanwhile, the Thesis Talk 2022 event happened: I wasn't selected for the final round this time, but my video can be found along with others in the event's site:
=> https://www.uc3m.es/doctorado/thesis-talk-2022 Thesis Talk 2022 | UC3M
=> https://media.uc3m.es/video/62a041428f4208d58e8b4570 My thesis talk video
I started working already with the aim of submitting a paper in a couple of months. It's a little bit daunting but also very exciting! I'm very curious to see how things start to fall in place during the following days and weeks.
I'm glad I have this space to share some aspects of this new experience.
See you soon!

View File

@ -0,0 +1,24 @@
# On Sticky Notes - biosejo 120220717
These days I've been working with paper, sticky notes, a lot, and I've been thinking about them. The following are some loose ideas regarding them and potential digital counterparts.
I enjoy the thought of being in a Computer Science and Engineering PhD program working with paper, sitting on the floor, writing by hand, collaborating as a group. We are gathering reflections, features, ideas, from movement-based design methods in several projects, and we are writing them in sticky notes. I like how this simple, paper-based technology can afford so many uses and re-uses, and how it can be used to organize thought spatially.
Due to their relatively fragile quality, I've been practicing my typographic skills transcribing all them into a table. This table has gotten me excited: I know and can imagine a lot of things that can be done when one has a list of strings of text. I've thought about visualizing the "sticky notes", showing or allowing for spatial arrangements, clusters, similarities, etc. Additionally, I've been thinking about a possible "mirror" representation that joins the tangible and the digital note.
I find it interesting: the arrangement of several notes on paper can be documented and read in a photo, but at the same that is not necesarily parseable (automatically?). What would it imply to parse that information? And how does one, would I, represent the corresponding data? Is it just a matter of points in space, x and y coordinates linked to a sticky note id? That can replicate the image, and can aid in re-creating the spatial relationships (what are the points closer to point "i"?), but is that the information that we want to document / convey / show at the end?
There's also the possibility of making groups, assigning tags - would that be just another extra field in the data structure? I feel this specifically is a rabbit hole regarding "information science", librarians, or something along those lines.
When creating the digital table, there was the thought: can we then re-create the sticky notes set, or can we re-print one that was lost? When transcribing we are losing some typographic information. What happens when we update a sticky note in paper? How easy it is to find the corresponding digital representation to update it as well? Seems like some text-search would be enough here. But what happens when the digital representation is updated? How would we find and update the paper version?
Would it make to have some ID system? And what about some "RFID" to locate the notes? (?) And coming back to spatial arrangements, how could we "scan" and gather the arrangement of the paper notes in order to save that data? (This is coming back to the spatial arrangement questions; what is what we'd like to save) Would having visual markers help in this scanning? And what about leveraging the advanced technologies used with so-called Augment Reality?
I feel all of these questions have been definitely been explored already (e.g. [1], [2]), but I find it interesting to be arriving at them, kind of unexpectedly. I guess my recent interests in the zettelkasten, combined with tangible computing, and now being under this new environment, are arising wanting to be (re)mixed.
=> https://www.researchgate.net/publication/221514765_Augmented_Surfaces_A_Spatially_Continuous_Work_Space_for_Hybrid_Computing_Environments [1] Augmented Surfaces: A Spatially Continuous Work Space for Hybrid Computing Environments
=> https://dynamicland.org/ Dynamicland
I'm excited to be in a place where I can contemplate these questions and do something about them. They may end up being combined with the stronger line of bodily movement in the research project!
I welcome further ideas and references regarding these questions. Feels worth it to have these thought running in the back of my mind.

View File

@ -0,0 +1,15 @@
# Movement: A personal reframing - biosejo 120220717
Renewing a focus and commitment with physical movement.
For the past years I've had several cycles of disenchantment with computers. Although nice things have come out of them, like Compudanzas, they have also represented a source of anxiety: it seems I have internalized that my way of contributing to the world, society and a solarpunk present and future *has* to be through computers. This thought has been reinforced by a way of looking to my own history, as I've been "always around computers", "always excelling at mathematical and logical thinking". "This is what I'm good at, this is where I can be most helpful". The disenchantment leaves me floating in the void.
These past few days I arrived to an interesting revelation, a reframing of this personal history. Yes, the computers always there are true, but it's also true that I've been *always moving*. Be it in triathlon, skating, cycling, running, parkour, dancing (and running and cycling and compudanzas and running :), I can look at my life and see that physical movement has been always there. Some days ago I talked with some people of my elementary school that I had lost contact with and I noticed that for them it would be pretty consistent to hear that I'm doing a PhD in Computer Science and Technology, and that I'm preparing for a running race. Everything has changed, but also nothing has changed.
I realized that yes, I might have been able to e.g. help and teach people how to program because I have more experience compared to them. But in a similar way, I could guide or share with other people towards and through physical movement. I have a lot of experience, even if I'm not a "pro". (I've never held a position of "professional programmer", and yet I could be there for others).
I see moving in community as something important. We can learn a lot about ourselves and the world. Additionally, moving and having fun is something I want for a solarpunk present and future. I can reframe movement as my focus.
Something interesting is that I think the new frame is "backwards compatible" with what I'm doing already. The movement-based core of my PhD and what I'm and will be doing there is a possible way to *move with others*. Another possible way comes from the embodied activities / games / dances from Compudanzas. And as a note to self, there are multiple other ways as well, and I don't need to "coat" them with computation so that I feel they are valid when coming from me. I have done it already, I'm not sure what got me blocked.
I'm happy to have arrived at this perspective, and I'm happy to share it. I'm feeling very good and excited now :)

View File

@ -0,0 +1,7 @@
# queso mango
a handwritten, personal website.
=> https://quesomango.neocities.org/ queso mango 🥭
algunas notas anteceden a este sitio y se trajeron para acá. eventualmente algunas se regresaron a solo estar allá.

3
etc/removed/running.gmo Normal file
View File

@ -0,0 +1,3 @@
# running
page has been moved to el {queso mango}.

52
etc/removed/sejo.gmo Normal file
View File

@ -0,0 +1,52 @@
# sejo
instigator of compudanzas / persona instigadora de compudanzas.
# about
queer nerd researching playful movement and computing; flowing with curiosity and patience.
i'm interested in exploring and sharing digital technologies and related knowledge that have the aim of being empowering, benign and joyful.
for me, that usually implies experimenting and learning with simple tech, low-tech, and/or already-existing tech: i identify with the values of {permacomputing}.
for many applications i prefer paper over screens.
i enjoy {running}, cycling, skating and walking outdoors, as well as cooking and eating plant-based food (see {recetas}.)
i am usually amazed by emergent complexity in its different expressions on life and the universe.
# contact
## e-mail
sejo at posteo dot net
=> ./llave_sejo.asc [pgp key]
## xmpp
sejo at archipielago.uno
omemo keys:
```
dino: 15a8d9ad 5e43825d c7dee5ea 60826c55 8417befa 02cfd34f c1d352cd 73f4183c
conversations: E4CE63D9 8E9EAE14 A093A816 C3209FBD 25E14249 57D411A8 CD46D84C F2EEC674
```
# social media
## fediverse
=> https://merveilles.town/@sejo @sejo at merveilles.town
=> https://mar.archipielago.uno/sejo @sejo at mar.archipielago.uno
## ssb
via {la sala}:
=> https://sala.compudanzas.net/alias/sejo sejo
```
@y+CywqbY5If181KcX87nQLh4tqAGllkt3lvoY0f+zy0=.ed25519
```
## other
i might be present in commercial social networks in order to connect with people that haven't done their leap yet :)

563
generasitio.lua Normal file
View File

@ -0,0 +1,563 @@
meta = {
domain = "compudanzas.net",
title = "compudanzas",
description = "explorations of computing at a human scale",
fecha = os.date("%Y-%m-%d")
}
webdir = "web" -- web output directory
gemdir = "gem" -- gemini output directory
templates = {
webEn = {
header = { path = "pageheader.html", template = ""},
footer = { path = "pagefooter.html", template = ""},
incoming = { path = "pageincoming.html", template = ""}
},
webEs = {
header = { path = "pageheader_es.html", template = ""},
footer = { path = "pagefooter_es.html", template = ""},
incoming = { path = "pageincoming_es.html", template = ""}
},
gemEn = {
header = { path = "pageheader.gmi", template = ""},
footer = { path = "pagefooter.gmi", template = ""},
incoming = { path = "pageincoming.gmi", template = ""}
},
gemEs = {
header = { path = "pageheader.gmi", template = ""},
footer = { path = "pagefooter_es.gmi", template = ""},
incoming = { path = "pageincoming_es.gmi", template = ""}
},
}
pages = {}
function slugify( s )
return (string.gsub( s, "%s", "_" ))
end
function spacify( s ) -- opposite of slugify (?)
return (string.gsub( s, "_", " "))
end
function fillTemplate( template, pagemeta )
return ( string.gsub( template, "({.-})", function (key)
local var = string.sub(key,2,-2) -- remove { }
return meta[var] or pagemeta[var]
end) )
end
function getHeader( line ) -- returns title, level
local head, title = string.match(line,"^(#+)%s*(.-)$")
return title, #head
end
function getLink( line ) -- returns dest, text
return string.match( line, "^=>%s*(%S-)%s+(.-)$")
end
function isImagePath( text )
return text:match(".jpg$") or text:match(".gif$") or text:match(".png$")
end
function sanitize( line ) -- replace relevant html entities
return line:gsub("<","&lt;"):gsub(">","&gt;")
end
function closeTags()
local close = ""
if flags.list then
close = "</ul>\n"
flags.list = false
elseif flags.p then
close = "</p>\n"
flags.p = false
elseif flags.gallery then
close = "</gallery>\n"
flags.gallery = false
end
return close
end
function insertIncoming( pagename, incomingname )
if incomingname == "pages" then return false end
local incoming = pages[pagename].incoming
for i = 1, #incoming do
if incoming[i] == incomingname then
return false
end
end
table.insert( incoming, incomingname)
return true
end
function firstPass()
-- load templates
for _,t in pairs(templates) do
-- read templates
for k,subtemp in pairs( t ) do
local f = assert(io.open(string.format("templates/%s",subtemp.path),"r"))
subtemp.template = f:read("a")
f:close()
end
end
-- for each page:
-- convert gmo to gmi and html
-- and calculate incoming links
for name,page in pairs(pages) do
local pagemeta = pages[name]
local gmopath = string.format("src/%s.gmo", pagemeta.slug)
-- open file
local f = assert( io.open(gmopath, "r") )
-- initialize flags
flags = { list = false, pre = false , p = false, gallery = false }
-- table to store the lines to write to file
local lines = { web = {}, gem = {} }
local navlines = { "<ul>" }
-- convert one line at a time
local count = 1
for line in f:lines() do
-- the output line:
local out = { gem = line, web = nil}
if count == 1 then -- extract title
pagemeta.ptitle = string.match(line, "^#+%s*(.-)$")
elseif count == 2 then -- language
if line == "" then
pagemeta.lang = "en,es-MX" -- default
else
local langformat = "^lang=(%a+)"
local tradformat = "%s(%a+)->{(.-)}$"
pagemeta.lang = string.match(line,langformat)
local trlang, trname = string.match(line, tradformat)
if trlang ~= nil then
local ttext = "in english:"
if string.match( trlang, "^es" ) then
ttext = "en español:"
end
local weblink = string.format(
"<a href='./%s.html' rel='alternate'>%s</a>",
pages[ trname ].slug, trname )
local gemlink = string.format(
"=> ./%s.gmi %s",
pages[ trname ].slug, trname )
pagemeta.webtranslation = string.format(
"<p id='translation'>%s %s</p>",
ttext, weblink )
pagemeta.gemtranslation = string.format(
"%s\n%s\n", ttext, gemlink)
end
end
elseif count == 3 then -- obtain page description
pagemeta.pdescription,n = string.gsub(line,"[{}]","")
end
if count <=2 then goto nextline end -- skip normal processing for the first lines
-- CONVERT LINES
if string.match( line, "^```") then -- preformated
if flags.pre then
out.web = "</pre>"
else
out.web = "<pre>"
end
flags.pre = not flags.pre
goto insert -- skip more checks
end
if flags.pre then
out.web = sanitize( line )
goto insert
end
if string.match( line, "^%+") then -- + append html
out.gem = nil
out.web = string.sub(line,3) -- remove "+ "
elseif string.match( line, "^&") then -- & append gemtext
out.gem = string.sub(line,3) -- remove "& "
elseif string.match( line, "^$") then -- empty line
out.web = closeTags()
elseif string.match( line, "^#+") then -- HEADERS
local title, level = getHeader( line )
-- add h1 to navigation
if level==1 then
table.insert(navlines,string.format("<li><a href='#%s'>%s</a></li>",title,title))
end
local close = closeTags()
out.web = string.format("%s<h%d id='%s'>%s</h%d>",close,level,title,title,level)
elseif string.match( line, "^>") then -- BLOCKQUOTE
local close = closeTags()
out.web = string.format("%s<blockquote>%s</blockquote>", close, string.sub(line,3))
elseif string.match( line, "^%*") then -- LIST ITEMS
-- TODO reuse {wikilinks} code from paragraphs
-- TODO apply the sanitization to everything?
-- web
local strippedline = sanitize(string.sub(line, 3)) -- remove "* "
local webtext = string.gsub( strippedline, "{(.-)}", function (wikiname)
return string.format("<a href='./%s.html'>%s</a>", pages[wikiname].slug, wikiname)
end)
local li = string.format("<li>%s</li>", webtext)
if not flags.list then -- start list
out.web = string.format("<ul>\n%s", li)
flags.list = true
else -- append list element
out.web = li
end
-- gem
local gemlinks = {}
local gemline = string.gsub( line, "{(.-)}", function (wikiname)
table.insert(gemlinks, string.format("=> ./%s.gmi %s",pages[wikiname].slug, wikiname))
return wikiname
end)
out.gem = gemline
-- append links if there were any
if #gemlinks > 0 then
out.gem = out.gem.."\n"..table.concat(gemlinks,"\n")
end
elseif string.match( line, "^=>") then -- LINKS
local dest, text = getLink( line )
if string.match( dest, "^%./") then --local links
local cleantext = string.match( text, "^{(.-)}$" ) -- see if wikilink and clean
local htmldest = string.gsub( dest, "gmi", "html" )
if cleantext ~= nil then -- wikilink
local close = closeTags()
out.web = string.format("%s<p><a href='%s' class='arrow'>%s</a></p>",close,htmldest,cleantext)
out.gem = string.format("=> %s %s",dest,cleantext)
elseif isImagePath( dest ) then -- images
local img = string.format('<img src="%s" alt="%s" loading="lazy"/>',dest,text)
if not flags.gallery then
local close = closeTags()
out.web = string.format("%s<gallery>\n%s", close, img)
flags.gallery = true
else
out.web = img
end
else -- other files
local close = closeTags()
out.web = string.format("%s<p><a href='%s'>%s</a></p>",close,dest,text)
end
else -- external links
out.web = string.format('<p><a href="%s" rel="external noreferrer noopener" target="_blank" class="arrow">%s</a></p>', dest, text)
end
else -- PARAGRAPHS
-- web
-- search and replace wikilinks
local webline = string.gsub( line, "{(.-)}", function (wikiname)
return string.format("<a href='./%s.html'>%s</a>", pages[wikiname].slug, wikiname)
end)
if not flags.p then
out.web = string.format("<p>%s", webline)
flags.p = true
else
out.web = string.format("<br/>\n%s",webline)
end
-- gem
local gemlinks = {}
local gemline = string.gsub( line, "{(.-)}", function (wikiname)
table.insert(gemlinks, string.format("=> ./%s.gmi %s",pages[wikiname].slug, wikiname))
return wikiname
end)
out.gem = gemline
-- append links if there were any
if #gemlinks > 0 then
out.gem = out.gem.."\n"..table.concat(gemlinks,"\n")
end
end -- paragraphs
::insert:: -- insert line in table
for k,l in pairs(out) do
if l ~= nil then
table.insert( lines[k], l )
end
end
-- skip incoming links calculation if <pre> mode
if flags.pre then goto nextline end
-- calculate incoming links from outgoing
for outname in string.gmatch( line, "{([^ ]?.-[^ ]?)}" ) do
insertIncoming( outname, name )
end
::nextline::
count = count + 1
end -- end for line in f:lines()
-- finalize html
local close = closeTags()
if isPre then
table.insert( lines.web, "</pre>" )
elseif close~="" then
table.insert( lines.web, close )
end
table.insert( navlines, "</ul>" )
pagemeta.navcontent = table.concat( navlines, "\n" )
-- set templates
if string.match( pagemeta.lang, "^en" ) then
pagemeta.outs.web.templates = templates.webEn
pagemeta.outs.gem.templates = templates.gemEn
else
pagemeta.outs.web.templates = templates.webEs
pagemeta.outs.gem.templates = templates.gemEs
end
-- fill templates and write results
for key, out in pairs(pagemeta.outs) do
local fo = assert( io.open( out.path, "w" ) )
fo:write( fillTemplate(out.templates.header.template, pagemeta) )
fo:write( table.concat( lines[key],"\n" )) -- content
fo:write( "\n" )
fo:close()
end
-- close source file
f:close()
end
end
function secondPass() -- write incoming links and footer
for name,page in pairs(pages) do
local pagemeta = page
local doIncoming = true
if #pagemeta.incoming > 0 then
local gemlines = {}
local weblines = { "<ul>" }
-- format list of incoming links
for i = 1, #pagemeta.incoming do
name = pagemeta.incoming[i]
slug = pages[name].slug
table.insert( gemlines, string.format("=> ./%s.gmi %s",slug,name) )
table.insert( weblines, string.format("<li><a href='./%s.html'>%s</a></li>",slug,name) )
end
table.insert(weblines,"</ul>")
page.gemincoming = table.concat( gemlines, "\n" )
page.webincoming = table.concat( weblines )
else
doIncoming = false
print( string.format("{%s} is an orphan!", name) )
end
-- fill incoming and footer templates and write results
for key, out in pairs(pagemeta.outs) do
local fo = assert( io.open( out.path, "a" ) )
if doIncoming then
fo:write( fillTemplate(out.templates.incoming.template, pagemeta) )
end
fo:write( fillTemplate(out.templates.footer.template, pagemeta) )
fo:close()
end
end
end
function initPageMetadata( name, date ) -- return a table with metadata
local meta = {
incoming = {},
slug = slugify(name), name = name,
ptitle = "", pdescription = "",
updatedate = date,
navcontent = "",
gemincoming = "", webincoming = "",
gemtranslation = "", webtranslation = ""
}
meta.outs = {
web = { path = string.format("%s/%s.html", webdir, meta.slug) },
gem = { path = string.format("%s/%s.gmi", gemdir, meta.slug) }
}
return meta
end
function genIndex()
local indexpath = "src/pages.gmo"
-- initialize and open index file
os.execute(string.format("cp templates/index.gmi %s",indexpath))
local index = assert( io.open(indexpath,"a" ) )
-- get gmo files in chronological order
local gmofiles = io.popen("ls -to --time-style=+%F src/*gmo")
local count = 0
for filename in gmofiles:lines() do
local date,basename = string.match(filename,"^.+%s(.-)%ssrc/(.-).gmo$")
local name = spacify(basename)
-- create an entry for each file
if name ~= "pages" then
local entry = string.format("=> ./%s.gmi {%s}\n", basename, name)
index:write(entry)
end
-- also initialize each name in the pages table
-- initialize page metadata
pages[ name ] = initPageMetadata( name, date )
count = count + 1
end
gmofiles:close()
index:close()
return count
end
function genLog()
-- generate the following log files:
-- * twtxt gemini and web
-- * atom feed gemini and web
-- * gmo log
-- * gmisub
local logsrc = assert( io.open( "src/log.txt", "r" ) )
local logs = {
gemtw = { path = string.format("%s/tw.txt",gemdir), head="templates/twheader.txt" },
webtw = { path = string.format("%s/tw.txt",webdir), head="templates/twheader.txt" },
gmolog = { path = "src/log.gmo", head="templates/logheader.gmi" },
gematom = { path = string.format("%s/atom.xml",gemdir), head="templates/gematomheader.txt" },
webatom = { path = string.format("%s/atom.xml",webdir), head="templates/webatomheader.txt" },
gemfeed = { path = string.format("%s/feed.gmi",gemdir), head="templates/feedheader.gmi" }
}
-- create and open logs
for _,log in pairs(logs) do
os.execute(string.format("cp %s %s",log.head,log.path))
log.f = assert( io.open( log.path, "a" ) )
end
logs.gematom.f:write(string.format("<updated>%sT12:00:00Z</updated>\n",meta.fecha))
logs.webatom.f:write(string.format("<updated>%sT12:00:00Z</updated>\n",meta.fecha))
-- process each line of log.txt
for line in logsrc:lines() do
local pattern = "^(.-)%s(.-)%s{(.-)}$"
local timestamp, text, wikilink = string.match(line,pattern)
local slug = slugify(wikilink)
local date = string.sub(timestamp,1,10) -- YYYY-MM-DD
-- gmo log
local gmoformat = "+ <article>\n## %s\n%s\n=> ./%s.gmi {%s}\n+ </article>\n"
logs.gmolog.f:write(string.format(gmoformat, date, text, slug, wikilink))
-- gmi sub
local gmisubformat = "=> ./%s.gmi %s %s\n"
logs.gemfeed.f:write(string.format(gmisubformat, slug, date, text))
-- twtxt
local weburl = string.format("https://%s/%s.html",meta.domain,slug)
local gemurl = string.format("gemini://%s/%s.gmi",meta.domain,slug)
local twtxtformat = "%s\t%s | %s\n"
logs.webtw.f:write(string.format(twtxtformat, timestamp, text, weburl))
logs.gemtw.f:write(string.format(twtxtformat, timestamp, text, gemurl))
-- url encode
local encodedslug = slug:gsub("á","%%C3%%A1"):gsub("é","%%C3%%A9"):gsub("í","%%C3%%AD"):gsub("ó","%%C3%%B3"):gsub("ú","%%C3%%BA"):gsub("ñ","%%C3%%B1")
-- atom
local weburldate = string.format("https://%s/%s.html#%s",meta.domain,encodedslug,date)
local atomformat = [[
<entry>
<title>%s</title>
<updated>%s</updated>
<link rel='alternate' href='%s'/>
<id>%s</id>
</entry>
]]
logs.webatom.f:write(string.format(atomformat, text, timestamp, weburldate, weburldate))
logs.gematom.f:write(string.format(atomformat, text, timestamp, gemurl, gemurl))
end
--close logs
logs.webatom.f:write("</feed>\n")
logs.gematom.f:write("</feed>\n")
for _,log in pairs(logs) do
log.f:close()
end
logsrc:close()
end
-- THE SCRIPT
-- create directories
os.execute(string.format("mkdir -p %s/static %s/img %s/img",webdir,webdir,gemdir))
print(meta.fecha)
-- clean up
print("limpiando archivos previos...")
os.execute(string.format('find %s %s -regex ".+.\\(gmi\\|html\\)$" -exec rm {} +',webdir,gemdir))
-- copy images
print("copiando imágenes y otros archivos...")
os.execute( string.format("find src/img/ -type f -exec cp -vut %s/img/ {} +",webdir))
os.execute( string.format("find src/img/ -type f -exec cp -vut %s/img/ {} +",gemdir))
-- copy stylesheet and misc files
os.execute(string.format("cp -vu templates/estilo.css %s/static/",webdir))
local miscfiles = { "src/llave_sejo.asc" }
for k = 1, #miscfiles do
os.execute(string.format("cp -vu %s %s/", miscfiles[k], webdir))
os.execute(string.format("cp -vu %s %s/", miscfiles[k], gemdir))
end
-- generate log files
print("generando log...")
genLog()
-- generate index
print("generando índice de páginas...")
local n = genIndex()
-- start first pass
-- converting from gmo to gmi and html and calculating incoming links
print(string.format("convirtiendo %d páginas...",n))
firstPass()
-- second pass, write incoming links
print("escribiendo incoming links...")
secondPass()
-- update index files with home
os.execute("cp web/home.html web/index.html")
os.execute("cp gem/home.gmi gem/index.gmi")
print("listx!")

View File

@ -11,7 +11,7 @@ color green "^=>.+$"
# pre
color blue start="```" end="```"
# list
color bold,black "^\*"
color brightred "^\*"
# gmo
# wikilinks
@ -19,4 +19,4 @@ color yellow "\{(\w| )+\}"
# htmlonly
color magenta "^\+.+$"
# gemtextonly
color lightred "^&.+$"
color red "^&.+$"

View File

@ -1,70 +0,0 @@
import re
import os
import shutil
def filename2Wikilink( s ):
return '{' + s.replace('_',' ').replace('.gmo','') + '}'
def wikilink2Filename( s, ext='.gmi' ):
return s.strip("{}").replace(' ','_') + ext
os.chdir('src/')
incoming = {}
for filename in os.listdir():
if filename.endswith('.gmo'):
# copy to tmp
shutil.copy(filename, '../tmp/'+filename)
# if filename != 'pages.gmo' and filename != 'index.gmo':
if filename != 'pages.gmo':
# convert filename to wikilink
wikilink=filename2Wikilink(filename)
if wikilink not in incoming:
incoming[wikilink] = set()
# open file and search for all outgoing links
file = open(filename)
pre_mode = False
for line in file:
if re.match("```",line) != None: # toggle preformatted mode
pre_mode = not pre_mode
if pre_mode: # skip preformatted mode
continue
m=re.search("\{.+\}",line)
if m:
match = m.group(0) # get matched string
if match not in incoming: # create a new set for that page
incoming[match] = set()
# add this file
incoming[match].add(wikilink)
file.close()
os.chdir('../tmp/')
# remove incoming links for:
# incoming.pop('{pages}')
incoming.pop('{home}')
#incoming.pop('{license}')
for key,links in incoming.items():
# get filename for key
filename = wikilink2Filename(key,'.gmo')
# print(key)
# open file in append mode
file = open(filename, 'a')
if len(links):
# write incoming links
# print( '{} incoming links\n'.format( len(links) ) )
file.write("\n\n# incoming links\n")
for link in links:
gemlink = '=> ./{} {}'.format(wikilink2Filename(link), link)
# print(gemlink)
file.write(gemlink+"\n")
else:
print( '{}: orphan\n'.format(key) )
file.write("\n\nno incoming links\n")
file.close()

View File

@ -1,18 +1,28 @@
# about
lang=en es->{acerca}
compudanzas is a research project exploring alternative modes of learning and creating computation.
compudanzas is a research project exploring alternative modes of learning and creating computation.
en español: {acerca}
we reimagine computing and its implications.
we attempt to transition from a logic of productivity and efficiency, and circuits that destroy life, to dances, rituals, and other types of seemingly useless computers!
we attempt to transition from a logic of productivity and efficiency, and circuits that destroy life, to dances, rituals, and other types of seemingly useless computers!
we move calmly, patiently, and with curiosity.
we identify with the ideas of {permacomputing} and computing within limits.
=> ./img/foto_laconsagracion_playa.jpg photo of the rite of computing: there is a wiggly row of shapes in the floor, each of them composed of small blocks of wood. a person is crouching, building one of these shapes. other two people are watching, sitting in the floor. there are some cardboard shapes with symbols, also in the floor.
=> ./img/foto_laconsagracion_playa.jpg photo of the rite of computing: there is a wiggly row of shapes in the floor, each of them composed of small blocks of wood. a person is crouching, building one of these shapes. other two people are watching, sitting in the floor. there are some cardboard shapes with symbols, also in the floor.
# research
{las danzas} is our main line of exploration, but we also design and develop {coloring computers}, and we investigate {beans computing}.
we love to share with others in the form of {tutorials} or {talks and workshops}.
everything here is dedicated to the {public domain}.
whenever we write software, we try to do it at a {low-level}.
we tend to write some {poetry} related to these interests, some {thoughts} from our first-person perspective, and we also have a couple of {publications}. furthermore, we have shared some {videos}.
the {txiemonks} describe a possible vision for the project.
# mission
@ -30,51 +40,29 @@ we see the project existing in these three dimensions:
* pedagogic: can we guide others to learn in a critical and embodied way about the fundamentals of computers and digital technologies?
* performative: can we play with and inspire through explorations of emerging complexity?
* speculative: can we use this practice to imagine alternative present-futures? (see {txiemonks})
* speculative: can we use this practice to imagine alternative present-futures?
=> ./img/foto_laconsagracion_04.jpg photo of pieces of wood in the floor, with some hands manipulating them
# research
{las danzas} is our main line of exploration.
we also design and develop {coloring computers}.
we love to share with others:
=> ./talks_and_workshops.gmi {talks and workshops}
=> ./tutorials.gmi {tutorials}
whenever we write software, we try to do it at a {low-level}.
and we tend to write some {poetry} related to these interests.
see the {log} for updates in the project.
see the {roadmap} for updates that want to happen.
we are a billingual project; for the moment some texts are in spanish and some others in english only.
=> ./references.gmi {references}
# support
{support} us and help us achieve the goal of having this dream project as our main activity
=> https://www.patreon.com/compudanzas support compudanzas on patreon
=> https://ko-fi-com/compudanzas support compudanzas on ko-fi
# meta
this {wiki} is always under construction.
this {wiki} is always under construction.
it exists in the web and in the {gemini} protocol:
=> https://compudanzas.net/ compudanzas (web)
=> gemini://compudanzas.net/ compudanzas (gemini)
visit the index of all {pages} in the site.
we are a project based on {bilingüismo}; for the moment some texts are in spanish and some others in english only.
you can see the {log} for updates in the project, the {roadmap} for updates that want to happen, or the index of all {pages} in the site.
we are collecting a list of many of our {references}.
# contact
=> ./contact.gmi {contact}
find here different means of {contact}.
# support
{support} us and help us achieve the goal of having this dream project as our main activity!

14
src/academic_life.gmo Normal file
View File

@ -0,0 +1,14 @@
# academic life
some notes on my academic status (?) and reflections regarding its relationship with compudanzas.
I'm currently an academic researcher: a PhD student and predoctoral researcher in a Computer Science and Technology program. In there, my work can be classified under the terms of Human-computer interaction (HCI), interaction design, embodied/soma design, and wearable electronics.
My PhD project was handed down to me, as it seems to be the custom around here. In principle it's expected I develop it and not pivot to something entirely different, especially because my income and immigration status depend on it. That might be read as dire, but so far it's been alright. I have learned a lot and I have enjoyed the experience. I feel I've grown as a person by encountering and overcoming situations I'd have thought were above me.
Although there are many possible intersections between the PhD project and compudanzas, I decided to maintain them at a relatively safe distance. It seemed I didn't want to sacrifice the autonomy that I felt regarding compudanzas. Additionally, I wanted to advance my PhD project as it is, for practical reasons and also allowing myself some naïveté. This has implied I've spent a considerable amount of energy trying to keep the projects apart, mostly in the form of "not doing a lot with compudanzas". I realize that to some extent I wanted to keep compudanzas as something existing by itself, in the dualist world of the Ideas (?). Because of the recent research I've been doing, I can see the paradox now: I wanted to keep compudanzas "disembodied"!
After a year-long (or more) struggle I can see that it makes more sense (for everyone, myself very included), to not deny my current context, and to actually embrace it and share it. There are many ways that my PhD research can inform compudanzas but I blocked them before because I considered the projects as "something different".
I'm curious to see what happens when I let myself flow with acceptance. So far, starting the section on {thoughts} was an effect of this realization.

View File

@ -1,9 +1,7 @@
# acerca
lang=es en->{about}
compudanzas es un proyecto creativo de investigación que explora formas alternativas de aprender y hacer cómputo.
in english: {about}
reimaginamos la computación y sus implicaciones.
tratamos de transicionar desde una lógica de productividad y eficiencia, y circuitos que destruyen vida, hacia danzas, rituales, y otros tipos de computadoras aparentemente inútiles.
@ -14,6 +12,26 @@ nos identificamos con las ideas del {permacomputing}.
=> ./img/foto_laconsagracion_playa.jpg foto de la consagración de la computadora: hay una fila ondulada de figuras en el piso, cada una compuesta de pequeños bloques de madera. una persona está agachada, construyendo una de estas figuras. otras dos personas observan sentadas en el suelo. hay algunas piezas de cartón con símbolos también en el suelo.
# investigación
nuestra principal línea de exploración son {las danzas}, pero también diseñamos y desarrollamos {coloring computers}, y exploramos {cómputo frijol}.
¡nos encanta compartir! ya sea en tutoriales o pláticas y talleres.
=> ./talks_and_workshops.gmi {talks and workshops}
=> ./tutorials.gmi {tutorials}
todo aquí está dedicado al {dominio público}.
cuando escribimos software intentamos hacerlo siguiendo el {s-camino}, haciéndolo a un bajo nivel de abstracción.
tendemos a escribir poesía/{poetry} relacionada a estos intereses, pensamientos/{thoughts} en primera persona, y también tenemos algunas publicaciones:
=> ./publications.gmi {publications}
también, hemos compartido algunos {videos}.
les {txiemonks} describen una posible visión que nos convoca.
# misión
agrandamos a escala-humana y alentamos a velocidad-humana los procesos que dan paso a lo que se entiende como computación.
@ -24,48 +42,16 @@ a través de nuestros experimentos nos preguntamos: ¿qué pasa cuando las compu
¿cuál puede ser el rol de computadoras aparentemente inútiles, no electrónicas, muy lentas, a escala humana, en un mundo que parece estar en colapso?
¿son materiales didácticos alternativos y empoderadores? ¿{performances}? ¿puzzles? ¿pasatiempos? ¿trucos de magia?
¿son materiales didácticos alternativos y empoderadores? ¿{performances}? ¿puzzles? ¿pasatiempos? ¿trucos de magia?
concebimos al proyecto existiendo en estas tres dimensiones:
* pedagógica: ¿podemos guiar a otras a aprender de manera crítica los fundamentos de las computadoras y las tecnologías digitales?
* performática: ¿podemos jugar con e inspirar a través de exploraciones de complejidad emergente?
* especulativa: ¿podemos utilizar esta práctica para imaginar y realizar presentes-futuros alternativos? (ver {txiemonks})
* especulativa: ¿podemos utilizar esta práctica para imaginar y realizar presentes-futuros alternativos?
=> ./img/foto_laconsagracion_04.jpg foto de piezas de madera en el suelo, con algunas manos manipulándolas
# investigación
nuestra principal línea de exploración son {las danzas}.
también diseñamos y desarrollamos {coloring computers}.
nos encanta compartir:
=> ./talks_and_workshops.gmi {talks and workshops}
=> ./tutorials.gmi {tutorials}
cuando escribimos software intentamos hacerlo siguiendo el {s-camino}, haciéndolo a un bajo nivel de abstracción.
y tendemos a escribir poesía/{poetry} relacionada a estos intereses.
en el {log} puedes encontrar actualizaciones en el proyecto.
en el {roadmap} puedes encontrar actualizaciones que quieren suceder en el proyecto.
somos un proyecto bilingüe; por el momento algunos contenidos están solo en castellano y algunos solo en inglés.
si te interesa, puedes colaborar con nosotres realizando {traducciones}.
=> ./references.gmi {references}
# apoyo
¡necesitamos de tu {apoyo} para lograr la meta de tener a este proyecto de ensueño como nuestra actividad principal!
=> https://www.patreon.com/compudanzas apoya a compudanzas en patreon
=> https://ko-fi-com/compudanzas apoya a compudanzas en ko-fi
# meta
este {wiki} está siempre en construcción.
@ -75,10 +61,18 @@ existe en la web y en el protocolo {gemini}:
=> https://compudanzas.net/ compudanzas (web)
=> gemini://compudanzas.net/ compudanzas (gemini)
puedes visitar el índice de todas las páginas en el sitio:
somos un proyecto de {bilingüismo}; por el momento algunos contenidos están solo en castellano y algunos solo en inglés. si te interesa, puedes colaborar con nosotres realizando {traducciones}.
en el {log} puedes encontrar actualizaciones en el proyecto, en el {roadmap} puedes encontrar actualizaciones que quieren suceder en el proyecto, o también puedes ver el índice de todas las páginas en el sitio:
=> ./pages.gmi {pages}
estamos coleccionando referencias que nos inspiran y nutren:
=> ./references.gmi {references}
# contacto
=> ./contacto.gmi {contacto}
por acá encuentras distintas formas de ponernos en {contacto}.
# apoyo
¡necesitamos de tu {apoyo} para lograr la meta de tener a este proyecto de ensueño como nuestra actividad principal!

11
src/ahora.gmo Normal file
View File

@ -0,0 +1,11 @@
# compudanzas ahora
lang=es en->{now}
en qué andamos aproximadamente en estos momentos.
estamos preparando una charla online que presentaremos el jueves 25 de abril y también un taller para el congreso esLibre 2024 el 25 de mayo.
más información (y próximamente recursos) se encuentran en {talks and workshops} (página en {bilingüismo}).
estamos emocionades por comenzar a dedicar nuestro trabajo al {dominio público}.
puedes encontrar actualizaciones previas enlistadas cronológicamente en el {log}. y dependiendo de cómo hayas llegado aquí, puede ser que quieras saber {acerca} de compudanzas.

View File

@ -0,0 +1,14 @@
# (a)live computing dance
livecoding act based on the {qiudanz technique}, wooden blocks, and a coin-based random number generator for the dance and visuals, and orca for the music.
# algorave 10th birthday
we performed (a)live computing dance on algorave 10th anniversary, 12022-03-20 @ 16:20 UTC
+ <iframe title="(a)live computing dance @ algorave 10th birthday" src="https://spectra.video/videos/embed/b0613d4b-d9bd-4713-9a6d-34dc75e9afcb" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" width="560" height="315" frameborder="0"></iframe>
=> https://spectra.video/w/nMfnE9R2vUgwQCjoyNAJxM video: (a)live computing dance @ algorave 10th birthday
=> https://ten.algorave.com/ algorave 10th birthday
regarding the {qiudanz technique} for the development of the performance, we used {qiudanz mode 1} for the introduction and mode 2 for the rest of the act.

View File

@ -1,16 +1,29 @@
# apoyo
compudanzas como la práctica de hacer tangible a la computación ha sido un proyecto de ensueño por ya varios años.
in english: {support}
lang=es en->{support}
contribuye a hacer posible el trabajo de compudanzas.
=> ./img/foto_laconsagracion_04.jpg foto de piezas de madera en el suelo manipuladas por algunas manos
compudanzas como la práctica de hacer tangible a la computación ha sido un proyecto de ensueño por ya varios años.
¡contribuye a hacerlo posible con tu apoyo económico!
# donaciones
puedes donar en las siguientes plataformas:
=> https://www.patreon.com/compudanzas apoya a compudanzas en patreon
=> https://es.liberapay.com/compudanzas/ compudanzas en liberapay
=> https://ko-fi.com/compudanzas compudanzas en ko-fi
¡muchas gracias!
+ <a href="https://www.patreon.com/bePatron?u=3070411" target="_blank"><img alt="Become a Patron!" src="./img/boton-patreon.png" height='30'/></a>
+ <a href="https://liberapay.com/compudanzas/donate" target="_blank"><img alt="Donate using Liberapay" src="./img/boton-liberapay.svg"></a>
+ <a href='https://ko-fi.com/N4N544999' target='_blank'><img height='30' style='border:0px;height:30px;' src='./img/boton-kofi.png' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
sejo
# multimedia
también puedes apoyarnos comprando el libro {introducción a programación uxn}, {jarotsim}, o {norpet mascota digital}, todo estos proyectos en nuestra página de itch.io!
=> https://compudanzas.itch.io/ compudanzas - itch.io
¡muchas gracias!

View File

@ -1,10 +1,11 @@
# apuntes
lang=es
recordatorios de procesos
# no computacionales
=> ./recetas.gmi {recetas}
=> ./books.gmi {books}
# computacionales
@ -16,6 +17,13 @@ recordatorios de procesos
=> ./postfix.gmi {postfix}
=> ./awk.gmi {awk}
en {gemini} hay algunas notas sobre openssl para hacer requests y revisar certificados.
## programación
=> ./forth.gmi {forth}
=> ./apl.gmi {apl}
## misc
=> ./guix.gmi {guix}

View File

@ -1,5 +1,5 @@
# arte generativo en papel
lang=es
procesos computacionales con resultados complejos, para realizar a mano en papel.
¿ideas que inspiraron a las {coloring computers}?

View File

@ -1,5 +1,5 @@
# avr-asm
lang=es
explorando programación de microcontroladores avr a través de asm, en attiny85. {s-camino}
# herramientas
@ -73,7 +73,7 @@ PROGRAMMER = usbasp
# ensambla programa a .hex
hex:
avr-gcc -Os -DF_CPU=8000000 -mmcu=$(BOARD) -c $(PROG).S
avr-gcc -Os -DF_CPU=8000000 -mmcu=$(BOARD) -c $(PROG).S
avr-ld -o $(PROG).elf $(PROG).o
avr-objcopy $(PROG).elf -O ihex $(PROG).hex
rm $(PROG).o $(PROG).elf

View File

@ -6,13 +6,9 @@ some notes in process.
# projects
the static site generator for the compudanzas.net {wiki} is mostly written in awk:
=> https://tildegit.org/sejo/compudanzas generator and source files for the compudanzas.net site
g2e is an opinionated gempub to epub converter written in awk:
=> https://tildegit.org/sejo/g2e
=> https://tildegit.org/sejo/g2e g2e
my solutions for {advent of code 2021} have been written in awk.
@ -53,7 +49,7 @@ the index of the first character is 1!
* index( string, sub) : index of sub as a substring of string
* length( string )
* match( string, regex ) : index of the longest match of regex in string
* split( string, arr, regex ) : split string into array using regex as separato
* split( string, arr, regex ) : split string into array using regex as separator
* printf( format, expr-list)
* strtonum(string): useful to convert from hexadecimal (0x prefix) or octal (0 prefix)
* gsub( regex, sub, string): global substitution of regex with sub in string. if string is ommited, $0 is used
@ -112,6 +108,8 @@ FS = ""
## loop through the elements of an array
this approach might yield the results in different order depending on the awk implementation.
```
arr["a"] = 1
arr["b"] = 2

View File

@ -1,11 +1,21 @@
# beans computing
lang=en es->{cómputo frijol}
non-electronic {digital systems} based on manipulating beans according to simple logical rules.
inspired by {the beans computer}, but going at a lower level.
inspired by {the beans computer}, but going at a lower level. most of the times this is related to {paper computing}.
the {computadora de papel} is also related as a beans-based, "higher level" computer.
# projects
{norpet} is a proof-of-concept for ideas we have about beans computing in an 8x8 grid or board.
=> ./img/foto_norpet_02.png closeup photo of the norpet board completely solved in one of its states: the grid is full of either soy or black beans.
# prototypes
{bouncing ball logic} and {bouncer-2d prototype} provide some notes from the initial development of {poñg} around 12020.
=> ./img/secuencia_bounce2d-8x6-0a3.gif a sequence of four frames showing two paper boards with black and soy beans in them: the one in the left contains the processing cells, and the one in the right looks like a screen composed of soy beans except for one, which seems to be moving from the top left corner to the bottom and right.
# truth tables
we have only two classes of beans: black (1), and non-black (0).

14
src/bilingüismo.gmo Normal file
View File

@ -0,0 +1,14 @@
# bilingüismo
the eternal, spiral-like conflict, situation, opportunity: sharing in english or spanish or both?
in english, it would be simpler: lingua franca. it's our second language, but we can get by. the possibility of finding a wider, more international, group of people with similar interests. but something is lost, isn't it?
en español, se siente más local (tanto en familiaridad como en potencial (y real) conexión con quienes están alrededor), lo podemos usar con más destreza, podemos jugar.
a reminder of the added work some of us in similar situations have:
* wondering in which language(s) to share something
* translating one way or the other
* supporting both languages
no se trata de decidir, we had decided it already, and we are deciding it again. saltando de uno a otro. embracing the corresponding complexity.

View File

@ -4,31 +4,43 @@ websites and {gemini} capsules from friends.
see also {references} for links to resources that inspire and/or inform of our work.
# gemini & web
=> //pachapunk.space/ pachapunk.space
=> //archipielago.uno/ archipielago.uno
=> //caracolito.mooo.com/ caracolito
=> //sunshinegardens.org/~xj9/ dreamspace
=> //alexschroeder.ch/ alex schroeder
=> //texto-plano.xyz/ texto plano
=> //tralfanum.archipielago.uno/ Traducciones Alfanumérico
# gemini
=> gemini://pachapunk.space/ pachapunk.space
=> gemini://xj-ix.luxe/ xjix
=> gemini://caracolito.mooo.com caracolito
=> gemini://gemini.ctrl-c.club/~lettuce/ lettuce
=> gemini://oppen.digital/ ölab
=> gemini://texto-plano.xyz/jota/ /casa de ~jota
=> gemini://gemini.circumlunar.space/~solderpunk/ solderpunk
=> gemini://alexschroeder.ch/ alex schroeder
=> gemini://gemini.circumlunar.space/users/hundredrabbits/ hundredrabbits
=> gemini://signals.pollux.casa/ signals
=> gemini://gemini.sensorstation.co sensor station
# web
=> https://pachapunk.space pachapunk.space
=> https://wiki.xxiivv.com/ xxiivv
=> http://100r.co/ 100R
=> https://100r.co/ 100R
=> https://leetusman.com/ lee tusman
=> https://xj-ix.luxe/ xjix
=> https://montoyamoraga.io/ montoyamoraga
=> https://www.adorevolution.com/ adorevolution
=> https://oppen.digital/ ölab
=> https://grimgrains.com/ grimgrains
=> https://melmuvz.neocities.org mel*muvz
=> https://texto-plano.xyz/~jota/ /casa de ~jota
=> http://akkartik.name/about Kartik Agaram
=> https://eli.li/ Oatmeal
=> https://www.inversealien.space/ inversealien.space
=> https://mycelial.technology/ mycelial technology
=> https://cblgh.org/ alexander cobleigh
=> https://bleu255.com/~marloes/ Marloes de Valk
=> https://www.pixouls.xyz/ Pixel
=> https://nilfm.cc/ nilfm
=> https://badd10de.dev/ badd10de
=> https://pbat.ch/ paul batchelor
=> https://grimgrains.com/ grimgrains
=> https://webring.xxiivv.com/#random webring

50
src/books.gmo Normal file
View File

@ -0,0 +1,50 @@
# books
the books I finished reading.
# 12024
* Ritos de Madurez (La Estirpe de Lilith) / Octavia E. Butler
* Imago (La Estirpe de Lilith) / Octavia E. Butler
* Solaris / Stanislaw Lem
* Una muerte muy dulce / Simone de Beauvoir
* Dónde aterrizar: cómo orientarse en política / Bruno Latour
* After lockdown: a metamorphosis / Bruno Latour
* 101 Essays That Will Change The Way You Think / Brianna Wiest
* The Moneyless Manifesto: Live Well, Live Rich, Live Free / Mark Boyle
* Hope in the Dark: Untold Histories, Wild Possibilities / Rebecca Solnit
Unfinished:
* Paz en la Tierra / Stanislaw Lem
# 12023
* La Costa Más Lejana (Terramar/Earthsea) / Ursula K. Le Guin
* Tehanu (Terramar/Earthsea) / Ursula K. Le Guin
* The Dispossessed / Ursula K. Le Guin
* La Mano Izquierda de la Oscuridad / Ursula K. Le Guin
* Saving Time: Discovering a Life Beyond the Clock / Jenny Odell
* Parable of the Sower / Octavia E. Butler
* The Word for World is Forest / Ursula K. Le Guin
* Deep Work: Rules for Focused Success in a Distracted World / Cal Newport
* The Mountain is You: Transforming Self-Sabotage into Self-Mastery / Brianna Wiest
* How to Live: 27 conflicting answers and one weird conclusion / Derek Sivers
* Hell Yeah or No: What's Worth Doing / Derek Sivers
* Parable of the Talents / Octavia E. Butler
* Amanecer (La Estirpe de Lilith) / Octavia E. Butler
Unfinished:
* The Waves / Virginia Woolf
* El Espejo de la Muerte / Miguel de Unamuno
# 12022
(a possibly incomplete log?)
* How to Do Nothing: Resisting the Attention Economy / Jenny Odell
* Tao: The Watercourse Way / Alan Watts
* Mindstorms: Children, Computers, and Powerful Ideas / Seymour Papert
=> https://mindstorms.media.mit.edu/ Mindstorms online
* Programming in Lua 4th ed / Roberto Ierusalimschy
* Un Mago de Terramar (Earthsea) / Ursula K. Le Guin
* Las Tumbas de Atuan (Earthsea) / Ursula K. Le Guin

View File

@ -0,0 +1,44 @@
# bouncer2d-8x6 computadora de mesa (prototipo)
lang=es en->{bouncer-2d prototype}
computadora de mesa con pantalla monocromática de 8x6: no electrónica, a escala humana, y muy lenta. un experimento de {cómputo frijol}.
siguiendo unas reglas simples, puedes colaborar con ella para computar y mostrar la animación de una pelota rebotando en las paredes de la pantalla, un cuado a la vez.
=> ./img/secuencia_bounce2d-8x6-0a3.gif secuencia de cuatro cuadros que muestra dos tableros de papel con frijoles negros y blancos sobre ellos: el tablero de la izquierda tiene las celdas de procesamiento y el tablero de la derecha se ve como una pantalla compuesta de frijoles blancos excepto por uno, que parece que se mueve desde la esquina superior izquierda hacia abajo y a la derecha.
# descargas
=> https://ipfs.io/ipfs/QmfQwdoc68dPXnGTspTiWu8xjpCLGUaH7YYFUmx84YUtwS/ bouncer2d-8x6 lista para ser impresa (pdf)
# estructura
como podrás ver, la computadora consiste en dos páginas, ambas con celdas impresas.
podemos verla como dividida en cuatro secciones.
primera página:
* fila superior: estado actual de la máquina, codificado
* bloque de enmedio: celdas de procesamiento
* fila inferior: estado siguiente de la máquina, codificado
segunda página:
* pantalla monocromática de 8x6 pixeles/celdas
# modo de uso:
* antes que nada, elige dos clases de elementos múltiples que tengas, A y B (por ejemplo, A="frijoles" y B="garbanzos)
* cada celda solo puede tener uno de esos elementos en un momento dado
## para la fila superior (estado actual)
* si esta es la primera iteración, coloca en esta fila una combinación arbitraria de elementos (por ejemplo, todas las celdas con garbanzos en ellas)
* de no ser así, cuando termines una iteración y estés lista para empezar una nueva, transfiere los elementos de la fila inferior (estado siguiente) hacia la superior, manteniendo el mismo orden. así, el "estado siguiente" se convierte en el "estado actual"
## para las demás celdas
* observa las celdas de la computadora: cada una tiene su nombre hasta arriba, y una lista de 1 a 3 nombres que corresponden a sus "entradas".
* en cada celda, acuérdate y aplica la regla: coloca un elemento de tipo A en su interior solamente cuando todas sus entradas son de tipo B. en cualquier otro caso, coloca un elemento de tipo B.
* por ejemplo, regresando a los frijoles y garbanzos: "coloca un frijol en la celda cuando todas sus entradas tienen garbanzos. si no es así, coloca un garbanzo"
* cuando termines de iterar en todas las celdas, habrás completado un cuadro de la animación. ¡captúralo de alguna manera para que lo compares con los que sigan!

View File

@ -0,0 +1,42 @@
# bouncer2d-8x6 tabletop computer (prototype)
lang=en es->{bouncer-2d prototipo}
a tabletop non-electronic, human-scale, very-slow computer with an 8x6 monochromatic screen. a prototype of {beans computing}.
following a simple set of rules, you can collaborate with it to compute and display an animation of a ball bouncing in the walls of the screen, one frame at a time.
=> ./img/secuencia_bounce2d-8x6-0a3.gif a sequence of four frames showing two paper boards with black and soy beans in them: the one in the left contains the processing cells, and the one in the right looks like a screen composed of soy beans except for one, which seems to be moving from the top left corner to the bottom and right.
# downloads
=> https://ipfs.io/ipfs/QmfQwdoc68dPXnGTspTiWu8xjpCLGUaH7YYFUmx84YUtwS/ bouncer2d-8x6 ready to be printed (pdf)
# structure
the computer has two pages, both of them with "cells". it has a total of four sections.
first page:
* top row: state of the machine (encoded)
* middle block: process cells
* bottom row: next state of the machine (encoded)
second page:
* 8x6 monochromatic screen
# how to use:
* first of all, choose two classes of elements, A and B (e.g. A="black beans" and B="chickpeas").
* each cell can only have one of those elements at a given time.
## for the top row
* if this is the first iteration, fill it with an arbitrary combination of your elements (e.g. all the cells with a chickpea in each)
* otherwise, when you finish an iteration and you are ready to start a new one, transfer the elements from the bottom row to the top row, keeping the same order.
## for all the other cells
* observe the cells in the computer: each one has a name at the top, and a list of 1 to 3 cell names that correspond to its inputs.
* for each cell, remember and apply the rule: put an element of class A inside the cell only when all of its inputs are B. otherwise put inside an element of class B.
* example rule: put a black bean inside the cell only when all of its inputs are chickpeas. otherwise, put a chickpea inside.
* when you finish iterating through all the cells, you would have completed a frame of the animation in the screen. capture it somehow!

211
src/bouncing_ball_logic.gmo Normal file
View File

@ -0,0 +1,211 @@
# bouncing ball logic
lang=en
may this serve as a reference for non-electronic, human-scale, very-slow implementations of digital circuits that embody a virtual ball bouncing in a screen.
these notes emerged from the work around {poñg}, "a human-scale digital videogame, with logic provided by people".
this is a sub-collection from the {logiteca}.
# 1-dimension
## 4-pixels wide screen
the ball is a pixel that bounces back and forth.
description of the logic in {verilog}:
```
// bouncing ball (pixel) in a 4-pixels screen
// using NOR gates
module onedimensional_bounce( E2, E1, E0, P3, P2, P1, P0, NE2, NE1, NE0 );
input wire E2, E1, E0; // curent state
output wire P3, P2, P1, P0; // pixels
output wire NE2, NE1, NE0; // next state
// inversions
wire nE2, nE1, nE0;
// ors
wire NE0_1, NE0_2, NE1_2;
// input inversions (3 gates)
not g00( nE0, E0);
not g01( nE1, E1);
not g02( nE2, E2);
// NE2
assign NE2 = E1;
// NE1
nor g03( NE1_2, nE2, nE0);
nor g04( NE1, P0, NE1_2);
// NE0
nor g05( NE0_1, nE2, E1, nE0);
nor g06( NE0_2, E2, nE1, nE0);
nor g07( NE0, NE0_1, NE0_2);
// pixels
nor g08( P3, nE1, E0);
nor g09( P2, nE1, nE0);
nor g10( P1, E1, nE0);
nor g11( P0, E1, E0); // also "NE1_1"
endmodule
```
### board and cards implementation
compatible with {beans computing}: use two classes of beans to indicate a 1 or a 0.
current state:
```
+----+----+----+
| i2 | i1 | i0 |
+----+----+----+
```
process helpers
```
+----+----+----+----+----+----+
| p5 | p4 | p3 | p2 | p1 | p0 |
+----+----+----+----+----+----+
```
next state and screen:
```
+----+----+----+ +----+----+----+----+
| o6 | o5 | o4 | | o3 | o2 | o1 | o0 |
+----+----+----+ +----+----+----+----+
```
the NOR-based cards for process and output cells:
process helpers:
```
p0: i0
p1: i1
p2: i2
p3: p2, p0
p4: p2, i1, p0
p5: i2, p1, p0
```
next state:
```
o6: p1
o5: o0, p3
o4: p4, p5
```
screen:
```
o3: p1, i0
o2: p1, p0
o1: i1, p0
o0: i1, i0
```
(card p0 would be read: p0 is 1 when i0 is 0, and it's 0 otherwise; card p5 would be read: p5 is 1 when all i2, p1 and p0 are 0, and it's 0 otherwise)
# 2-dimensions
## 8x6 screen
the following description, converted into a gate-level representation, results in the {bouncer-2d prototype}. the notes of how that process happened have to be recovered and documented here.
### high-level verilog code
```
module bouncer2d
#(
parameter PIXELSW = 8,
parameter PIXELSH = 6
)
(
input [$clog2(PIXELSW)-1:0] posx,
input [$clog2(PIXELSH)-1:0] posy,
input dirx,
input diry,
output [$clog2(PIXELSW)-1:0] newposx,
output [$clog2(PIXELSH)-1:0] newposy,
output newdirx,
output newdiry,
output [(PIXELSW*PIXELSH)-1:0] screen
);
bouncer1d #( .NPIXELS( PIXELSW)) bouncex (
.pos( posx ),
.dir( dirx ),
.newpos( newposx ),
.newdir( newdirx )
);
bouncer1d #( .NPIXELS( PIXELSH)) bouncey (
.pos( posy ),
.dir( diry ),
.newpos( newposy ),
.newdir( newdiry )
);
screen_decoder #(.PIXELSW(PIXELSW), .PIXELSH( PIXELSH ))
decoder (
.posx( posx ),
.posy( posy ),
.screen( screen )
);
endmodule // bouncer2d
module screen_decoder
#(
parameter PIXELSW = 8,
parameter PIXELSH = 6
)
(
input [$clog2(PIXELSW)-1:0] posx,
input [$clog2(PIXELSH)-1:0] posy,
output [(PIXELSW*PIXELSH)-1:0] screen
);
// decoder!
genvar c, r;
generate
for(c=0; c<PIXELSW; c = c + 1) begin
for(r=0; r<PIXELSH; r = r + 1) begin
assign screen[c + r*PIXELSW] = (posx==c) && (posy==r);
end
end
endgenerate
// another possibility, less effective while synthesizing
// assign screen = (1<<posx) << (posy*PIXELSW);
endmodule // screen_decoder
module bouncer1d
#( parameter NPIXELS = 8)
(
input [$clog2(NPIXELS)-1:0] pos,
input dir, // 1 inc, 0 dec
output [$clog2(NPIXELS)-1:0] newpos,
output newdir
);
/* //without edge-cases
assign newdir = (dir==1 && pos==(NPIXELS-2)) ? 0 : (dir==0 && pos==1) ? 1 : dir;
assign newpos = (dir==1) ? pos + 1 : pos - 1;
*/
// with edge cases (and less gates when synthesizing!)
assign newdir = (pos==0) ? 1 : (pos>=NPIXELS-1) ? 0 : (dir==1 && pos==NPIXELS-2) || (dir==0 && pos==1) ? ~dir : dir;
assign newpos = (pos==0) ? 1 : (pos>=NPIXELS-1) ? NPIXELS - 2 : (dir==1)? pos + 1 : pos -1;
endmodule
```

View File

@ -2,15 +2,30 @@
a computer controlled by a string of bricks/bits and the cumulative actions of the participants.
presented in the itp winter show 2017 as a work of {escenaconsejo}.
# video
=> ./img/foto_change-a-bit_01.png photo of the installation: a row of nine bricks in the floor, all except two of them standing up. in the wall there's a projection of a monochromatic grid composed of different types of squares.
=> https://ipfs.io/ipfs/QmeGF5HpMmzWLDZy6WcWGrqYXbYoPLBiZnNfKYLHzJtRgg/ChangeABit_640.mp4 change-a-bit demo video (mp4, ~10MB)
presented in the itp winter show 2017.
## transcript
> change-a-bit
> a computer controlled by a string of bricks/bits.
> each brick/bit has two possible states: high (standing) or low (laying).
> the bricks/bits encode an instruction that effects a change in the screen.
> increasing the size, decreasing the speed of computing.
> the screen works as a memory showing an accumulation of changes.
> computing: manipulation of arranged minerals to achieve a pattern of light on a surface (?)
# interaction
each brick/bit has two possible states: high or low.
each brick/bit has two possible states: high or low.
the string of bricks/bits encodes an instruction for the computer: the cell in the screen that will be modified, and the visual pattern that will be assigned to it.

View File

@ -20,7 +20,7 @@ the directions come from combining these 3 levels with the 9 possible point dire
* medium
* high
## point directions
## point directions
* left
* right

View File

@ -1,5 +1,5 @@
# ciclo de memoria
lang=es
imaginemos la construcción de una memoria que existe en función el tiempo, como las antiguas líneas de retardo de mercurio, pero en el campo; un juego; un grupo de personas en {las danzas}.
un "dispositivo"-danza que almacena información binaria, con capacidad de ser escrita y leída.
@ -8,7 +8,7 @@ un "dispositivo"-danza que almacena información binaria, con capacidad de ser e
# guía
cada persona ve a alguien más, y es vista por otra distinta.
cada persona ve a alguien más, y es vista por otra distinta.
para iniciar, podemos acomodarnos en círculo. nuestra red es un ciclo.
@ -18,7 +18,7 @@ cada persona ve a alguien más, poniendo atención en cuál de las tres señales
* alto
* bajo
hay música con pulso.
hay música con pulso.
en cada beat, la persona replica la señal que vio adelante.
@ -30,7 +30,7 @@ para leer el dato almacenado, una persona-lectora fuera del ciclo se sintoniza a
la persona-lectora se enfoca en observar a una sola persona dentro, que se convierte en la persona-salida.
al observar la señal de corte, la persona-lectora empieza a anotar, repetir, transmitir, las señales de alto o bajo que vengan después.
al observar la señal de corte, la persona-lectora empieza a anotar, repetir, transmitir, las señales de alto o bajo que vengan después.
así continúa hasta observar de nuevo el corte: el dato habrá sido leído, y se mantiene en circulación.

View File

@ -27,13 +27,15 @@ deep adaptation agenda, the 4 Rs:
## how to live like the world is ending
* act like were about to die.
* act like we might not die right away.
* act like we might have a chance to stop this.
* act like we might not die right away.
* act like we might have a chance to stop this.
* act like everything will be okay.
=> http://birdsbeforethestorm.net/2019/12/how-to-live-like-the-world-is-ending/ how to live the world is ending - margaret killjoy
## more references
=> https://witsendnj.blogspot.com/2014/07/a-fine-frenzy-universal-dance-of.html A Fine Frenzy ~ the universal dance of delusion...and the paucity of hope
see {references}

View File

@ -2,11 +2,11 @@
non-electronic computers that work when you color them according to a simple set of rules.
an exploration of computation without electricity and semiconductors, an attempt to reinvent digital systems away from efficiency and productivity, and hopeful prototypes to expose the inner workings of computers.
an exploration of computation without electricity and semiconductors, an attempt to reinvent digital systems away from efficiency and productivity, and hopeful prototypes to expose the inner workings of computers.
=> https://ipfs.io/ipfs/QmaiMEk5Stw5Xvfs1btAwMg2sctwEq1MS9NDJAUEr1SHvf/ coloring computers pack archive
related and inspired by some previous experiments like {arte generativo en papel}
related and inspired by some previous experiments like {arte generativo en papel} and {paper computing} in general.
# 4-bits to 7-segment display hexadecimal decoder (12020)
@ -14,13 +14,34 @@ related and inspired by some previous experiments like {arte generativo en papel
=> ./img/foto_20201130_hex7segdecoder_02.png a human coloring the wires according to the logic rules
=> ./img/foto_20201130_hex7segdecoder_03.png the coloring computer/decoder, with an input of 0011, and an output that can be read as 3
a coloring decoder built with NOT (triangle), AND (semicircle), and OR (the other shape (?)) gates ({compuertas}), based on a manual design.
a coloring decoder built with NOT (triangle), AND (semicircle), and OR (the other shape (?)) gates ({compuertas}), based on a manual design.
=> ./img/dibujo_20201207_hex7segdecoder_small.png the complete decoder
=> https://opguides.info/engineering/digitallogic/ colored and animated version by Vega
=> https://opguides.info/engineering/circuits/digitallogic/ colored and animated version by Vega
=> https://ipfs.io/ipfs/QmZv53hr7QEzxrPaRNpiyU9VUNHw9UgyaTUqYD9x9iFpNA/dibujo_20201207_hex7segdecoder.png download the decoder in full size 1487x3057 (png, ~446KB)
## instructions
you use two colors to set the state of 4 "bits" at the top circles.
one color stands for "1", the other for "0".
what number, according to the conventions, would these 4 bits represent?
and what hexadecimal digit would correspond to that number?
you transmit those states/colors by coloring the wires.
the wires lead to three possible types of gates, all of them with their input(s) above, and their output below:
* NOT, a triangle: the output is the opposite color of the input
* AND, a semicircle: the output is color "1" only when ALL inputs are also color "1"; otherwise the output is color "0"
* OR, the other shape (?): the output is color "1" when ANY of the inputs are color "1"; otherwise the output is color "0".
you finish coloring, and you see the digit in the display as a result!
the description of the circuit in {verilog} can be found in the {logiteca}.
# computadora no(r)pal (12019)
=> ./img/dibujo_20190715-norpalera-fulladder_blanco_small.png logic circuit in the shape of nopal
@ -37,7 +58,7 @@ the original ones
=> ./img/foto_coloring-computers_7seg-lee.png photo of a pair of colored pages of the zine, with a 7 segment display showing the digits 2 and 3
=> ./img/foto_coloring-computers_pcd2019.png photo of a pair of colored pages of the zine, showing a digital circuit answering if two colors are the same
the booklet contains three series of computers: computers that compare, computers that count, and computers that play. they are all {nor}-based logic circuits designed by using truth tables, karnaugh maps, and maxterm expansions.
the booklet contains three series of computers: computers that compare, computers that count, and computers that play. they are all {nor}-based logic circuits designed by using truth tables, karnaugh maps, and maxterm expansions.
=> https://ipfs.io/ipfs/QmYz7DPRWypGQcbAHr7Mi8EKB6ntSPsEnUsCXbAhBiHQZP/ original site and resources
=> https://ipfs.io/ipfs/QmYz7DPRWypGQcbAHr7Mi8EKB6ntSPsEnUsCXbAhBiHQZP/coloringcomputers_pages.pdf download the page-by-page zine (pdf, ~1.5MB)

View File

@ -1,12 +1,12 @@
# compuertas lógicas
lang=es
las bases de los circuitos digitales, o {digital systems}
estos incluyen, claro está, a las:
=> ./danzas_compuertas.gmi {danzas compuertas}
=> ./coloring_computers.gmi {coloring computers}
=> ./beans_computing.gmi {beans computing}
=> ./cómputo_frijol.gmi {cómputo frijol}
usamos la convención de utilizar dos valores posibles: 1 para denominar arriba, o verdadero, y 0 para denominar abajo, o falso.
@ -18,7 +18,7 @@ la salida es igual a la entrada
## NOT
la salida es lo opuesto a la entrada.
la salida es lo opuesto a la entrada.
también podríamos decir que la salida es lo que no es la entrada.
@ -94,9 +94,9 @@ en cualquier otro caso, la salida es falsa.
también la podemos describir así: la salida es verdadera cuando las entradas son diferentes, y es falsa cuando las entradas son iguales.
## NOR
## NOR
la salida es verdadera cuando ninguna de sus entradas es verdadera.
la salida es verdadera cuando ninguna de sus entradas es verdadera.
que es lo mismo que decir que su salida es verdadera cuando todas sus entradas son falsas.
@ -127,7 +127,7 @@ por cómo funciona, también la podemos considerar como un AND que funciona con
## NAND
la salida es verdadera cuando aunque sea una de sus entrada es falsa.
la salida es verdadera cuando aunque sea una de sus entrada es falsa.
únicamente cuando todas sus entradas son verdaderas, su salida es falsa.
@ -154,7 +154,7 @@ por cómo funciona, también la podemos considerar como un OR que funciona con 0
todas las compuertas funcionan igual para más de dos entradas, excepto XOR.
importante: AND y OR poseen la propiedad distributiva.
importante: AND y OR poseen la propiedad distributiva.
por ejemplo, un AND de tres entradas (a, b, c) es equivalente a un AND de dos entradas (a, b), con su salida (x) conectada a la entrada de otro AND de dos entradas (x, c)

View File

@ -1,5 +1,5 @@
# computadora de papel
lang=es
adaptación de la wdr papiercomputer; modelo sencillo de una arquitectura computacional común.
=> https://wiki.xxiivv.com/site/papier.html papier computer
@ -88,7 +88,7 @@ este es el programa en formato de lista de números a colocar en la memoria de p
* 4: 2 1
* 5: 0 0
el primer dígito en la lista es el número de línea.
el primer dígito en la lista es el número de línea.
los dos dígitos siguientes son el primer y segundo números de instrucción

View File

@ -1,14 +1,32 @@
# contact
lang=en es->{contacto}
let's connect!
let's connect!
# e-mail
our e-mail address: compudanzas at posteo dot net
en español: {contacto}
# media
see the {log} for ways of following our updates.
we host our {videos} on spectra.video, a peertube instance:
=> https://spectra.video/a/compudanzas/videos compudanzas - spectra
you can find us in the fediverse:
=> https://post.lurk.org/@compudanzas compudanzas in post.lurk.org
our books: {introduction to uxn programming book} and {introducción a programación uxn} and other downloadables like {jarotsim} and {norpet} can be found in our itch.io page:
and also via e-mail: compudanzas at posteo dot net
=> https://compudanzas.itch.io/ compudanzas - itch.io
we have a twitch.tv account to stream our {maintenance practice} and other events:
=> https://twitch.tv/compudanzas compudanzas - twitch.tv
# social media
we are active in the fediverse / mastodon:
=> https://post.lurk.org/@compudanzas @compudanzas in post.lurk.org
for the purposes of broadcasting, we use telegram and ig:
=> https://t.me/compudanza compudanzas telegram channel
=> https://instagram.com/compudanzas @compudanzas in ig
# updates
see the {log} for non-interactive ways of following our updates, and {location} to find out where we are.
in some contexts you can find me as {sejo}

View File

@ -1,14 +1,32 @@
# contacto
lang=es en->{contact}
¡conectemos!
in english: {contact}
# correo-e
en el {log} hay algunas opciones para seguir nuestras actualizaciones.
nuestra dirección de correo-e: compudanzas en posteo dot net
nos encontramos en el fediverso:
=> https://post.lurk.org/@compudanzas compudanzas en post.lurk.org
# multimedia
y por e-mail: compudanzas en posteo dot net
hospedamos nuestros {videos} en spectra.video, una instancia de peertube:
=> https://spectra.video/a/compudanzas/videos compudanzas - spectra
en algunos contextos me puedes encontrar como {sejo}
nuestros libros {introducción a programación uxn} y {introduction to uxn programming book}, así como otros descargables como {jarotsim} y {norpet mascota digital} los puedes encontrar en nuestra página de itch.io
=> https://compudanzas.itch.io/ compudanzas - itch.io
tenemos una cuenta de twitch.tv donde transmitimos nuestra {maintenance practice} y otros eventos:
=> https://twitch.tv/compudanzas compudanzas - twitch.tv
# redes sociales
nos encuentras activamente en el fediverso / mastodon:
=> https://post.lurk.org/@compudanzas @compudanzas en post.lurk.org
para fines de difusión, utilizamos telegram e ig:
=> https://t.me/compudanza canal de compudanzas en telegram
=> https://instagram.com/compudanzas @compudanzas en ig
# actualizaciones
en el {log} se enlistan opciones no interactivas para seguir nuestras actualizaciones, y en {ubicación} enlistamos dónde nos encontramos.

13
src/cómputo_frijol.gmo Normal file
View File

@ -0,0 +1,13 @@
# cómputo frijol
lang=es es->{beans computing}
sistemas digitales no electrónicos basados en manipular frijoles de acuerdo a reglas lógicas simples.
# proyectos
{norpet mascota digital} fue una prueba de concepto de cómputo frijol en tableros de 8x8.
=> ./img/foto_norpet_02.png foto del tablero de norpet completamente lleno en uno de sus estados: la cuadrícula está llena de frijoles negros y de soya, uno en cada casilla.
# prototipos
el {bouncer-2d prototipo} surge del desarrollo inicial de la {propuesta poñg}.
=> ./img/secuencia_bounce2d-8x6-0a3.gif secuencia de cuatro cuadros que muestra dos tableros de papel con frijoles negros y blancos sobre ellos: el tablero de la izquierda tiene las celdas de procesamiento y el tablero de la derecha se ve como una pantalla compuesta de frijoles blancos excepto por uno, que parece que se mueve desde la esquina superior izquierda hacia abajo y a la derecha.

View File

@ -1,13 +1,11 @@
# d-turing
lang=es
bailando los inicios, una máquina de turing
parte de {las danzas}
=> ./img/dibujo_d-turing_parentesis.png dibujo de tres personas emitiendo un símbolo cada una, alrededor de una cinta de símbolos
# componentes
## participantes
@ -52,7 +50,7 @@ la instructora tiene que conocer todos los movimientos nombrados arriba.
hay que acomodar la cinta de símbolos en una configuración inicial adecuada.
la cabeza en cinta se coloca al lado del primer símbolo.
la cabeza en cinta se coloca al lado del primer símbolo.
el semáforo empieza a moverse con el estado inicial.
@ -84,6 +82,10 @@ si la tabla no tiene una respuesta, entonces la máquina se detiene. el cómputo
encuentra aquí {máquinas de turing} para implementar y bailar.
# simulación
podemos utilizar {turingsim} o {jarotsim} para simular estas danzas.
# enlaces relevantes
=> https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf on computable numbers, with an application to the entscheidungsproblem - alan turing 1936

View File

@ -26,12 +26,12 @@ Our stage space contains a mix of the following elements: single blocks, engrave
The plaques contain formulas that describe the operations to perform during a given configuration. These operations consist in shifting the current point of action in the row of shapes, transforming} a current active shape into another, and transitioning to another configuration.
Once set in motion, the interactions between these heterogeneous parts cause emergent properties that perform computation; in that sense this machine is in dialog with the concept of assemblage as described by DeLanda [2].
Once set in motion, the interactions between these heterogeneous parts cause emergent properties that perform computation; in that sense this machine is in dialog with the concept of assemblage as described by DeLanda [2].
Each choreographic configuration is represented by a specific symbol in a plaque that invokes a predefined atmosphere to improvise with.
The dancers follow the formulas of one of these plaques held in the air, while performing discrete operations on the shapes of the worm. Sometimes these shapes will trigger a formula that require a transition: the plaque is exchanged for another, and the choreography changes into the new configuration.
A difference between this work and other Turing machine dances that could be found [1] is the absence of electronics in its workings and creation. By removing electricity as much as possible, the idea is to help blurring boundaries (organic - inorganic, human - machine) and to prompt questions about the nature} of computers.
Wechsler differentiated between "art that is concerned with computers, or art that is merely created using computers" [8] when discussing dance, computers, and art; the aim of the rite of computing is to be dance concerned with computers, and to be a computer that is [merely] created using dance.

View File

@ -1,5 +1,5 @@
# danza papier
lang=es
baile colaborativo que ejemplifica una arquitectura computacional común, basada en la wdr papiercomputer
=> https://wiki.xxiivv.com/site/papier.html papier computer
@ -22,7 +22,7 @@ la arquitectura base consta de al menos 6 personas:
* LU: la que responde preguntas lógicas
## materiales
## materiales
como materiales tangibles solo se requiere la lista de números que administra la Memoria.
@ -37,7 +37,7 @@ se necesita contar con, y conocer, el siguiente conjunto de movimientos.
### todas las personas
* dígito-movimiento: un movimiento por cada digito en la base elegida (por ejemplo, del 0 al 9 para trabajar en base 10)
* dígito-movimiento: un movimiento por cada digito en la base elegida (por ejemplo, del 0 al 9 para trabajar en base 10)
* posición: una forma de indicar si un dígito es el primero o el segundo
* finalización: un movimiento que indique que el cómputo ha terminado
@ -117,12 +117,12 @@ les Registros ahora pueden ser inspeccionados para leer los resultados del cómp
* CU se mueve dirigiéndose a les Registros, transmitiendo el dígito-movimiento que recibió como argumento
* Registros reciben el dígito
* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando
* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando
* les demás Registros reducen la amplitud de su propio dígito-movimiento.
* CU se mueve preguntando a LU si el Registro es 0.
* LU recibe la pregunta, y observa al Registro con movimiento amplio
* LU se mueve respondiendo sí o no
* CU recibe la respuesta de LU
* CU recibe la respuesta de LU
* CU se mueve dirigéndose a PC: si la respuesta que recibió de LU fue sí, entonces se mueve indicando un doble incremento; si la respuesta fue no, entonces se mueve indicando un incremento sencillo
* PC recibe la indicación, y pasa al siguiente dígito-movimiento, ya sea una o dos veces según lo recibido.
* la máquina pasa a la etapa fetch
@ -139,7 +139,7 @@ les Registros ahora pueden ser inspeccionados para leer los resultados del cómp
* CU se mueve dirigiéndose a les Registros, transmitiendo el dígito-movimiento que recibió como argumento
* Registros reciben el dígito
* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando
* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando
* les demás Registros reducen la amplitud de su propio dígito-movimiento.
* CU se mueve dirigiéndose a les Registros, transmitiendo la indicación de incremento
* Registro con el movimiento amplio, pasa al dígito-movimiento siguiente al que estaba realizando (incrementa en 1 al valor que estaba almacenando)
@ -153,7 +153,7 @@ les Registros ahora pueden ser inspeccionados para leer los resultados del cómp
* CU se mueve dirigiéndose a les Registros, transmitiendo el dígito-movimiento que recibió como argumento
* Registros reciben el dígito
* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando
* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando
* les demás Registros reducen la amplitud de su propio dígito-movimiento.
* CU se mueve dirigiéndose a les Registros, transmitiendo la indicación de decremento
* Registro con el movimiento amplio, pasa al dígito-movimiento anterior al que estaba realizando (decrementa en 1 al valor que estaba almacenando)
@ -178,7 +178,7 @@ este es el programa en formato de lista de números para que administre Memoria.
* 4: 2 1
* 5: 0 0
el primer dígito en la lista es el número de línea.
el primer dígito en la lista es el número de línea.
los dos dígitos siguientes son el primer y segundo dígitos de instrucción

View File

@ -1,6 +1,6 @@
# danzas compuertas
antiguas historias hablaban de computar en conjunto, en comunidad.
lang=es
antiguas historias hablaban de computar en conjunto, en comunidad.
tareas sencillas y divertidas que requieren atención y presencia y que combinadas dan paso a complejidad, a olas, a cambios.
@ -30,7 +30,7 @@ más circuitos posibles, en la {logiteca}
qué tal un sumador completo, aprovechando la idea de {ciclo de memoria}
aquí un diagrama animado que muestra un par de ciclos de memoria como entrada a un full-adder.
aquí un diagrama animado que muestra un par de ciclos de memoria como entrada a un full-adder.
el resultado del full-adder está conectado a otro ciclo de memoria. todos los componentes conformados por personas.

View File

@ -1,12 +1,12 @@
# danzasistemas-tag
lang=es
una compudanza basada en máquina abstracta (tag systems, o bien, máquina de post)
=> ./las_danzas.gmi {las danzas}
# descripción
las danzasistemas-tag consisten en "batallas" de baile en las que alternamos recibiendo y respondiendo secuencias de movimiento.
las danzasistemas-tag consisten en "batallas" de baile en las que alternamos recibiendo y respondiendo secuencias de movimiento.
las secuencias que respondemos son producto de procesar elementos de la secuencia que recibimos.
@ -49,13 +49,13 @@ si primer símbolo/movimiento es 'b', agrega 'a' al final.
si primer símbolo/movimiento es 'c', agrega 'aaa' al final.
nota cómo cada regla de producción agrega una cantidad distinta de símbolos/movimientos al final.
nota cómo cada regla de producción agrega una cantidad distinta de símbolos/movimientos al final.
## m: número de eliminación
en este caso, siempre descartaremos 2 símbolos/movimientos del inicio de la secuencia.
## desarrollo
## desarrollo
partiendo de una secuencia inicial 'aaa'...
@ -95,7 +95,7 @@ si primer símbolo/movimiento es 'b', agrega 'ba' al final.
en este caso, siempre descartaremos 1 símbolo/movimiento del inicio de la secuencia.
## desarrollo
## desarrollo
partiendo de una secuencia inicial 'aaa'...
@ -107,8 +107,8 @@ respuesta: bbb
respuesta: bbba
respuesta: bbaba
respuesta: bababa
respuesta: abababa
respuesta: bababab
respuesta: abababa
respuesta: bababab
```
@ -116,3 +116,5 @@ respuesta: bababab
=> https://mathworld.wolfram.com/TagSystem.html Tag System -- from Wolfram MathWorld
=> https://www.wolframscience.com/nks/p93--tag-systems/ Tag Systems: A New Kind of Science | Online by Stephen Wolfram
=> https://www.wolframscience.com/nks/p95--cyclic-tag-systems/ Cyclic Tag Systems: A New Kind of Science | Online by Stephen Wolfram

View File

@ -1,18 +1,18 @@
# después ahora
lang=es
textos hacia una práctica post-civilización.
# La invitación
Primero que nada, te invito, nos invito, a estar presentes.
Respirar profundo, y de ser posible, mirar por alguna ventana. Notar el espacio de posibilidades que nos presenta lo que llamamos cielo.
Respirar profundo, y de ser posible, mirar por alguna ventana. Notar el espacio de posibilidades que nos presenta lo que llamamos cielo.
Espero que no fuera hace mucho la vez más reciente que le habías visto.
Ahora bien, en este texto, partimos de la noción de que algo grande se está terminando. No solo grande, sino enorme; tal vez inabarcable, tal vez inconcebible.
Partimos de la noción de que la civilización se está terminando.
Partimos de la noción de que la civilización se está terminando.
O de que ya se terminó, según desde dónde le veamos.
@ -34,7 +34,7 @@ Personalmente, prefiero dejármelo sentir. No me va eso de hacerme creer que no
Ya no me creo el cuento del progreso, de las soluciones tecnocéntricas.
Vivir como si la civilización ya no existiera es lo que mejor me suena. Requiere creatividad, curiosidad, disposición, compasión y paciencia. Es alcanzable. No hay una fórmula específica, homogénea.
Vivir como si la civilización ya no existiera es lo que mejor me suena. Requiere creatividad, curiosidad, disposición, compasión y paciencia. Es alcanzable. No hay una fórmula específica, homogénea.
Es plantar semillas de lo que pueda venir después: puede que no germinen, ¿pero realmente me veo haciendo otra cosa?
@ -46,8 +46,8 @@ Por el momento usamos internet, después ya veremos. Si los cables seguirán pla
---
Te invito a respirar de nuevo. A moverte con cómo te sientes ahora.
Te invito a respirar de nuevo. A moverte con cómo te sientes ahora.
Te invito a acompañarnos en esta búsqueda.
Te invito a acompañarnos en esta búsqueda.
Está bien si todavía no es el momento. Ya sabes dónde me encuentro.

15
src/dominio_público.gmo Normal file
View File

@ -0,0 +1,15 @@
# dominio público
lang=es en->{public domain}
dedicamos este trabajo al dominio público.
=> https://creativecommons.org/publicdomain/zero/1.0/deed.es CC0 1.0
compartimos con gratitud;
toma lo que te guste (o lo que no), úsalo, impleméntalo, dale vueltas (o no);
todo esto es remezcla así que a (re)seguirla;
nodos aquí y allá, flujos incontables, ¿cómo podría llamar algo así, mío?
lo instigamos, claro, nos llama
pero no nos ata ni l'atamos,
que vuele, nade, se arrastre y reconecte, así en confianza, vamos!

View File

@ -1,5 +1,5 @@
# ed
lang=es
pequeño editor de texto
# tips

7
src/escenaconsejo.gmo Normal file
View File

@ -0,0 +1,7 @@
# escenaconsejo
performing and media arts company. 2013-2020
this page is a stub.
=> https://vimeo.com/escenaconsejo Escenaconsejo in vimeo

15
src/esglua.gmo Normal file
View File

@ -0,0 +1,15 @@
# esglua
our static site generator written in lua
# about
esglua generates this {wiki} in both html and {gemini} formats.
it was written when learning about the lua programming language.
# source code
the source code of both the generator and the {wiki} can be found in tildegit:
=> https://tildegit.org/sejo/compudanzas compudanzas - tildegit

View File

@ -1,76 +0,0 @@
/* links externos */
a[rel^=external]:after{ content: "↗"; }
/* gemtext-like format */
/* h1:before{ content: "# "; }
h2:before{ content: "## "; }
h3:before{ content: "### "; }*/
a.arrow:before{ content: "⇒ "; }
body{
max-width:36em;
margin:0 auto;
font-size:18px;
padding: 1em;
font-family:sans-serif;
}
footer{
font-size: x-small;
padding-top:2em;
}
footer img{
margin:0;
}
pre{
background-color: #fee;
padding:1em;
overflow-x: auto;
}
blockquote{
font-style: italic;
}
main h1{
margin-top: 1.5em;
font-size: xx-large;
}
main h2{
font-size: x-large;
margin-left:0.3em;
}
main h3{
font-size: larger;
margin-left:1em;
}
gallery{
display:flex;
flex-direction:row;
flex-wrap:wrap;
justify-content:space-evenly;
align-content:center;
}
img{
margin:10px;
border-radius:5px;
max-width: 320px;
}
nav{ font-size:smaller; }
nav li{ padding:0.2em; }
main li{ padding:0.5em; }
th,td{
border-style:ridge;
padding:5px;
}
/* desktop */
@media screen and (min-width: 600px) {
nav li{
display:inline;
}
img{ max-width: 100%; }
}

View File

@ -1,5 +1,5 @@
# apuntes de ffmpeg
lang=es
notas de usos comunes que le doy a ffmpeg
# "trim" / cortar
@ -89,7 +89,7 @@ ffmpeg -i out.ogv -filter:v "crop=1280:720:0:0" -codec:v libx264 -codec:a libmp3
# video a partir de una imagen
```
# video de una imagen,
# video de una imagen,
# 10 segundos, 30 frames por segundo
ffmpeg -loop 1 \
-i imagen_verde.png \

View File

@ -1,6 +1,6 @@
# fluidics
the use of a fluid to perform analog or digital operations similar to those performed with electronics.
the use of a fluid to perform analog or digital operations similar to those performed with electronics.
=> https://www.gwern.net/docs/cs/1964-gluskin.pdf FLODAC - a pure fluid digital computer
=> https://www.nature.com/articles/s41598-021-90485-z Microfluidic-based processors and circuits design

View File

@ -6,41 +6,63 @@ it uses the {postfix} notation.
# reading
## books
this book has a great pace and nice illustrations
=> https://www.forth.com/starting-forth starting forth book
## tutorials
=> http://www.softsynth.com/pforth/pf_tut.php pForth - portable Forth in 'C'
=> http://www.murphywong.net/hello/simple.htm Simple Forth
## articles
=> https://patorjk.com/programming/articles/forththoughts.htm Introduction to Thoughtful Programming and the Forth Philosophy By Michael Misamore
# trying out
=> https://txt.eli.li/pb/forth/ forth editor lifted from easy forth - by eli_oat
# some words
## running
## running
these are some words for doing arithmetic with paces (min/km) and velocities (km/hr) relevant to {running}
these are some words for doing arithmetic with paces (min/km) and velocities (km/hr) relevant to running.
``` forth words
( running.forth )
: ms>s swap 60 * + ; ( min segs -- segs )
: hms>s ms>s swap 3600 * + ; ( hr min segs -- segs )
: msd>s1k >r ms>s 1000 swap r> */ ; ( min segs metros -- segs1km )
: s1k>vel 3600 swap / ; ( segs1km -- vel )
: paso>vel ms>s s1k>vel ; ( min segs -- vel )
: vel>s1k 3600 swap / ; ( vel -- segs1km )
: ms- ms>s >r ms>s r> - ; ( min segs min segs -- segs )
: minseg>seg swap 60 * + ; ( min segs -- segs )
: seg>minseg 60 /mod swap ; ( segs -- min segs )
: horminseg>seg minseg>seg swap 3600 * + ; ( hr min segs -- segs )
: minseg/m>seg/1km >r minseg>seg 1000 swap r> */ ; ( min segs metros -- segs1km )
: seg/1km>vel 3600 swap / ; ( segs1km -- vel )
: paso>vel minseg>seg seg/1km>vel ; ( min segs -- vel )
: vel>seg/1km 3600 swap / ; ( vel -- segs1km )
: minseg- minseg>seg >r minseg>seg r> - seg>minseg ; ( min segs min segs -- min seg )
( print )
: .min 0 <# [CHAR] ' HOLD #S #> TYPE ; ( min -- )
: .segpad 0 <# [CHAR] " HOLD # # #> TYPE ; ( segs -- )
: .seg 0 <# [CHAR] " HOLD #S #> TYPE ; ( segs -- )
: .ms 60 /mod dup 0> IF .min .segpad ELSE drop .seg THEN ; ( segs -- )
: .minseg 60 /mod dup 0> IF .min .segpad ELSE drop .seg THEN ; ( segs -- )
: .vel . ." km/hr " ;
: lista-velocidades cr 21 10 do i dup .vel vel>s1k .ms cr loop ;
```
### usage
in order to load them, you'd do:
```
include running.forth
```
for example, to convert a velocity to a pace, and print it:
``` input: 18, output: 3'20"
18 vel>s1k .ms
18 vel>seg/1k .minseg
output:
3'20" ok
@ -49,17 +71,17 @@ output:
to do the opposite operation:
``` input: 3 20, output: 18 km/hr
3 20 ms>s s1k>vel .vel
3 20 paso>vel .vel
output:
18 km/hr ok
```
```
to get the pace of a given segment, using minutes, seconds and distance in meters:
``` input: 1 03 300, output: 3'30"
( 1'03" in 300m )
1 03 300 msd>s1k .ms
1 03 300 minseg/m>seg/1k .minseg
output:
3'30" ok
@ -69,7 +91,7 @@ to get the difference between two times in minutes, seconds:
``` input: 3 20 3 15, output: 0'05"
( 3'20" - 3'15" )
3 20 3 15 ms- .ms
3 20 3 15 minseg- minseg>seg .minseg
output:
5" ok

View File

@ -1,6 +1,6 @@
# gemini
protocolo del "small internet" para documentos de hipertexto:
lang=es
protocolo del "small internet" para documentos de hipertexto:
* minimalista en su especificación
* una conexión por documento
@ -10,18 +10,27 @@ protocolo del "small internet" para documentos de hipertexto:
se les llama "cápsulas" a lo que en la web llamaríamos "sitios".
# software
este sitio está servido desde un programa de "cosecha propia", chamorrx:
=> https://tildegit.org/sejo/chamorrx/ código fuente de chamorrx
además hemos creado varias herramientas basadas en gemtext utilizando {awk}.
el generador que utilizamos para manejar el sitio se llama {esglua}.
# enlaces
## sobre gemini
=> https://gemini.circumlunar.space/ project gemini (web)
=> gemini://gemini.circumlunar.space/ project gemini (gemini)
=> //geminiprotocol.net project gemini
## caracolito
compudanzas está hospedada en la comunidad caracolito: comunidad naciente en torno al "internet lento y pequeño", el protocolo gemini en español, e ideales pachapunk.
=> gemini://caracolito.mooo.com/ caracolito (gemini)
=> //caracolito.mooo.com/ caracolito
en caracolito hay un agregador de cápsulas con contenido en castellano:
@ -45,17 +54,24 @@ usamos y recomendamos:
### y más
=> https://gemini.circumlunar.space/software/ gemini software (web)
=> gemini://gemini.circumlunar.space/software/ gemini software (gemini)
=> //geminiprotocol.net/software/ gemini software
# notas
## raw request
usando openssl se puede hacer una request de la siguiente forma:
```
echo "gemini://compudanzas.net/" | openssl s_client -connect compudanzas.net:1965 -servername "compudanzas.net" -quiet -crlf -no_ssl3 -no_tls1 -no_tls1_1
```
## fingerprint
para confirmar fingerprint como cliente:
```
openssl s_client -showcerts -servername compudanzas.net -connect compudanzas.net:1965 </dev/null | openssl x509 -fingerprint
openssl s_client -showcerts -servername compudanzas.net -connect compudanzas.net:1965 </dev/null | openssl x509 -fingerprint
```
actualmente el resultado de la fingerprint debe ser:

View File

@ -25,7 +25,7 @@ este es el archivo paquetes.scm que utilizamos:
``` paquetes.scm
; paquetes.scm
(specifications->manifest
(list
(list
; multimedia
"evince" ; pdf viewer
"vlc"
@ -157,7 +157,7 @@ guix install glibc-utf8-locales font-dejavu
agregar lo siguiente a .xsessionrc
```
if [ -f ~/.profile ]; then
if [ -f ~/.profile ]; then
. ~/.profile
fi
```

41
src/hamiltonian_cards.gmo Normal file
View File

@ -0,0 +1,41 @@
# hamiltonian cards
the hamiltonian cards are generative coloring puzzles where you follow the instructions to reveal their messages.
=> ./img/fotos_hamiltonian.gif sequence of photos showing a hamiltonian card being colored
# description
description from the ITP winter show 2016:
=> https://itp.nyu.edu/shows/winter2016/hamiltonian-cards/ Hamiltonian Cards - ITP Winter Show 2016
> They consist in a grid of cells -squares with arrows- pointing to each other in a type of sequence called Hamiltonian Path. A Hamiltonian Path in a grid is a path that visits each and every cell exactly once. Therefore, following the path of arrows and coloring each cell that you encounter you will color the whole grid. The magic occurs because there are two types of arrow: the triangular arrow indicates that you have to fill the next cell with the same color of the current cell, and the circular arrow indicates that you have to fill the next cell with the alternate color. Filling the cells and changing the fill color according to the instructions, will allow you to reveal the hidden images.
> Under the hood, the Hamiltonian Cards are created by a software that processes a monochromatic and low pixel image using a generated Hamiltonian path. The path is used to traverse the image to define the orientation of the cells in the card and their corresponding arrow shape; somewhat executing the inverse process of what you do when solving the puzzle. Multiple paths can be used to process a single image, and multiple images can be processed with the same path. Thus many unique designs can be obtained with this same software.
> This project was originated in the Visual Language class with Katherine Dillon. My idea was to create unique graphic designs that require a playful and puzzling interaction to reveal a hidden design. The best approach for me was to create generative software in p5.js and Processing that would process and encode a message in an almost never ending set of outcomes following the same basic rules.
=> https://en.wikipedia.org/wiki/Hamiltonian_path Hamiltonian path
# instructions
* choose two contrasting colors
* fill the first cell with your first color
* follow the arrows' rules to fill the next cells: Triangular: fill the NEXT cell with the SAME color. Circular: Fill the NEXT cell with the OTHER color.
* continue to follow the arrows until the page is done
=> ./img/foto_hamiltonian_cards.jpg hamiltonian cards in the process of being colored
# downloads
=> https://ipfs.io/ipfs/QmadXtQQC9Jwc7jdwt2dvXfj4oWCtfZUoGhWLYLfjqCePE ITP Winter Show 2016 Edition, 33 different Hamiltonian Cards ready to be printed (7.3MB)
=> ./img/foto_hamiltonian_cards_2.jpg a couple of people's hands interacting with the hamiltonian cards in the ITP winter show
# media
sejo briefly talking about them in the coding train
=> https://www.youtube.com/watch?v=Snv_TNrKnIU&t=608s ITP Winter Show 2016 (youtube)
# credits
* creative direction and production: {escenaconsejo}
* hamiltonian path algorithm programming: José Alberto Jurado

View File

@ -2,10 +2,20 @@
numeral system in base 16: it uses 16 digits, from 0 to 9 and from 'a' to 'f'.
there's a direct mapping between each possible combination of 4 bits (nibble), and an hexadecimal (hex) digit:
there's a direct mapping between each possible combination of 4 bits (bin), and an hexadecimal (hex) digit.
a group of 4 bits is called a nibble.
sistema numérico en base 16: utiliza 16 dígitos, del 0 al 9 y de la 'a' a la 'f'.
hay un mapeo directo entre cada posible combinación de 4 bits (bin) y un dígito hexadecimal (hex).
a un grupo de 4 bits se le llama nibble.
# conversion
+ <table>
+ <tr><th>binary</th><th>hex</th><th>dec</th></tr>
+ <tr><th>bin</th><th>hex</th><th>dec</th></tr>
+ <tr><td>0000</td><td>0</td><td>0</td></tr>
+ <tr><td>0001</td><td>1</td><td>1</td></tr>
+ <tr><td>0010</td><td>2</td><td>2</td></tr>
@ -23,7 +33,6 @@ there's a direct mapping between each possible combination of 4 bits (nibble), a
+ <tr><td>1110</td><td>e</td><td>14</td></tr>
+ <tr><td>1111</td><td>f</td><td>15</td></tr>
+ </table>
& * 0000 is 0
& * 0001 is 1
& * 0010 is 2
@ -49,3 +58,10 @@ there's a direct mapping between each possible combination of 4 bits (nibble), a
* 4 {base64} digits
* 6 hexadecimal digits
* 8 {octal} digits
24 bits corresponden a:
* 3 bytes
* 4 dígitos {base64}
* 6 dígitos hexadecimales
* 8 dígitos en {octal}

View File

@ -6,7 +6,7 @@
* created the jardínBit website for my teaching notes and {tutorials}
* cooked almost every day, and kept preparing soy milk and brewing kombucha.
* managed to follow through the year using a paper-based calendar / organizer.
* regarding {running}: i trained 200 days, i ran my first marathon and my second official half marathon, and also broke my personal records for 1km and 2km.
* regarding running: i trained 200 days, i ran my first marathon and my second official half marathon, and also broke my personal records for 1km and 2km.
* with laboratorio de escena en red: danced, did some livecoding, and some generative 3d modelling. also taught a couple of workshops on networked performance.
* had my first flight in almost 5 years.
* learned about uxn and wrote the {uxn tutorial}.
@ -20,4 +20,4 @@
and in general, i realized the importance of family and community; noticed that i really enjoy running, dancing and programming; and had a great time and a lot of inspiration being part of the merveilles community.
my word of the year, "simpleza" (related to simplicity, light-heartedness and laughter) was present all along at different levels. maybe not as much as i would have liked, but it gives me a nice baseline for the following years :)
my {theme of the year}, "simpleza" (related to simplicity, light-heartedness and laughter) was present all along at different levels. maybe not as much as i would have liked, but it gives me a nice baseline for the following years :)

View File

@ -0,0 +1,19 @@
# highlights of 12022
my {theme of the year} 12022 was patience.
what mostly defined the year was the start of my phd program and our big move from mexico city to madrid.
the following is basically a summary of our {log}; we couldn't do "as much" (?) but we kept iterating and maintaining the project, patiently:
* we practiced and showcased the {qiudanz technique} in a couple of live-coding {performances}: {alive computing dance} and {qiudanz tag}.
* we published and maintained our ebooks: {introduction to uxn programming book} and {introducción a programación uxn}.
* learned lua; used it for developing {jarotsim}, a playground for the discovery, exploration and livecoding of turing machines, and also {esglua}, our static site generator. participated in advent of code with it.
* created {norpet}, a digital pet and a study of hand-powered logic.
* started using manyverse / ssb, and created {la sala}, an experimental room for a slow and online-but-offline-first community.
in the upcoming year our intention is to iterate and advance the project, especially focusing in workshops and activities around the {qiudanz technique}. there's still a lot to explore there!
we are very grateful for all the support we have received during the year. thank you!
previously: {highlights of 12021}.

View File

@ -0,0 +1,15 @@
# highlights of 12023
this year, my {theme of the year} was {oleaje} (waves). the idea was to observe the cycles regarding interests, patterns of thought, initiatives, self-perception, and more, that I tend to move in. it was very enlightening!
looking at the {log}: we presented {jarotsim at hlci}, started a section on {thoughts}, and changed our {identidad visual}. it seems my {academic life} took a toll on our online activity!
however, going IRL, it's worth noting that our friend @vladomiro translated {norpet mascota digital} and used it several times in (computer) science dissemination events in UNAM, CDMX! it's great seeing projects getting a life of their own!
additionally, and very importantly, this year we met in person several people that we only knew from the online world, mainly from the merveilles community but also from the fedi(verse) in general! it was delightful to put bodies and faces to handles and avatars, and by extension to embrace their complexity. it's interesting how their/our richness as humans is not always reflected in online activity. looking forward to meeting them again, and to getting to know more people!
finally, regarding paper (?), I journaled way more than in previous years. I got a little notebook and the habit of writing down my thoughts there. thanks to doing that I have been able to process the {oleaje} better. in general, I preferred to write there instead of "shouting at the (online) void". also, this is the first time I manage to log the {books} I read during a year. I'm excited to continue with both activities!
the {theme of the year} for the upcoming year is commitment, and in that sense I'll commit to advance and develop compudanzas further. the objective is to log at least one activity per month. we're starting already!
previously: {highlights of 12022}.

View File

@ -1,23 +1,28 @@
# compudanzas
lang=en es->{inicio}
explorations of joyful and human-scale computing.
explorations of computing at a human scale: what happens when computers are dances, rituals, games?
developing computers that are dances, rituals, games.
explorando computación a escala humana: ¿qué pasa cuando las computadoras son danzas, rituales, juegos?
=> ./now.gmi {now}
find out what we are up to {now}, visit our activity {log}, read {about} our work, or {contact} us!
# proyectos
=> ./img/foto_laconsagracion_playa.jpg photo of the rite of computing: there is a wiggly row of shapes in the floor, each of them composed of small blocks of wood. a person is crouching, building one of these shapes. other two people are watching, sitting in the floor. there are some cardboard shapes with symbols, also in the floor.
## selected projects
=> ./qiudanz_technique.gmi {qiudanz technique}
=> ./talks_and_workshops.gmi {talks and workshops}
=> ./uxn_tutorial.gmi {uxn tutorial}
=> ./las_danzas.gmi {las danzas}
=> ./img/foto_qiudanz.png photo of a smiling person who seems to be dancing, with extended arms in front of them. they are pointing towards the left, where there's an overlay of some kind of code written with addition and subtraction signs, periods, and square brackets.
=> ./jarotsim.gmi {jarotsim}
=> ./img/screenshot_jarotsim_banner.png four rows of tiles, each one with a different pattern of tiles and with a bird with a hat in a different pose and position
=> ./coloring_computers.gmi {coloring computers}
=> ./img/foto_coloring-computers_cover-lee.png photo of the cover of the zine, colored
=> ./img/foto_coloring-computers_7seg-lee.png photo of a pair of colored pages of the zine, with a 7 segment display showing the digits 2 and 3
=> ./img/foto_coloring-computers_pcd2019.png photo of a pair of colored pages of the zine, showing a digital circuit answering if two colors are the same
# acerca
=> ./beans_computing.gmi {beans computing}
=> ./img/foto_norpet_01.png photo of the norpet paper board accompanied with soy and black beans, and a hand starting to solve it
=> ./img/foto_norpet_02.png closeup photo of the norpet board completely solved in one of its states: the grid is full of either soy or black beans.
=> ./about.gmi {about}
=> ./acerca.gmi {acerca}
=> ./log.gmi {log}
=> ./references.gmi {references}
=> ./contact.gmi {contact}
=> ./support.gmi {support}
=> ./introduction_to_uxn_programming_book.gmi {introduction to uxn programming book}
=> ./img/screenshot_uxn-pong-paddles-and-ball.png screenshot showing the stage of the pong game: a couple of paddles at the sides, and a ball at the center

19
src/identidad_visual.gmo Normal file
View File

@ -0,0 +1,19 @@
# identidad visual
lang=es
nos llaman la atención los colores ocres, desérticos, otoñales, de tierra.
# notas
=> ./img/iconocompudanzas_64.png icono de compudanzas
interés en la arena, el silicio, cristales, las máquinas que de ahí surgen, así como el desierto del origen y eventual futuro terrestre.
otoño como decaimiento y posibilidad de renovación, aunque se requiera algo de tiempo de espera.
el color de la piel que nos vemos, no blanca, cercana al suelo. arcilla, adobe (¿y adobo?), ladrillos, juego de bloques para construir.
épocas en las que siento más orgánico celebrar y compartir así.
# web
el sitio web responde a las preferencias del tema de color preferido; hay un tema "dark" y otro "light".

View File

@ -1,5 +1,5 @@
# apuntes de imagemagick
lang=es
# redimensiona imagen
```
@ -61,7 +61,7 @@ convert imagen.png -quality 100 -units PixelsPerInch -density 300x300 imagen.pdf
para el caso opuesto:
```
convert -quality 100 -units PixelsPerInch -density 300x300 imagen.pdf imagen.png
convert -quality 100 -units PixelsPerInch -density 300x300 imagen.pdf imagen.png
```
# reduce la cantidad de colores
@ -92,7 +92,7 @@ convert -size 100x100 xc:'rgb(0,255,0)' imagen_verde.png
con ruido:
```
convert -size 100x100 xc: +noise Random imagen_ruido.png
convert -size 100x100 xc: +noise Random imagen_ruido.png
```
# compone/encima imágenes
@ -100,7 +100,7 @@ convert -size 100x100 xc: +noise Random imagen_ruido.png
para componer una imagen con fondo transparente sobre otra que se convertirá en su fondo
```
composite -gravity center imagen_con_alpha.png fondo.png resultado.png
composite -gravity center imagen_con_alpha.png fondo.png resultado.png
```
# extiende imagen

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/img/banner_kopimi.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/img/boton-kofi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,2 @@
<svg xmlns="http://www.w3.org/2000/svg" width="83" height="30"><rect id="back" fill="#f6c915" x="1" y=".5" width="82" height="29" rx="4"/><svg viewBox="0 0 80 80" height="16" width="16" x="7" y="7"><g transform="translate(-78.37-208.06)" fill="#1a171b"><path d="m104.28 271.1c-3.571 0-6.373-.466-8.41-1.396-2.037-.93-3.495-2.199-4.375-3.809-.88-1.609-1.308-3.457-1.282-5.544.025-2.086.313-4.311.868-6.675l9.579-40.05 11.69-1.81-10.484 43.44c-.202.905-.314 1.735-.339 2.489-.026.754.113 1.421.415 1.999.302.579.817 1.044 1.546 1.395.729.353 1.747.579 3.055.679l-2.263 9.278"/><path d="m146.52 246.14c0 3.671-.604 7.03-1.811 10.07-1.207 3.043-2.879 5.669-5.01 7.881-2.138 2.213-4.702 3.935-7.693 5.167-2.992 1.231-6.248 1.848-9.767 1.848-1.71 0-3.42-.151-5.129-.453l-3.394 13.651h-11.162l12.52-52.19c2.01-.603 4.311-1.143 6.901-1.622 2.589-.477 5.393-.716 8.41-.716 2.815 0 5.242.428 7.278 1.282 2.037.855 3.708 2.024 5.02 3.507 1.307 1.484 2.274 3.219 2.904 5.205.627 1.987.942 4.11.942 6.373m-27.378 15.461c.854.202 1.91.302 3.167.302 1.961 0 3.746-.364 5.355-1.094 1.609-.728 2.979-1.747 4.111-3.055 1.131-1.307 2.01-2.877 2.64-4.714.628-1.835.943-3.858.943-6.071 0-2.161-.479-3.998-1.433-5.506-.956-1.508-2.615-2.263-4.978-2.263-1.61 0-3.118.151-4.525.453l-5.28 21.948"/></g></svg><text fill="#1a171b" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif"
font-weight="700" font-size="14" x="50" y="20">Donate</text></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/img/boton-patreon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
src/img/compudanzas_128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
src/img/foto_norpet_01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
src/img/foto_norpet_02.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
src/img/foto_norpet_03.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

Some files were not shown because too many files have changed in this diff Show More