Scritto da
altg
utente che non utiene
il 2014-10-28 17:38:12.0 alle 2014-10-28 17:38:12.0
Trollate totali: 11540
> > > Nella sezione Preferenze ora puoi darti un titolo !
> > > Questo comparira' sotto il tuo avatar.
> > >
> > > Mi sono preso la liberta' di assegnarne qualcuno a caso
> >
> > Ad anynowhere i titoli li abbiamo dal 2003.
>
> Hei, qui usiamo Java, e come avrai letto e' anni luce indietro rispetto a Go, C#, .NET e perfino GWBasic
!
>
> > No, lo rammento cosi`, tanto per rompere i coglioni...
>
> Sono andato ad una presentazione di MPS
, ho pensato che potresti costruire il tuo editor per L.in.oleum 4.
Che cos'e`, una specie di IDE generico? Sto finendo in questi giorni un piccolo editor integrato nel front-end del compilatore... e` un po' nostalgico nello stile "phosphoric" che uso io, pero` il default sara` lo stile moderno.


Questo e` lo stile di default, meno nostalgico...


BTW il sorgente e` la prima parte di una libreria chiamata "rc" (resource collector), che implementa un sistema scope-based di garbage collection; la garbage collection e` un dettaglio d'implementazione, non e` connaturata al linguaggio. Si puo` avere, si puo` non avere, la si puo` implementare in un infinita` di modi a piacere. "rc" e` il default. "rc" fa anche da allocatore/deallocatore dell'heap, e ha un'interessante (secondo me) caratteristica di lasciare un po' di campi "utente" tra i metadati di ogni blocco di heap, dove si potrebbero conservare collegamenti per realizzare liste bidirezionali senza dover avviluppare gli elementi della lista in altri blocchi di heap. Oppure realizzare blocchi "consumabili", dove c'e` un contatore di testa e uno di coda che dicono dove iniziano e finiscono i dati, per realizzare arrays che si ridimensionano automaticamente e che possono essere trattate anche come liste LIFO o FIFO. Boh, poi vedo cosa ne viene fuori, intanto ho predisposto i campi.
> Dagli un'occhiata, avere un DSL potrebbe attrarre molti sviluppatori e finalmente assegnarti un posto nella storia
!
Mah, L.in.oleum e` un po' un mondo a parte, mi sa.
Ma penso che gli sviluppatori li attirera` comunque.
> > > Questo comparira' sotto il tuo avatar.
> > >
> > > Mi sono preso la liberta' di assegnarne qualcuno a caso

> >
> > Ad anynowhere i titoli li abbiamo dal 2003.

>
> Hei, qui usiamo Java, e come avrai letto e' anni luce indietro rispetto a Go, C#, .NET e perfino GWBasic
!>
> > No, lo rammento cosi`, tanto per rompere i coglioni...
>
> Sono andato ad una presentazione di MPS
, ho pensato che potresti costruire il tuo editor per L.in.oleum 4.Che cos'e`, una specie di IDE generico? Sto finendo in questi giorni un piccolo editor integrato nel front-end del compilatore... e` un po' nostalgico nello stile "phosphoric" che uso io, pero` il default sara` lo stile moderno.


Questo e` lo stile di default, meno nostalgico...

BTW il sorgente e` la prima parte di una libreria chiamata "rc" (resource collector), che implementa un sistema scope-based di garbage collection; la garbage collection e` un dettaglio d'implementazione, non e` connaturata al linguaggio. Si puo` avere, si puo` non avere, la si puo` implementare in un infinita` di modi a piacere. "rc" e` il default. "rc" fa anche da allocatore/deallocatore dell'heap, e ha un'interessante (secondo me) caratteristica di lasciare un po' di campi "utente" tra i metadati di ogni blocco di heap, dove si potrebbero conservare collegamenti per realizzare liste bidirezionali senza dover avviluppare gli elementi della lista in altri blocchi di heap. Oppure realizzare blocchi "consumabili", dove c'e` un contatore di testa e uno di coda che dicono dove iniziano e finiscono i dati, per realizzare arrays che si ridimensionano automaticamente e che possono essere trattate anche come liste LIFO o FIFO. Boh, poi vedo cosa ne viene fuori, intanto ho predisposto i campi.
> Dagli un'occhiata, avere un DSL potrebbe attrarre molti sviluppatori e finalmente assegnarti un posto nella storia
!Mah, L.in.oleum e` un po' un mondo a parte, mi sa.
Ma penso che gli sviluppatori li attirera` comunque.
Scritto da
altg
utente che non utiene
il 2014-10-28 16:05:51.0 alle 2014-10-28 16:05:51.0
Trollate totali: 11540
> Nella sezione Preferenze ora puoi darti un titolo !
> Questo comparira' sotto il tuo avatar.
>
> Mi sono preso la liberta' di assegnarne qualcuno a caso
Ad anynowhere i titoli li abbiamo dal 2003.
No, lo rammento cosi`, tanto per rompere i coglioni...
> Questo comparira' sotto il tuo avatar.
>
> Mi sono preso la liberta' di assegnarne qualcuno a caso

Ad anynowhere i titoli li abbiamo dal 2003.

No, lo rammento cosi`, tanto per rompere i coglioni...
Scritto da
altg
utente che non utiene
il 2014-10-28 15:59:04.0 alle 2014-10-28 15:59:04.0
Trollate totali: 11540
Ho cercato di classificare formalmente le "inlet" in L.in.oleum 4. La premessa e` che il termine "inlet" e` un catch-all, significa essenzialmente subroutine: una label di codice che puo` essere chiamata. Poi le inlets possono essere, a seconda di come vengono dichiarate e di come si comportano, ricondotte ai casi di subroutine semplici, funzioni, o metodi. I termini che ho definito per dichiararle (e su cui il compilatore effettua dei controlli per produrre avvisi quando qualcosa non e` chiamato in un modo compatibile con la sua dichiarazione) sono questi:
Il che significa che la inlet puo` essere dichiarata opzionalmente o monaural o binaural, e come ulteriore opzione, o funzione generica (fn) o funzione identita` (id). "monaural" e "binaural" si occupano della questione di come vengono legate all'istanza su cui operano: la sintassi monaural ("che sente da un solo orecchio") e` quella tipica in cui si lega l'istanza alla chiamata, tipo "antani.stampa(perTerra)"; la sintassi binaural (che sente da due orecchie) e` compatibile con la monaural ma in piu` permette di specificare l'istanza come argomento, cioe` di scrivere ANCHE in forma imperativa "stampa(antani,perTerra)". Ci sono delle differenze tra efficienza e comodita` tra le due, a seconda delle circostanze, sicche` non e` affatto privo di senso dichiarare, generalmente come sinonimo, la forma binaural (perche` se l'istanza viene passata come argomento e il metodo non e` una funzione, il registro di riserva diventa caller-saved). Per quanto riguarda le identita`, si dichiarano per usare le fluent interfaces, quelle dove un metodo e` una funzione che ritorna sempre l'istanza su cui opera (dove poi metti le chiamate "a trenino").
Per tornare torna, e permette di delineare piuttosto bene il comportamento di una inlet. Temo solo che non ci si capisca un cazzo. Avro` mica ragione?
[monaural | binaural] [fn | id]
Il che significa che la inlet puo` essere dichiarata opzionalmente o monaural o binaural, e come ulteriore opzione, o funzione generica (fn) o funzione identita` (id). "monaural" e "binaural" si occupano della questione di come vengono legate all'istanza su cui operano: la sintassi monaural ("che sente da un solo orecchio") e` quella tipica in cui si lega l'istanza alla chiamata, tipo "antani.stampa(perTerra)"; la sintassi binaural (che sente da due orecchie) e` compatibile con la monaural ma in piu` permette di specificare l'istanza come argomento, cioe` di scrivere ANCHE in forma imperativa "stampa(antani,perTerra)". Ci sono delle differenze tra efficienza e comodita` tra le due, a seconda delle circostanze, sicche` non e` affatto privo di senso dichiarare, generalmente come sinonimo, la forma binaural (perche` se l'istanza viene passata come argomento e il metodo non e` una funzione, il registro di riserva diventa caller-saved). Per quanto riguarda le identita`, si dichiarano per usare le fluent interfaces, quelle dove un metodo e` una funzione che ritorna sempre l'istanza su cui opera (dove poi metti le chiamate "a trenino").
Per tornare torna, e permette di delineare piuttosto bene il comportamento di una inlet. Temo solo che non ci si capisca un cazzo. Avro` mica ragione?
Scritto da
altg
utente che non utiene
il 2014-10-10 09:12:30.0 alle 2014-10-10 09:12:30.0
Trollate totali: 11540
> 3. Socchiudendo vedi anche le ciglia spuntare dal di sotto. Bloccando con un dito la palpebra inferiore, dimostri che le ciglia che vedi sono quelle della palpebra superiore: quindi la visione è rovesciata.
um... oppure e` un qualche gioco della diffrazione, che ti fa credere che sia la palpebra superiore. Io non riesco a riprodurre quell'effetto. Se blocco la palpebra inferiore, blocco quel che vedo apparire dal basso.
> Perciò potrebbe essere vero (andrebbe fatto qualche schema) che i cosi si trovano all'interno dell'occhio.
> L'altra volta ci chiedevamo come mai, se fossero all'interno, si vedono cadere verso il basso, dato che l'immagine dovrebbe essere rovesciata. Può darsi che ci siano due rovesciamenti?
Puo` darsi, ma allora non saprei dove. Gli schemi dell'occhio che si trovano sulle enciclopedie illustrano la luce che entra nel cristallino ed esce producendo un'immagine (singolarmente) rovesciata sulla retina, come in una negativa fotografica. Nel caso della fotografia (classica, non su CCD come oggi) la seconda proiezione della negativa attraverso la lente del proiettore, durante lo sviluppo, ri-rovescia l'immagine proiettandola dritta. Questo lavoro, nell'occhio, lo farebbe, cosi` dicono i libri, l'area visiva primaria del cervello.
um... oppure e` un qualche gioco della diffrazione, che ti fa credere che sia la palpebra superiore. Io non riesco a riprodurre quell'effetto. Se blocco la palpebra inferiore, blocco quel che vedo apparire dal basso.
> Perciò potrebbe essere vero (andrebbe fatto qualche schema) che i cosi si trovano all'interno dell'occhio.
> L'altra volta ci chiedevamo come mai, se fossero all'interno, si vedono cadere verso il basso, dato che l'immagine dovrebbe essere rovesciata. Può darsi che ci siano due rovesciamenti?
Puo` darsi, ma allora non saprei dove. Gli schemi dell'occhio che si trovano sulle enciclopedie illustrano la luce che entra nel cristallino ed esce producendo un'immagine (singolarmente) rovesciata sulla retina, come in una negativa fotografica. Nel caso della fotografia (classica, non su CCD come oggi) la seconda proiezione della negativa attraverso la lente del proiettore, durante lo sviluppo, ri-rovescia l'immagine proiettandola dritta. Questo lavoro, nell'occhio, lo farebbe, cosi` dicono i libri, l'area visiva primaria del cervello.
Scritto da
altg
utente che non utiene
il 2014-10-09 23:01:45.0 alle 2014-10-09 23:01:45.0
Trollate totali: 11540
> > > Come si chiamano già quei cosi negli occhi? Ho fatto recentemente degli esperimenti.
> >
> > Miodesopsie?
>
> Sì, devono essere quelle.
Se ne vedi comparire tante d'improvviso, nel senso che aumentano in breve tempo, vai a farti vedere: potrebbe essere in atto un distacco del vitreo. Se non si tira dietro la retina, e` poca cosa, se no devono provare subito a ricucirla col laser.
> >
> > Miodesopsie?
>
> Sì, devono essere quelle.
Se ne vedi comparire tante d'improvviso, nel senso che aumentano in breve tempo, vai a farti vedere: potrebbe essere in atto un distacco del vitreo. Se non si tira dietro la retina, e` poca cosa, se no devono provare subito a ricucirla col laser.
MA checcazzo ne so
Ad
http://sallo.it
LO SAI? Allora NON fa per te. NON LO SAI? Allora non ti serve.
Scritto da
altg
utente che non utiene
il 2014-10-09 22:54:37.0 alle 2014-10-09 22:54:37.0
Trollate totali: 11540
> Come si chiamano già quei cosi negli occhi? Ho fatto recentemente degli esperimenti.
Miodesopsie?
Miodesopsie?
Scritto da
altg
utente che non utiene
il 2014-10-09 22:54:13.0 alle 2014-10-09 22:54:13.0
Trollate totali: 11540
> > > Hai già chiesto a quelli di anynowhere cosa ne pensano?
> >
> > No, prima lo porto in una condizione piu` o meno utilizzabile, almeno per esplorare come funziona, e scrivo uno straccio di tutorial di 4000 megabytes.
>
> Se ponessero mano ai pomodori scriveresti Linoleum 5?
No, non scrivo Linoleum perche` qualcuno lo gradisca.
Lo scrivo perche` lo gradisco io, e i pomodori li ho gia` tirati tutti al terzo.
> >
> > No, prima lo porto in una condizione piu` o meno utilizzabile, almeno per esplorare come funziona, e scrivo uno straccio di tutorial di 4000 megabytes.
>
> Se ponessero mano ai pomodori scriveresti Linoleum 5?
No, non scrivo Linoleum perche` qualcuno lo gradisca.
Lo scrivo perche` lo gradisco io, e i pomodori li ho gia` tirati tutti al terzo.
Scritto da
altg
utente che non utiene
il 2014-10-09 22:43:55.0 alle 2014-10-09 22:43:55.0
Trollate totali: 11540
> Hai già chiesto a quelli di anynowhere cosa ne pensano?
No, prima lo porto in una condizione piu` o meno utilizzabile, almeno per esplorare come funziona, e scrivo uno straccio di tutorial di 4000 megabytes.
No, prima lo porto in una condizione piu` o meno utilizzabile, almeno per esplorare come funziona, e scrivo uno straccio di tutorial di 4000 megabytes.
Scritto da
altg
utente che non utiene
il 2014-10-09 22:42:29.0 alle 2014-10-09 22:42:29.0
Trollate totali: 11540
> Multiple inheritance ?
Volendo c'e` anche quella, anche se vattelappesca se funziona.
Volendo c'e` anche quella, anche se vattelappesca se funziona.
Scritto da
altg
utente che non utiene
il 2014-10-09 22:34:24.0 alle 2014-10-09 22:34:24.0
Trollate totali: 11540
Magagne e ottimizzazione (piu` che altro del codice prodotto, anche se qualcosa lo fa gia`) a parte, il compilatore dovrebbe essere essenzialmente finito. Ha ereditarieta`, polimorfismo, e ora anche interfacce e metodi virtuali. A me non sembrano neanche tanto illeggibili nell'uso pratico:


E` un programmino di prova fatto per poi seguire lo sviluppo di una librerietta (dal nome nostalgico di "character generator") che scriva qualcosa con un font bitmapped. Il succo della questione dell'interfaccia e` questo qui:
Fa il typecasting sul registro p, cioe` di che il registro p e` di tipo... bitmap, creandone un'istanza e dimensionandola a m x n pixels. E fin qui s'era gia` visto. La seconda riga crea invece l'interfaccia (la novita`). Casta q a characterGenerator, e poi lo "binda" (blinda la supercazzola prematurata eccetera eccetera), cioe` lo lega alla sua implementazione per bitmaps. Dice "Using Raster" perche` la classe astratta da cui discendono bitmap e canvas, i due tipi concreti di raster, e` appunto raster. Seguendo la prima riga del listato si arriva al file che definisce l'implementazione:


che a sua volta include il file che definisce l'interfaccia e qualcosa per fare un puntino sullo schermo per confermare che il metodo "Say" e` stato eseguito. La vera implementazione va al posto di quel puntino, ma devo ancora scriverla. Al di la` di quello, le parole chiave li` sono "implements" nella dichiarazione del nameset, e l'esportazione della tabella dei metodi virtuali, che lega la entry pSay della tabella dell'interfaccia all'indirizzo del metodo Say implementato sopra. Nel file dell'interfaccia:


che e` scarno e abbozzato (ha solo il metodo Say e nessuna informazione di stato) si vede la inlet "Bind To p" che alloca l'istanza dell'interfaccia, e poi la passa a un'utilita` che smista gli indirizzi dei metodi alle entries della tabella (la tabella e` composta solo da "count pSay"). In fondo, dopo un costruttore alternativo e un mutator tanto per dire, quello che conta e` il metodo virtuale Say, che infatti non e` implementato li` ma esegue un salto per puntatore a r.pSay.
Facile, no?

E` un programmino di prova fatto per poi seguire lo sviluppo di una librerietta (dal nome nostalgico di "character generator") che scriva qualcosa con un font bitmapped. Il succo della questione dell'interfaccia e` questo qui:
p as bitmap <- Create m By n Pixels q as characterGenerator <- Bind To bitmap Using Raster p
Fa il typecasting sul registro p, cioe` di che il registro p e` di tipo... bitmap, creandone un'istanza e dimensionandola a m x n pixels. E fin qui s'era gia` visto. La seconda riga crea invece l'interfaccia (la novita`). Casta q a characterGenerator, e poi lo "binda" (blinda la supercazzola prematurata eccetera eccetera), cioe` lo lega alla sua implementazione per bitmaps. Dice "Using Raster" perche` la classe astratta da cui discendono bitmap e canvas, i due tipi concreti di raster, e` appunto raster. Seguendo la prima riga del listato si arriva al file che definisce l'implementazione:

che a sua volta include il file che definisce l'interfaccia e qualcosa per fare un puntino sullo schermo per confermare che il metodo "Say" e` stato eseguito. La vera implementazione va al posto di quel puntino, ma devo ancora scriverla. Al di la` di quello, le parole chiave li` sono "implements" nella dichiarazione del nameset, e l'esportazione della tabella dei metodi virtuali, che lega la entry pSay della tabella dell'interfaccia all'indirizzo del metodo Say implementato sopra. Nel file dell'interfaccia:

che e` scarno e abbozzato (ha solo il metodo Say e nessuna informazione di stato) si vede la inlet "Bind To p" che alloca l'istanza dell'interfaccia, e poi la passa a un'utilita` che smista gli indirizzi dei metodi alle entries della tabella (la tabella e` composta solo da "count pSay"). In fondo, dopo un costruttore alternativo e un mutator tanto per dire, quello che conta e` il metodo virtuale Say, che infatti non e` implementato li` ma esegue un salto per puntatore a r.pSay.
Facile, no?
Scritto da
altg
utente che non utiene
il 2014-10-07 23:02:32.0 alle 2014-10-07 23:02:32.0
Trollate totali: 11540
> > > > > Non capisco con che logica dovrebbe considerarlo giusto.
> > > > > Comunque m'informero' di piu'.
> > > >
> > > > No no non c'e` bisogno che tu t'informi meglio: hai azzeccato il punto.
> > > > Non si capisce con che logica dovrebbe considerarlo giusto. E` li` il bello.
> > > >
> > > > Una regola per stabilire le priorita` c'e`, ed e` l'inverso dell'ordine in cui i file vengono inclusi, oppure i namespace elencati dopo la keyword "resolve". Pero` e` una regola difficile da applicare a mente, e quindi prona alle catastrofi. Pero` magari e` utile perche` c'e` da scrivere talmente poco che se c'e` qualcosa di sbagliato ci se ne potrebbe accorgere. Come dire: uno dice "resolve all" e poi va coi piedi di piombo.
> > >
> > > Insomma, funziona se le funzioni sono limitate e specifiche?
> > > Nel caso ci sia una gran varieta', dove piu' persone ci stanno lavorando sarebbe un bel disastro. A meno che tutti seguano la medesima scrittura, forse se fossero robot le menti programmatrici, possono aggiornarsi sui cambi e usare il "resolve all" sempre.
> >
> > Piu` che altro funziona se il file su cui stai lavorando e` piccolo e semplice. La complessita` del resto non e` influente.
>
> Si` insomma mica tanto, ora che ci penso. Nell'unione di tutti i namespaces, anche quel che cambia esternamente al file potrebbe rompere qualcosa. Mi sa che ci ripenso, va'... troppo pernicioso.
Ok, "resolve" e` sparita.
Facciamo finta che non ho mai avuto l'idea.
> > > > > Comunque m'informero' di piu'.
> > > >
> > > > No no non c'e` bisogno che tu t'informi meglio: hai azzeccato il punto.
> > > > Non si capisce con che logica dovrebbe considerarlo giusto. E` li` il bello.

> > > >
> > > > Una regola per stabilire le priorita` c'e`, ed e` l'inverso dell'ordine in cui i file vengono inclusi, oppure i namespace elencati dopo la keyword "resolve". Pero` e` una regola difficile da applicare a mente, e quindi prona alle catastrofi. Pero` magari e` utile perche` c'e` da scrivere talmente poco che se c'e` qualcosa di sbagliato ci se ne potrebbe accorgere. Come dire: uno dice "resolve all" e poi va coi piedi di piombo.
> > >
> > > Insomma, funziona se le funzioni sono limitate e specifiche?
> > > Nel caso ci sia una gran varieta', dove piu' persone ci stanno lavorando sarebbe un bel disastro. A meno che tutti seguano la medesima scrittura, forse se fossero robot le menti programmatrici, possono aggiornarsi sui cambi e usare il "resolve all" sempre.
> >
> > Piu` che altro funziona se il file su cui stai lavorando e` piccolo e semplice. La complessita` del resto non e` influente.
>
> Si` insomma mica tanto, ora che ci penso. Nell'unione di tutti i namespaces, anche quel che cambia esternamente al file potrebbe rompere qualcosa. Mi sa che ci ripenso, va'... troppo pernicioso.
Ok, "resolve" e` sparita.
Facciamo finta che non ho mai avuto l'idea.
Scritto da
altg
utente che non utiene
il 2014-10-07 22:52:00.0 alle 2014-10-07 22:52:00.0
Trollate totali: 11540
> > > > Non capisco con che logica dovrebbe considerarlo giusto.
> > > > Comunque m'informero' di piu'.
> > >
> > > No no non c'e` bisogno che tu t'informi meglio: hai azzeccato il punto.
> > > Non si capisce con che logica dovrebbe considerarlo giusto. E` li` il bello.
> > >
> > > Una regola per stabilire le priorita` c'e`, ed e` l'inverso dell'ordine in cui i file vengono inclusi, oppure i namespace elencati dopo la keyword "resolve". Pero` e` una regola difficile da applicare a mente, e quindi prona alle catastrofi. Pero` magari e` utile perche` c'e` da scrivere talmente poco che se c'e` qualcosa di sbagliato ci se ne potrebbe accorgere. Come dire: uno dice "resolve all" e poi va coi piedi di piombo.
> >
> > Insomma, funziona se le funzioni sono limitate e specifiche?
> > Nel caso ci sia una gran varieta', dove piu' persone ci stanno lavorando sarebbe un bel disastro. A meno che tutti seguano la medesima scrittura, forse se fossero robot le menti programmatrici, possono aggiornarsi sui cambi e usare il "resolve all" sempre.
>
> Piu` che altro funziona se il file su cui stai lavorando e` piccolo e semplice. La complessita` del resto non e` influente.
Si` insomma mica tanto, ora che ci penso. Nell'unione di tutti i namespaces, anche quel che cambia esternamente al file potrebbe rompere qualcosa. Mi sa che ci ripenso, va'... troppo pernicioso.
> > > > Comunque m'informero' di piu'.
> > >
> > > No no non c'e` bisogno che tu t'informi meglio: hai azzeccato il punto.
> > > Non si capisce con che logica dovrebbe considerarlo giusto. E` li` il bello.

> > >
> > > Una regola per stabilire le priorita` c'e`, ed e` l'inverso dell'ordine in cui i file vengono inclusi, oppure i namespace elencati dopo la keyword "resolve". Pero` e` una regola difficile da applicare a mente, e quindi prona alle catastrofi. Pero` magari e` utile perche` c'e` da scrivere talmente poco che se c'e` qualcosa di sbagliato ci se ne potrebbe accorgere. Come dire: uno dice "resolve all" e poi va coi piedi di piombo.
> >
> > Insomma, funziona se le funzioni sono limitate e specifiche?
> > Nel caso ci sia una gran varieta', dove piu' persone ci stanno lavorando sarebbe un bel disastro. A meno che tutti seguano la medesima scrittura, forse se fossero robot le menti programmatrici, possono aggiornarsi sui cambi e usare il "resolve all" sempre.
>
> Piu` che altro funziona se il file su cui stai lavorando e` piccolo e semplice. La complessita` del resto non e` influente.
Si` insomma mica tanto, ora che ci penso. Nell'unione di tutti i namespaces, anche quel che cambia esternamente al file potrebbe rompere qualcosa. Mi sa che ci ripenso, va'... troppo pernicioso.
Scritto da
altg
utente che non utiene
il 2014-10-07 22:48:41.0 alle 2014-10-07 22:48:41.0
Trollate totali: 11540
> Lich tu' non venire, che se no ci tocca venire armati.
Saro` in camera mia da -infinity a +infinity.
Ogni tanto un caffe` al baretto, va'...
Saro` in camera mia da -infinity a +infinity.
Ogni tanto un caffe` al baretto, va'...
Tua madre succhia cazzi all'inferno
Ad
http://www.vatican.va/content/vatican/en.html
Nessuno ci crede per poi affogare nella realtà subito dopo
Scritto da
altg
utente che non utiene
il 2014-10-07 22:40:41.0 alle 2014-10-07 22:40:41.0
Trollate totali: 11540
> > > Non capisco con che logica dovrebbe considerarlo giusto.
> > > Comunque m'informero' di piu'.
> >
> > No no non c'e` bisogno che tu t'informi meglio: hai azzeccato il punto.
> > Non si capisce con che logica dovrebbe considerarlo giusto. E` li` il bello.
> >
> > Una regola per stabilire le priorita` c'e`, ed e` l'inverso dell'ordine in cui i file vengono inclusi, oppure i namespace elencati dopo la keyword "resolve". Pero` e` una regola difficile da applicare a mente, e quindi prona alle catastrofi. Pero` magari e` utile perche` c'e` da scrivere talmente poco che se c'e` qualcosa di sbagliato ci se ne potrebbe accorgere. Come dire: uno dice "resolve all" e poi va coi piedi di piombo.
>
> Insomma, funziona se le funzioni sono limitate e specifiche?
> Nel caso ci sia una gran varieta', dove piu' persone ci stanno lavorando sarebbe un bel disastro. A meno che tutti seguano la medesima scrittura, forse se fossero robot le menti programmatrici, possono aggiornarsi sui cambi e usare il "resolve all" sempre.
Piu` che altro funziona se il file su cui stai lavorando e` piccolo e semplice. La complessita` del resto non e` influente. Comunque resta un'opzione da usare con cautela per programmatori pigri.
> > > Comunque m'informero' di piu'.
> >
> > No no non c'e` bisogno che tu t'informi meglio: hai azzeccato il punto.
> > Non si capisce con che logica dovrebbe considerarlo giusto. E` li` il bello.

> >
> > Una regola per stabilire le priorita` c'e`, ed e` l'inverso dell'ordine in cui i file vengono inclusi, oppure i namespace elencati dopo la keyword "resolve". Pero` e` una regola difficile da applicare a mente, e quindi prona alle catastrofi. Pero` magari e` utile perche` c'e` da scrivere talmente poco che se c'e` qualcosa di sbagliato ci se ne potrebbe accorgere. Come dire: uno dice "resolve all" e poi va coi piedi di piombo.
>
> Insomma, funziona se le funzioni sono limitate e specifiche?
> Nel caso ci sia una gran varieta', dove piu' persone ci stanno lavorando sarebbe un bel disastro. A meno che tutti seguano la medesima scrittura, forse se fossero robot le menti programmatrici, possono aggiornarsi sui cambi e usare il "resolve all" sempre.
Piu` che altro funziona se il file su cui stai lavorando e` piccolo e semplice. La complessita` del resto non e` influente. Comunque resta un'opzione da usare con cautela per programmatori pigri.
Scritto da
altg
utente che non utiene
il 2014-10-07 22:04:55.0 alle 2014-10-07 22:04:55.0
Trollate totali: 11540
> Non capisco con che logica dovrebbe considerarlo giusto.
> Comunque m'informero' di piu'.
No no non c'e` bisogno che tu t'informi meglio: hai azzeccato il punto.
Non si capisce con che logica dovrebbe considerarlo giusto. E` li` il bello.
Una regola per stabilire le priorita` c'e`, ed e` l'inverso dell'ordine in cui i file vengono inclusi, oppure i namespace elencati dopo la keyword "resolve". Pero` e` una regola difficile da applicare a mente, e quindi prona alle catastrofi. Pero` magari e` utile perche` c'e` da scrivere talmente poco che se c'e` qualcosa di sbagliato ci se ne potrebbe accorgere. Come dire: uno dice "resolve all" e poi va coi piedi di piombo.
> Comunque m'informero' di piu'.
No no non c'e` bisogno che tu t'informi meglio: hai azzeccato il punto.
Non si capisce con che logica dovrebbe considerarlo giusto. E` li` il bello.

Una regola per stabilire le priorita` c'e`, ed e` l'inverso dell'ordine in cui i file vengono inclusi, oppure i namespace elencati dopo la keyword "resolve". Pero` e` una regola difficile da applicare a mente, e quindi prona alle catastrofi. Pero` magari e` utile perche` c'e` da scrivere talmente poco che se c'e` qualcosa di sbagliato ci se ne potrebbe accorgere. Come dire: uno dice "resolve all" e poi va coi piedi di piombo.
Scritto da
altg
utente che non utiene
il 2014-10-07 21:46:25.0 alle 2014-10-07 21:46:25.0
Trollate totali: 11540
> > Qui siamo andati oltre: a un certo punto ho messo 'sta cosa ("resolve all") che dice vabbe', non importa in che namespace stia, io risolvo tutto. Se qualcosa lo trovo fra i file inclusi di sopra, lo considero giusto. 
>
> E se lo hai con il medesimo nome in due namespaces diversi ?
Risolve quello nell'ultimo namespace incontrato o nella keyword:
resolve zuppa pesce
darebbe la precedenza a pesce::xx piuttosto che a zuppa:xx
oppure, nel caso di "resolve all", a quello del namespace dell'ultima libreria inclusa (nell'ordine in cui vengono incluse). In teoria il suo comportamento e` prevedibile, ma in pratica kabooooom lo stesso.
Comunque non so, l'ho pensato per sorgentini brevissimi dove non ci si vuol rompere le scatole a ricordare il namespace, tanto son quattro righe e una collisione sbagliata e` improbabile e facile da rilevare. Tutto sommato potrebbe anche restare, come opzione da usare con cautela. Pero` forse rimpiazzo la keyword "all", se no mi tocca proibire il namespace "all". E magari vabbe' cosi`, tanto chi e` che vorrebbe dichiarare un namespace "all"?

>
> E se lo hai con il medesimo nome in due namespaces diversi ?
Risolve quello nell'ultimo namespace incontrato o nella keyword:
resolve zuppa pesce
darebbe la precedenza a pesce::xx piuttosto che a zuppa:xx
oppure, nel caso di "resolve all", a quello del namespace dell'ultima libreria inclusa (nell'ordine in cui vengono incluse). In teoria il suo comportamento e` prevedibile, ma in pratica kabooooom lo stesso.

Comunque non so, l'ho pensato per sorgentini brevissimi dove non ci si vuol rompere le scatole a ricordare il namespace, tanto son quattro righe e una collisione sbagliata e` improbabile e facile da rilevare. Tutto sommato potrebbe anche restare, come opzione da usare con cautela. Pero` forse rimpiazzo la keyword "all", se no mi tocca proibire il namespace "all". E magari vabbe' cosi`, tanto chi e` che vorrebbe dichiarare un namespace "all"?
Scritto da
altg
utente che non utiene
il 2014-10-07 21:16:06.0 alle 2014-10-07 21:16:06.0
Trollate totali: 11540
> Capito tutto, si si.
I namespace sono come degli scatoloni dove vengono messi i nomi di varie cose chiamate simboli. Nomi di roba che fa qualcosa (routines, funzioni) e nomi di variabili e costanti (contenitori di numeri, e numeri). Si mettono nel proprio namespace per confinarli ed evitare che vengano "risolti", cioe` riconosciuti, anche quando sarebbe meglio di no (perche` magari si sbaglia a scrivere qualcosa e si becca per caso qualcos'altro che poi fa una cosa inaspettata e fa danni).
Per evitare 'sti problemi s'inventano i namespaces. E gli scope resolvers, che sono segni o sequenze di segni particolari che dividono il namespace dal nome del simbolo da risolvere, cioe` se ho un coso che si chiama zuppa e sta nel namespace antani, usando lo scope resolver piu` gettonato (doppio duepunti) il nome completo (FQN) e` antani::zuppa.
Dopo un po' ti rompi il cazzo di scrivere il namespace e i doppi duepunti, oltre a trovare che appesantiscono i sorgenti. Cosi` il C++ aveva inventato using (non so se l'abbiano davvero inventato li`, ma a parte i dettagli...) per rimuovere selettivamente la necessita` di specificare il namespace.
Qui siamo andati oltre: a un certo punto ho messo 'sta cosa ("resolve all") che dice vabbe', non importa in che namespace stia, io risolvo tutto. Se qualcosa lo trovo fra i file inclusi di sopra, lo considero giusto.

I namespace sono come degli scatoloni dove vengono messi i nomi di varie cose chiamate simboli. Nomi di roba che fa qualcosa (routines, funzioni) e nomi di variabili e costanti (contenitori di numeri, e numeri). Si mettono nel proprio namespace per confinarli ed evitare che vengano "risolti", cioe` riconosciuti, anche quando sarebbe meglio di no (perche` magari si sbaglia a scrivere qualcosa e si becca per caso qualcos'altro che poi fa una cosa inaspettata e fa danni).
Per evitare 'sti problemi s'inventano i namespaces. E gli scope resolvers, che sono segni o sequenze di segni particolari che dividono il namespace dal nome del simbolo da risolvere, cioe` se ho un coso che si chiama zuppa e sta nel namespace antani, usando lo scope resolver piu` gettonato (doppio duepunti) il nome completo (FQN) e` antani::zuppa.
Dopo un po' ti rompi il cazzo di scrivere il namespace e i doppi duepunti, oltre a trovare che appesantiscono i sorgenti. Cosi` il C++ aveva inventato using (non so se l'abbiano davvero inventato li`, ma a parte i dettagli...) per rimuovere selettivamente la necessita` di specificare il namespace.
Qui siamo andati oltre: a un certo punto ho messo 'sta cosa ("resolve all") che dice vabbe', non importa in che namespace stia, io risolvo tutto. Se qualcosa lo trovo fra i file inclusi di sopra, lo considero giusto.
Scritto da
altg
utente che non utiene
il 2014-10-07 21:01:49.0 alle 2014-10-07 21:01:49.0
Trollate totali: 11540
temo di aver appena conseguito la piu` grande vittoria dei namespace su loro stessi e sul buon senso. Per evitare di cospargere il sorgente di scope resolvers (blah::banf), ok, meglio avere qualcosa come "using". Vabbe'. Pero` anche piu` namespaces potrebbero essere risolti in un ordine prevedibile, no? Mah, vabbe'. Eh, pero` poi mi tocca scriverli tutti, se invece tenessi traccia di tutti i namespace dei file inclusi in un file um... e cosi` avevo introdotto la keyword "resolve", per esempio col namespace "string", "resolve string". Poi "resolve string heap"... "resolve string heap arc"... "resolve string heap arc file"... si` insomma sono arrivato a "resolve all". 
Non so se riderci su o non documentare la funzionalita`.

Non so se riderci su o non documentare la funzionalita`.
Scritto da
altg
utente che non utiene
il 2014-10-07 17:19:15.0 alle 2014-10-07 17:19:15.0
Trollate totali: 11540
> > Molto probabile, ma cosi' com'e' ora il FdT girerebbe pure su uno smartwatch.
>
>
Io a volte mi chiedo come andrebbe ciofeca95 sui sistemi attuali.
Penso piu` lento di Win8, o comunque di qualsiasi versione del ramo NT.
Ma PERCHE` inventarono il ramo 9x?
>
>
Io a volte mi chiedo come andrebbe ciofeca95 sui sistemi attuali.
Penso piu` lento di Win8, o comunque di qualsiasi versione del ramo NT.
Ma PERCHE` inventarono il ramo 9x?
Scritto da
altg
utente che non utiene
il 2014-10-07 16:58:49.0 alle 2014-10-07 16:58:49.0
Trollate totali: 11540
> > > Quando ho iniziato la transizione del FdT a JOOQ avevo accarezzato l'idea di usare ormlite, ma certe queries mi avrebbero fatto bestemmiare in aramaico
...
> >
> > Sì, le join sono un po' un casino.
> > Io l'ho usato infatti per usare l'orm dove necessario per risparmiare tempo, e facendo le query a mano dove non era applicabile.
>
> Comunque PIViewer sara' semplicissimo: maven + ormlite + JAX-RS (jersey) + gson, con l'aggiunta di guava e fors'anche guice.
> La GUI fatevela da voi
webix ? !
Annuncio con fierezza che ho capito solo GUI.
...> >
> > Sì, le join sono un po' un casino.
> > Io l'ho usato infatti per usare l'orm dove necessario per risparmiare tempo, e facendo le query a mano dove non era applicabile.
>
> Comunque PIViewer sara' semplicissimo: maven + ormlite + JAX-RS (jersey) + gson, con l'aggiunta di guava e fors'anche guice.
> La GUI fatevela da voi
webix ? !Annuncio con fierezza che ho capito solo GUI.