Discussione:
Pubblicare cose (continuando: FORTRAN è mio nemico)
(troppo vecchio per rispondere)
f***@gmail.com
2013-12-05 23:30:10 UTC
Permalink
Ciao NG,

incredibile dictu, ho quasi finito il progetto di cui parlavo nel thread
citato in subject.

Adesso ve lo posso dire, si tratta di una implementazione dello SGP; meglio,
è tutta unserie di algoritmi di calcolo per robe spaziali, principalmente
VSOP87 (di cui già esistono varie implementazioni), SGP4/8 (di SGP4/SDP4 non
esiste niente in C, e a parte un algoritmo di riferimento in FORTRAN tutti
gli altri danno risultati erronei, e di SGP8/SDP8 c'è praticamente nulla,
non riesco neppure a testarlo per bene), e algortitmini vari per date,
angoli, etc., che servono ai precedenti ma tant'è, stanno lì.
La cosa che mi rende abbastanza fiero dell'ambaradan è che è commentata e
documentata, cosa rarissima per questo genere di cose, e anche esperti del
settore non sono contenti di leggere una sparata di seni, coseni e costanti
misteriose senza sapere a che servono.

Comunque..
Vorrei pubblicare tutta questa roba, sotto GPL: come fare?

Tre domande per voi:

- il codice attualmente sta sotto git sul mio server, ma a fare un accesso
pubblico non ci penso proprio :) per cui dovrei trovare un servizio tipo
googlecode o sourceforge e fare un sync. Quale scegliereste?
- gli algoritmi sono di per se banali, ma per capirli è stata una fatica
immensa: specialmente dello SGP non esiste documentazione decente, per cui
vorrei, per qualsiasi curioso come me, tirare su qualche pagina web spiegando
l'algoritmo senza che perda un mese a cercare articoli (per questo
probabilmente chiederò a qualche fisico, che la relatività generale non è
proprio il mio forte) - questa roba la vorrei fare self-hosted, ma poi non
saprei come tracciare visite/download in maniera coerente (non che ci saranno
chissà quali numeri, ma tant'è).
- non so che forma dare al tutto. Una libreria è comoda per uno sviluppatore
ma non per tutti gli altri (curiosi o svogliati), un applicativo a lato che
fa test potrebbe andare, ma dovrebbe essere scaricato, compilato etc., cosa
che non tutti fanno: forse un webservice con qualche opzione, ma sarebbe
lavoro in più.. suggerimenti?

Ciao!
Massimo Soricetti
2013-12-06 03:34:53 UTC
Permalink
Post by f***@gmail.com
Adesso ve lo posso dire, si tratta di una implementazione dello SGP;
<applausi> \_!!!!_/ </applausi>
(cos'è?) :-)
Post by f***@gmail.com
- il codice attualmente sta sotto git sul mio server, ma a fare un accesso
pubblico non ci penso proprio :) per cui dovrei trovare un servizio tipo
googlecode o sourceforge e fare un sync. Quale scegliereste?
Tanto tempo fa ho pubblicato qualcosa anch'io su sourceforge, non è
difficile e puoi distribuire .EXE, .DLL, .ZIP ecc... ogni formato scegli
va bene. Altri non ne conosco... ma visto che hai tutto sotto GIT penso
ti convenga dare un'occhiata a GIThub?
Post by f***@gmail.com
- gli algoritmi sono di per se banali, ma per capirli è stata una fatica
immensa: specialmente dello SGP non esiste documentazione decente, per cui
vorrei, per qualsiasi curioso come me, tirare su qualche pagina web spiegando
l'algoritmo
Sourceforge ti mette(va?) a disposizione pure quelle. Ti dà perfino un
forum per le discussioni con gli user, alla più brutta fai un post in
evidenza lì dentro.

Rinnovo gli <applausi> \_!!!!_/ </applausi> per il fatto della buona
documentazione: tanta roba opensource che c'è in giro sarebbe pure
interessante, se solo ti dicesse che fa e come cappero la devi usare.
Post by f***@gmail.com
- non so che forma dare al tutto. Una libreria è comoda per uno sviluppatore
ma non per tutti gli altri (curiosi o svogliati), un applicativo a lato che
fa test potrebbe andare, ma dovrebbe essere scaricato, compilato etc., cosa
che non tutti fanno: forse un webservice con qualche opzione, ma sarebbe
lavoro in più.. suggerimenti?
Distribuire entrambi? Metti uno .ZIP con docs + sorgenti e uno .ZIP con
lib + docs + test.exe. Poi gli user scaricheranno quello che gli pare.

Magari usa CMAKE invece di make/automake, così chi vorrà compilare tutto
con un compilatore/piattaforma diversi dai tuoi sacramenterà un pò
meno... ;-)
f***@gmail.com
2013-12-07 02:13:31 UTC
Permalink
Tanto tempo fa ho pubblicato qualcosa anch'io su sourceforge, non �
difficile e puoi distribuire .EXE, .DLL, .ZIP ecc... ogni formato scegli
va bene. Altri non ne conosco... ma visto che hai tutto sotto GIT penso
ti convenga dare un'occhiata a GIThub?
Sourceforge l'ho usato tempo fa anch'io, ma non so com'è oggigiorno. Github
ci sto buttando un occhio.
Sourceforge ti mette(va?) a disposizione pure quelle. Ti d� perfino un
forum per le discussioni con gli user, alla pi� brutta fai un post in
evidenza l� dentro.
Sì, anch'io l'avevo pure usata. Ho visto che ci sono ancora, addirittura!
Distribuire entrambi? Metti uno .ZIP con docs + sorgenti e uno .ZIP con
lib + docs + test.exe. Poi gli user scaricheranno quello che gli pare.
Magari usa CMAKE invece di make/automake, cos� chi vorr� compilare tutto
con un compilatore/piattaforma diversi dai tuoi sacramenter� un p�
meno... ;-)
Eh, per un power user degli autotools come me passare a cmake sarebbe un
pianto, ma già che ci sono butterò un occhio pure a quello, visto mai
imparassi qualcosa di nuovo, una volta tanto ;)

Ciao!
Massimo Soricetti
2013-12-07 11:49:32 UTC
Permalink
Post by f***@gmail.com
Eh, per un power user degli autotools come me passare a cmake sarebbe un
pianto, ma già che ci sono butterò un occhio pure a quello, visto mai
imparassi qualcosa di nuovo, una volta tanto ;)
Io l'ho adottato al posto di make e compagnia quando mi sono reso conto
che i make fatti per linux non andavano su win e viceversa. Dopo un pò
di smadonnamenti ho tagliato la testa al toro.

Sì, Cmake non fa i test che fanno gli autotools, ma comunque i test non
ti risparmiano di metterci le mani per sistemare quello che manca,
perciò li trovo abbastanza inutili. O meglio, IMHO sono utili passando
fra due diverse versioni di Unix, che hanno circa le stesse cose... da
unix a win c'è troppa differenza e conviene andare pesantemente di
preprocessore, quindi autoconf mi serve a poco.
Manlio Perillo
2013-12-06 11:45:56 UTC
Permalink
Post by f***@gmail.com
Ciao NG,
incredibile dictu, ho quasi finito il progetto di cui parlavo nel thread
citato in subject.
Adesso ve lo posso dire, si tratta di una implementazione dello SGP;
meglio, è tutta unserie di algoritmi di calcolo per robe spaziali,
principalmente VSOP87 (di cui già esistono varie implementazioni),
SGP4/8 (di SGP4/SDP4 non esiste niente in C, e a parte un algoritmo di
riferimento in FORTRAN tutti gli altri danno risultati erronei, e di
SGP8/SDP8 c'è praticamente nulla, non riesco neppure a testarlo per
bene), e algortitmini vari per date, angoli, etc., che servono ai
precedenti ma tant'è, stanno lì.
Complimenti, anche se non ho idea di cosa siano!
Post by f***@gmail.com
[...]
Comunque..
Vorrei pubblicare tutta questa roba, sotto GPL: come fare?
Tieni conto che la GPL, nel caso di librerie, è abbastanza vincolante.
Post by f***@gmail.com
- il codice attualmente sta sotto git sul mio server, ma a fare un
accesso pubblico non ci penso proprio :) per cui dovrei trovare un
servizio tipo googlecode o sourceforge e fare un sync. Quale
scegliereste?
github.
Post by f***@gmail.com
- gli algoritmi sono di per se banali, ma per capirli è stata una fatica
immensa: specialmente dello SGP non esiste documentazione decente, per
cui vorrei, per qualsiasi curioso come me, tirare su qualche pagina web
spiegando l'algoritmo senza che perda un mese a cercare articoli (per
questo probabilmente chiederò a qualche fisico, che la relatività
generale non è proprio il mio forte) - questa roba la vorrei fare
self-hosted, ma poi non saprei come tracciare visite/download in maniera
coerente (non che ci saranno chissà quali numeri, ma tant'è).
github offre un wiki.
Puoi scrivere la documentazione in un formato come reStructuredText o
asciidoc, e poi convertirlo per la pubblicazione.

Per reStructuredText esiste Sphinx, e, come servizio di hosting per la
documentazione generata, readthedocs.
Post by f***@gmail.com
- non so che forma dare al tutto. Una libreria è comoda per uno
sviluppatore ma non per tutti gli altri (curiosi o svogliati),
Libreria sicuramente, con test annessi.
Post by f***@gmail.com
un
applicativo a lato che fa test potrebbe andare,
Puoi usare il protocollo TAP nella test suite, e poi usare uno dei test
harness esistenti (come prove).
Io faccio così, anzi mi sono scritto una mia libreria per l'unittesting,
ma ne esistono altre che hanno TAP come backend.
Post by f***@gmail.com
ma dovrebbe essere
Se non sanno scaricare e compilare un programma hanno dei seri problemi.
Forse usano Windows, ma in questo caso hanno problemi ben più seri :).

Semplicemente scrivi il supporto per la compilazione facile da usare, ed
assicurati che funzioni anche su Windows.
Post by f***@gmail.com
forse un webservice
con qualche opzione, ma sarebbe lavoro in più.. suggerimenti?
Offri un servizio maggiore agli utilizzatori se magari scrivi dei wrapper
per dei linguaggio più semplici da usare (come Python, ma non ho idea di
chi debba usare la tua libreria e come).
Post by f***@gmail.com
Ciao!
Ciao Manlio
f***@gmail.com
2013-12-07 02:25:40 UTC
Permalink
Post by Manlio Perillo
Complimenti, anche se non ho idea di cosa siano!
Se è per questo io non ho idea di a chi potrebbero mai servire! :D
Post by Manlio Perillo
Post by f***@gmail.com
Vorrei pubblicare tutta questa roba, sotto GPL: come fare?
Tieni conto che la GPL, nel caso di librerie, è abbastanza vincolante.
Già, in effetti se scelgo di pubblicare una libreria meglio lgpl..
Post by Manlio Perillo
Post by f***@gmail.com
- il codice attualmente sta sotto git sul mio server, ma a fare un
accesso pubblico non ci penso proprio :) per cui dovrei trovare un
servizio tipo googlecode o sourceforge e fare un sync. Quale
scegliereste?
github.
Visto che sia tu che massimo l'avete scritto subito ho già iniziato a
guardarmi come funziona.
Post by Manlio Perillo
github offre un wiki.
Puoi scrivere la documentazione in un formato come reStructuredText o
asciidoc, e poi convertirlo per la pubblicazione.
Per reStructuredText esiste Sphinx, e, come servizio di hosting per la
documentazione generata, readthedocs.
Perfetto!
Post by Manlio Perillo
Libreria sicuramente, con test annessi.
Sì, anche a me sembrava la cosa più logica..
Post by Manlio Perillo
Puoi usare il protocollo TAP nella test suite, e poi usare uno dei test
harness esistenti (come prove).
Io faccio così, anzi mi sono scritto una mia libreria per l'unittesting,
ma ne esistono altre che hanno TAP come backend.
Eh, in questo caso solo per i test ho dovuto scrivere un applicativo a parte
(il cui output prevede un giudizio umano), per cui non so bene come
implementare il tutto (per capirci, non è solo un fatto di fare match con
l'output, essendo roba numerica c'è a chi può stare bene un certo errore su
un certo caso ma non in un altro, etc. - non è facile intuire dove mettere
la soglia).
Post by Manlio Perillo
Se non sanno scaricare e compilare un programma hanno dei seri problemi.
Forse usano Windows, ma in questo caso hanno problemi ben più seri :).
eheheh, in fondo in fondo sono d'accordo :D
Post by Manlio Perillo
Semplicemente scrivi il supporto per la compilazione facile da usare, ed
assicurati che funzioni anche su Windows.
magari per windows metterò a disposizione anche un binario, così alle perse
ci si prende quello.
Post by Manlio Perillo
Offri un servizio maggiore agli utilizzatori se magari scrivi dei wrapper
per dei linguaggio più semplici da usare (come Python, ma non ho idea di
chi debba usare la tua libreria e come).
Anche questa è una buona idea, non c'avevo pensato. Solitamente una "libreria
C" è utilizzabile da praticamente tutti i linguaggi senza bisogno di scrivere
alcun wrapper: probabilmente basta fare un po' attenzione alle firme delle
funzioni esportate, ma sicuramente è poca cosa - sarà la prossima cosa che
proverò!

Ciao!
Manlio Perillo
2013-12-07 10:19:39 UTC
Permalink
Post by f***@gmail.com
[...]
Post by Manlio Perillo
Puoi usare il protocollo TAP nella test suite, e poi usare uno dei test
harness esistenti (come prove).
Io faccio così, anzi mi sono scritto una mia libreria per
l'unittesting,
ma ne esistono altre che hanno TAP come backend.
Eh, in questo caso solo per i test ho dovuto scrivere un applicativo a
parte (il cui output prevede un giudizio umano), per cui non so bene
come implementare il tutto (per capirci, non è solo un fatto di fare
match con l'output, essendo roba numerica c'è a chi può stare bene un
certo errore su un certo caso ma non in un altro, etc. - non è facile
intuire dove mettere la soglia).
Personalmente io organizzarei i test con una serie di file di input
<function>.in, e output atteso <function>.out.

Una volta che hai questi file, puoi gestire con calma come tollelare i
vari errori. E questo lo puoi fare in uno script che esegue la test suite
passandogli l'input via stdin, e comparando lo stdout con l'output atteso.
Script che puoi generare in modo automatico da un template (io faccio
tutto usando POSIX make e shell, su windows ci sono i porting).
Post by f***@gmail.com
[...]
Anche questa è una buona idea, non c'avevo pensato. Solitamente una
"libreria C" è utilizzabile da praticamente tutti i linguaggi senza
Si, con FFI; ma devi avere una libreria dinamica.
Io preferisco le librerie statiche.
Post by f***@gmail.com
[...]
Ciao Manlio
Massimo Soricetti
2014-03-25 16:58:41 UTC
Permalink
Hai poi pubblicato la tua libreria? Ho dato un'occhiata poco fa a Github
ma non ho visto niente (non che abbia capito come pensano che si possa
trovare qualcosa sul loro sito, quelli di github...)
f***@gmail.com
2014-03-25 17:37:11 UTC
Permalink
Post by Massimo Soricetti
Hai poi pubblicato la tua libreria? Ho dato un'occhiata poco fa a Github
ma non ho visto niente (non che abbia capito come pensano che si possa
trovare qualcosa sul loro sito, quelli di github...)
Sì, un po' di tempo fa, qui:
https://github.com/fmassei/libamspace

purtroppo per un periodo mi sono fermato (causa ricerca di un nuovo lavoro) e
la cosa non è più andata avanti. Ero rimasto allo studio di una particolare
conversione di coordinate, e a riprenderla ci metterei un po'. Se vuoi dare
una mano sei il benvenuto :D

Ciao!
Massimo Soricetti
2014-03-25 23:55:41 UTC
Permalink
Se vuoi dare una mano sei il benvenuto :D
Hmm... non ti prometto niente, lo faccio più per vedere come funziona
GitHub :-)

In questo momento sto lottando con l'app di github per fare una copia
locale di libamspace, quando ci riesco poi ti dico...
Andrea D'Amore
2014-03-26 07:50:54 UTC
Permalink
Post by Massimo Soricetti
(non che abbia capito come pensano che si possa
trovare qualcosa sul loro sito, quelli di github...)
Vai su github, c'è il campo di ricerca in alto, scrivi "fmassei" e dai invio,
vengono fuori una corrispondenza in un file e un utente, premi sull'utente e
vedi il suo profilo tra cui i repository.

Anche io non lo trovo il massimo della fruibilità perché l'interfaccia è molto
"compatta" e spesso sacrifica le etichette per le icone, però si fa presto a
farci l'occhio.
--
Andrea
Massimo Soricetti
2014-03-27 21:27:29 UTC
Permalink
Post by Andrea D'Amore
Vai su github, c'è il campo di ricerca in alto, scrivi "fmassei" e dai invio,
vengono fuori una corrispondenza in un file e un utente, premi
sull'utente e
vedi il suo profilo tra cui i repository.
Questo va bene se uno cerca l'utente, ma se uno cerca un progetto
(repository) non serve a 'na mazza :-(
Andrea D'Amore
2014-03-28 07:31:48 UTC
Permalink
Post by Massimo Soricetti
Questo va bene se uno cerca l'utente, ma se uno cerca un progetto
(repository) non serve a 'na mazza :-(
No, anzi la ricerca presenta proprio i risultati nel nome e nella descrizione
del repository, il problema è che qualche termine da cercare lo devi pur avere.
Io sono andato con il nome utente perché non ricordavo il resto della
discussione ma se cerchi "space related algorithms" viene fuori.

Ripeto all'inizio l'interfaccia di GH non mi piaceva ma come tante cose basta
farci l'abitudine.
--
Andrea
Continua a leggere su narkive:
Loading...