IRC channel logs

2024-11-03.log

back to list of logs

<sneek>chrislck: Greetings :D
<chrislck>sneek: botsnack
<sneek>:)
<k4r4b3y>hello wingo hello all
<k4r4b3y>For the last couple of days, I have been trying to test https://www.wingolog.org/projects/tekuti/ on my local debian bookworm OS
<k4r4b3y>I have guile-3.0 and git installed
<k4r4b3y>However, when I follow the short and simple instructions written in the abovementioned blog post, I get errors and I get no page that shows up on localhost:8080
<k4r4b3y>It seems like the wingolog.org's instructions for getting tekuti up are insufficient
<k4r4b3y>anyone can help me with getting tekuti working? I would like to switch from ikiwiki to tekuti
<k4r4b3y>I've also opened an issue on tekuti's github repo last month, but it got no answer: https://github.com/wingo/tekuti/issues/4
<marmalade>Is it possible to use libraries from other languages using Guile? It looks like I probably want to investigate the FFI, but it seems like that's only related to C. I'm specifically interested in utilizing Python and Go libraries.
<marmalade>Basically I'd like to be able to reference something like the NetworkX library in Python, or the Charm libraries in GO.
<msavoritias>marmalade as an inspiration maybe you can look at https://github.com/guile-rs/guile-rs
<mwette>I have a guile module for auto-coding ffi for C libraries: https://www.nongnu.org/nyacc/ ; look at the FFI Helper Manual
<marmalade>msavoritias: What am I looking at here? I'm guessing it's bindings written in the source language? I'm not familiar with the process of writing bindings, unfortunately. I mean, I guess it's possible to do I just figured that it would be beyond my skill level to do so.
<marmalade>But I'm not sure how complex it actually is, and if it would be reasonable to be like 'Hey I want to use these functions from this Python library, I just need to do a quick .py file to expose those functions to Guile'
<marmalade>or if it's like something that is like a whole ass undertaking
<marmalade>mwette: tyty will look at this as well.
<marmalade>Ah, but wouldn't this be exclusive to C libs?
<marmalade>Yeah I mean msavoritias looking at the src/bindings.rs file, this is like waaaaay over my skill level if this is what I'd need to do to utilize like a simple Python lib
<rlb>marmalade: calling python functions directly from guile likely won't be simple. Depending on the granularity of your problem (and no idea whether it'd be worth it), you might also of course be able to run python as a subprocess and ask it to do work for you over a socket (or stdin/stdout, etc.).
<rlb>Guessing that's not viable for you, though.
<singpolyma>You could maybe use python-on-guile depending on complexity
<dsmith>Generally, most language-to-language interop goes through a C abi.
<singpolyma>Would be nice to get part that though if we got more mature frontends for guile
<singpolyma>past*
<rlb>ACTION laments all the (nontrivial, backward-incompatible) things python changes in any given A.B, ... release -- imagines trying to track that in a dialect...
<mwette>singpolyma: By "more mature frontends" do you mean non-scheme language compilers?
<singpolyma>Yes.
<mwette>So, ideally, you want to have a data model that works across these languages. I stopped working on javascript because (beyond interest) I didn't know how to do that. I recently was successful in creating gobject classes in guile, so I could be thinking about that more. Is gobject a good general object model? The other choice is goops I guess, but I'm not crazy about that choice.
<rlb>mwette: you mean (to the extent that I understand it -- only cursorily) something like the graalvm/truffle/espresso arrangement (if you know about that)
<rlb>?
<rlb>iiuc, designed to share data structures among hosted languages (js, python, ruby, etc.).
<singpolyma>Yes exactly
<mwette>not sure about those. I should look.
<singpolyma>I've played with the js, python, and Lua languages for guile. I think the whole thing holds promise but obviously getting any of them to maturity is a lot of work
<k4r4b3y>hello again. earlier today I wrote about my problems with setting up tekuti, a static site generator written in guile scheme
<k4r4b3y>I would like to seek help with this issue again: https://github.com/wingo/tekuti/issues/4
<marmalade>rlb yeah, that's just kinda where I'm getting stuck: I want to use scheme for a lot of projects, but often times I run into the problem of 'oh, Guile doesn't actually have a library for this or one that is comparable' which is frustrating
<marmalade>mostly cos like, I also don't have the capacity to make up for that
<marmalade>if i did it'd be fine - I wish I had the ability to make a python interface to provide for everyone to use, but I am currently not that guy lmao
<marmalade>I mean how do you guys handle it? Often times it's like "Ah I want to do this thing - it'd be nice if I could just have it represented as a simple tui" and then realizing there kinda isn't that library for it, which makes me think like 'oh maybe I just have to do this in python' or something else
<marmalade>but i mean maybe i'm just taking the wrong approach re: using guile for stuff?
<rlb>...depending on your goals/tastes/needs and/or availability of the jvm, I've found clj to be a nice alternative for cases where I need a lot of stuff that guile doesn't have readily available, but suitability depends on the domain there.
<marmalade>clj - clojure?
<rlb>yes -- it has a similar "large" repository of existing (often fairly solid) libs for "things", and I'd rather work in clj when I can, than python. Though I still end up with python sometimes, depending.
<rlb>(I'm also able to write things in C for guile when I need to, so that provides another set of options, but generally not for anything too complex.)
<rlb>...and of course for clj, you have to be willing/able to rely on the jvm (for clj/jvm at least), with all that implies.
<marmalade>oof
<dsmith>k4r4b3y, wingo does shows up here about every 2-3 months or so.... Might take a while..
<k4r4b3y>dsmith: thx for the heads up
<k4r4b3y>I will be lurking in here
<k4r4b3y>but the "he shows up every 2-3 months" part is demoralizing
<k4r4b3y>I have been frantically searching the web about a tekuti setup tutorial for the past 2 weeks on and off
<k4r4b3y>it is amazing that no-one has written one
<dsmith>Why not try emailing direct?
<k4r4b3y>I found 3 or 4 blogs that has used tekuti as a blogging generator before
<k4r4b3y>dsmith: I have emailed wingo, but no response
<dsmith>He's a busy guy
<k4r4b3y>yeah
<dsmith>So, another path is to leave a message with the bot. "sneek, later tell wingo ......"
<k4r4b3y>is sneek, a bot?
<dsmith>Indeed
<dsmith>sneek, botsnack
<sneek>:)
<k4r4b3y>how do I use it? Like you did above?
<dsmith>Yep. just like that, but with your message for the ....
<k4r4b3y>sneek, later tell wingo that I would appreciate help on https://github.com/wingo/tekuti/issues/4
<sneek>Okay.
<k4r4b3y>Thx
<dsmith>np
<k4r4b3y>how does the bot work? it gets triggered once wingo posts in this room?
<dsmith>yes, for "later tell" commands, when that person speaks in a channel, the bot delivers the message.
<dsmith>There is a help command.
<k4r4b3y>got it
<k4r4b3y>thanks again dsmith, I appreciate it
<dsmith>Sure!
<rlb>marmalade: on the plus side, an uberjar you made 10+ years ago might still mostly work fine with current jvms (saw case of that mentioned recently) -- of course, potentially irrelevant if the program is susceptible to important security issues/attacks.
<daviid>sneek: guile-software?
<sneek>From what I understand, guile-software is http://sph.mn/foreign/guile-software.html Send an email to tantalum, <sph at posteo dot eu> to make changes or post a new project.
<daviid>marmalade: fwiw ^^
<daviid>k4r4b3y: i would email guile-user, asking if anyone can help in setting up and run tekuti on a local machine ...
<daviid>sneek: later tell mwette you would use GObject if you want/need to write and maintain a lib that you want/need other languages to write a GI binding to - but if the lib of your dream can be written as a pure scheme lib, unless you'd be forced to write it as a portable lib to other scheme, goops is by all mean the way to go
<sneek>Okay.
<dsmith>!uptime
<sneek>I've been serving for one month and 3 days
<sneek>This system has been up 14 weeks, 6 days, 9 hours, 32 minutes