Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PolyTools per Windows #15

Closed
tajmone opened this issue Jan 24, 2018 · 9 comments
Closed

PolyTools per Windows #15

tajmone opened this issue Jan 24, 2018 · 9 comments

Comments

@tajmone
Copy link
Collaborator

tajmone commented Jan 24, 2018

Ciao @alvisespano ,

Ho appena rilasciato la prima release di PolyTools, una collezione di strumenti per lavorare con Polygen:

https://github.com/alvisespano/Polygen/raw/master/PolyTools-windows_2018-01-24.zip

Allo stato attuale, vi è un solo strumento, PolyEscapist, che converte stringhe Unicode in sequenze escape UTF-8 per Polygen. Semplifica molto la creazione di grammatiche contenenti caratteri non-Ascii: basta fare il copia e incolla e inserire la stringa cone escpaes nel sorgente della grammatica.

Spero di non aver fatto male ad averlo inserito nel repository. Si tratta di uno zippato davvero piccolo, ed ho pensato fosse in linea con quello già disponibile per i binari Polygen per Windows.

Ho creato uno zippato indipendente perché prevedo vari aggiornamenti a breve, sto per creare una nuova GUI per Polygen — una versione moderna di PolyGUI, ma dedicata all'uso delle grammatiche (non all'editing).

Per la homepage di PolyTools, ho pensato di usare una pagina nei nostri Wiki:

Oggi vedrò di creare i contenuti delle pagine, con qualche istruzione e screenshot.

@alvisespano
Copy link
Owner

alvisespano commented Jan 24, 2018 via email

@tajmone
Copy link
Collaborator Author

tajmone commented Jan 24, 2018

Perché obsoleto scusa? PolyEscapist semplica l'escaping facendolo in automatico, anziché doverlo fare a mano in un editor. Inoltre, molti editor hanno problemi a gestire lingue bidirezionali (p.es., non supportano operazioni di copia e incolla in arabo).

Riguardo l'italiano, PolyEscapist è un modo facile per creare stringhe con lettere accentate: si può digitare il testo con gli accenti e poi incollarlo nel sorgente della grammatica.

E comunque, quando avrai implementato l'Unicode mi basterà ritoccare un po' PolyEscapist per supportare anche gli unicode escapes.

Mi puoi ragguargliare su come funzionerà l'Unicode escape? Intendo dire, l'output di Polygen sarà in UTF-8? P.es., datto l'Unicode escape \u0200 (per È), nell'output finale sarà rappresentato in UCS-2 o in UTF-8?

@alvisespano
Copy link
Owner

alvisespano commented Jan 24, 2018 via email

@tajmone
Copy link
Collaborator Author

tajmone commented Jan 24, 2018

C'è qualcosa che mi sfugge?

No, per nulla; è solo che non mi avevi illustrato i dettagli.

L'UTF-8 è il formato ideale, sia per i sorgenti delle grammatiche che per l'ouput — quanto ai casi d'uso anomali (code pages, ecc) esistono applicazioni per filtrare (iconv, e simili).

Devo ancora capire come farò il supporto unicode perché devo ancora capire che libreria OCaml usare

Immagino che internamente le stringhe verranno rappresentate in UCS-8, e che UTF-8 verrà usato solo per la lettura dei sorgenti e per l'output. Mentre mi documentavo su OCaml, ho il vago ricordo di aver letto (o capito) che da una certa versione in poi OCaml supporti Unicode nativamente.

Perdonami, forse allora ho capito male cosa fa PolyEscapist. Non ho avuto un minuto per vederlo.

Sono convinto che PolyEscapist sarà sempre utile — inoltre, ho in mente altre funzionalità da implementare, che lo renderanno più interessante. Certo, quando con Polygen 1.0.7 le grammatiche sorgenti supporteranno caratteri UTF-8, sarà possibile usare direttamente i caratteri accentati italiani e altri caratteri Unicode accessibili da tastiera o da Alt-codes.

Ma PolyEscapist tornerà pur sempre comodo per convertire caratteri e lingue esotici (simboli e dingbats, lingue asiatiche e semitiche). A parte Notepad++, quasi tutti gli altri editor di codice che ho sul sistema non riescono a gestire operazioni con testo arabo o ebraico (incasinano la direzione, perdono le vocali, e altre mostruosità).

Inoltre, tieni conto che questo è un prototipo che, in futuro, farà parte di una Polygen GUI a cui sto lavorando. Però mi sono posto obbiettivi intermedi, ossia che prima creo piccoli applicazioni independenti:

  • una GUI per organizzare la propria collezione di grammatiche ed eseguirle con anteprime html, ecc. (come PolyGUI, ma senza editor)
  • vari strumenti utili (come PolyEscapist)

Dopodiché avrò già pronto il grosso del codice per poter creare un'applicazione unificata in cui far confluire il tutto sotto un'unica interfaccia, e aggiungergi anche un editor di gramamtiche. Ho ritenuto meglio questo approccio, che consente di condividere subito dei piccoli strumenti, che non imbarcarmi subito in un mega-progettono in cui per mesi non vi è nulla di fruibile.

Fremo per la nuova version 1.0.7!

PS: pubblica da qualche parte delle note su come attrezzare Win 10 per la compilazione OCaml (al momento non ci si capisce niente in rete, tanti articoli vecchi e/o contradditori, anche sui siti ufficiali).

@alvisespano
Copy link
Owner

alvisespano commented Jan 24, 2018 via email

@alvisespano
Copy link
Owner

Tristano, te lo chiedo esplicitamente perché mi sta facendo dannare l'anima: hai voglia di cimentarti un po' nel seguire questa guida per VSCode e OCaml?
reasonml/reasonml.github.io#195

Mi piacerebbe che provassi anche tu a crearti l'ambiente di sviluppo - non tanto perché pretendo che sviluppi, ma perché io non riesco a capire come cazzo farlo funzionare e vorrei avere un confronto con te.
Io sono arrivato ad avere, come dicevo prima, VSCode che mi builda ocaml e tutto, ma il problem reporting non funziona bene; e neanche il go-to-definition.
Nel branch dev trovi i file di configurazione di VSCode e di tutti i cazzi e mazzi che le plugin producono (scusa ma sono fuori di me, non ho mai visto un casino del genere in tutta la mia vita).
Spero possano aiutarti a configurarlo: se riesci a riprodurre lo stesso ambiente che ho io (e che, per ora, non riesco nemmeno io a riprodurre sul mio secondo computer) magari in due riusciamo a venirne fuori.
Se hai voglia eh :)

@tajmone
Copy link
Collaborator Author

tajmone commented Jan 24, 2018

ora ho colto appieno il perché ti piaceva "PolyGen", perché tutta la toolchain ha Poly come prefisso, e quindi la G maiuscola di Gen avrebbe semplicemente reso il PolyGen uno dei vari strumenti.

infatti. Questo tool in origine doveva chiamarsi "PolyStringer" (doveva generare anche escapes XML). "PolyStringer" era un gioco di parole che si sarebbe rifatto a "stringer", il termine americano per i reporter "sciacalli" che corrono a filmare incidenti, sparatorie, e altri fatti di cronaca nera. Ma poi ho deciso separare i due tool per XML e UTF-8 escapes, e mi sono imbattuto nel termine "escapist" (ancor migliore di "Stringer") come alternativa al più (informaticamente) ovvio "escaper". Dal dizionario de la Repubblica:

escapismo [e-sca-pì-ṣmo] s.m.

PSICOL — Condizione psicologica caratterizzata dalla tendenza alla fuga dalla realtà, dai problemi, dalle responsabilità

... ora, se questo non è ottimo resoconto degli aspetti ludici del Polygen, cos'altro lo è?

Sarebbe strafigo dare nomi buffi e tutti diversi, come se fossero generati, ai vari tool: tipo "FolpyGUI" o "PolpyEscapist". E' divertente ma è contrario ai miei principi di eleganza, quindi rimane solo una battuta tra me e te :D

concordo con l'eleganza, e confido altresì che il nocciolo duro dei PolyGeniani sia linguisticamente avvezzo a certi giri tortuosi di parole sì da non farsi sfuggiere le implicite possibilità ludiche a cui si presta il nome Polygen (con o senza "G" maiuscola) — come dire, non è certo quel tipo di PolyGente a cui sfuggirebbe il potenziale del «punto G».

@tajmone
Copy link
Collaborator Author

tajmone commented Jan 24, 2018

Tristano, te lo chiedo esplicitamente perché mi sta facendo dannare l'anima: hai voglia di cimentarti un po' nel seguire questa guida per VSCode e OCaml? reasonml/reasonml.github.io#195

Certo! Dammi solo un po' di tempo per leggere il tutto con calma e poi ti aggiorno.

@tajmone
Copy link
Collaborator Author

tajmone commented Jan 24, 2018

Ho spostato la discussione su OCaml e VSCode in Issue #16 (OCaml Setup Windows 10)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants