Mostra notizie nelle discussioni
Avatar
☺
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
Re: Nuova ficiur fighissima del FdT !!!1!
> > > Nella sezione Preferenze ora puoi darti un titolo !
> > > Questo comparira' sotto il tuo avatar.
> > >
> > > Mi sono preso la liberta' di assegnarne qualcuno a caso Imbarazzato
> >
> > Ad anynowhere i titoli li abbiamo dal 2003. Imbarazzato
>
> Hei, qui usiamo Java, e come avrai letto e' anni luce indietro rispetto a Go, C#, .NET e perfino GWBasic Arrabbiato !
>
> > 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. Fantasma

Immagine postata dall'utente

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

Immagine postata dall'utente

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 Proott !! !

Mah, L.in.oleum e` un po' un mondo a parte, mi sa.
Ma penso che gli sviluppatori li attirera` comunque. Fantasma

NO NOn lo so

Ad sallo.it
LO SAI? Allora NON fa per te. NON LO SAI? Allora non ti serve ‎
Avatar
☺
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
Re: Nuova ficiur fighissima del FdT !!!1!
> Nella sezione Preferenze ora puoi darti un titolo !
> Questo comparira' sotto il tuo avatar.
>
> Mi sono preso la liberta' di assegnarne qualcuno a caso Imbarazzato

Ad anynowhere i titoli li abbiamo dal 2003. Imbarazzato
No, lo rammento cosi`, tanto per rompere i coglioni...
Avatar
☺
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
umm... non sono sicuro ma tendenzialmente anche forse
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:

[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? Anonimo
Avatar
☺
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
Re: alex.tg
> 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.
Avatar
☺
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
Re: alex.tg
> > > 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. Fantasma

MA checcazzo ne so

Ad http://sallo.it
LO SAI? Allora NON fa per te. NON LO SAI? Allora non ti serve.‎
Avatar
☺
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
Re: alex.tg
> Come si chiamano già quei cosi negli occhi? Ho fatto recentemente degli esperimenti.

Miodesopsie?
Avatar
☺
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
Re: Abemus anche interfacce
> > > 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. Imbarazzato
Avatar
☺
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
Re: Abemus anche interfacce
> 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.
Avatar
☺
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
Re: Abemus anche interfacce
> Multiple inheritance ?

Volendo c'e` anche quella, anche se vattelappesca se funziona. Anonimo

Titolo di prova

Ad gtregtg
sfvgfgg‎
Avatar
☺
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
Abemus anche interfacce
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:

Immagine postata dall'utente

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:

Immagine postata dall'utente

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:

Immagine postata dall'utente

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? Geek
Avatar
☺
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
Re: um... non so, penso che in fondo sarebbe un'opzione, pero`...
> > > > > 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. Rotola dal ridere
> > > >
> > > > 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. Anonimo
Avatar
☺
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
Re: um... non so, penso che in fondo sarebbe un'opzione, pero`...
> > > > 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. Rotola dal ridere
> > >
> > > 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.
Avatar
☺
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
Re: incontro dei troll a Milano, chi viene?
> 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'...

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‎
Avatar
☺
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
Re: um... non so, penso che in fondo sarebbe un'opzione, pero`...
> > > 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. Rotola dal ridere
> >
> > 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.
Avatar
☺
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
Re: um... non so, penso che in fondo sarebbe un'opzione, pero`...
> 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. Rotola dal ridere

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.
Avatar
☺
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
Re: um... non so, penso che in fondo sarebbe un'opzione, pero`...
> > 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. Fantasma
>
> 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. A bocca aperta

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"?
Avatar
☺
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
Re: um... non so, penso che in fondo sarebbe un'opzione, pero`...
> Capito tutto, si si.Newbie, inesperto

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. Fantasma

falliti puppatemelo

Ad ilpupparuolo.com
puppa forte, puppa sempre‎
Avatar
☺
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
um... non so, penso che in fondo sarebbe un'opzione, pero`...
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". Rotola dal ridere

Non so se riderci su o non documentare la funzionalita`.
Avatar
☺
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
Re: sqlite: it does 50% more work using the same number of CPU cycles
> > 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? A bocca storta
Avatar
☺
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
Re: sqlite: it does 50% more work using the same number of CPU cycles
> > > 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 A bocca storta ...
> >
> > 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 A bocca aperta webix ? !

Annuncio con fierezza che ho capito solo GUI. Ficoso

Pagina generata in 424 millisecondi

Utenti attivi: 12 nell'ultimo minuto, 23 negli ultimi cinque minuti, 47 negli ultimi 15 minuti