#dev 2020-11-14
2020-11-14 UTC
[CrowderSoup], expl0iter, [hibs], [tantek] and [KevinMarks] joined the channel
# @aaronpk ↩️ Meanwhile, Pingback has nothing to do with Atom/RSS and has always worked with arbitrary web pages. That too was XML for literally no good reason, so that’s been simplified into the Webmention protocol (twitter.com/_/status/1327432691453620224)
# @coreload ↩️ XML was just due to the era. It works, especially if the tools do it on my behalf. I deal with it all the time in the world of insurance. "It is what it is."
But you've given me some things to think about re: WebMention, etc. and I appreciate it. Good feedback. (twitter.com/_/status/1327434272551014400)
ShinyCyril joined the channel
# KartikPrabhu aaronpk++ very nice discussion on that twitter
# [KevinMarks] thread re retro web tech https://twitter.com/LeaVerou/status/1327403615162691585?s=20
# @LeaVerou @hdv I wish there was a successor to XSLT. Lots of ugliness, but lots of good ideas there too. (twitter.com/_/status/1327403615162691585)
# KartikPrabhu what is XSLT
# Loqi It looks like we don't have a page for "XSLT" yet. Would you like to create it? (Or just say "XSLT is ____", a sentence describing the term)
# [KevinMarks] I'm resisting defining XSLT as "now you have three problems"
# KartikPrabhu lol
j12t joined the channel
# jacky I'm looking at https://www.iana.org/assignments/link-relations/link-relations.xhtml (since sl007 linked it)
# [KevinMarks] this is great https://wizardzines.com/zines/css/
# [KevinMarks] is that the obsolete version of http://microformats.org/wiki/existing-rel-values
nickodd joined the channel
reed, geoffo, [Raphael_Luckom] and gxt joined the channel
# miklb I really love what Simon is doing with Datasette for his personal data https://simonwillison.net/2020/Nov/14/personal-data-warehouses/
dhanesh and [KevinMarks] joined the channel
# [KevinMarks] Datasette is a lovely piece of work
[jgmac1106] and dhanesh joined the channel
# [jgmac1106] I can not find a cd ripper that works anymore on MacOS anyone have recommendations....all my old one's either don't work or have unsigned developer certifications....this will be last Mac I buy I think...don't tell me what I can and can't install...my computer not yours
# sebbu https://www.freac.org/ should work
# [jgmac1106] sebbu++ I could not find the setting anywhere, many just not updated for the chipset and the others were throwing the warning
# [jgmac1106] "*“XLD” cannot be opened because the developer cannot be verified."*
# [jgmac1106] I have third party allowed. I will keep searching...all my old rippers no longer work
# [jgmac1106] "Identified developers are registered with Apple and can optionally upload their apps to Apple for a security check" ..getting it on all my old favs
# petermolnar CDDB was taken down?!
# [jgmac1106] I feel like if I breakdown and use iTunes Apple wins....plus I would have to open ITunes (or whatever they call it now...I hate that app soooo much)
# [jgmac1106] feedb shuts down every now and again hopefully this time not for good
# [jgmac1106] maybe more permanent: https://en.wikipedia.org/wiki/Freedb
# [jgmac1106] but you can http://gnudb.org/howto.php
# [KevinMarks] iTunes is a decent ripper (or at least used to be, I haven't used it in a while) - fast and good quality.
carolline joined the channel
# [jgmac1106] Yeah Kevin gonna break down and launch it...just think every UX 101 book should be called "How not to Build iTunes"
aaronpk, nolith and MrHyde joined the channel
smacko[m], jeremycherfas, kitt, nolith[m] and dietricha joined the channel
# Loqi RelMeAuth is an authentication method that uses personal URL for identity that rel-me link to established OAuth provider(s) to perform the actual authentication https://indieweb.org/RelMeAuth
[Raphael_Luckom] joined the channel
# [Raphael_Luckom] Feel free to ignore if this is a rtfm question, but what are the use cases for indieauth? Specifically, in a conversation yesterday, [aaronpk] made a pretty good case that you might not need to require AAA on a webmention endpoint specifically, which might mean that you could do a lot of interactions without any auth at all. Where does indieauth fit relative to that?
nolith[m], [chrisaldrich], Salt[m] and aviraldg joined the channel
# petermolnar funny fkery I recently ran into: my ISP doesn't seem to support ipv6 from/for my home. I enabled nginx on ipv6, and suddenly any service that runs on the google cloud started 404-ing on any resource on my site. How the hell does one debug this?
jamietanna[m] joined the channel
samwilson joined the channel
jalcine[m] and khimaros[m] joined the channel
# [Raphael_Luckom] neat. My understanding of oauth is that the service would need to decide to support indieauth as an identity source. So the idea is that indieauth could be like a distributed oauth, but it's most relevant to shared web apps like the wiki (possibly not my web site, unless I wanted a private section or something)
fwe joined the channel
# [Raphael_Luckom] cool thanks! seems like an interesting capability for down the road. I'm trying to pick the things to work on _first_
# [Raphael_Luckom] I think I'm going to start with webmentions and see how far it gets me 🙂
Pete[m], mayakate[m], nekr0z, smacko[m], fredcy_, [Ian_Forrester], Gyuri, JK_na, [scottgruber], [Simon_Willison], [jeremycherfas], schmudde, h0p3, DavidDylanThomas, maxwelljoslyn, [tonz], nickodd and [kimberlyhirsh] joined the channel
# [jgmac1106] I didn't realize vlc had a ripper built in...wow...and that is my daily driver as a media player
# petermolnar vlc is nearly as flexible as ffmpeg, but it has a gui
[schmarty], [tipoqueno] and Asher1 joined the channel
# [Simon_Willison] ↩️ We’ve been using Handbrake successfully
# [Simon_Willison] ↩️ oh but that was on Windows, haven’t run it on Mac
# [jeremycherfas] Glad to be of service. And it rips to flac, if that’s your thing.
[tantek], [hibs], tracydurnell, tomasparks, [Sue_Hanen], [calumryan], jenna, [KevinMarks] and [Ana_Rodrigues] joined the channel
# [jgmac1106] Pages to me is such a better design tool than Word
# [jgmac1106] Build me away to save games on archive.org on my website or anywhere
# [jgmac1106] my kids just can never finish Carmen San Diego...something happens before they finish
# [jgmac1106] can't get the javascript to work (I think) as I play with hibs variable font stuff: https://jgregorymcverry.com/indiewebpoetry
[manton] and miklb_ joined the channel
# Zegnat GWG, I have just pushed my new IndieAuth code to GitHub to try and pressure myself into finishing the code this weekend. So in case you are interested in what I am doing: https://github.com/Zegnat/php-mindee
GWG and [jeremycherfas] joined the channel
# [jgmac1106] ↩️ yeah might just break down and get a windows laptop to help with streaming stuff.
carla-paloma, [scottgruber], carolline, [Sue_Hanen], [Simon_Willison], reed, [dmitshur], saunders and [tantek] joined the channel; nickodd left the channel
# oenone hey.. I'm trying to use webmentiond for webmentions, but I get 405 when I try to submit a mention manually using curl. does anybody have an idea why or how I can make it log more verbosely?
reed and fwe joined the channel
# Loqi webmentiond is a standalone webmention receiver using Go and SQLite with backend UI https://indieweb.org/webmentiond
[Raphael_Luckom] and ShinyCyril joined the channel
[KevinMarks] joined the channel
miklb and GWG_ joined the channel
# [Simon_Willison] Datasette has plugins that add all kinds of different output formats - there are plugins to export data as Atom, ICS and YAML - here’s the atom one: https://github.com/simonw/datasette-atom
# [Simon_Willison] If I was going to build an IndieWeb export plugin, what format should I target first? ActivityPub/ActivityStreams? Something else?
# [Simon_Willison] The key idea would be that you could define a SQL query against any shape of data you like which results in content exported in a specific format. Here’s the query that defines the Atom feed for my til.simonwillison.net site for example https://til.simonwillison.net/til/feed
# [Simon_Willison] Add `.atom` to that page to get the output from the plugin
[jgmac1106] joined the channel
# [Simon_Willison] Datasette will happily turn any SQL query into an HTML table
# [KevinMarks] And add h-feed and h-entry?
# [KevinMarks] You have special handlers for different column types, right?
# [Simon_Willison] oh that’s interesting - I could do a plugin that gives you HTML with microformats (as opposed to the default table)
# [Simon_Willison] this is a demo which runs ALL of the Datasette plugins in one place: https://latest-with-plugins.datasette.io/github/commits - see the bit that says “This data as json, yaml, json-preview, copyable, CSV”
# [KevinMarks] What do you do for permalinks in atom?
# [Simon_Willison] You define those in your SQL as the `atom_id` column https://til.simonwillison.net/til/feed
# [Simon_Willison] ```SELECT
# [Simon_Willison] 'tag:til.simonwillison.net,2020-04-30:' || path as atom_id,
# [Simon_Willison] title as atom_title,
# [Simon_Willison] 'https://til.simonwillison.net/til/til/' || path as atom_link,
# [Simon_Willison] created_utc as atom_updated,
# [Simon_Willison] html as atom_content_html,
# [Simon_Willison] 'Simon Willison' as atom_author_name,
# [Simon_Willison] FROM
# [Simon_Willison] 'https://simonwillison.net/' as atom_author_uri
# [Simon_Willison] til
# [Simon_Willison] order by
# [Simon_Willison] limit
# [Simon_Willison] created_utc desc
# [Simon_Willison] 15```
# [Simon_Willison] the ICS plugin works in a similar way:
# [Simon_Willison] ```select
# [Simon_Willison] start as event_dtstart,
# [Simon_Willison] title as event_name,
# [Simon_Willison] events
# [Simon_Willison] description as event_descriptionfrom
# [Simon_Willison] order by
# [Simon_Willison] start```
# [Simon_Willison] ```select
# [Simon_Willison] title as event_name,
# [Simon_Willison] from
# [Simon_Willison] start as event_dtstart,
# [Simon_Willison] description as event_description
# [Simon_Willison] events
# [Simon_Willison] order by start```
# [Simon_Willison] https://github.com/simonw/datasette-ics#usage
# [Simon_Willison] I’m nervous about outputting HTML directly because of XSS risks, but I have plugins which avoid that by running their output through Mozilla’s Bleach library
# [KevinMarks] Need to check if that wipes mf2 classes (a lot of cleansing apis remove rel values, for example)
# [KevinMarks] So the permalinks for TIL go to markdown files? Those get htmlified on the fly?
# [Simon_Willison] The https://til.simonwillison.net/ used to render markdown using a Python markdown renderer from a custom template tag, but that wasn’t covering all of the weird extensions in GFM - so I ended up having my build script pass the markdown through their rendering API instead
# [Simon_Willison] https://til.simonwillison.net/til/til has a `body` column with markdown and a `html` column with that markdown rendered
# [Simon_Willison] In that case I can trust the HTML because it’s from me, but I need to watch out for people writing SQL queries that generate HTML, e.g. https://til.simonwillison.net/til?sql=select+%27%3Cscript%3Ealert%28%22bad%22%29%3C%2Fscript%3E%27+as+html
# [KevinMarks] Markdown is one of the things that is lossy wrt classes and rels
# [Simon_Willison] I do have a fun Datasette plugin called datasette-json-html that lets you define SQL queries that return JSON which is then safely converted into HTML - I could potentially add an allow-list of CSS classes to that
# [Simon_Willison] https://github.com/simonw/datasette-json-html
# [Simon_Willison] https://datasette-json-html.datasette.io/demo?sql=select+%27%5B%0D%0A++++%7B%0D%0A++++++++%22href%22%3A+%22https%3A%2F%2Fsimonwillison.net%2F%22%2C%0D%0A++++++++%22label%22%3A+%22Simon+Willison%22%0D%0A++++%7D%2C%0D%0A++++%7B%0D%0A++++++++%22href%22%3A+%22https%3A%2F%2Fgithub.com%2Fsimonw%2Fdatasette%22%2C%0D%0A++++++++%22label%22%3A+%22Datasette%22%0D%0A++++%7D%0D%0A%5D%27
# [KevinMarks] I am intrigued by the datasette approach to pesos as I have years of this stuff too
leg joined the channel
# [Simon_Willison] I honestly think the most interesting bit of it is using SQLite files as the intermediary - everything else becomes so much easier once you can run SQL queries, so I’ve put a ton of effort into making it as easy as possible to get stuff into SQLite - https://sqlite-utils.readthedocs.io/
# [Simon_Willison] All of the Dogsheep tools are built on that library
# [KevinMarks] Yes, that's it. I have been wary of database tax, but not trying to coerce into a single schema is interesting. You don't update the tables, just replace them in effect?
# [Simon_Willison] Depends on the application - if I have all of the data available in another format (e.g. HealthKit zip file of XML) then I throw away the tables (or delete the entire .db file) and recreate it entirely
# [Simon_Willison] if I’m pulling from the Twitter or Swarm API I just pull the most recent X entries and update the table in place
# [Simon_Willison] but yeah, a great thing about SQLite is that since a database is just a file it costs nothing to create a new one, or throw away an old one. I mainly treat them like ephemeral caches
# petermolnar I have one for site search
# petermolnar built & gathered from text files, fts4, served with a few lines of PHP after that
# [Simon_Willison] Yeah full-text search is definitely an appreciated feature of SQLite - it ships with pretty decent search built-in!
# [Simon_Willison] It’s not quite Elasticsearch but it’s Good Enough for most of my projects
# [Simon_Willison] has porter stemming, BM25 ranking - and since it’s SQL you can combine it with other WHERE clauses for advanced filtering
# petermolnar well, unless one needs stemming in Hungarian, but that is a whole different problem
# [Simon_Willison] yeah, if you want that you need to write a custom stemmer (probably in C) 😕
# petermolnar snowball (?) could handle it, but it's been a while since I played with that
# [Simon_Willison] https://github.com/abiliojr/fts5-snowball perhaps
# [Simon_Willison] oh wow i hadn’t seen that before,
# [Simon_Willison] ```CREATE VIRTUAL TABLE books USING fts5(author, title, description, tokenize = 'snowball spanish');```
# [Simon_Willison] only 11 commits, not clear if it’s actively maintained and works against most recent SQLite though
[hibs], [calumryan], geoffo and schmudde joined the channel; jmac left the channel
# [Simon_Willison] OK so I think I’ve figured out indieauth.com - I can construct this URL: https://indieauth.com/auth?me=simonwillison.net&client_id=https://simonwillison.net/&redirect_uri=https://simonwillison.net/
# [Simon_Willison] I then auth with indieauth.com and it redirects me to `https://simonwillison.net?code=…`
# [Simon_Willison] Then I take that code and do this:
# [Simon_Willison] ```httpx.post("https://indieauth.com/auth", data=
{"code": code, "redirect_uri": "https://simonwillison.net/", "client_id": "https://simonwillison.net/"}
)```# [Simon_Willison] And if the HTTP status code is 200 I know that the code was valid!
# [Simon_Willison] useful starting point for me
# jamietanna[m] <[Simon_Willison] "useful starting point for me"> Great stuff!
Guest2 joined the channel
# [KevinMarks] try https://indielogin.com/ as aaron is trying to separate the protocol from the site
geoffo joined the channel