123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494 |
- \input texinfo @c -*- texinfo -*-
- @c %**start of header
- @setfilename readme.info
- @settitle
- @documentencoding UTF-8
- @documentlanguage en
- @c %**end of header
- @finalout
- @titlepage
- @title
- @author Yang Xiaolong
- @end titlepage
- @contents
- @ifnottex
- @node Top
- @top
- @end ifnottex
- @menu
- * Introduction::
- * Manuals::
- * Tutorials::
- * Libraries::
- * Programming paradigm::
- * Tools::
- * Blogs::
- * Other: Other (3).
- * Other lists of Guile software::
- * Videos / Talks / Presentations::
- @detailmenu
- --- The Detailed Node Listing ---
- Libraries
- * Async::
- * Browser::
- * Chat clients::
- * Compression::
- * Configuration::
- * Databases::
- * Data structures::
- * E-Mail::
- * Event loop::
- * FFI - Foreign Function Interface::
- * File formats::
- * File system::
- * Game development::
- * Games::
- * Graphics::
- * GUI development::
- * Language::
- * Logging::
- * Machine Learning::
- * Message Queues::
- * Network programming::
- * Parsing::
- * Plotting::
- * Protocols::
- * Regular expressions::
- * REPL::
- * RPC::
- * Scientific computing and mathematics::
- * TUI development::
- * Unit Testing::
- * Version control systems::
- * Web Development::
- * Window manager::
- * Working with code::
- * Other::
- Chat clients
- * IRC::
- Data structures
- * Purely functional data structures (PDFS)::
- * RDF::
- * Lenses::
- * Other: Other (1).
- File formats
- * JSON::
- * CSV::
- * XML::
- * Markdown::
- * Texinfo::
- * JPEG::
- * ICS::
- * torrent::
- * Other: Other (2).
- Graphics
- * Image processing::
- Parsing
- * Parser Combinators::
- * Parser Generator::
- Scientific computing and mathematics
- * Interaction with the Jupyter ecosystem::
- Web Development
- * Web frameworks::
- * Tooling / Additional libraries::
- * Static website generators::
- * Template engine::
- * Interaction with services::
- * Web application examples::
- Programming paradigm
- * "Object-oriented programming"::
- * Relational programming::
- * Functional programming::
- "Object-oriented programming"
- * Prototype based::
- Tools
- * Project management::
- Project management
- * Package managers::
- @end detailmenu
- @end menu
- @node Introduction
- @chapter Introduction
- In software development circles there is a culture of creating so called "awesome lists". Those lists contain links to all kinds of resources for a topic, which can be as broadly defined as "computer science", "software development", "software engineering" or as specific as a single programming language or an area of application of programming languages such as "web development", "machine learning". Probably such lists exist for many other things than programming as well. Their character is mostly informal, which makes them easily extendable. Here is what not to expect from such a list:
- @itemize
- @item
- comprehensiveness or completeness
- @item
- being finished
- @item
- always containing the most up to date links to relevant projects
- @item
- containing the links to the best options for all purpose or goal
- @end itemize
- While those things might be desirable, the list is a community effort. It is up to the author and community to share their knowledge. No one knows everything there is to know and new projects are initiated frequently.
- The following list is such an "awesome list" for the programming language GNU Guile. Its purpose is to make it easy for people to find tutorials, resources or any kind of knowledge about GNU Guile.
- Anyone, who knows something, that should be added to the list, is welcome to suggest edits or make pull requests.
- @node Manuals
- @chapter Manuals
- @itemize
- @item
- There is a huge reference manual for GNU Guile on the GNU website: @uref{https://www.gnu.org/software/guile/manual/}.
- @end itemize
- @node Tutorials
- @chapter Tutorials
- @itemize
- @item
- "Learn Scheme in 15 minutes": @uref{https://web-artanis.com/scheme.html}
- @item
- guile-tutorial: @uref{https://notabug.org/cwebber/guile-tutorial}
- @end itemize
- @node Libraries
- @chapter Libraries
- @itemize
- @item
- GUIX package search
- @itemize
- @item
- website: @uref{https://hpc.guix.info/browse}
- @item
- Search for example for @code{^guile-} to find many Guile libraries and projects.
- @end itemize
- @end itemize
- @menu
- * Async::
- * Browser::
- * Chat clients::
- * Compression::
- * Configuration::
- * Databases::
- * Data structures::
- * E-Mail::
- * Event loop::
- * FFI - Foreign Function Interface::
- * File formats::
- * File system::
- * Game development::
- * Games::
- * Graphics::
- * GUI development::
- * Language::
- * Logging::
- * Machine Learning::
- * Message Queues::
- * Network programming::
- * Parsing::
- * Plotting::
- * Protocols::
- * Regular expressions::
- * REPL::
- * RPC::
- * Scientific computing and mathematics::
- * TUI development::
- * Unit Testing::
- * Version control systems::
- * Web Development::
- * Window manager::
- * Working with code::
- * Other::
- @end menu
- @node Async
- @section Async
- @itemize
- @item
- 8sync
- @itemize
- @item
- git repository at Savannah: @uref{https://savannah.gnu.org/projects/8sync}
- @item
- manual / GNU software manual: @uref{https://www.gnu.org/software/8sync/manual/html_node/index.html#Top}
- @item
- website / GNU software page: @uref{https://www.gnu.org/software/8sync/}
- @item
- tutorial: @uref{https://www.gnu.org/software/8sync/manual/html_node/Tutorial.html#Tutorial}
- @end itemize
- @end itemize
- @node Browser
- @section Browser
- @itemize
- @item
- Nomad
- @itemize
- @item
- git repository at non-GNU Savannah: @uref{https://savannah.nongnu.org/projects/nomad/}
- @item
- website: @uref{https://www.nongnu.org/nomad/}
- @end itemize
- @end itemize
- @node Chat clients
- @section Chat clients
- @menu
- * IRC::
- @end menu
- @node IRC
- @subsection IRC
- @itemize
- @item
- @code{guile-irc}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/fbs/guile-irc}
- @end itemize
- @end itemize
- @node Compression
- @section Compression
- @itemize
- @item
- @code{guile-zlib}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/davexunit/guile-zlib}
- @end itemize
- @end itemize
- @node Configuration
- @section Configuration
- @itemize
- @item
- @code{guile-config}
- @itemize
- @item
- git repository at GitLab: @uref{https://gitlab.com/a-sassmannshausen/guile-config}
- @end itemize
- @end itemize
- @node Databases
- @section Databases
- @itemize
- @item
- Generic
- @itemize
- @item
- @code{guile-dbi}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/opencog/guile-dbi}
- @item
- documentation: @uref{https://htmlpreview.github.io/?https://github.com/opencog/guile-dbi/blob/master/website/guile-dbi.html}
- @item
- offers MySQL, Postgresql and SQLite3 interfaces
- @end itemize
- @end itemize
- @item
- @code{guile-redis}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/aconchillo/guile-redis}
- @end itemize
- @item
- @code{guile-sqlite3}
- @itemize
- @item
- git repository at notabug.org: @uref{https://notabug.org/guile-sqlite3/guile-sqlite3.git}
- @item
- documentation at: ???
- @end itemize
- @item
- Postgres
- @itemize
- @item
- @code{guile-squee}
- @itemize
- @item
- git repository at notabug.org: @uref{https://notabug.org/cwebber/guile-squee}
- @item
- documentation at: ???
- @end itemize
- @end itemize
- @item
- WiredTiger (@uref{http://www.wiredtiger.com/}
- @itemize
- @item
- @code{guile-wiredtiger}
- @itemize
- @item
- blog post: @uref{https://hyper.dev/blog/getting-started-with-guile-wiredtiger.html}
- @item
- git repository at: ??? (framagit requires login?)
- @end itemize
- @end itemize
- @item
- @code{guile-sparql}: @uref{https://github.com/roelj/guile-sparql}
- @item
- @code{sparqling-genomics}: @uref{https://github.com/UMCUGenetics/sparqling-genomics}
- @end itemize
- @node Data structures
- @section Data structures
- @menu
- * Purely functional data structures (PDFS)::
- * RDF::
- * Lenses::
- * Other: Other (1).
- @end menu
- @node Purely functional data structures (PDFS)
- @subsection Purely functional data structures (PDFS)
- @itemize
- @item
- @code{pdfs}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/ijp/pfds}
- @item
- documentation: ???
- @end itemize
- @item
- @code{fectors}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/ijp/fectors}
- @end itemize
- @end itemize
- @node RDF
- @subsection RDF
- @itemize
- @item
- @code{guile-rdf}
- @itemize
- @item
- git repository at framagit: @uref{https://framagit.org/tyreunom/guile-rdf}
- @end itemize
- @end itemize
- @node Lenses
- @subsection Lenses
- @itemize
- @item
- @code{guile-lens}
- @itemize
- @item
- git repository at GitLab: @uref{https://gitlab.com/a-sassmannshausen/guile-lens}
- @end itemize
- @end itemize
- @node Other (1)
- @subsection Other
- @itemize
- @item
- @code{copernic}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/amirouche/copernic}
- @end itemize
- @end itemize
- @node E-Mail
- @section E-Mail
- @itemize
- @item
- GNU Mailutils ??? (@uref{https://mailutils.org/})
- @item
- @code{guile-email}: @uref{https://guile-email.systemreboot.net/}
- @end itemize
- @node Event loop
- @section Event loop
- @itemize
- @item
- @code{guile-a-sync}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/ChrisVine/guile-a-sync}
- @item
- documentation: ?
- @end itemize
- @end itemize
- @node FFI - Foreign Function Interface
- @section FFI - Foreign Function Interface
- @itemize
- @item
- @code{ffi-helper} from NYACC
- @itemize
- @item
- documentation: @uref{https://www.nongnu.org/nyacc/ffi-help.html}
- @end itemize
- @end itemize
- @node File formats
- @section File formats
- @menu
- * JSON::
- * CSV::
- * XML::
- * Markdown::
- * Texinfo::
- * JPEG::
- * ICS::
- * torrent::
- * Other: Other (2).
- @end menu
- @node JSON
- @subsection JSON
- @itemize
- @item
- JSON
- @itemize
- @item
- @code{guile-json}
- @itemize
- @item
- on GitHub: @uref{https://github.com/aconchillo/guile-json}
- @item
- on savannah: @uref{http://savannah.nongnu.org/projects/guile-json/}
- @end itemize
- @end itemize
- @end itemize
- @node CSV
- @subsection CSV
- @itemize
- @item
- @code{guile-csv}
- @itemize
- @item
- git repository at GitLab: @uref{https://gitlab.com/NalaGinrut/guile-csv}
- @end itemize
- @item
- @code{guile-dsv}
- @itemize
- @item
- This is more general, but can work with CSV as well.
- @item
- git repository at GitHub: @uref{https://github.com/artyom-poptsov/guile-dsv}
- @end itemize
- @end itemize
- @node XML
- @subsection XML
- @itemize
- @item
- Guile's standard library SXML implementation
- @itemize
- @item
- GNU software manual: @uref{https://www.gnu.org/software/guile/manual/html_node/SXML.html}
- @item
- Basically your templates become functions or macros.
- @item
- The structure of your document is kept as Scheme data structures.
- @itemize
- @item
- This avoids having parse the document as a long string into an internal data structure to perform semantic transformations.
- @item
- It enables pattern matching without resorting to things like regular expressions and similar shenanigans.
- @end itemize
- @end itemize
- @end itemize
- @node Markdown
- @subsection Markdown
- @itemize
- @item
- @code{guile-commonmark}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/OrangeShark/guile-commonmark}
- @item
- documentation: ???
- @end itemize
- @end itemize
- @node Texinfo
- @subsection Texinfo
- @itemize
- @item
- Guile standard library texinfo functionality
- @itemize
- @item
- GNU software manual page: @uref{https://www.gnu.org/software/guile/manual/html_node/texinfo.html}
- @end itemize
- @end itemize
- @node JPEG
- @subsection JPEG
- @itemize
- @item
- @code{guile-jpeg}: a library for parsing JPEG files
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/guildhall/guile-jpeg}
- @end itemize
- @end itemize
- @strong{*}
- @node ICS
- @subsection ICS
- @itemize
- @item
- @code{guile-ics}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/artyom-poptsov/guile-ics}
- @end itemize
- @end itemize
- @node torrent
- @subsection torrent
- @itemize
- @item
- @code{torrent}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/o-nly/torrent}
- @item
- documentation at: ???
- @end itemize
- @end itemize
- @node Other (2)
- @subsection Other
- @itemize
- @item
- If the input is not input from users and is trustworthy, one might be able to leverage read/write of s-expressions instead of using other formats.
- @end itemize
- @node File system
- @section File system
- @itemize
- @item
- @code{sdupes}, duplicate file detection
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/sph-mn/sdupes}
- @end itemize
- @end itemize
- @node Game development
- @section Game development
- @itemize
- @item
- Chickadee
- @itemize
- @item
- describes itself as "game development toolkit"
- @item
- OpenGL based
- @item
- website: @uref{https://dthompson.us/projects/chickadee.html}
- @item
- manual: @uref{https://dthompson.us/manuals/chickadee/index.html}
- @end itemize
- @end itemize
- @node Games
- @section Games
- @itemize
- @item
- StayAlive
- @itemize
- @item
- git repo: @uref{https://github.com/mwitmer/StayAlive}
- @end itemize
- @end itemize
- @node Graphics
- @section Graphics
- @itemize
- @item
- @code{guile-sdl}
- @itemize
- @item
- GNU software page: @uref{https://www.gnu.org/software/guile-sdl/}
- @item
- gnuvola page of examples: @uref{http://www.gnuvola.org/software/guile-sdl-demos/}
- @item
- gnuvola software page: @uref{http://www.gnuvola.org/software/guile-sdl-demos/}
- @end itemize
- @item
- @code{guile-sdl2}
- @itemize
- @item
- project website: @uref{https://dthompson.us/projects/guile-sdl2.html}
- @end itemize
- @item
- @code{guile-opengl}
- @itemize
- @item
- GNU software page: @uref{https://www.gnu.org/software/guile-opengl/}
- @item
- GNU software manual page: @uref{https://www.gnu.org/software/guile-opengl/manual/guile-opengl.html}
- @item
- git repository at Savannah: @uref{http://savannah.gnu.org/projects/guile-opengl}
- @end itemize
- @item
- @code{guile-cairo}
- @itemize
- @item
- git repository at Savannah: @uref{http://savannah.nongnu.org/projects/guile-cairo}
- @end itemize
- @item
- @code{guile-jpeg}: a library for parsing JPEG files
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/guildhall/guile-jpeg}
- @end itemize
- @end itemize
- @menu
- * Image processing::
- @end menu
- @node Image processing
- @subsection Image processing
- @itemize
- @item
- @code{guile-cv}
- @itemize
- @item
- GNU software page: @uref{https://www.gnu.org/software/guile-cv/}
- @item
- git repository at Savannah: @uref{http://git.savannah.gnu.org/cgit/guile-cv.git}
- @end itemize
- @end itemize
- @node GUI development
- @section GUI development
- @itemize
- @item
- @code{guile-gi}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/spk121/guile-gi}
- @item
- documentation at: @uref{https://spk121.github.io/guile-gi/}
- @end itemize
- @item
- @code{guile-gnome}
- @itemize
- @item
- GNU software page: @uref{https://www.gnu.org/software/guile-gnome/}
- @item
- git repository at Savannah: @uref{http://git.savannah.gnu.org/cgit/guile-gnome.git}
- @end itemize
- @item
- @code{guile-gtk}
- @itemize
- @item
- website: @uref{https://www.gnu.org/software/guile-gtk/}
- @item
- CVS repository at non-GNU Savannah: @uref{http://savannah.nongnu.org/projects/guile-gtk/}
- @end itemize
- @item
- @code{g-golf}: @uref{https://www.gnu.org/software/g-golf/}
- @end itemize
- @node Language
- @section Language
- @itemize
- @item
- @code{guile-aspell}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/spk121/guile-aspell}
- @item
- website: @uref{http://lonelycactus.com/guile-aspell.html}
- @end itemize
- @end itemize
- @node Logging
- @section Logging
- @itemize
- @item
- @code{guile-logging}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/shanecelis/guile-logging}
- @end itemize
- @end itemize
- TODO: check e-mails from the guile user list for more info
- @node Machine Learning
- @section Machine Learning
- @itemize
- @item
- decision tree
- @itemize
- @item
- @code{guile-ml}
- @itemize
- @item
- repository at notabug.org: @uref{https://notabug.org/ZelphirKaltstahl/guile-ml}
- @end itemize
- @end itemize
- @end itemize
- @node Message Queues
- @section Message Queues
- @itemize
- @item
- Zero MQ
- @itemize
- @item
- @code{guile-zmq}
- @itemize
- @item
- git repository at GitLab: @uref{https://gitlab.com/NalaGinrut/guile-zmq}
- @end itemize
- @item
- @code{guile-simple-zmq}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/jerry40/guile-simple-zmq}
- @end itemize
- @end itemize
- @end itemize
- @node Network programming
- @section Network programming
- @itemize
- @item
- Guile's standard library networking module
- @itemize
- @item
- GNU software manual page: @uref{https://www.gnu.org/software/guile/manual/html_node/Networking.html}
- @end itemize
- @item
- @code{guile-curl}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/spk121/guile-curl}
- @end itemize
- @item
- @code{guile-ssh}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/artyom-poptsov/guile-ssh}
- @end itemize
- @item
- GNU Serveez
- @itemize
- @item
- GNU software page: @uref{https://www.gnu.org/software/serveez/}
- @item
- manual: @uref{https://www.gnu.org/software/serveez/manual/}
- @item
- git repository at Savannah: @uref{http://savannah.gnu.org/projects/serveez/}
- @end itemize
- @item
- @code{serveez-mg}
- @itemize
- @item
- git repository at GitHub @uref{https://github.com/spk121/serveez-mg}
- @item
- based on GNU Serveez
- @end itemize
- @end itemize
- @node Parsing
- @section Parsing
- @menu
- * Parser Combinators::
- * Parser Generator::
- @end menu
- @node Parser Combinators
- @subsection Parser Combinators
- @itemize
- @item
- @code{stis-parser}
- @itemize
- @item
- git repository at GitLab: @uref{https://gitlab.com/tampe/stis-parser}
- @end itemize
- @end itemize
- @node Parser Generator
- @subsection Parser Generator
- @itemize
- @item
- @code{nyacc}: Not Yet Another Compiler Compiler
- @itemize
- @item
- git repository at Savannah: @uref{https://savannah.nongnu.org/projects/nyacc}
- @item
- documentation: @uref{https://www.nongnu.org/nyacc/nyacc-ug.html}
- @end itemize
- @end itemize
- @node Plotting
- @section Plotting
- @itemize
- @item
- @code{guile-plotutils}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/spk121/guile-plotutils}
- @item
- website: @uref{https://www.gnu.org/software/plotutils/plotutils.html}
- @end itemize
- @end itemize
- @node Protocols
- @section Protocols
- @itemize
- @item
- X protocol
- @itemize
- @item
- @code{guile-xcb}
- @itemize
- @item
- git repo: @uref{https://github.com/mwitmer/guile-xcb}
- @end itemize
- @end itemize
- @end itemize
- @node Regular expressions
- @section Regular expressions
- @itemize
- @item
- IrRegular Expressions (Scheme, R[4567]RS)
- @itemize
- @item
- website: @uref{http://synthcode.com/scheme/irregex}
- @end itemize
- @end itemize
- @node REPL
- @section REPL
- @itemize
- @item
- @code{guile-colorized}
- @itemize
- @item
- git repository at GitLab: @uref{https://gitlab.com/NalaGinrut/guile-colorized}
- @end itemize
- @end itemize
- @node RPC
- @section RPC
- @itemize
- @item
- @code{guile-xmlrpc}: @uref{https://github.com/aconchillo/guile-xmlrpc}
- @end itemize
- @node Scientific computing and mathematics
- @section Scientific computing and mathematics
- @itemize
- @item
- GNU Scientific Library (GSL)
- @itemize
- @item
- GNU software page @uref{https://www.gnu.org/software/gsl/}
- @item
- git repository at Savannah: @uref{http://savannah.gnu.org/projects/gsl/}
- @item
- wikipedia page: @uref{https://en.wikipedia.org/wiki/GNU_Scientific_Library}
- @item
- Guile bindings: @uref{http://community.schemewiki.org/?gee-guile-gsl}
- @end itemize
- @item
- Matrix multiplication
- @itemize
- @item
- @code{guile-ffi-cblas}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/lloda/guile-ffi-cblas}
- @end itemize
- @end itemize
- @item
- Symbolic mathematics
- @itemize
- @item
- @code{guile-scmutils}
- @itemize
- @item
- website: @uref{https://www.cs.rochester.edu/~gildea/guile-scmutils/}
- @end itemize
- @end itemize
- @item
- Guile implementation of symbolic mathematics shown in SICP
- @itemize
- @item
- Does this exist?
- @end itemize
- @end itemize
- @menu
- * Interaction with the Jupyter ecosystem::
- @end menu
- @node Interaction with the Jupyter ecosystem
- @subsection Interaction with the Jupyter ecosystem
- @itemize
- @item
- @code{guix-kernel}
- @itemize
- @item
- git repository at gitlab.inria.fr: @uref{https://gitlab.inria.fr/guix-hpc/guix-kernel}
- @item
- blog post: @uref{https://hpc.guix.info/blog/2019/10/towards-reproducible-jupyter-notebooks/}
- @end itemize
- @item
- @code{guile-kernel}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/jerry40/guile-kernel}
- @end itemize
- @end itemize
- @node TUI development
- @section TUI development
- @itemize
- @item
- @code{guile-ncurses}
- @itemize
- @item
- GNU software page: @uref{https://www.gnu.org/software/guile-ncurses/}
- @item
- git repository at GitHub: @uref{https://github.com/guildhall/guile-ncurses}
- @end itemize
- @end itemize
- @node Unit Testing
- @section Unit Testing
- @itemize
- @item
- SRFI-64 (@uref{https://srfi.schemers.org/srfi-64/srfi-64.html})
- @itemize
- @item
- GNU software Guile manual page: @uref{https://www.gnu.org/software/guile/manual/html_node/SRFI_002d64.html}
- @end itemize
- @item
- @code{srfi-64-driver}
- @itemize
- @item
- git repository at: ???
- @item
- website: @uref{https://ngyro.com/software/srfi-64-driver.html}
- @end itemize
- @end itemize
- @node Version control systems
- @section Version control systems
- @itemize
- @item
- @code{guile-git}
- @itemize
- @item
- git repository at GitLab: @uref{https://gitlab.com/guile-git/guile-git}
- @end itemize
- @item
- @code{guile-semver}
- @itemize
- @item
- git repository at ngyro: @uref{https://git.ngyro.com/guile-semver}
- @item
- website at: @uref{https://ngyro.com/software/guile-semver.html}
- @end itemize
- @end itemize
- @node Web Development
- @section Web Development
- @menu
- * Web frameworks::
- * Tooling / Additional libraries::
- * Static website generators::
- * Template engine::
- * Interaction with services::
- * Web application examples::
- @end menu
- @node Web frameworks
- @subsection Web frameworks
- @itemize
- @item
- Guile's standard library's web module for dealing with web stuff:
- @itemize
- @item
- GNU software manual page: @uref{https://www.gnu.org/software/guile/manual/html_node/Web.html}
- @end itemize
- @item
- Guile's standard library's web server:
- @itemize
- @item
- GNU software manual page: @uref{https://www.gnu.org/software/guile/manual/html_node/Web-Server.html}
- @item
- blog post about the performance of Guile's web server: @uref{http://wingolog.org/archives/2012/03/08/an-in-depth-look-at-the-performance-of-guiles-web-server}
- @item
- documentation as generic interface for web server implementations: @uref{https://www.gnu.org/software/guile/manual/html_node/Web-Server.html}
- @item
- examples for usage for creating a web app: @uref{https://www.gnu.org/software/guile/manual/html_node/Web-Examples.html#Web-Examples}
- @end itemize
- @item
- GNU Artanis web application frameweork
- @itemize
- @item
- GNU software page: @uref{https://www.gnu.org/software/artanis/}
- @item
- git repository at GitLab: @uref{https://gitlab.com/NalaGinrut/artanis}
- @item
- official website of the GNU Artanis project: @uref{https://web-artanis.com/}
- @item
- blog post about GNU Artanis: @uref{https://dev.to/heroku/an-ode-to-gnu-artanis-2gn3}
- @item
- manual:
- @itemize
- @item
- @uref{https://www.gnu.org/software/artanis/manual/manual.html}
- @item
- @uref{https://www.gnu.org/software/artanis/manual/html_node/}
- @end itemize
- @item
- blog post about using GNU Artanis in a docker container: @uref{https://nalaginrut.com/archives/2019/09/18/install%20gnu%20artanis%20with%20docker}
- @end itemize
- @item
- SPH web app
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/sph-mn/sph-web-app}
- @end itemize
- @item
- tekuti
- @itemize
- @item
- The git repository unfortunately seems to be dead, because it was hosted at gitorious, a now disfunct git host. Where can the code be found?
- @item
- blog post about tekuti: @uref{https://wingolog.org/projects/tekuti/}
- @end itemize
- @end itemize
- @node Tooling / Additional libraries
- @subsection Tooling / Additional libraries
- @itemize
- @item
- JSON
- @itemize
- @item
- @code{guile-json}
- @itemize
- @item
- on GitHub: @uref{https://github.com/aconchillo/guile-json}
- @item
- on savannah: @uref{http://savannah.nongnu.org/projects/guile-json/}
- @end itemize
- @end itemize
- @item
- @code{guile-www}
- @itemize
- @item
- git repository at savannah non-gnu: @uref{http://savannah.nongnu.org/projects/guile-www/}
- @end itemize
- @item
- @code{guile-webutils}
- @itemize
- @item
- git repository at notabug.org: @uref{https://notabug.org/cwebber/guile-webutils}
- @end itemize
- @end itemize
- @enumerate
- @item
- Authorization and authentication
- @itemize
- @item
- @code{guile-oauth}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/aconchillo/guile-oauth}
- @end itemize
- @item
- @code{guile-jwt}
- @itemize
- @item
- git repository on GitHub: @uref{https://github.com/aconchillo/guile-jwt}
- @end itemize
- @end itemize
- @end enumerate
- @node Static website generators
- @subsection Static website generators
- @itemize
- @item
- @code{guile-haunt}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/guildhall/guile-haunt}
- @end itemize
- @item
- SPH static website generator
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/sph-mn/sph-web-publish}
- @end itemize
- @end itemize
- @node Template engine
- @subsection Template engine
- @itemize
- @item
- Guile's standard library SXML implementation
- @itemize
- @item
- GNU software manual: @uref{https://www.gnu.org/software/guile/manual/html_node/SXML.html}
- @item
- Basically your templates become functions or macros.
- @item
- The structure of your document is kept as Scheme data structures.
- @itemize
- @item
- This avoids having parse the document as a long string into an internal data structure to perform semantic transformations.
- @item
- It enables pattern matching without resorting to things like regular expressions and similar shenanigans.
- @end itemize
- @end itemize
- @end itemize
- @node Interaction with services
- @subsection Interaction with services
- @itemize
- @item
- @code{guile-mastodon}
- @itemize
- @item
- git repository at framagit: @uref{https://framagit.org/prouby/guile-mastodon}
- @item
- documentation at: @uref{https://framagit.org/prouby/guile-mastodon/-/blob/master/doc/guile-mastodon.org}
- @end itemize
- @end itemize
- @node Web application examples
- @subsection Web application examples
- @itemize
- @item
- @code{scheme-todomvc}:
- @itemize
- @item
- git repo: @uref{https://github.com/amirouche/scheme-todomvc}
- @item
- demo: @uref{https://amirouche.github.io/scheme-todomvc/}
- @end itemize
- @end itemize
- @node Window manager
- @section Window manager
- @itemize
- @item
- @code{guile-wm}
- @itemize
- @item
- git repo: @uref{https://github.com/mwitmer/guile-wm}
- @end itemize
- @end itemize
- @node Working with code
- @section Working with code
- @itemize
- @item
- @code{guile-syntax-highlight}
- @itemize
- @item
- website: @uref{https://dthompson.us/projects/guile-syntax-highlight.html}
- @item
- repository: seems to be missing
- @end itemize
- @end itemize
- @node Other
- @section Other
- @itemize
- @item
- @code{guile-lib}
- @itemize
- @item
- git repository at non-GNU Savannah: @uref{http://git.savannah.nongnu.org/cgit/guile-lib.git}
- @item
- website at: @uref{https://www.nongnu.org/guile-lib/}
- @end itemize
- @item
- SPH website:
- @itemize
- @item
- It has some Guile library and project descriptions and links.
- @item
- @uref{http://sph.mn/}
- @end itemize
- @end itemize
- @node Programming paradigm
- @chapter Programming paradigm
- @menu
- * "Object-oriented programming"::
- * Relational programming::
- * Functional programming::
- @end menu
- @node "Object-oriented programming"
- @section "Object-oriented programming"
- @itemize
- @item
- GOOPS
- @itemize
- @item
- GNU software manual page: @uref{https://www.gnu.org/software/guile/manual/html_node/GOOPS.html}
- @end itemize
- @end itemize
- @menu
- * Prototype based::
- @end menu
- @node Prototype based
- @subsection Prototype based
- @itemize
- @item
- Shelf
- @itemize
- @item
- git repo: @uref{https://github.com/mwitmer/Shelf}
- @end itemize
- @end itemize
- @node Relational programming
- @section Relational programming
- @itemize
- @item
- @code{minikanren}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/ijp/minikanren}
- @item
- miniKanren uncourse by William Byrd: @uref{https://duckduckgo.com/?q=minikanren+uncourse&t=h_&iax=videos&ia=videos&iai=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DiCuVTGWNU3s}
- @end itemize
- @end itemize
- @node Functional programming
- @section Functional programming
- @itemize
- @item
- Monad implementations
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/ijp/monad}
- @end itemize
- @end itemize
- @node Tools
- @chapter Tools
- @menu
- * Project management::
- @end menu
- @node Project management
- @section Project management
- @itemize
- @item
- @code{guile-hall}
- @itemize
- @item
- git repository at GitLab: @uref{https://gitlab.com/a-sassmannshausen/guile-hall}
- @end itemize
- @item
- @code{homebrew-guile}: @uref{https://github.com/aconchillo/}
- @end itemize
- @menu
- * Package managers::
- @end menu
- @node Package managers
- @subsection Package managers
- @itemize
- @item
- @code{guildhall}
- @itemize
- @item
- git repository at GitHub: @uref{https://github.com/ijp/guildhall}
- @end itemize
- @end itemize
- @node Blogs
- @chapter Blogs
- @itemize
- @item
- @uref{https://hyper.dev/}
- @item
- @end itemize
- @node Other (3)
- @chapter Other
- @itemize
- @item
- SPH lib, collection of Guile libraries
- @itemize
- @item
- website: @uref{http://sph.mn/computer/software/sph-lib.html}
- @end itemize
- @end itemize
- @node Other lists of Guile software
- @chapter Other lists of Guile software
- @itemize
- @item
- official GNU Guile website library list: @uref{https://www.gnu.org/software/guile/libraries/}
- @item
- SPH list: @uref{http://sph.mn/foreign/guile-software.html}
- @end itemize
- @node Videos / Talks / Presentations
- @chapter Videos / Talks / Presentations
- This category is still empty. Help filling it with interesting GNU Guile related videos, talks or presentations!
- @bye
|