Sul Python Discourse ho notato che il mio abbonamento RSS alla categoria users (rinominata “Help”) aveva smesso di funzionare. Tentando di ripristinarlo, l’abbonamento https://discuss.python.org/c/users/7.rss genera un contenuto non valido che il mio lettore (Thunderbird) non carica. Fallisce la validazione al W3C:
Poiché quel controllo fallisce, presumo di non essere l’unico interessato.
Il problema sembra essere un carattere inaspettato nel post https://discuss.python.org/t/beginner-help-with-concatenating-arrays/36226. Nel feed, la sottostringa incriminata appare come b'N \\x02x KSQT' (due occorrenze).
Ovviamente non è colpa dell’utente, ma di Discourse per averlo permesso, e la soluzione a lungo termine spetta a voi.
Un amministratore lì (o almeno uno sviluppatore core di CPython) mi ha suggerito di segnalarlo qui.
PrettyText.format_for_email(p.cooked, p)
=> "<p>Hello, I’m currently trying to follow a machine learning pipeline described by a paper. Essentially, I need to create an input matrix which is shaped N x KSDT sized. The paper describes this as: “Here k, ks, kd, and ksd are labels and not indices, and all terms are understood to be matrices of the same N x KSQT size, so e.g. Xk is not an N x K sized matrix, but the full-size N x KSQT matrix with N x k unique values replicated KSQ times”.</p>\n<p>Right now, I have three following np.arrays:<br>\nbias_block: (348, 2, 151), bias_contrast: (348, 5, 151), and bias_decision: (348, 2, 151).<br>\nMy understanding is that in order to combine these three arrays, I would need a final size of (348, 20, 20, 20, 151). However, I’m really struggling on how to combine these arrays. Could someone please help with this, thanks a lot.</p>"
Non capisco cosa ci sia di sbagliato in quella stringa… la N x KSDT non sembra avere nulla di nascosto.
(nota che il post è ora uscito da “latest”, quindi rss è tornato a funzionare come effetto collaterale, ma vorrei certamente risolvere questo problema.
Suppongo che questa sia la riga da cui ha origine:
Ho guardato il post prima oggi. C’era un codice esadecimale unicode che era qualcosa come \u0026#x2610; (\u0026#x2610). Non è il codice esatto però. Stava comparendo nel contenuto grezzo del post stamattina (https://discuss.python.org/posts/121311.json). Sembra che sia stato modificato da allora.
La prima occorrenza va bene, ma la seconda e la terza contengono un byte 0x02 (quando salvo da questo URL usando Firefox e leggo il file come byte usando Python), come nel mio primo post. validator.w3.org mi ha dato abbastanza contesto per individuare il primo 0x02 nella riga.
U+002610 è solo il simbolo della casella che qualcosa sta sostituendo (ma non nell’RSS).
Ho chiesto che il post venisse riparato poiché non vedevo come avrei potuto far funzionare la mia sottoscrizione senza. Posso inviarti i miei byte salvati se può aiutare.
Secondo le specifiche RSS 2.0, il feed deve essere conforme a XML 1.0. E secondo le specifiche XML 1.0, ci sono diversi caratteri di controllo che non sono validi.
La PR seguente è un primo tentativo di affrontare questo problema: