Wikisource:Domande tecniche

Domande tecniche
il punto d'incontro e discussione tra geek e niubbi!
archivio
Filing cabinet icon.svg
2021
2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
2021 2022 2023 2024 2025 2026 2027 2028 2029 2030

Nuvola filesystems folder open.png Categoria: Domande tecniche Bar  Nuvola apps noatun.png Domande tecniche 

Pagina dedicata a domande sul software, sulla struttura organizzativa del progetto, sulla visualizzazione e i bug dei browser. Le comunicazioni Tech News verranno ricevute su Wikisource:Domande tecniche/Tech News.

initial-letterModifica

Come farlo funzionare? in Pagina:La difesa della razza, n.1, Tumminelli, Roma 1938.djvu/14 sarebbe bello avere la Q iniziale alta quattro righe, ma <span style="initial-letter: 4">Q</span> non fa nulla. --.mau. (disc.) 12:36, 31 gen 2021 (CET)

colonne della stessa larghezza?Modifica

Pagina:La difesa della razza, n.1, Tumminelli, Roma 1938.djvu/5 ha le colonne di larghezza diversa, si può fare qualcosa? --.mau. (disc.) 11:01, 3 feb 2021 (CET)

mi rispondo da solo: ogni colonna comincia con |style="width:33%"| anziché ||. --.mau. (disc.) 15:30, 3 feb 2021 (CET)

Struttura dell'hOCR di archive.orgModifica

Lo schema è a 6 livelli:

<div class="ocr_page" id="page_000099" title="image "/tmp/Quel_che_vidi_e_quel_che_intesi_jp2/Quel_che_vidi_e_quel_che_intesi_0099.jp2"; bbox 0 0 3411 4583; ppageno 0">
   <div class="ocr_carea" id="block_000099_000000" title="bbox 3379 2158 3387 2286">
    <p class="ocr_par" id="par_000099_000000" lang="ita" title="bbox 3379 2158 3387 2286" xml:lang="ita">
     <span class="ocr_line" id="line_000099_000000" title="bbox 3379 2158 3387 2286; x_size 20; x_descenders 5; x_ascenders 5">
      <span class="ocrx_word" id="word_000099_000000" title="bbox 3379 2158 3387 2286; x_wconf 95; x_fsize 21">
       <span class="ocrx_cinfo" title="x_bboxes 0 1196 0 1204; x_conf 95"> </span>
      </span>
     </span>
    </p>
   </div>

Quindi un livello page, un livello area, un livello paragraph, un livello line, un livello word e un livello char.

Rispetto allo schema del file _djvu.xml, riunisce in un solo livello i due livelli column e region di _djvu.xml, e ha, in più, il livello char (opzionale e non utilizzato in _djvu.xml).

Nel titolo di ogni livello è presente un bbox con le quattro coordinate del testro compreso nel livello. Nel livello page il bbox registra le dimensioni dell'intera pagina. Nel titolo dei vari livelli sono registrati altri dati, alcuni dei quali di significato ignoto; notevole, una novità, il fatto che la lingua del testo è registrata a livello paragraph. Nessuno di questi parametri aggiuntivi è presente nel file _djvu.xml.

L'esplorazione inizia adesso. --Alex brollo (disc.) 15:28, 3 feb 2021 (CET)

Usare diversamente iwpageModifica

Immaginiamo che Iwpage sia utilizzato per una procedura completamente diversa (in attesa che venga attivata la transclusione interprogetto): come "aggancio" per un allineamento del codice wiki vero e proprio della pagina locale con quella remota (dopo allineamento, il codice iwpage potrebbe essere conservato, ma disabilitato inserendolo in un commento html). Vedo alcuni problemi (es. le differenze fra template locali e remoti, la necessità di scoraggiare le modifiche locali incoraggiando invece le modifiche nel sito remoto), ma forse.... Farò una prova, sotto eis l'allineamento potrebbe essere questione di un singolo click. Opera test: quella a cui sto lavorando, Lettere (Campanella). --Alex brollo (disc.) 10:05, 13 feb 2021 (CET)

Tento l'implementazione di uno script di allineamento la->it, per ora via bot; si tratta di conservare, all'interno della pagina itwikisource, l'indicazione alla pagina/alla sezione da allineare, e di copiare il relativo codice da la.wikisource a it.wikisource, sostituendo l'eventuale codice già presente. E' inoltre necessario scoraggiare le modifiche manuali del codice allineato, incoraggiando invece la modifica del codice su la.wikisource (anche rivedendo eventuali template incompatibili). --Alex brollo (disc.) 07:14, 6 mar 2021 (CET)
Primi vagiti dello script operando su {{Iwpage}}; adesso è la volta del più impegnativo {{IwpageSection}}. Pagine test, la pagina 64 e pagina 65 delle Lettere di Campanella. Naturalmente il meccanismo deve permettere il controllo della versione della pagina su lawikisource, e allineare il testo all'eventuale nuova versione. Se pol far. @Candalua: sono matto? --Alex brollo (disc.) 08:51, 8 mar 2021 (CET)
Ci siamo, adesso si tratta di provare provare correggere riprovare. Un problema: come faccio a dissuadere energicamente un utente di passaggio a toccare il codice clonato (e in particolare i commenti html che lo delimitano)? Alex brollo (disc.) 20:21, 8 mar 2021 (CET)

Alex brollo, non è male come idea, tanto la transclusione interprogetto stai sicuro che non la faranno mai... Ti rispondo qui anche per quello che chiedevi al Bar, dato che la risposta è molto tecnica: il SAL è per forza 0% (pagina che non richiede rilettura), se metti all'inizio delle pagine un template {{Allineatore}}, che produca, in nsPagina, semplicemente un marcatore del tipo: <span id="allineatore"/> e niente in ns0, possiamo poi usarlo per mostrare via javascript un messaggio più specifico nel box del SAL 0%, es: "Questa pagina non richiede alcuna rilettura. Il testo è stato caricato automaticamente da la.wikisource.org. Si prega di non modificare.". Poi se riesci anche a proteggere la pagina dopo averla scritta (vedi mw:Manual:Pywikibot/protect.py), sarebbe la cosa ideale. Se vuoi posso dare a BrolloBot i diritti di amministratore in via temporanea così fai qualche prova. Can da Lua (disc.) 14:34, 9 mar 2021 (CET)

@Alex brollo, riesci a mettere in {{Allineatore}} anche il dominio da cui proviene il testo? Es. {{Allineatore|la}} Can da Lua (disc.) 10:15, 10 mar 2021 (CET)
  Fatto. Confermo che lo script sente la versione e quindi allinea solo se il codice sorgente è stato modificato; penso che aggiungerò, nel commento, anche il level della versione aggiornata. Al termine delle rifiniture metterò lo script online sotto Progetto:Bot/Programmi in Python per i bot, in attesa (se ci riesco) di una versione javascript. Alex brollo (disc.) 12:25, 10 mar 2021 (CET)

Problemi tecnici di La difesa della razzaModifica

@Candalua, Ruthven Ho sperimentato in La difesa della razza la possibilità di effettuare una transclusione in blocco dell'intero fascicolo, rinunciando alla suddivisione in singoli articoli; e nel tentativo ho trovato, e provato a risolvere, alcune inattese difficoltà tecniche.

  1. è indispensabile che tutti i blocchi div (aggiungo: e anche table) delle singole pagine siano regolarmente chiusi nella stessa pagina;
  2. il template Indice sommario può contenere, nel campo nome=, un link con ancora esplicita, in modo che venga correttamente linkato un articolo all'interno della transclusione in blocco del fascicolo, ma è stato necessario modificare il codice di Modulo:Content, che aggiungeva automaticamente un'ancora pagename[numero pagina].
  3. l'aggiunta del link ad ancore appropriate funzionerebbe in automatico, ma confligge con il controllo che impedisce di avere, per lo stesso Sommario, link alla stessa pagina. --Alex brollo (disc.) 07:08, 6 mar 2021 (CET)
@Alex brollo In risposta a 1) si può passare di bot e chiudere tutto il chiudibile. Per 3), guardando questa tua modifica, mi sembra che il titolo del capitolo punti correttamente all'áncora; il link al numero di pagina punta ― correttamente ― alla pagina. Ma forse ho capito male la tua nota... --Ruthven (msg) 08:23, 6 mar 2021 (CET)
@Ruthven Punto 1: non è semplice, il codice è abbastanza confuso e complesso, penso si faccia prima a rivedere le pagine critiche, basandosi sugli errori evidenziati dalla transclusione (e approfittando per "modernizzare" il codice, ho visto, mettendoci le mani, che si può fare di meglio). Punto 2: tu adesso vedi il risultato della soluzione del problema, grazie alla modifica, già effettuata, del codice di Modulo:Content; ma su tale modifica aspetto il parere di Candalua, non vorrei che la toppa fosse peggiore del buco. Al momento, non ho evidenziato conseguenze negative, anzi: è sparito un piccolo, ma fastidioso problema. Ma queste modifiche sono spesso insidiose. Alex brollo (disc.) 09:35, 6 mar 2021 (CET)

Match per pdfModifica

@Candalua, Ruthven Mooolto tempo fa avevo scaricato il python originale che esegue il "segmento match" del tool Match and Split, avevo perfino capito come funzionava (innumerevoli i neuroni logorati), e l'avevo adattato per eseguire il match anche da un pdf (con strato testo, naturalmente). Poi un lungo stop nel momento del passaggio python 2.7 -> python 3.8 di pywikibot; pian piano ho adattato gli script, ma il "mio" Match l'avevo lasciato fra le cose da fare. L'ho ripreso in mano, ho faticosamente convertito il codice, e qualche minuto fa il match da un pdf ha camminato.

Metterò lo script, grossolano così com'è, nella nostra raccolta Progetto:Bot/Programmi in Python per i bot. Se a qualcuno interessa, cercherò di documentarlo.... altrimenti, mi risparmio la fatica. In breve: richiede python 3.8, richiede un modulo parseTemplate.py (verificherò che sia caricato, o lo integrerò), al momento è fatto per correre sotto Idle, e deve trovare le routine djvutxt di DjvuLibre e pdftotext di xpdf. --Alex brollo (disc.) 07:53, 7 giu 2021 (CEST)

@Alex brollo Interessante! :-) si potrebbe provare con questo testo di cui manca il testo a fronte! Potrei provarci io, ma fra qualche giorno... --Paperoastro (disc.) 15:45, 7 giu 2021 (CEST)
@Paperoastro Per come funziona il match, la vedo durissima, su un testo settecentesco. Match si appoggia su una sequenza, anche breve, di parole con caratteri perfettamente corrispondenti (non ragiona per similitudine), e in genere l'OCR su questi testi antichi ha poche parole perfettamente corrispondenti.... un test estremamente difficile: non hai, sottomano, un testo almeno ottocentesco? Intanto dò un occhio a cosa c'è nello strato testo del libro che mi proponi. Alex brollo (disc.) 16:52, 7 giu 2021 (CEST)
@Alex brollo capito. In effetti i testi di Toaldo che sto inserendo (fine settecento) non hanno un OCR precisissimo... Se Torricelli non è fattibile, converto il pdf in djvu e lo do in pasto al M&S classico... Purtroppo al momento non ho nulla sottomano, ma appena trovo qualcosa di più recente, avviso al bar. --Paperoastro (disc.) 17:05, 7 giu 2021 (CEST)
@Paperoastro Se M&S funziona con il djvu, funziona anche con il pdf. Il meccanismo di appaiamento è identico. Varia soltanto il sistema di estrazione dell'OCR paginato... l'appaiamento è un algoritmo con una logica semplice ma difficile, completamente al di fuori delle mie possibilita di ideazione e di implementazione.
Ci provo; vagamente intuisco che c'è un modo di superare la difficoltà, che in sostanza è determinata dalla confusione ſ - f. Ma forse non è insormontabile. Alex brollo (disc.) 06:32, 8 giu 2021 (CEST)
{ping|Paperoastro}} fatto La vaga intuizione funziava. Adesso M&S ignora la differenza ſ - f. e matcha. Ti metto il primo "vagito" in Utente:Paperoastro/Sandbox (testo teoricamente pronto per lo split, se il nome dell'Indice fosse Indice:Lezioni accademiche.pdf). Alex brollo (disc.) 08:19, 8 giu 2021 (CEST)
Ottimno! Su nap.source abbiamo parecchie commedie del Novecento il cui testo in formato TXT è rintracciabile facilmente. Se non abbiamo fretta, metto il test del Match sulla pila di cose da fare. Una documentazione (es: un tutorial passo, passo) sarebbe la benvenuta! --Ruthven (msg) 11:39, 8 giu 2021 (CEST)
{ping|Ruthven}} A dire il vero, quando ho tentato mi sono sempre messo in loop, la documentazione è un incontenibile stimolo a migliorare/trasformare/generalizzare, poi tocca tornare alla documentazione, poi ritorna la tentazione di cambiare... Io spero invece che qualcuno sappia e possa accedere al M&S canonico, e inserire le poche modifiche che lo script, pur nella sua primitività, dimostra possibili. Fra l'altro, la trovata oldText ha poche ore di vita, va digerita.
Comunque qualcosa metterò; per ora userò la pagina Discussioni progetto:Bot/Programmi in Python per i bot/ms.py (naturalmente il file python sta in Progetto:Bot/Programmi in Python per i bot/ms.py). Alex brollo (disc.) 15:47, 8 giu 2021 (CEST)

Problema con il nuovo tool OCR sotto eisModifica

@Candalua Sotto eis, il nuovo tool restituisce l'OCR della prima pagina aperta in modifica entrando in eis, e non quello dell'immagine corrente. Il gadget OCR google, invece, funziona correttamente anche sotto eis. Hai idea di dove sia lo script che genera il nuovo tool? Immagino che il problema stia nella lettura del dato che identifica la pagina corrente e da cui risale all'immagine giusta. --Alex brollo (disc.) 06:28, 1 lug 2021 (CEST)

Fatta una segnalazione/richiesta qui], ma temo che sia poco comprensibile: eis non è facile da spiegare in due parole. --Alex brollo (disc.) 06:52, 1 lug 2021 (CEST)
@Alex brollo Onestamente, dopo una chiaccherata su Telegram con gli sviluppatori, ho deciso di disabilitarlo da nap.source. Non ha senso avere uno strumento ancora in fase di sviluppo quando esiste un gadget preesistente perfettamente funzionante. Quando avrà passato la fase di beta testing (fra 3-4 anni, conoscendo i programmatori della Foundation), allora lo riabiliteremo penso. --Ruthven (msg) 21:21, 3 lug 2021 (CEST)
@Ruthven Non vorrei che i due vecchi gadget fossero disabilitati.... finchè funziano, ok. D'altronde, al momento, il nuovo tool sembra una semplice interfaccia utente verso i due tools OCR, quindi non dovrebbero esserci problemi. Ho un'idea che mi stuzzica, ma tento di resistere :-) Alex brollo (disc.) 11:36, 4 lug 2021 (CEST)

Due progetti strampalatiModifica

@Candalua, Ruthven Purtroppo, quando mi vengono delle strane idee, tendo a provarci. Per una volta chiedo il vostro parere, prima e non dopo.

1. Immaginando di infilare in localStorage un paio di cose, dovrebbe essere possibile scatenare un’azione dopo un certo intervallo dall'apertura di una pagina nsPagina che appartenga a un indice e a una certa lista di numeri, continuando fino a esaurimento della lista. L'azione di prova potrebbe essere il puro caricamento della pagina, con un effetto tipo presentazione. Un'azione più impegnativa potrebbe essere quella della creazione o modifica della lista di pagine.

2. sono abbastanza soddisfatto della procedura di allineamento interprogetto di nsPagina, attivo per ora solo su la.wikisource, ma al momento operante sotto python (e quindi inaccessibile per il 99% degli utenti). Ultimo allineamento: Indice:Vico, Giambattista – Le orazioni inaugurali, il De Italorum sapientia e le polemiche, 1914 – BEIC 1965567.djvu. Niente impedisce di convertire lo script di allineamento python in javascript, e attivare un controllo di versione e eventuale allineamento al momento dell'apertura di una pagina.

Sono matto? Sono matto e pericoloso? --Alex brollo (disc.) 07:31, 8 lug 2021 (CEST)

sì. --.mau. (disc.) 10:56, 9 lug 2021 (CEST)
LOL! Se lo avessi scritto io avresti potuto anche darmi (a ragione) dell'incompetente, ma se lo scrive .mau. direi che non ci sono dubbi. - εΔω 13:38, 9 lug 2021 (CEST)
@Alex brollo "in Python", vuoi dire che lo fai girare in locale e poi carichi il wikitesto modificato oppure che vai di bot? A me python sembra più sensato di js per programmare (ma non tutti i miei colleghi sono d'accordo). --Ruthven (msg) 10:39, 12 lug 2021 (CEST)
@Ruthven Uso il bot, sotto Idle lancio un'istruzione con il nome base dell'indice, pagina iniziale e finale e il bot si arrangia a fare controlli e modifiche. Una semplice lista di nomi base potrebbe consentirgli di allineare tutti gli Indici di un gruppo. Ma se al momento dell'apertura di una pagina in visualizzazione scattasse immediatamente un allineamento automatico via javascript, sarebbe meglio; meglio ancora se un click allineasse tutte le pagine di in Indice.
@.mau. Considero il sì come riferito a entrambe le domande? ;-) Alex brollo (disc.) 14:25, 12 lug 2021 (CEST)
@Alex brollo sulla prima sicuramente sì. Sulla seconda, dipende dai risultati. --.mau. (disc.) 15:29, 12 lug 2021 (CEST)
Ok, faccio un "redirect di ricerca di rogne", tanto non mi manca la fantasia. ;-) Alex brollo (disc.) 00:03, 15 lug 2021 (CEST)
... e visti gli intorcinamenti di script "stabili" (vedi sotto problema eis) non me ne manca nemmeno l'occasione :-( Alex brollo (disc.). 21:32, 15 lug 2021 (CEST)

Iwpage e includeonlyModifica

Ho l'impressione che Iwpage non gestisca correttamente includeonly. Vi è mai capitato? La soluzione (che devo ancora verificare ma che in nsPagina funzia): al posto di includeonly, usare il template Pt. Pagina in cui ho sbattuto contro il problema: la:Pagina:Salimbene de Adam – Cronica, Vol. II, 1942 – BEIC 1912533.djvu/469 (in cui normalmente uso il codice <includeonly>{{Indentatura}}</includeonly> con problemi, che si risolvono usando invece con {{Pt||{{Indentatura}}}}. --Alex brollo (disc.) 00:01, 15 lug 2021 (CEST)

Problemi!Modifica

@Candalua, Ruthven Il blocco di eis, segnalato da Carlomorino, si è presentato anche con il mio account. Vedo che in console compare un errore: "Uncaught TypeError: Cannot read property '$icon' of undefined", in "load.php?lang=it&modules=ext.wikiEditor&skin=vector&version=1pw9x". Il problema eis non si verifica in la.wikisource. Seguo una traccia, ma sono pessimista. Per una volta non dovrei essere io il colpevole.... in realtà eis viene caricato, ma il box di comando non viene visualizzato. --Alex brollo (disc.). 19:42, 15 lug 2021 (CEST)

Primi vagiti di soluzione: eis (versione test, quella che uso) è ricomparso modificando in due righe if (mw.user.options.get("gadget-barbaforcutanew")===null) in if (mw.user.options.get("gadget-barbaforcutanew")==false); possibile che sia stata cambiata a tradimento la struttura di mw.user.options? Boh.... L'errore $icon è incostante. --Alex brollo (disc.). 20:16, 15 lug 2021 (CEST)
Facendo un controllo rapido, ieri, 14 luglio, alle 22 circa, è stata caricata una nuova versione di Mediawiki [1]. Ho un forte dubbio che la causa sia quella <span style="font-family:Times; color:#219">Ruthven (msg) 21:35, 15 lug 2021 (CEST)
Al momento sono appagato che - lavorando di zappa - eis si sia risvegliato. Per ora mi basta; mi riprometto di fare le stesse modifiche su eis base. Ma aspetto un po'. Alex brollo (disc.). 21:41, 15 lug 2021 (CEST)
@Candalua, Ruthven Fatta la stessa modifica sul gadget eis "stabile", sembra che funzioni. @Carlomorino: mi confermi? --Alex brollo (disc.). 15:27, 17 lug 2021 (CEST)

──────────────────────────────────────────────────────────────────────────────────────────────────── Il notaio conferma