Re: [Python] Variabili su file esterno

2022-07-11 Per discussione Alessandro Re
 Original Message 
On Jul 10, 2022, 19:25, Marcello Ilardi < marce...@linuxvil.it> wrote:
Salve a tutti, in un mio programma, per creare file di configurazione, utilizzo 
il seguente codice: variabili = {} variabili['IPADDRESS'] = '192.168.1.2' 
variabili['NETMASK'] = '255.255.255.0' variabili['GATEWAY'] = '192.168.1.1' 
configurazione = (f''' net.static.IP = {variabili['IPADDRESS']} 
net.static.SubnetMask = {variabili['NETMASK']} net.static.Gateway = 
{variabili['GATEWAY']} ''') print(configurazione) In questo modo mi vengono 
sostituite correttamente le variabili. adesso ho la necessità, visto la 
lunghezza di 'configurazione' (più di 1000 righe) di creare un file dove metto 
la sola variabile 'configurazione' e all'occorrenza leggere il file e impostare 
correttamente le variabili. Il problema che leggendo da un file esterno non 
riesco a sostituite le variabili tra grafe. Nel file.txt metto: net.static.IP = 
{variabili['IPADDRESS']} net.static.SubnetMask = {variabili['NETMASK']} 
net.static.Gateway = {variabili['GATEWAY']} il programma py: variabili = {} 
variabili['IPADDRESS'] = '192.168.1.2' variabili['NETMASK'] = '255.255.255.0' 
variabili['GATEWAY'] = '192.168.1.1' with open((f'''file.txt'''), "r") as 
configurazione_tmp: configurazione = configurazione_tmp.read() 
print(configurazione) Come posso risolvere? Grazie a tutti, Saluti Marcello 
___ Python mailing list 
Python@lists.python.it https://lists.python.it/mailman/listinfo/python

Ciao,
non so se hanno già dato la stessa risposta perché temo di essermi perso 
qualche mail, ma oltre allr alternative già citate (yaml, db, config parser) 
puoi anche formattare la stringa esplicitamente usando il metodo str.format o 
str.format_map, che fa sostanzialmente quello che viene fatto implicitamente 
quando usi le f-strings (f""). ecco un esempio per darti un'idea di come puoi 
usare format_map:

s = "foo = {bar}"
d = dict(bar="1234")
print(s.format_map(d)) # foo = 1234

comunque è un sistema fragile di sostituzione, quindi anche se potrebbe essere 
conveniente nel tuo caso, potresti optare per qualcosa di più robusto se fosse 
per un lavoro più che amatoriale.

ciao___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Xkcd again

2018-05-06 Per discussione Alessandro Re
On Sun, May 6, 2018, 19:02 Simone Federici  wrote:

> Scusate ma
>
> il pacchetto di sistema ha una versione...
>
> ma se hai più progetti su un server che fate? tenete allineati tutti i
> progetti appena debian rilascia una libreria?
>
> sudo pip è un abominio, ma anche le librerie debian sono una dipendenza
> tra applicativo e sistema operativo che non c'è motivo di avere. perché
> legarsi le mani?
>

Dipende da cosa bisogna fare, ovviamente: sono d'accordo con te, ma per
certe cose, prototipi e test, non mi serve avere un venv attivo e i
pacchetti di sistema sono sufficienti (e li preferisco che avere un venv
che ne fa le veci).

Poi, per il resto, ovviamente pip può ignorare site packages di sistema ed
equivale ad un ambiente pulito.


virtualenv, venv o conda + pip sono una manna dal cielo.
>
> altro discorso se avete una infrastruttura cloud e dockerizzate tutte le
> vostre app
>

Che non è poi orribile come soluzione :)

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Xkcd again

2018-05-06 Per discussione Alessandro Re
On Sun, May 6, 2018, 10:54 Pietro Battiston <m...@pietrobattiston.it> wrote:

> Il giorno mar, 01/05/2018 alle 06.59 +, Alessandro Re ha scritto:
> > On Tue, May 1, 2018, 01:28 Marco Beri <marcob...@gmail.com> wrote:
> > > Ma questa volta ci critica... ;-)
> > >
> > > https://xkcd.com/1987/
> > >
> > > Ciao.
> > > Marco.
> > >
> >
> > Più che critica, vittima dei tempi :D
> >
> > Sono specialmente d'accordo con la caption sui pericoli di installare
> > i pacchetti con sudo!
>
> Stiamo parlando di "sudo pip" (che non userei mai) o "sudo apt-get"
> (che è l'unico modo che mi fa stare davvero tranquillo)?!
>

sudo pip, ofc :D purtoppo vedo persone usarlo molto più spesso di quanto
vorrei (per questo spero che pipenv diventi il metodo raccomandato per
gestire pacchetti e spero che diventi parte del normale processo di
apprendimento di python).

In generale io uso i pacchetti di sistema quando possibile e da user sempre
`python3 -m venv` (tranne ultimamente che ho adottato pipenv).

Evito anche `pip install --user` perché ho avuto non pochi grattacapi con i
notebook jupyter in questo caso.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] pipenv (Was: Xkcd again)

2018-05-05 Per discussione Alessandro Re
On Fri, May 4, 2018, 11:35 Raffaele Salmaso <raffa...@salmaso.org> wrote:

> 2018-05-04 11:07 GMT+02:00 Alessandro Dentella <san...@e-den.it>:
>
>> On Fri, May 04, 2018 at 10:29:56AM +0200, Raffaele Salmaso wrote:
>> >2018-05-01 8:59 GMT+02:00 Alessandro Re <[1]akirosspo...@gmail.com>:
>> >
>> >[2]https://github.com/pypa/pipenv ci darà un futuro migliore? :)
>> >
>> >No
>>
>
Nel mio piccolo, sto già avendo un futuro migliore usando pipenv, quindi
per me sì :)


>> Lo dici perché è solo un elemento in un groviglio di strumenti o
>> perché ne conosci i limiti? Se ne vedi limiti puoi raccontarli?
>>
> Più che altro è un tool che usa pip e i virtualenv alla base,
> quindi non vedo come possa essere differente da adesso, se non
> automatizzando il processo
>

Sono abbastanza dell'opinione che il problema della vignetta originale non
sia il fatto che il grafo delle dipendenze sia complesso, ma il problema è
doverlo gestire manualmente.

Se poi pipenv si aggiunge ad un panorama già ricco di altri strumenti
automatici apportando un contributo utile è un altro discorso (xkcd.com/927
:)

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Xkcd again

2018-05-04 Per discussione Alessandro Re
On Tue, May 1, 2018, 01:28 Marco Beri  wrote:

> Ma questa volta ci critica... ;-)
>
> https://xkcd.com/1987/
>
> Ciao.
> Marco.
>

Più che critica, vittima dei tempi :D

Sono specialmente d'accordo con la caption sui pericoli di installare i
pacchetti con sudo!

https://github.com/pypa/pipenv ci darà un futuro migliore? :)

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ragazzi, figo proprio questo pycon8!

2017-04-10 Per discussione Alessandro Re
2017-04-09 11:04 GMT+02:00 Roberto Polli :
> Ciao belli,
>
> ancora deve finire ma già ci manca... pycon8!
>
> Grazie a tutti quelli che ci sono :D

Concordo, è stato un gran piacere anche per me.

Comunque mi dicono che europython dura di più :D Magari ci si vede a Rimini.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Nuova release per UnrealEnginePython

2017-03-01 Per discussione Alessandro Re
Fantastico, grazie! Non mancherò al talk, che ne ho bigiati fin troppi :)

On Wed, Mar 1, 2017 at 3:53 PM Roberto De Ioris  wrote:

> Ciao a tutti, vi segnalo che e' disponibile una nuova release
> del plugin python per Unreal Engine 4.
>
> Ci tengo particolarmente ad annunciarla perche' e' la prima che include
> una test suite che puo' essere usata anche come base per i propri
> giochi/simulazioni (a meno che non vogliate scrivere i vostri unit test in
> C++ ;)
>
> Il sito del progetto e' qui:
>
> https://github.com/20tab/UnrealEnginePython
>
> (i binari sono disponibili per mac e win, su linux tocca ancora compilare
> da sorgente ma sto facendo del mio meglio per risolvere sta rottura)
>
> Per chi non sapesse cosa e' unreal engine vi linko lo showreel nuovo di
> zecca per il 2017:
>
> https://www.youtube.com/watch?v=WC6Xx_jLXmg
>
> A pycon terro' un talk sul progetto, vi aspetto :P
>
> --
> Roberto De Ioris
> http://unbit.com
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Dubbi basilari da neofita.

2017-02-28 Per discussione Alessandro Re
Ah grazie! Pensavo che NVDA fosse una categoria più che un nome
specifico... Che imbarazzo! :D

On Tue, Feb 28, 2017 at 6:32 PM Carlo Miron <mi...@python.it> wrote:

> 2017-02-28 18:27 GMT+01:00 Alessandro Re <a...@ale-re.net>:
>
> > Giusto per curiosità, come si chiama il software?
>
> Suppongo sia <https://github.com/nvaccess/nvda>.
>
> ㎝
>
> --
> |:**THE -WARE LICENSE** *(Revision ㊷)*:
> | <miron@.it> wrote this mail. As long as you retain this
> | notice you can do whatever you want with this stuff.
> | If we meet some day, and you think this stuff is worth it,
> | you can buy me a  in return. —㎝
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Dubbi basilari da neofita.

2017-02-28 Per discussione Alessandro Re
Ciao Filippo,
innanzi tutto ti correggo una cosina: tendenzialmente, python non viene
compilato, ma interpretato. Poi la realtà è complicata, ma in generale non
si parla spesso di "compilare un software python".

Comunque, il problema maggiore è che python 3 non è retro-compatibile con
python 2, quindi quel software difficilmente riuscirebbe a funzionare con
un interprete recente (a meno di essere stato fatto molto bene, ma in quel
caso gli autori direbbero che è compatibile con python 3).

Il numero di differenze e le possibili cose da cambiare potrebbero essere
poche e triviali, oppure veramente sostanziali.

Giusto per curiosità, come si chiama il software?
A presto
~Alessandro

On Tue, Feb 28, 2017 at 5:39 PM Filippo Tenaglia 
wrote:

> Ciao a tutti,
> come da oggetto sono un neofita di Python e, dopo un lungo periodo di
> programmazione in Java, vorrei imparare questo linguaggio in modo da
> "giocarci" ampliando le funzionalità dello screen reader NVDA (sono
> totalmente cieco e mi piacerebbe aggiungere qualcosina a quest'ottimo
> software opensource).
> Vi starete chiedendo "ma questo dove vuole arrivare?" è presto detto,
> il suddetto software è sviluppato con python 2.7.13 e mi chiedevo,
> prima di fare danni, cosa comporterebbe ricompilare il software con la
> versione più recente e, soprattutto, se ci sono così tante differenze
> da rendere questa operazione incompatibile con il software originale.
> Come detto vorrei imparare questo linguaggio ma prima di partire con
> lo studio vorrei essere sicuro di studiare la versione giusta!
> Grazie per l'attenzione prestatami e, in attesa di vostre risposte, vi
> auguro una buona serata!
> Filippo Tenaglia.
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] np.random aiuto!!!

2016-04-30 Per discussione Alessandro Re
Ciao,
Non sono sicuro di aver capito bene il problema, ma provo a dirti dove
credo tu stia sbagliando.

On Apr 29, 2016 08:41, "Francesca Senatore" <
francesca.senatore1...@gmail.com> wrote:

> from numpy as np
> for num in range(300):
> a = 5.6e3
> b = 2.5e6
> probs = [0.88514, 0.0946, 0.006757, 0.01351]
> cutoffs = np.cumsum(probs)
> temp = (b-a)*rand.uniform(0, cutoffs[-1])+a

A parte che non è ben chiaro cosa siano a e b, rand.uniform(0,1) genera un
numero casuale in [0,1) direi... Quindi non ottieni affatto quello che
volevi :D

Una volta calcolato il vettore con le probabilità cumulate, devi usarlo!
Ora, estratto un numero casuale tra 0 e 1 con distribuzione uniforme, quel
vettore ti dice che lo 88.5% delle volte quel numero casuale sarà più
piccolo del primo elemento del vettore, il 97.9% (88.5% + 9.4%) delle volte
più piccolo del secondo elemento, eccetera fino alle 100% delle volte più
piccolo dell'ultimo elemento.

Quindi quando hai estratto un numero a caso in [0,1], devi andare a cercare
nel tuo vettore di cumulate qual è la posizione del vettore che contiene il
più grande numero non più grande di quello estratto.

Per esempio (scrivo il codice al volo dal cellulare, potrebbe avere bugs :p)

nu = random.uniform(0,1)
for i, p in enumerate(cutoffs):
if p >= nu:
print('trovato', i)
break

Se ad esempio estrai 0.1 questo sarà più piccolo di cutoffs[0] e quindi
stampa 0.
Se estrai 0.9, questo sarà più grande di cutoffs[0], ma non di cutoffs[1],
quindi stampa 1, e così via.

Spero di averti chiarito dove sta l'errore, ma se le funzioni che ti hanno
consigliato gli altri fanno ciò che ti serve, usa quelle :)

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] OT: Imparare un altro linguaggio

2016-04-27 Per discussione Alessandro Re
Questa mail mi era sfuggita, rispondo in ritardo.

2016-04-20 13:43 GMT+01:00 enrico franchi :
>> > C, te lo consiglio per giocare coi puntatori. Sono una bella cosa da
>> > sapere, secondo me, e li trovo anche molto divertenti.
>
> +1
>
> Puntatori... gestione della memoria a basso livello dal punto di vista della
> macchina.
> Nel senso che gestire la memoria a basso livello e' probabilmente piu'
> *comodo* in Rust, ma per imparare a pensare a come fa le cose sotto la
> macchina, C e' un buon compromesso rispetto ad altro.
>
> Fossero solo i puntatori, tanto vale Go. ;)

Sì, intendevo più quello che i puntatori in sé. Anche se, se non
sbaglio, l'aritmetica dei puntatori manca in Go, e quella la trovo
divertente in sé :)

> Si alla programmazione funzionale "pura". Lisp lo definirei tutto meno che
> "funzionale puro". Cioe', puoi limitarti ad un sottoinsieme "puro" di Lisp,
[cut]

ahah su questo devo semplicemente farmi da parte: non ho tutta
l'esperienza che hai tu a riguardo, e mi sono dovuto limitare ai pochi
linguaggi che ho usato :) Ricordo però che lisp e scheme li ho
studiati in modo puramente funzionale.

> Fra i "lisp like" per assurdo uno dei piu' puri e interessanti e' Clojure.
> Molto molto bellino.

Metto in coda.

> Si. Go e' anche un ottima scelta per capire quali siano le parti sane della
> programmazione ad oggetti. ;)

Ahah interessante... E mi sentirei di concordare, se solo non avessi
il dubbio perenne di non aver capito qual è il modo giusto di usare go
:) Hai libri consigliati a tal proposito? Donovan & Kernighan?

>> > Poi oh, vedi te cosa vuoi fartene :) Se devi cercarti un lavoro...
>> > Andrei su C/C++/Java.
>
> Io direi di no. C e' soprattutto embedded. C++ si trova da lavorare ma e'
> molto specialistico. Java e' un mercato agguerrito. I posti di lavoro
> interessanti li pigliano la gente *davvero* sveglia o davvero skillata. Poi
> capita sempre che uno vorrebbe fare altro e se lo trova fra le palle
> comunque: cercare proprio di lavorare in Java e' preposterous.

Su questo non sono del tutto d'accordo. Dipende molto cosa si cerca di
lavoro, no? Purtroppo non ho davvero una buona idea su quale sia lo
share per i vari settori dell'informatica (sia in fatturato che numero
di impiegati), quindi giudico con la mia poca esperienza personale,
fuori e dentro l'università.

Sì, C è embedded, ma OP ha detto che è un ingegnere - non so di che
tipo - ma così a naso mi sento di dire che embedded è forse una delle
cose che potrebbero essere più vicine al suo ambito (o comunque
potrebbe aiutarlo nel caso volesse fare un upgrade (o downgrade...) a
C++).

Sì, C++ è specialistico, ma segue un po' le orme del C: credo sia più
probabile avere accheffare con C++ in ambito ingegneristico che in
ambito commerciale. Quando ho lavorato con ingegneri (informatici,
meccanici e aerospaziali) e fisici, usavano quasi tutti C++. Ma,
forse, ero finito proprio in quel mercato specialistico di cui parli
:)

Sì, Java è un mercato-bordello, ma questo significa anche che c'é
molta richiesta. Non tutti devono o possono andare in compagnie
super-fiche e skillate come Amazon (perdonami la punzecchiatura :D) e
ho sentito, in non pochi casi, di persone laureate (e nemmeno in
informatica) che venivano assunte per programmare solo perché avevano
fatto un corso base di Java. Credo che da un punto di vista
commerciale o di CV sia meglio Java se quello di cui si ha bisogno è
un lavoro (non necessariamente figo o appagante... Cosa che farebbe
comunque piacere a molti).

Poi ho sentito anche tanta gente che lavora con SAS, ma non mi va
proprio di consigliarlo :D (anche perché lo conosco molto poco).

Ciauz!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] OT: Imparare un altro linguaggio

2016-04-20 Per discussione Alessandro Re
2016-04-20 13:16 GMT+01:00 Carlo Miron <mi...@python.it>:
> 2016-04-20 12:36 GMT+02:00 Alessandro Re <a...@ale-re.net>:
>
>> Per quanto mi riguarda la scelta di un prossimo linguaggio... Io
>> voterei per un linguaggio che ti permetta di imparare paradigmi nuovi
>> (specialmente se lo fai per tua passione personale).
>
> Nick Coghlan qualche giorno fa su [Python-ideas] consigliava:
>
> | It's also the case that any developer with only one language currently
> | in their toolbox (even when that language is Python) is a developer
> | with lots of learning opportunities ahead of them:
> | 
> <http://www.curiousefficiency.org/posts/2015/10/languages-to-improve-your-python.html>
>

Esatto! :) Grazie, ottima risorsa!
Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] OT: Imparare un altro linguaggio

2016-04-20 Per discussione Alessandro Re
2016-04-14 11:43 GMT+01:00 Giovanni Porcari :
> Adesso mi faccio uccidere
>
> http://www.apple.com/it/swift/
>
>
> :D:D:D

Vi interesserà sapere che swift su android non è una possibilità così
remota ;) E sì, è già Open Source.

https://github.com/apple/swift/blob/master/docs/Android.md

Ma notare la FAQ:

> Does this mean I can write Android applications in Swift?
>
> No. [cut]

Per quanto mi riguarda la scelta di un prossimo linguaggio... Io
voterei per un linguaggio che ti permetta di imparare paradigmi nuovi
(specialmente se lo fai per tua passione personale).

C, te lo consiglio per giocare coi puntatori. Sono una bella cosa da
sapere, secondo me, e li trovo anche molto divertenti.

Scheme/LISP, te li consiglio per la programmazione funzionale pura,
che è molto divertente anche quella e può aprirti qualche porta
mentale che puoi riutilizzare in altri linguaggi moderni (java,
python...)

Erlang/go, te li consiglio se vuoi divertirti con la concorrenza e il
parallelismo. Ho trovato molto belli i paradigmi che usano, e sebbene
non usi erlang da un bel po', ancora adoro il pattern matching che
usa.

Poi oh, vedi te cosa vuoi fartene :) Se devi cercarti un lavoro...
Andrei su C/C++/Java.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] GO e le GUI grafiche.

2016-04-17 Per discussione Alessandro Re
2016-04-14 13:46 GMT+02:00 Gabriele Battaglia :
> Ciao a tutti.
> Scusate la domanda fuori tema ma... se ne è parlato così tanto che ormai la
> lista potrebbe chiamarsi PythonGo, che è anche un'incitazione carina.
> A coloro che conoscono le basi del linguaggio chiedo, come è, costruire le
> interfacce grafiche, in Windows, usando GO? Il livello di complessità è pari
> a quello in Python? Quali e quanto ampia la scelta di librerie per gli
> oggetti grafici? In termini di complessità e concisione di linguaggio, quale
> fra Python e GO è più immediatamente o facilmente comprensibile?

Ciao,
anche io mi chiedevo questa cosa ultimamente e - sebbene non mi
piaccia molto - credo che la soluzione migliore attualmente sia quella
che ha adottato mumax: GUI fatta sul browser.

http://mumax.github.io/

Io proverò ad implementare qualcosa di simile nei prossimi giorni, credo.
Se vuoi scrivimi pure che ne parliamo.
Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [OT] Mail di Enrico Bianchi in spam

2016-03-15 Per discussione Alessandro Re
On Mar 14, 2016 7:41 PM, "Nicola Larosa"  wrote:
>
> Massimiliano Modena wrote:
> > OT nell' OT: con la tastiera layout en_US come faccio le lettere
> > accentate?
>
> Se hai Ubuntu usa la tastiera:
>
> "Italian (US keyboard with Italian letters)"

Non solo su Ubuntu per fortuna :) c'è anche su Fedora e molte altre distro
per quanto ne so.

AltGr + a per à oppure il tasto sotto per l'altro accento
AltGr + z per á

Funziona con tutte le vocali e hai anche le maiuscole accentate :)
Ciauz
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [OT] Mail di Enrico Bianchi in spam

2016-03-14 Per discussione Alessandro Re
2016-03-14 15:53 GMT+00:00 Davide Muzzarelli :
> Per forza che finiscono nello spam, il suo dominio non ha il record SPF e il
> suo name server non è nella lista del parent name server.

Ah che figata, non sapevo nulla di tutto ciò :D ora mi informo e vedo
se può essere utile anche al mio dominio custom.

Grazie!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [OT] Mail di Enrico Bianchi in spam

2016-03-14 Per discussione Alessandro Re
2016-03-14 15:28 GMT+00:00 Kbyte :
> Non so se è un problema mio. ma sono mesi che mi sono accorto che
> praticamente il 90% dei messaggi di Enrico Bianchi su questa lista finiscono
> nella cartella spam di Gmail.
>
> Altri utenti Gmail che seguono la lista hanno lo stesso problema?

Sì, ho dovuto fare un filtro per non farceli finire, e ad ogni sua
mail c'é un banner che sostiene che sarebbe dovuto finire tra lo spam.
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] PyQt, QGraphicsTextItem con margine e segfault

2016-02-08 Per discussione Alessandro Re
Ciao lista :)
Volevo postare su SO, ma so che qui ci sono dei bravi pythonisti che
mangiano PyQt la mattina a colazione e quindi ho pensato di rallegrare
un po' l'atmosfera facendo una domandina a riguardo.

L'idea è questa: vorrei avere una scena con dei QGraphicsTextItem,
solo che vorrei mettere attorno al testo un pochino di margine. Per
vari motivi, voglio creare una nuova classe che se ne occupi.

Per mettere i margini, il mio codice fa così: reimplemento
boundingRect(), chiamo super().boundingRect() e ci aggiungo un po' di
margine.
Poi, mi basta disegnare quello stesso rettangolo dentro la paint(),
prima di invocare super().paint().

Fin qui, tutto liscio: il bordo viene disegnato senza apparenti problemi.

Poi però ho provato ad aggiungere la possibilità di spostare gli
elementi col mouse, e questo richiede di implementare shape(). La mia
implementazione dovrebbe fare più o meno come quella di default: uso
il boundingRect() (inclusivo di margini).

Ecco il problema: quando provo a trascinare uno StyledItem che *non
contiene testo*, va in segfault. Se invece l'item ha un testo, allora
funziona come mi aspetto.

Non riesco a capire dove sta il problema. Qualcuno mi aiuta (e mi da
qualche dritta su come affrontare il debug in futuri casi come
questo)?

Per non inquinare la mail di codice mal formattato, un minimal working
example lo trovate
[qui](https://gist.github.com/akiross/e7a6119a7e622bed9477).

BTW, Python 3.4.2, PyQt (QT_VERSION_STRING) 5.5.1.

Grazie mille in anticipo!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python Anagram Contest was Tesseract

2016-01-12 Per discussione Alessandro Re
2016-01-09 17:31 GMT+00:00 Marco Beri <marcob...@gmail.com>:
> 2016-01-09 17:09 GMT+01:00 enrico franchi <enrico.fran...@gmail.com>:
>>
>> Categorie:
>> - il piu' corto (lunghezza, wc -c del file)
>> - il piu' veloce
>> - il piu' efficiente computazionalmente (complessita' computazionale, non
>> velocita' pura)
>> - il piu' pythonico (stile, PEP8, zen)
>
>
> Per ora concorro per il più breve (ma ammetto che c'è un bug, non le trova
> ancora tutte :-)

> Anche come efficienza non è malaccio, se non fosse che, appunto, non le
> trova tutte! :-D

Io non so bene per cosa concorro:
 - la lunghezza la ricavate dal codice (e non ho provato a renderlo corto)
 - la velocità non ha molto senso comparata su macchine diverse
 - la complessità computazionale richiede di conoscere i vostri algoritmi
 - la pythonicità è ancora un concetto che non mi è chiaro XD

Ho usato una ricerca esaustiva, eventualmente limitata da un numero di
parole (dovrebbe trovarle tutte).
Il dizionario è un file di testo, una parola per riga.

https://gist.github.com/akiross/9543c83b399664011d5a

./anagram_dfs.py "alessandro re" 2

Quando sarò "Arnaldo Serse" potrò "sondare laser" o "renderla ossa",
ma di sicuro non "renderò salsa" fatta di "sarde salerno" (e nemmeno
con "sarde orleans"). Qualunque cosa questo voglia dire.

Ciauz!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Offerta di lavoro

2015-12-16 Per discussione Alessandro Re
Ciao Lista,

giro la mail di un mio conoscente, che lavora per un progetto chiamato
Quantum ESPRESSO, e stanno cercando un programmatore python capace.

Se siete interessati, credo possiate scrivere all'azienda attraverso
il sito. Non scrivete a me che io non c'entro (a parte essere alterato
perché attualmente non posso applicare per motivi di distanza
geografica).

Ecco l'annuncio
Ciauz
~Ale

We are looking for an experienced programmer, fluent in python and
xml, to participate in a EU-funded project aiming at modularizing
Quantum ESPRESSO (http://www.quantum-espresso.org) and integrating it
with other scientific softwares and user interfaces. A
physics/chemistry background would be a plus, but not strictly
requested. We offer a decent salary (of up to 2100 EUR/month after
taxes and social security, depending on qualifications and prior
experience) and a starting contract of up to 30 months, renewable
under certain conditions. Position is available at SISSA (Trieste,
Italy). More datails are obviously avaliable upon request.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Dimmi tre libri informatici che non si può non aver letto

2015-11-30 Per discussione Alessandro Re
2015-11-29 16:50 GMT+00:00 Marco Beri :
> Mi hanno fatto questa bella domanda e io ho risposto così:
>
> 1) Peopleware
> 2) Clean Code: A Handbook of Agile Software Craftsmanship
> 3) The Mythical Man-Month
>
> E voi? Cosa rispondereste?

Io ho un elenco un po' troppo specializzato, e non me la sento di dire
che ogni informatico debba leggere libri su C++ o OpenGL o sull'AI, ma
credo che ogni informatico dovrebbe avere una base robusta sugli
algoritmi:

Introduction to Algorithms (Cormen, Leiserson, Rivest, Stein)

E forse un altro libro veramente bello sui programmi che in un certo
senso è generalista (anche se usa Scheme) è:

Structure and Interpretation of Computer Programs (Abelson e Sussman(s))

E credo ogni informatico che si rispetti dovrebbe avere anche una
buona base matematica (discreta e continua), statistica e
probabilistica. Ma vabé, forse sono un po' off-topic qui e non mi
dilungo con gli elenchi. E poi non sono "libri di informatica", anche
se c'entrano molto con la mia idea di "informatico ideale".

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [graphql] interessante alternativa/evoluzione rispetto al REST

2015-10-04 Per discussione Alessandro Re
2015-10-03 12:56 GMT+01:00 enrico franchi :
>
> 2015-10-02 18:10 GMT+01:00 m :
>>
>> sono l'unico a cui sta sul cazzo[1] il fatto che la parola 'isomorfismo',
>> che ha un significato preciso in matematica, sia stata presa e usata a
>> sproposito ?
>
>
> No. Non sei l'unico. Ad essere sinceri anche nella community il termine non
> piace a molti e cercano alternative.


E questo, ragazzi, è il motivo per cui si dice che la matematica, un
giorno, potrebbe esservi utile :D

Grazie Enrico per questo bel ripasso di algebra e topologia.

Comunque, sebbene il tuo salumiere deve essere piuttosto skillato (e,
d'altronde, non mi sarei aspettato altrimenti), al mio salumiere gli
isomorfismi topologici li spiego dicendo che un toro e una tazza hanno
sostanzialmente la stessa forma... Lui mi guarda male, però. E ti
dirò, il salumiere mi guarda anche peggio quando gli dico che un toro
è una ciambella (a quanto pare non c'é mercato per bistecche di
ciambella).

Per rispondere alla domanda originale: onestamente non credo
di aver mai sentito la parola "isomorfismo" usata fuori dal contesto
matematico (prima di leggere questo thread)... Sarà perché non uso
javascript (e ne sono felicissimo)? :D

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Tutorial su FUSE

2015-09-30 Per discussione Alessandro Re
2015-09-30 22:11 GMT+01:00 Marco Paolini :
> Voglio dire il config file di nginx lo metto su un mount fuse e non appena
> nginx tenta di aprirlo, io creo al volo il config file da python prendendo
> per esempio delle informazioni da variabili di ambiente...
>
> è troppo un accrocchio?

Ah guarda, per me non è un accrocchio, ma una soluzione piuttosto
divertente :D E dipende abbastanza per cosa ti serve...

Ma mi chiedo: quali sono le alternative? Quanto stabili sono? Quanto
sono manutenibili? Quali requisiti hanno? È necessario passare per
fuse?

Perché se devi far partire nginx (che non conosco) in un container
usando ogni volta un file di configurazione diverso, allora forse è
più lineare se fai uno script che genera il file e lancia il server
ogni volta: mi sembra più semplice e meno prone ad errori.

Se invece il server deve sempre restare attivo e ogni tanto per
qualche motivo deve cambiare configurazione e l'unico modo è leggere
lo stesso file, allora passare per fuse potrebbe anche aver senso.

E grazie per il consiglio sul try, in effetti non avevo pensato al finally!
Ciauz!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Tutorial su FUSE

2015-09-30 Per discussione Alessandro Re
Ciao lista,

mi faccio della pubblicità (cosa che non mi piace mai fare, perché
temo le conseguenze dei miei errori :D), e vi condivido un tutorial
che ho scritto su llfuse.

llfuse è una libreria per python che permette di creare filesystem con
fuse, usando le API di basso livello.

Se qualcuno fosse esperto con queste belle cose, qualunque feedback
(incluso "fa cagare" + giustificazione) mi farebbe piacere.

Se invece non siete esperti con fuse, per me vale la pena di dargli
un'occhiata perché è un concetto molto carino :)

https://gist.github.com/akiross/3d7952b186d523c61cbc

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] È stato rilasciato Python 3.5

2015-09-15 Per discussione Alessandro Re
2015-09-15 10:15 GMT+01:00 Enrico Bianchi :
> On 09/15/2015 06:44 AM, Pietro wrote:
>>
>> https://docs.python.org/3.5/whatsnew/3.5.html

Non ne ero al corrente, grazie!

> Come dicevo su altri lidi, sempre saremo grati per l'integrazione della PEP
> 441 e dela PEP 471 ;)

Interessanti in effetti :) Anche se personalmente è un po' che sono
interessato alle async/await. Non so ancora una beata fava su tutto
questo, anche perché la mia impressione è che per lo più venga usato
in ambito web - che io ignoro - però mi incuriosisce molto dal punto
di vista dello sviluppo delle GUI...

Magari un giorno o l'altro mi ci metto, prendo SDL* e mi studio questa
possibilità per i fatti miei, ma se ci fosse già qualcosa mi
interesserebbe studiarlo un po'.

Ciauz!
~Ale

(*) Perché è l'unica libreria che conosco dove devi scriverti il tuo
main loop, anche se in effetti ne esistono molte altre (più grosse e
pesanti, magari) in cui *puoi* comunque farlo.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] È stato rilasciato Python 3.5

2015-09-15 Per discussione Alessandro Re
2015-09-15 13:29 GMT+01:00 Nicola Larosa <n...@teknico.net>:
> Alessandro Re wrote:
>> Anche se personalmente è un po' che sono interessato alle
>> async/await.
>
> Appena introdotte nella 3.5

Sì, ho letto, ma era un po' che le aspettavo eheh

Comunque grazie molte per tutte le varie risorse: la mia carenza non
era tanto sul modello, quanto alla sua implementazione in python 3.5
(cosa sono queste nuove async/await e come si comportano?) e sul
modulo asyncio, ma le risorse che hai linkato sono molto interessanti
e me le leggerò con calma :)

E visto che in questi ultimi giorni mi sto proprio studiando golang
(bello!!), apprezzo molto anche il link su quello.

Grazie mille!
Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Consiglio per realizzazione GUI

2015-07-19 Per discussione Alessandro Re
On Jul 18, 2015 10:55 PM, Fundor333 fundor...@gmail.com wrote:
 Personalmente lo consiglio perché permette di creare sia GUI molto
semplici che molto complesse senza enormi sforzi

Non voglio criticare il consiglio di usare  qt, perché è la mia libreria di
riferimento quando faccio GUI, ma volevo criticare questa frase che ho
citato: no, quando la GUI è molto complessa, non c'è toolkit che tenga :p
mi spiace, ma con qt è facile fare cose semplici e meno incasinato fare
quelle complesse... Ma rimangono comunque incasinate :D

enormi sforzi è un po' relativo... Qt ha tante cose già fatte, belle,
pronte e ben organizzate, ma non è magia: se il problema è complesso,
rimane complesso.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Parere su Go di un professore di informatica (delle superiori) nonche' uno dei fondatori di ERLUG

2015-07-12 Per discussione Alessandro Re
On Jul 12, 2015 6:58 PM, enrico franchi enrico.fran...@gmail.com wrote:
 Io posso dire che Python sufficientemente vecchio era molto leggibile.
Leggibile perche' aveva meno features e soprattutto meno features
complesse. Piano piano le hanno aggiunte, e' tutta roba molto potente e
interessante, ma alla fine dei conti e' anche tutta roba che rende il
codice relativamente troppo complicato da capire per essere considerato
leggibile.

Intervengo per un piccolo commento: credo di aver capito cosa intendi, ma
secondo me la complessità e la leggibilità di un linguaggio non sono legate
in quel senso. Un linguaggio leggibile è leggibile sempre, anche se trovare
bachi alle 3 di notte può essere complesso. La leggibilità penso che sia
legata anche alla capacità del linguaggio di presentarsi in modo
familiare e intuitivo, anche attraverso della complessità che nasconde
dettagli non rilevanti alla comprensione generale.

Faccio un esempio scemo: il costrutto with è molto utile e potente. Ciò che
ci sta dietro è relativamente complesso (NB è un esempio scemo!) e di fatto
la complessità viene mascherata dal costrutto e dalle magie che ci son
dietro. Ora, se uno nasconde una cosa molto complessa dietro with, magari
debuggers alle 3 di notte è una menata perché tu *sai* che c'è dietro della
complessità e che magari il baco sta lì. Però guardare il codice è capire
che with ti crea un contesto che viene aperto e chiuso è un concetto
piuttosto immediato, quindi quando leggi il codice capisci in fretta cosa
si cerca di fare.

Forse tu parli di leggibile ma vuoi dire palese o esplicito mentre io
dico veloce farsi un'idea. Però questo non vuol dire che non ci possa
essere dietro della complessità che viene nascosta per rendere, appunto,
tutti leggibile.

Se ho fatto typos è perché son dal cellulare, abbiate pazienza :p
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] piccolo editor con autocompletamento del codice

2015-07-06 Per discussione Alessandro Re
2015-07-06 16:26 GMT+01:00 germano carella germano.care...@gmail.com:
 class prova(object):
   def __init__(self):
  self.l = list()
  self.l. # e qui mi dovrebbero comparire i membri di list, che però
 giustamente non compaiono, perché la console non ha finito di eseguire il
 codice.

Ciao,

devo essere sincero: non ho letto attentamente la tua domanda, e non
conosco rlcompleter (quindi probabilmente questa è una risposta
inutile o che non ti interessa), ma io ho un pochino di esperienza con
un completer molto bello che si chiama Jedi
(https://github.com/davidhalter/jedi) - che non so se va su python per
.net - ma di sicuro copre il caso che hai messo qui sopra nello
snippet.

In generale, Jedi può (provare a) fare completion anche su codice
incompleto o parzialmente sbagliato.

Non credo di poter essere molto più utile di così (a parte fornirti un
codice di esempio su come uso Jedi), sorry :)

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] piccolo editor con autocompletamento del codice

2015-07-06 Per discussione Alessandro Re
2015-07-06 19:03 GMT+01:00 germano carella germano.care...@gmail.com:
 L'ho provato, è fantastico!!! ho già fatto la prova col mio esempio e
 funzionissima!
 Grazie mille, mi hai aperto un mondo...
 Ciao!

Ottimo :) Se vuoi postare il tuo esempio qui sulla lista, magari puoi
essere di aiuto a qualcuno.

Io ho usato Jedi in un mio progettino per fare una shell interattiva
[1], ma non credo che cambi molto il principio di utilizzo per un
editor.

Aggiungo una cosa, non pertinente alla domanda originale, ma
rilevante: per favore, quando rispondi alle email, usa il bottom
posting, e non il top posting [2].

[1]: https://github.com/akiross/pypaper/blob/master/PyPaper/core/pypaper.py
[2]: https://en.wikipedia.org/wiki/Posting_style#Bottom-posting

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] PyQt vs PySide

2015-07-03 Per discussione Alessandro Re
2015-07-03 8:55 GMT+01:00 Kbyte kb...@snowpenguin.org:
 Sul wiki delle QT ho letto un po' di informazioni su PySide.

 Io però mi chiedo, questo binding è effettivamente sviluppato o è sulla via
 della morte?

 Attualmente mi capita di sviluppare con QT5 + Python3 e già sarei tagliato
 fuori, però sono sempre attento a nuove possibilità :P

Per vari motivi io preferirei usare PySide, ma onestamente mi sembra
che quelli di Qt non si siano mai cagati troppo Python... E PySide non
mi sembra affatto in buono stato, almeno l'ultima volta che ho
guardato.

Anche io uso Qt5 + Python 3 e non ho avuto molta scelta.

Se non hai problemi di licenza, che alla fine è l'unico problema
grosso di PyQt (è GPL e quindi se la usi anche il tuo software deve
essere GPL), allora vai pure con quello.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] \b e \r in file di testo

2015-06-28 Per discussione Alessandro Re
On Jun 26, 2015 9:30 AM, enrico franchi enrico.fran...@gmail.com wrote:
 Grazie della fiducia, ma qui il disclaimer e' importante. Intanto la
teoria di cui si parla e' roba che studiai davvero tipo 12 anni fa
(quindi ci sono innumerevoli problemi di cache miss).

Questo rende la cosa ancor più sorprendente :) la mia conoscenza dei
linguaggi formali non è molto estesa (mi fermo a sapere cos'è il pumping
lemma, per dire), ma la parte che ti invidio maggiormente è la capacità di
collegarla all'effettiva implementazione e applicazione nei linguaggi di
programmazione reali - che sostanzialmente non ho.

Ma mentre la teoria si studia e, a seconda del cervello, la si ricorda o
meno, la capacità di applicarla di solito è dovuta alla... Pratica! Quindi
volevo chiederti, da dove deriva tutta questa conoscenza? Ti occupi di
compilatori? Hai fatto un phd sul tema?

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda

2015-06-25 Per discussione Alessandro Re
2015-06-25 10:11 GMT+01:00 enrico franchi enrico.fran...@gmail.com:
 2015-06-25 10:08 GMT+01:00 Nicoletta Siclari ni...@hotmail.it:
 Tutto ciò che trovo in italiano su internet è per altri linguaggi di
 programmazione!


 Dimentica la documentazione in italiano. Anche nella migliore delle ipotesi
 e' meno aggiornata e meno completa della documentazione che trovi in
 inglese.

Concordo con Enrico: spesso le cose migliori e più aggiornate sono in inglese.

Comunque c'é qualche libro in italiano, e gli autori di questi libri
leggono e scrivono anche in questa mailing list. Dato che loro non
possono farsi pubblicità (ahahaha), gliela faccio io :P

http://www.apogeonline.com/libri/9788850329151/scheda
http://www.amazon.com/Programmare-Python-Guida-completa-Marco/dp/8868950243

Se invece mastichi l'inglese, Dive Into Python 3 secondo me è un buon
inizio: www.diveintopython3.net
(Se non lo mastichi, imparalo :P)

Ti consiglio di iniziare a studiare Python3 e dimenticare (per ora,
magari per sempre) Python2.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda

2015-06-25 Per discussione Alessandro Re
On Jun 25, 2015 10:04 AM, Nicoletta Siclari ni...@hotmail.it wrote:

 Salve,
 Mi sono appena iscritta e , se non ho capito male, posso porre una
domanda riguardante un problema a questo indirizzo email.4
 In caso contrario mi scuso anticipatamente,
 Grazie.

Sì, esatto. Benvenuta!
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-25 Per discussione Alessandro Re
@Marco Beri, ahaha ti stavi giustificando per le tue scappatelle al
casinò? :D Io non ci sono mai stato, ma potrei andarci. E ovviamente
ci andrei per lo stesso motivo: per divertirmi, non per vincere...
Quella sarebbe un'illusione.

 La consapevolezza che il banco giochi con la matematica a suo favore, mi 
 appartiene. Sono consapevole, quindi, che chi gli giochi contro è in 
 svantaggio rispetto alle aspettative di vincita a suo favore. Ne sono così 
 convinto,

Non ne sei troppo convinto se cerchi di vincere usando una strategia
come quella che esponi qui sotto :)
Se il banco vince sempre, vuol dire che vince sempre, non sempre a
meno di un giocatore intelligente.

Quindi, la tua strategia è quella di dire: aspetto un evento che è
più probabile che esca, tipo l'uscita di un numero/colonna
ritardatario/a. Poi dopo un certo numero di volte che non esce, inizio
a puntare. Se perdo, la volta dopo punto il doppio, così mi ripago
delle perdite precedenti, e avanti così.

Marco ha già dato una risposta, ma io - che ho un debole per il
calcolo delle probabilità - aggiungerò altro.

La tua strategia non è nuova, e anzi esiste dal 1700... È abbastanza
naturale, secondo me, arrivare a questa idea, e persino io quando ho
studiato i giochi d'azzardo ci sono arrivato (solo che non ho dovuto
fare un programma per convincermi che non era fattibile :D).

Il concetto si chiama Martingala:

https://it.wikipedia.org/wiki/Martingala_%28matematica%29
https://en.wikipedia.org/wiki/Martingale_%28betting_system%29

L'osservazione fondamentale è: la strategia funziona se hai il
portafoglio illimitato.
Ovvero: non puoi viverci. Ovvero: se hai tanti soldi puoi bilanciare
la sfiga fino ad un certo punto, ma non puoi arricchirti. E comunque
se hai tanti soldi non vai al casinò per farne altri.

L'osservazione pratica è: se esiste dal 1700 e i casinò esistono
ancora e vincono ancora, significa che empiricamente non funziona :)

Per quanto riguarda i numeri ritardatari... Gianluca ha fatto un
discorso che ha senso dal punto di vista della distribuzione, che è
interessante, e ha centrato il punto: tutti i numeri hanno, ad ogni
giocata, la stessa probabilità di essere estratti.

Questo vuol dire che fondamentalmente puoi applicare la tua strategia
anche appena arrivi al banco, senza tener conto dei ritardatari.
Il concetto a cui fai riferimento, cioé prima o poi deve uscire, che
è ciò che spinge a studiare i numeri ritardatari, è valida: solo che
la legge dei grandi numeri è, appunto, sui grandi numeri, che non
sono 20 giocate, ma sono - di solito - almeno 30.

Non puoi raddoppiare abbastanza volte da avere un margine di sicurezza
sensato per giocare, semplicemente perché c'é un limite alla posta.

Divertiti pure a programmare, ma sappi che la strategia non ti porterà
da nessuna parte (a parte una piccola soddisfazione intellettuale,
certo, ma da quel che leggo sembra che tu ambisca a vincere qualche
soldino).

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] \b e \r in file di testo

2015-06-24 Per discussione Alessandro Re
2015-06-21 20:12 GMT+01:00 enrico franchi enrico.fran...@gmail.com:

Porca vacca, non mi ero accorto di questa risposta interessante!

 C'e' una leggera sottigliezza che pero' e' chiave.

 Intanto i linguaggi di programmazione per la maggior parte *non* sono
 context-free. Punto e fine della fiera.

Questa mi ha un po' sorpreso, ma nel senso che sono ignorante in
materia e quindi non avrei mai saputo dare una statistica. Ma la
domanda che mi scatta immediatamente è: parli in generale (includendo
anche DSL e tutti i linguaggetti del mondo che i vari programmatori
inventano un giorno sì e l'altro anche per qualsivoglia motivo) o ti
riferisci ai linguaggi general purpose (o ad un loro subset)?

Tra l'altro, per non essere troppo OT, sbaglio o Python ha come scelta
di design quella di essere context free? Oppure anche il nostro amato
linguaggio ricade nella categoria dei CFG + epsilon?

 In altre parole, Alessandro, hai spiegato bene perche' e' complicato parsare
 Tex, pero' di per se quella e' solo una parte del problema: l'assenza di
 modularita' nel compilatore ufficiale e' quello che chiude il cerchio del
 macello.

Non sapevo questa cosa, ma non so perché non mi sorprende :D

 Detto questo, credo che ad oggi molti documenti siano puro latex che non
 chiamano direttamente tex. E, sempre che io sappia (ma non sono certo)
 latex, fintanto che non usa direttamente tex, e' sensibilmente piu'
 semplice. Quindi e' vero che una libreria che deve gestire tex arbitrario e'
 un incubo, ma forse una libreria che gestisce latex e un subset ristretto di
 tex potrebbe coprire il 95% degli utilizzi con uno sforzo che e' il 5% di
 quello per re-implementare completamente un front-end per tex.

Ecco un'altra cosa che mi sorprende, per ignoranza: io conoscevo LaTeX
come un insieme di macro costruite su TeX e quindi pensavo che
passare per TeX fosse necessario, ma ammetto che la mia conoscenza
dell'argomento TeX/LaTeX è *veramente* limitata.

Grazie 10**6 :)
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-24 Per discussione Alessandro Re
2015-06-24 20:41 GMT+01:00 Carpediem i.carped...@tiscali.it:
 Ciao Alessandro, innanzitutto grazie infinite. La tua risposta non solo mi
 ha risolto il problema ma mi ha aperto molti altri orizzonti:
 quello sopra, è uno di questi ma, come avrai capito, sono alle prime armi
 con python e lavorando per 9 ore al giorno per 6 giornia settimana,
 i miei progressi sono molto lenti. Ho molte idee per la testa e provo a
 metterle in pratica con quel poco che ho finora acquisito. Quanto sopra, mi
 piace molto.

Ciao,
sì, avevo intuito e per questo ti ho dato qualche consiglio di altro tipo :)
Bene se ti è utile.

 Qui non ti seguo: in realtà il mio codice prevede una ulteriore lista di
 altre 65 variabili (che mi sono risparmiato dal
 riportare) e sinceramente, ritengo l'insieme troppo lungo per scriverlo riga
 per riga)

Ok, è questione di gusti :)
Comunque, dato che hai diverse stringhe composte tipo carre 1a3,
carre 2a6, oppure prima sestina, seconda sestina, prima
colonna, seconda colonna, potresti anche valutare, per risparmiare
righe, di costruire quelle frasi in modo algoritmico (dove puoi).

Quindi, per esempio, per le prime 3 colonne e 3 sestine puoi fare:

def genera_combinazioni(parole_prima, parole_seconda):
return tuple(' '.join(x) for x in product(parole_prima.split(),
parole_seconda.split()))

genera_combinazioni('prima seconda terza', 'prima seconda')
per ottenere

('prima sestina',
 'prima colonna',
 'seconda sestina',
 'seconda colonna',
 'terza sestina',
 'terza colonna')

Ora, questo metodo ti può salvare qualche riga e qualche errore di
battitura (o moltiplicarli :D), ma non credo sia davvero conveniente
nel tuo caso.

Per evitare la bruttezza nel codice, e anche per facilitare la
traduzione in altre lingue, di solito si usa mettere tutte le stringhe
in un file (uno per ogni lingua da tradurre) e, nel tuo codice,
leggere quel file. Nel tuo caso, mettere le stringhe in un file
semplifica molto la lettura del codice, però hai lo svantaggio di
dover aver sempre dietro il file in questione.

Per leggere il file ed ottenere una tupla, dove ogni riga è una
stringa, basta fare:

with open('file_stringhe.txt') as fp:
puntate_possibili = tuple(line.strip() for line in fp)

attento che usare .strip() rimuove tutti gli spazi (incluse le new
line) a destra e a sinistra della stringa, ti dico questa cosa, ma
probabilmente ti va benissimo così :)

 E qui casca l'asino L'errore era proprio questo e a questo punto non si
 trattava quindi di un errore
 di semantica. Non riesco ancora bene a spiegarmi il perchè al primo
 passaggio in effetti il valore della
 variabile aumenti di una unità (così come da me voluto) e poi tale valore
 resti invariato al passsaggio successivo

Il punto è che la variabile viene messa *sempre* a 1 da quel codice,
quindi se devi passare da 0 a 1 il codice funziona, ma se devi passare
da 1 a 2 o da N a N+1, non funzionerà :)

 nè capisco perchè python preveda, a questo punto, l'utilizzo di una forma di
 scrittura così come involontariamente
 io l'abbia scritta. Ad ogni modo, per non sbagliare, +1 = forever

Aspetta, forse ho capito male, ma +1 = è sbagliato in python:
attento a non confondere il + di +1 col segno positivo
(contrapposto al segno negativo dei numeri -1, -2, -3...), al fatto
che l'operatore += è composto da due caratteri.

Scrivere (metto gli spazi per farti capire quali sono le entità in gioco)

A+=B

è come scrivere

A=A   +   B

Se scrivi

A+=B

hai errore: += è un operatore vero e proprio e deve essere scritto
attaccato. Invece, il + che precede un numero per indicare il segno
positivo, può essere separato.

Scrivere

A += + B

ha perfettamente senso, e il secondo + davanti a B è solo
ridondante... Fondamentalmente, python permette di scrivere
A =+1

perché +1 è un numero, e lo spazio tra l'uguale e il numero +1 non
ha importanza :) A=1, A = 1, A=+ 1, A = + 1 son tutte cose
uguali.

Insomma, tu devi scrivere qualcosa come

[variabile] [operatore] [valore]

variabile è uscita_manque
operatore è += (senza spazi)
valore è 1 (o +1, è indifferente)

se scrivi uscita_manque +1 = ottieni

[variabile] [valore] [operatore]

che in Python non funziona.

Comunque, ti ho scritto 'sta spataffiata perché hai scritto +1 =, ma
magari avevi già capito.

Se vuoi toglierti ogni dubbio usa variabile = variabile + valore e
vivi felice :D

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Errore di semantica -

2015-06-23 Per discussione Alessandro Re
2015-06-24 0:19 GMT+01:00 Carpediem i.carped...@tiscali.it:
 Ho seguito i passaggi uno ad uno anche con carta e penna, ho modificato il
 codice più volte ma alla fine ottengo sempre lo stesso non voluto
 risultato. Mi aiutate a capire?

Ciao, ti dirò dove secondo me stai sbagliando, anche se non conosco la roulette.
E non solo ti dirò dove sbagli per l'errore che descrivi, ma per gli
altri mille peccati capitali che hai commesso nel codice :D ahahah

 uscita_passe = 0
 uscita_manque = 0
 scommessa_semplice = (passe,manque)
 scommessa_passe = 0
 scommessa_manque = 0
 tutti_i_numeri =
 (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24!
  ,25,26,27,28,29,30,31,32,33,34,35,36)

Se la roulette avesse avuto 1 numeri cosa facevi, li elencavi uno
per uno? :P
Usa tuple(range(37)) anziché quell'elenco che hai scrtto.

 passe = (19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36)
 manque = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)

Per questi usa tuple(range(19, 37)) e tuple(range(1, 19)).

 liste_in_ritardo = []
 puntate_possibili = (passe,manque,pari,dispari,nero,rosso,prima
 dozzina,seconda dozzina,terza dozzina,prima colonna,seconda
 colonna,terza colonna,prima sestina,seconda sestina,terz
 a sestina,quarta sestina,quinta sestina,sesta sestina,\
  settima sestina,ottava sestina,nona
 sestina,decima sestina,undicesima sestina,quattro primi,carre
 1a5,carre 2a6,carre 4a8,carre 5a9,carre 7a11,carre 8a12,carre
 10a14,carre 11a15,carre 13a17,carre 14a18,carre 16a20,carre
 17a21,\
  carre 19a23,carre 20a24,carre 22a26,carre
 23a27,carre 25a29,carre 26a30,carre 28a32,carre 29a33,carre
 31a35,carre 32a36)

Questa sfilza di stringhe potresti formattarla meglio, come ad esempio

puntate_possibili = (
passe,
manque,
pari,
dispari,
nero,
rosso,
prima

ecc, anche se esce una cosa lunghissima, personalmente preferisco un
codice più lungo e leggibile che di qualche riga in meno e che mi fa
incrociare gli occhi.

 print(Attenzione: stiamo facendo riferimento alle regole della Roulette
 francese.)
 print(Si presuppone, come previsto ad esempio al Casino' di Venezia, che la
 puntata minima accettata \nsia di 10 Euro e la massima di 600. Si ritiene
 scontato, inoltre, che il giocatore\nsegua rigorosamente i suggerimenti che
 verranno evidenziati dal programma.)
 print()

Ho notato che usi un sacco di print(); non voglio dirti che è una cosa
brutta, ma personalmente non mi piace mischiare gli stili: o usi una
print per ogni riga, o usi \n in una print sola. Io andrei di una
print per ogni riga. Ti consiglio, molto umilmente, di adottare uno
stile ed essere coerente ad esso.

 capitale_disponibile = eval(input(Per cominciare, indicami l'importo che
 intendi mettere a disposizione per il gioco (si consiglia almeno 2500 Euro)
 ))

eval(input()) è una cosa che vuoi evitare quasi sempre. Non usarlo.
Usa int(input()) se vuoi ottenere un intero oppure usa usa
ast.literal_eval(input()).

https://docs.python.org/3/library/ast.html#ast.literal_eval

 print(Giocata+(( )*17),ritardi di uscita+(( )*6),Giocata+((
 )*17),ritardi di uscita+(( )*8))

Esistono opzioni migliori per formattare incolonnando. Esempio:

print('Valore: {:12} Valore {:8}'.format(4, 123))

Usa format() e tutte le sue belle opzionI:
https://docs.python.org/3.3/library/string.html#formatstrings

 if numero_uscito in passe:

Se passe e manque e tutti_i_numeri li usi solo per tenere elenchi di
numeri, puoi fare 2 cose per migliorare il tuo codice:

1. usare set() anziché tuple(). Set è molto più veloce per vedere se
un elemento è al suo interno, rispetto a tuple, e la sintassi valore
in insieme è invariata e molto gradevole da leggere. Quindi, anziché
usare tuple(range(37)), usa set(range(37)). Se, invece, la tupla ti
serve perché è ordinata (set non preserva l'ordine), allora tieni la
tupla.

2. Se hai degli intervalli numerici e devi verificare se sei in tali
intervalli, non usare né tuple né set. Usa gli operatori =, e magari
definisci un paio di funzioni per leggere meglio:

def in_passe(n):
return 19 = n = 36

if in_passe(numero_uscito):
etc

 uscita_manque =+1

E questa riga credo sia l'origine del tuo baco. Più volte nel codice scrivi

variabile =+1

e secondo me tu stai cercando di ottenere

variabile = variabile + 1

ma forse non sai, o non ti sei accorto, che l'operatore += è ben
diverso dai due operatori =+.

a += b vuol dire a = a + b
a =+ b vuol dire a = (+b) cioé a = b (+ indica il segno del numero).

 prosegui_gioco = input(Vuoi continuare a giocare? si/no )
 if prosegui_gioco == si:

ultimo appunto: in genere è buona cosa fare controllo indipendenti
dalle maiuscole e dalle minuscole.
Quindi:

prosegui_gioco = input('Blah).lower()

così se l'utente inserisce SI o Si, il codice funziona comunque e non
è necessario scrivere tutto in minuscolo.

Spero di averti risolto il problema e ti averti dato qualche dritta :P
Ciauz
~Ale

Re: [Python] \b e \r in file di testo

2015-06-13 Per discussione Alessandro Re
2015-06-13 18:31 GMT+01:00 Matteo Scarpa matteoscarp...@gmail.com:
 Perchè io ho trovato un repository github per la gestione del LaTeX in
 python ma da quanto vedo non permette la modifica ma solo la
 generazione dei file LaTeX:  https://github.com/JelteF/PyLaTeX .

Darò un'informazione forse interessante e sicuramente non richiesta,
dato che anche io mi son trovato nella situazione di dover scrivere
uno script per modificare un file LaTeX.

Purtroppo, sembra che per fare il parsing di uno script LaTeX non sia
sufficiente un normale parser, quindi - fondamentalmente -
modificare un generico sorgente di latex potrebbe essere molto
complicato. Più specificatamente, *per il parsing* di TeX è necessaria
una macchina di Turing e non basta un automa a pila.

Ecco perché non è tanto facile trovare delle librerie che modifichino
un qualunque sorgente LaTeX.

http://tex.stackexchange.com/questions/4201/is-there-a-bnf-grammar-of-the-tex-language

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] xkcd password

2015-06-11 Per discussione Alessandro Re
2015-06-11 10:21 GMT+01:00 Marco Beri marcob...@gmail.com:

 On Jun 11, 2015 11:06 AM, Alessandro Re a...@ale-re.net wrote:

  Se prendiamo 4 parole a caso, non bisogna contare il numero di lettere
  per calcolare l'entropia, perché l'alfabeto non saranno più le
  lettere, ma le parole. Quindi 2048^4 = 1.7e13

 Esattamente. 2**44.

Eh sì, ma anche con 50 caratteri e 10 lettere ci arrivi a quel numero
di combinazioni, era questo il mio punto :\

26 lettere * 2 (maiuscole e minuscole) = 52, senza neanche metterci i
numeri sono

52^10 = 1.44e17, per cui comunque valgono I conti che hai riportato (o
sto facendo errori grossolani di cui non mi accorgo?)

  Ad esempio, la mia password gmail é: g4tto m0lla s3dicente r1nforzo

 Bugiardo!!!

Ahaha! Chissà... Dovresti provare, ma chissà su quale account di gmail
la sto usando! O:)

  e la regola per rendere inutile la ricerca per parole è di sostituire
  la prima vocale (4-3-1-0-U), che non è una regola molto difficile da
  ricordare, basta che un utente si inventa la sua regola e la usi
  sempre.

 Però basta che una delle password diventi nota e la tua regola non serve più.

È vero, ma a parte che per scoprirla bisogna romperla o azzeccarla, ma
anche se la si scoprisse, rimangono le 4-5 parole scelte a caso da
indovinare ogni volta, quindi sarebbe solo un valore aggiunto (e,
secondo me, di facile memorizzazione).

Comunque il vantaggio della strategia XKCD è il fatto che siano
password facili da ricordare: le mie erano solo considerazioni
numeriche :)

C'é da dire che la difficoltà di rompere una password cresce molto più
in fretta se l'alfabeto è di 2000 caratteri piuttosto che di 50,
quindi 5 parole fanno molta più differenza che 11 caratteri.

Ah, ci sono siti che non permettono di avere password troppo lunghe (e
con questo intendo non più di 12/16/20 caratteri).
Bizzarro, ma purtroppo ancora vero.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] xkcd password

2015-06-11 Per discussione Alessandro Re
2015-06-11 9:44 GMT+01:00 Marco Beri marcob...@gmail.com:
 Per chi vuole usarlo con un dizionario italiano, usi una versione ridotta
 con solo almeno 2**11 (2048) parole più comuni.

Ora, coi numeri non sono il massimo esperto, e premetto che non ho
visto il codice dell'OP, ma se si usano 2048 parole per generare
password a caso, significa che si sposta il problema di generare una
password con alfabeti di circa 50 lettere a generare password con
alfabeti di 2048 lettere.

Se prendiamo 4 parole a caso, non bisogna contare il numero di lettere
per calcolare l'entropia, perché l'alfabeto non saranno più le
lettere, ma le parole. Quindi 2048^4 = 1.7e13, mentre 50^10 = 9.7e16.
Invece 2048^5 = 3.6e16 che è comparabile.

Comunque il punto è che forse usare parole anziché lettere non sposta
il problema, perché è sufficiente generare password usando un
bruteforce di parole anziché di lettere, rendendo abbastanza inutile
tutta l'idea di fondo.

Forse una cosa utile da fare è rendere inutile un approccio di ricerca
basato sui dizionari, mettendo dentro lettere a caso... Certo, sarebbe
comunque difficile da ricordare per gli umani, ma almeno avrebbe più
senso numericamente.

Ad esempio, la mia password gmail é: g4tto m0lla s3dicente r1nforzo
e la regola per rendere inutile la ricerca per parole è di sostituire
la prima vocale (4-3-1-0-U), che non è una regola molto difficile da
ricordare, basta che un utente si inventa la sua regola e la usi
sempre.

E questo rende davvero difficile la ricerca, perché non si sa quante
variazioni di gatto ci siano: GATTO, Gatto, G4770 etc, quindi
il dizionario cresce di molto... Da 2000 parole a 20k parole, e quindi
20e4^4 = 1.6e17, che batte entrambe le combinazioni di prima.

Bho, spero di essermi fatto capire anche se ho buttato lì termini un
po' a caso (alfabeti, combinazioni, etc).

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] presentazioni

2015-06-11 Per discussione Alessandro Re
2015-06-11 10:10 GMT+01:00 damiano bassani damiano.bass...@gmail.com:
 Sono Damiano mi sono iscritto proprio recentemente alla mailing list e
 quindi ecco il motivo della mia presentazione.

Ciao Damiano, benvenuto!

 Sono un bioinformatico (cut)

Urca... E lo dici così? Mi dispiace molto :D

ahaha scherzo, bevenuto :)
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Mono in Unity 3D, Opus, FLAC (era: Re: Sviluppare in python 2 o python 3)

2015-06-09 Per discussione Alessandro Re
Scusate, forse mi è partita una mail a vuoto (google inbox è figo
sotto certi aspetti, fa cagare sotto molti altri).

2015-06-09 9:39 GMT+01:00 Nicola Larosa n...@teknico.net:
 Carlos Catucci wrote:
 Mono e' un'anatra zoppa. E' sempre li a correre dietro per fare rev
 eng sulle cose che fa .NET.

 Pensavo anch'io. Poi ho scoperto che Mono è usato come motore di
 scripting da Unity 3D:

Nicola, scusa l'osservazione, ma non vedo il nesso: essere usato per
lo scripting di Unity (o mille altre cose) è indipendente dal fatto
che Mono cerchi di star dietro a .Net.

Non credo che si stesse parlando della scarsa qualità del codice o di
lentezza o di altre cose (che quindi ne precludono l'uso in ambienti
di alta qualità, come Unity), ma del fatto che è un prodotto che nasce
dipendente da qualcos'altro: un'anatra, che però manca di totale
autonomia, quindi zoppa.

Se mi si perdona il paragone, è un po' come Jython, Pypy o le altre:
nascono per star dietro all'implementazione di riferimento. Sotto
certi aspetti (e non tutti, ovviamente), saranno sempre indietro.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Mono in Unity 3D, Opus, FLAC (era: Re: Sviluppare in python 2 o python 3)

2015-06-09 Per discussione Alessandro Re
On Tue, Jun 9, 2015 at 9:43 AM Carlos Catucci carlos.catu...@gmail.com
wrote:


 2015-06-09 10:39 GMT+02:00 Nicola Larosa n...@teknico.net:

 Tra l'altro, se state ancora usando Ogg Vorbis


 Io lo uso per questoni affettive: uno dei suoi creatori (nonche' creatore
 anche di Dynebolic) e' un mio carissimo amico e uno dei ragazzi che ho
 tirato su a suo tempo (ovviamente come giusto gli allievi hanno surclassato
 l'insegnante)

 Carlos
 --
 EZLN ... Para Todos Todo ... Nada para nosotros
  ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Sviluppare in python 2 o python 3

2015-06-08 Per discussione Alessandro Re
On Mon, Jun 8, 2015 at 8:42 PM Matteo Scarpa matteoscarp...@gmail.com
wrote:

  Sperando di non creare piú danni di quelli che ho ottenuto chiedendo al
 prof di sistemi operativi cosa fosse meglio tra i sistemi Unix e .Net


Ma .Net non è un framework di sviluppo? Mi sento un sacco ignorante perché
non cago windows da così tanto tempo (perché ovviamente *nix È Meglio) che
ero rimasto alla famiglia NT.


 volevo togliermi un dubbio: perché si sviluppano ancora applicazioni in
 python 2.qualcosa (ovviamente a meno di necessitá particolari tipo la
 libreria c'é solo per quella specifica versione) ripsetto che a una
 3,qualcosa? É una cosa prettamente di guisti/abitudine o c´é qualcosa sotto?


TL;DR version: costa troppo.

Versione lunga:
La Risposta Giusta è che è una questione di costi. Ed è anche molto
generica, perché costo non vuol dire solo soldi, ma anche fatica, tempo,
preferenze personali.

Di sicuro c'é che la 2.x ha molta più storia alle spalle e quindi (stimo)
più supporto, più documentazione, più tutto. Anche, banalmente, più
probabilità di trovare un tutorial per la versione 2.x che per la 3.x
cercando su google, o risposte ad un problema su stackoverflow, etc.

Io ho usato la 3 sin da subito, e ti garantisco che nei primi tempi era
davvero una fatica cercare supporto per Python 3. Non tutti hanno tanta
voglia come me di sentirmi bleeding edge, e quindi aspettano che i tempi
siano maturi.

Ora siamo a 3.5, è matura, è in campo da tanto tempo, ma ci sono ancora un
po' di cosette da limare e di conti da fare con la storia, ecco perché si
sviluppa ancora con 2.x.

Esempio, tornando ai costi economici, considera una azienda che investe
milioni di dollari per ottimizzare la versione 2.5 di python per erogare un
servizio specifico per i suoi clienti. Python avanza, 2.6, 2.7, ma la 2.5 è
ancora buona per loro, perché continuano a migliorarla, patcharla, renderla
più stabile e sicura. A volte è un problema passare da una 2.x a una
2.(x+1) - che è retrocompatibile- specialmente per aziende enormi con una
larga base di utenti e di codice da servire.

Immagina cosa vuol dire passare da una versione ad una non retrocompatibile.

Quindi, ecco, se ci sono dei giocatori grossi come Google p Dropbox, che
nonostante la 3.x sia uscita da anni continuano ancora a sviluppare per la
2, fanno prodotti per la 2, supportano la 2, etc, è chiaro che questi
giocatori hanno un'influenza grossa sul mercato, e quindi il mercato fa
fatica a cambiare.

Ma questo discorso si applica anche ai giocatori piccoli, alle aziendine di
10 programmatori dove la maggior parte di loro non ha tempo né voglia di
imparare un linguaggio sensibilmente diverso, dove la vecchia code-base non
è compatibile con la versione nuova, etc etc.

Insomma, costa troppo. Quindi ci vuole molto tempo perché bisogna cambiare
un pezzettino piccolo alla volta.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Presentazione

2015-06-05 Per discussione Alessandro Re
2015-06-05 13:06 GMT+01:00 Marco Beri marcob...@gmail.com:

 On Jun 5, 2015 8:01 AM, Gollum1 gollum1.smeag...@gmail.com wrote:

 Il 05 giugno 2015 01:49:22 CEST, Alessandro Re a...@ale-re.net ha
 scritto:
 
 Ah e mi raccomando, quando rispondi alle mail usa sempre il top
 quoting! XD
 

 Argh... questa è istigazione a delinquere...

 Già ultimamente mi sto trattenendo parecchio per non rompere troppo, se
 vai anche a sfrugugliare... finisce che affilo i denti... ;-) :-P

 Ma non è giusto top-quoting? Avesse detto top-posting capirei...

Eh sì, Marco, (anche se c'é un po' di confusione sui termini, in
realtà hai ragione) in realtà volevo essere sarcastico e far
arrabbiare gollum, ma ho fatto un un epic fail :D

Comunque son riuscito nel mio intento di smuovere le acque e far
saltare fuori la verità: che python è figo (e si sapeva) e che il
top-posting è male :D

Anche se su questo:

 py è tipizzato meglio di java

potrei aver da ridire, ma non dirò nulla :D

Quindi benvenuto ancora a Matteo e have fun (che, come si evince, la
lista non manca di un ottimo senso dell'umorismo :)
Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Presentazione

2015-06-05 Per discussione Alessandro Re
2015-06-05 15:29 GMT+01:00 Simone Federici s.feder...@gmail.com:
 Alessandro Re:

  py è tipizzato meglio di java

 potrei aver da ridire, ma non dirò nulla :D


 e perché? paura di essere linciato?


Sì, da Enrico e Manlio come minimo, ma anche da tanti altri ahaha :D

Ma non è tanto per quello, quando per il fatto che tipizzato meglio
è piuttosto soggettivo... Meglio per cosa? Secondo quali criteri?
Inutile mettersi a discutere.

Alcune cose semplicemente son diverse e non si possono sempre
comparare, o almeno i criteri diventano un po' troppo... Fumosi.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Presentazione

2015-06-04 Per discussione Alessandro Re
On Jun 4, 2015 9:22 PM, Matteo Scarpa matteoscarp...@gmail.com wrote:

 Buona sera o buon giorno!
 Mi sono appena iscritto a questa mail list per cui mi sembra giusto
presentarmi.

 Sono uno studente di informatica di Venezia di 23 anni appassionato di
python. Ho iniziato a usarlo per un corso e mi ha preso talmente tanto che
che scrivo solo in Python. Spero di essere utile e dare una mano in questa
community

Benvenuto Matteo,

innanzitutto ottima scelta per il linguaggio, vedrai che anche se non è
veloce come ruby, pulito e semplice come c++ e tipizzato bene come java,
Python non è poi tanto male e potrebbe anche darti qualche soddisfazione di
tanto in tanto :o)

Ah e mi raccomando, quando rispondi alle mail usa sempre il top quoting! XD

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Visto che la lista langue

2015-05-21 Per discussione Alessandro Re
On May 21, 2015 6:31 AM, Carlos Catucci carlos.catu...@gmail.com wrote:

 che ne dite di rispondere ad un annincio come

 Analista Programmatore Phyton

 Deve essere un nuovo liguaggio. Potremmo metetre su al proposito yba bela
PhyCon ;)

 Carlos (che ride per non piangere)

Non è per essere cattivo, però non dovresti scherzare su un typo e poi
scrivere annincio nella stessa mail :D

Comunque ho notato anche io una certa piattezza di segnale nella lista
ultimamente... Sarà la bella stagione che spinge tutti fuori al sole? :D

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Analisi numerica di immagini

2015-05-14 Per discussione Alessandro Re
2015-05-14 9:14 GMT+01:00 Giuseppe Amato giuam...@gmail.com:
 Buongiorno a tuti,
 ho bisogno di un consiglio su come è meglio approcciare un progetto.
 Data un'immagine ho bisogno di suddividere i pixel in un certo numero di
 cluster (definito dall'utente) in funzione del colore.

Ciao Giuseppe,

usa Pillow per caricare le immagini (un fork di PIL che supporta
Python3) e da scikit-learn usa k-means [2] come algoritmo di
clustering, dato che k è fissato, mi sembra l'algoritmo migliore.

Carica i dati in un bel matricione numpy e dallo in pasto a KMeans. La
distanza usata credo sia quella euclidea, quindi dovrai trasformare i
colori mentre li metti nell'array numpy, a seconda dello spazio colore
che usi o eventuali trasformazioni. Il concetto di distanza tra
colori, ovviamente, dipende da molti fattori che dovrai scremare tu.

HIH

[1]: https://pillow.readthedocs.org/
[2]: 
http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [OT] Reti neurali e IA

2015-05-11 Per discussione Alessandro Re
2015-05-10 19:05 GMT+01:00 Michele Orru` li...@tumbolandia.net:
 Balan Victor balan.vict...@gmail.com writes:
 Qualcuno ha esperienza?Ha mai applicato questi concetti nella vita reale?

 In merito al già provato PyBrain, suggerirei invece di provare a usare
 scikit-learn. Ho contribuito al progetto PyBrain per un po' di tempo
 nella mia adolescenza, e credo che scikit-learn sia lontanamente più
 maturo, adottato, e ricco.

Uhm, non sono un esperto con nessuna delle due librerie, ma l'ultima
volta che avevo visto pybrain c'era un supporto un po' più esteso alle
reti neurali rispetto a scikit-learn, che invece non mi sembra così
ricco per questo argomento specifico, ma magari mi sbaglio.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [OT] Reti neurali e IA

2015-05-11 Per discussione Alessandro Re
2015-05-11 10:40 GMT+01:00 Marco Ippolito ippolito.ma...@gmail.com:
 Da un po di tempo mi sto interessando di reti neurali e ia.
 In giro si trova parecchio materiale ma la maggio parte di questo materiale
 presuppone determinate conoscenze matematiche che non ho e soprattutto è
 materiale molto teorico e poco pratico.

 Ti consiglio caldamente, prima di usare qualsiasi software, di farti
 le basi teoriche e matematiche, senza  le quali, secondo me, rischi di
 non capire cosa succede: https://www.coursera.org/course/ml

Il corso di ML di coursera è molto buono e Andrew Ng è un gallo a
spiegare, ma c'é anche un corso apposito sulle reti neurali fatte dal
peso massimo Geoffrey Hinton, uno dei massimi esperti al mondo
sull'argomento:

https://www.coursera.org/course/neuralnets

È un corso di qualche anno fa, ma è decisamente raccomandato. Youtube,
comunque, è ricco di video di Hinton più recenti, se si vuole.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [OT] Reti neurali e IA

2015-05-09 Per discussione Alessandro Re
2015-05-09 22:28 GMT+01:00 Balan Victor balan.vict...@gmail.com:
 Da un po di tempo mi sto interessando di reti neurali e ia.
 In giro si trova parecchio materiale ma la maggio parte di questo materiale
 presuppone determinate conoscenze matematiche che non ho e soprattutto è
 materiale molto teorico e poco pratico.

Già visto PyBrain?

 Qualcuno ha esperienza? Ha mai applicato questi concetti nella vita reale?

Sì, ma dipende: per fare cosa?
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] subclassare ndarray

2015-05-06 Per discussione Alessandro Re
2015-05-06 11:09 GMT+01:00 Margherita Di Leo direg...@gmail.com:
 per un programma che sto scrivendo vorrei creare un oggetto array di numpy
 con un numero di colonne preassegnato, per avere la comodita` di chiamare le
 varie colonne con array.nome invece di usare indici anonimi.
 Tra l'altro, questo array sara` poi incorporato in un oggetto punto.
 Per il momento, l'oggetto punto gia funziona se gli passo un array normale,
 quindi ora voglio procedere a passargli questo array speciale.

Ciao,

so che non sto rispondendo alla tua domanda, ma hai valutato delle
alternative tipo:

1. creare un oggetto che incapsula un ndarray, magari definendo
__getattr__ o __getattribute__ per ottenere il comportamento che vuoi,
2. usare pandas che ha già questa cosa simpatica di riferirsi alle
serie all'interno di un dataframe mediante nome.

Non voglio suggerire che queste opzioni siano meglio di quel che
cerchi, ma magari ti vanno bene; magari non serve che definisci nuove
classi e pandas fa al caso tuo.

HIH
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] [OT] Monty Python e il senso della vita (Era: Faccio auting: PyPaper)

2015-05-05 Per discussione Alessandro Re
On May 5, 2015 6:59 AM, Marco Giusti marco.giu...@posteo.de wrote:

 On Tue, May 05 2015, Alessandro Re wrote:
  Ciao lista,
  (lo so che si scrive outing, ma è tardi e ho fatto quel typo, quindi
  ho deciso di lasciarlo perchè era simpatico.)


http://ricerca.repubblica.it/repubblica/archivio/repubblica/2005/06/17/monty-python-il-senso-della-vita.html

Ahahah stupendo, grazie :D
Son contento di aver lasciato quell'errore! (oh no, punti esclamativi!)

~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Faccio auting: PyPaper

2015-05-04 Per discussione Alessandro Re
Ciao lista,
(lo so che si scrive outing, ma è tardi e ho fatto quel typo, quindi
ho deciso di lasciarlo perchè era simpatico.)

Vi scrivo per annunciarvi un mio progettino personale che vorrei
condividere col mondo. Non è la prima volta che metto codice pubblico,
ma è la prima volta (credo) che ne metto pubblico uno che ho
intenzione di usare, far crescere e che mi fa piacere condividere.

Il progetto si chiama PyPaper, lo trovate qui:

https://github.com/akiross/pypaper

prima di andare e perdere ore a leggere il README lunghissimo che ho
appena finito di scrivere, è giusto che sappiate cos'é:

è un pessimo pezzo di codice.

Ma, oltre a questo, l'idea è di avere una specie di lavagna
interattiva: uno strumento dove potete aggiungere item, cambiare loro
proprietà, spostare, animare, tutto usando python (3) in modo
interattivo. Non è una canvas (o almeno, non direttamente. Non
intenzionalmente).

Un po' come avere un browser con una shell, ma in python senza
hyperlink, senza rete e con un layout engine molto scarso :)

Le dipendenze dovrebbero essere solamente
 - Python 3
 - PyQt5 (o compatibili)
 - Jedi (per la console con autocompletamento)

Probabilmente va solo sul mio computer, e non sono affatto un esperto
di portabilità, quindi tempestatemi pure di commenti, critiche, patch
e qualunque cosa vogliate.

Bene, credo si possa dare il via al battesimo del fuoco.
Ogni commento è benvenuto!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Insolita richiesta (di aiuto)

2015-05-01 Per discussione Alessandro Re
2015-05-01 17:18 GMT+01:00 domenico domenico.tarric...@alice.it:
 Ma veniamo alla mia richiesta: per cortesia, potete darmi delle idee su
 possibili programmi da fare?

Facci un videogioco :) Per me i giochi son stati di enorme aiuto
nell'imparare a programmare *e* per fissarmi chiari obiettivi di apprendimento.

Puoi farne molti sia in modalità testuale che grafici: tris
(tic-tac-toe), sudoku, campo minato, giochi di carte...
E se usi la grafica, come mi pare di capire, puoi farne alcuni animati
tipo tetris.

Io mi son divertito molto a farli e a giocarci, spero possa divertire anche te
Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Awesomeness

2015-04-29 Per discussione Alessandro Re
On Fri, Apr 24, 2015 at 2:30 PM, Enrico Bianchi
enrico.bian...@ymail.com wrote:
 https://github.com/bayandin/awesome-awesomeness

Awesome!
Thanks for sharing :)
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Pycon6: grazie a tutti!

2015-04-21 Per discussione Alessandro Re
Aggiungo anche io dei ringraziamenti, perché quest'anno ho vissuto la
Pycon in modo diverso, per la prima volta dopo essere entrato nella
mailing list, e ho avuto modo di conoscere alcuni di voi; mi ha fatto
molto piacere e spero di rivedervi l'anno prossimo - e di conoscere
qualcuno in più :)

E sì, l'evento è stato proprio bello in generale, quindi grazie per
averci fatto parte ed averlo reso tale.

(Scusa, Carlos :P)
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] You still haven't accepted ggig...@gmail.com's friend request. Accept?

2015-04-14 Per discussione Alessandro Re
On Tue, Apr 14, 2015 at 2:38 AM, ggig...@gmail.com i...@flipmailer.com
wrote:

   Click here to discover ggig...@gmail.com's favorite websites!
 http://invites.flipmailer.com/download.jsp?mobfollowup=truedownload=trueemail=python@lists.python.itviral=trueu=37463705inviterid=37450414token=2d037cdabbcd4aea97bc26ba63877d9dts=1428775164685userid=37463705inviter=ggigi78emailmasterid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.comtemplate=mobile_followup_bsrc=clickhere
 ggig...@gmail.com wants to follow you  Is ggig...@gmail.com
 http://invites.flipmailer.com/download.jsp?mobfollowup=truedownload=trueemail=python@lists.python.itviral=trueu=37463705inviterid=37450414token=2d037cdabbcd4aea97bc26ba63877d9dts=1428775164685userid=37463705inviter=ggigi78emailmasterid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.comtemplate=mobile_followup_bsrc=email
 your friend?  Yes
 http://invites.flipmailer.com/download.jsp?mobfollowup=truedownload=trueemail=python@lists.python.itviral=trueu=37463705inviterid=37450414token=2d037cdabbcd4aea97bc26ba63877d9dts=1428775164685userid=37463705inviter=ggigi78emailmasterid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.comtemplate=mobile_followup_bsrc=yes
 No
 http://invites.flipmailer.com/download.jsp?mobfollowup=truedownload=trueemail=python@lists.python.itviral=trueu=37463705inviterid=37450414token=2d037cdabbcd4aea97bc26ba63877d9dts=1428775164685userid=37463705inviter=ggigi78emailmasterid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.comtemplate=mobile_followup_bsrc=no

 Following ggig...@gmail.com #14cb5946849b0427_ helps you discover great
 websites they recommend :)
   Click here to unsubscribe from such emails from ggig...@gmail.com or
 all friends
 http://invites.flipmailer.com/uns_inviter.jsp?email=python@lists.python.itiid=f0ef1941-2756-44c7-a8bd-944535d56eb7from=ggig...@gmail.com



 P.O. Box 70215, Plaza Station , Sunnyvale, CA 94086

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


Questa mail mi ha fatto venire in mente questo:

www.reddit.com/r/thebutton/

:)
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Chiarimento su random.randrange. e sulla documentazione.

2015-04-13 Per discussione Alessandro Re
2015-04-13 13:30 GMT+01:00 Gabriele Battaglia iz4...@libero.it:
 Ok, e come si ottiene allora, lo stesso effetto in Python 3?

Dai un occhio a random.uniform, non è la stessa cosa, ma può andare
per generare valori reali in un certo intervallo.

~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta aiuto per soluzione

2015-04-02 Per discussione Alessandro Re
2015-04-02 10:36 GMT+02:00 Carpediem i.carped...@tiscali.it:
 Sono alle primissime armi con python e non conosco la funzione divmod
 A giudicare dall'entusiasmo che altri hanno manifestato al tuo suggerimento,
 ritengo opportuno cercare notizie in proposito. grazie

divmod non fa altro che fare // e % assieme:

8 // 5 # == 1
8 % 5 # == 3
quoz, resto = divmod(8, 5) # == (1, 3)

visto che divisione intera e resto sono due operatori accoppiati, mi
sembra logico avere una funzione che restituisca entrambi con un solo
calcolo, da qui il mio entusiasmo :)

Comunque, quando dici:

 Sono a conoscenza dell'operatore modulo ma i vari passaggi di divisione
 e moltiplicazione in realtà non hanno lo specifico compito di ottenere un
 numero intero ma di trasformare ad esempio, un alto numero di minuti in
 un numero che rientri nel normale limite per giungere alla grandezza
 superiore immediatamente successiva.

quello che capisco è faccio l'operazione inversa per calcolare il
modulo :D Poi magari non ho capito bene cosa intendi, ma dal tuo
codice mi pare di capire che hai bisogno del modulo.

Cioé, se hai 100 minuti, tu vuoi ottenere la conversione in Q ore e R
minuti, cioé 1 ora e 40 minuti (1 ora * 60 minuti + 40 minuti = 100
minuti), che è esattamente l'operatore modulo.

In ogni caso, ecco come farei:

def converti_secondi_in_roba_varia(T):
minuti, secondi = divmod(T, 60)
ore, minuti = divmod(minuti, 60)
giorni, ore = divmod(ore, 24)
anni, giorni = divmod(giorni, 365)
secoli, anni = divmod(anni, 100)
return secoli, anni, giorni, ore, minuti, secondi

converti_secondi_in_roba_varia(12345678) # (0, 0, 142, 21, 21, 18)

Mancano le settimane, in realtà, mentre i mesi non sono determinabili
correttamente perché cambiano di lunghezza. Però ho verificato con
wolframalpha e sembra funzionale:

http://www.wolframalpha.com/input/?i=12345678+seconds

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta aiuto per soluzione

2015-04-02 Per discussione Alessandro Re
On Thu, Apr 2, 2015 at 3:51 PM, Carlo Miron mi...@python.it wrote:
 Il 2 aprile 2015 10:52, Alessandro Re a...@ale-re.net ha scritto:
 Mancano le settimane, in realtà, mentre i mesi non sono determinabili
 correttamente perché cambiano di lunghezza.

 Anche gli anni non sono sempre di 365 giorni, in realtà... ;)

Gli anni bisestili sono un'invenzione umana; se non se ne parla non esistono :D
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta aiuto per soluzione

2015-04-01 Per discussione Alessandro Re
2015-04-01 15:43 GMT+02:00 Carpediem i.carped...@tiscali.it:
 C'è qualcuno che gentilmente si presta a dare uno sguardo a quanto segue? ho
 anche commentato ogni riga di codice per facilitarne la lettura.

Personalmente voto per aggiungere qualche spazio in più, ad esempio
attorno agli operatori con bassa priorità, tipo

questo='édifficile'=='daleggere'
questo = 'èunpo'=='meglio'
questo = 'éideale' == 'amioavviso'

Tornando al tuo problema:

 secondi=(secondi-(minuti*60))

Oltre a quanto ha detto Beri ho da aggiungere solo una domanda:
sei a conoscenza dell'operatore % (modulo)?

Perché tu fai molti passaggi di divisione e moltiplicazione (come
quello che ho fatto vedere sopra) col solo scopo di ottenere il resto
della divisione, mentre ti basta semplicemente usare l'operatore di
resto :)

Inoltre, in Python c'é anche il fantastico // che è l'operatore di
divisione intera - che trovo particolarmente utile in Python3, quindi
eviti di fare `int(a / b)` e fai solo `a // b`

Quindi, usa quei due operatori: dovresti riuscire ad ottenere lo
stesso risultato con conti più semplici, meno codice e quindi
probabilmente meno bug.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta aiuto per soluzione

2015-04-01 Per discussione Alessandro Re
2015-04-01 18:28 GMT+02:00 Carlo Miron mi...@python.it:
 Il 1 aprile 2015 18:22, Alessandro Re a...@ale-re.net ha scritto:
 sei a conoscenza dell'operatore % (modulo)?

 e della funzione divmod [1]?

 [1]: https://docs.python.org/3.3/library/functions.html#divmod

U, io non ne ero al corrente! :D Fantastico, grazie!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Consigli per biologo

2015-03-19 Per discussione Alessandro Re
2015-03-19 7:54 GMT+00:00 Stefano Gasbarro pyt...@gasbarro.eu:
 Buongiorno a tutti ragazzi...mi presento sono Stefano da Roma

Ciao Stefano da Roma :D Bravo per essere uscito dal guscio e benvenuto!

 strumenti necessari alla realizzazione di software per l'elaborazione dei
 dati scientifici...cosa usare per creare GUI...quali sono le potenzialità di
 Python per la biologia. ..insomma un quadro generale che vada oltre la mera
 programmazione. Vi ringrazio e conplimenti per la mailing list!

Elaborazione di dati scientifici è molto, anzi estremamente, vago.
Potrei benissimo dire che python da solo è sufficiente :) Ma forse
vuoi anche investire del tuo tempo per

- numpy e scipy
- matplotlib (per fare i grafici)
- pandas
- scikit-learn (se devi studare pattern, fare clustering, etc)

Per creare GUI, Python ha una sua libreria, tkinter, ma ti io
consiglio di usare PyQt. Se vuoi andare sul lato web come ha suggerito
Carlos benvenga, ma dipende molto cosa devi fare... Devi rappresentare
grafici? Devi mostrare l'evoluzione di qualcosa nel tempo? Devi
mostrare una griglia e studiare il vicinato? Devi guardare molecole
che si muovono nello spazio 3D? Insomma, le opzioni sono molte :)

Potenzialità di python per la biologia, come ha detto Carlos,
bisogna un attimo capire cosa vuoi farci... Io mi sono occupato di
simulazioni biochimiche nella tesi e python va benissimo per fare
prototipi e interfacce (anche da riga di comando, e ti consiglio di
studiarti il modulo argparse)... Però a volte python non è abbastanza
efficiente e, in biologia/biochimica/systems biology, se ci fai
simulazioni, forse vuoi andarci pesante coi numeri e talvolta python
da solo semplicemente non ce la fa.

Comunque, al di la di queste informazioni sulle performance, Python ha
un gran bel potenziale. Probabilmente molte delle cose che vorrai fare
usciranno benissimo con python e ti saranno comunque utili, facili da
scrivere e sufficientemente veloci da eseguire (usa numpy).

A presto
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come fare il match di tutti i caratteri racchiusi tra /* e */?

2015-03-15 Per discussione Alessandro Re
2015-03-15 1:13 GMT+00:00 germano carella germano.care...@gmail.com:
 In realtà tutto questo mi serve per fare il parser di una grammatica
 acontestuale dove le produzioni hanno una loro sintassi particolare, non so
 se qualcuno di voi le conosce.

Perché non ricorrere direttamente ad una libreria per farlo?
Con pyparsing mi son trovato spesso piuttosto bene.

Ciao
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Gestire eventi con callback

2015-03-12 Per discussione Alessandro Re
2015-03-10 17:33 GMT+00:00 Marco Giusti marco.giu...@posteo.de:
 Credo che puoi fare meglio che questo. Vuoi che ogni callback venga
 invocata una sola volta?

Ah sì, che si possa far meglio è fuori di dubbio :D Comunque no, non
voglio che *ogni* callback venga invocata una sola volta.
Ma comunque ammetto che avrei potuto trovare una soluzione molto più pulita.

 Inoltre passare un oggetto come primo argomento mi suona tanto da
 antipattern. Non è sbagliato, ma chiediti che oggetto sia. Mi suona da
 antipattern per come i metodi e le funzioni in python funzionano.

 come vedi le due chiamate sono identiche ma in più il metodo riceve
 un oggetto (su cui opera il metodo). Il tuo codice sembra reinventare
 una ruota che ormai è ben collaudata.

Ok, premetto che mi è chiaro l'esempio che fai, e ci ho pensato un po'
su queste tue parole, ma non credo di aver capito cosa intendi; ti
spiace argomentare un pochino?

 Comunque l'ultima parola l'hai tu perché il codice che hai postato non
 ci aiuta molto a capire esattamente il funzionamento di questi
 fantomatici oggetti C++.

No, ecco, la questione C++ l'avete ingrandita un po' voi :P Nel senso
che sì, io ho degli oggetti C++ sottostanti, ma il punto che volevo
fare è solo che voglio che non esistano oggetti python che facciano
riferimento ad oggetti C++ ormai distrutti... C++ l'ho nominato solo
per giustificare il fatto che gli oggetti python, dopo la remove(),
dovrebbero essere cancellati ovunque. Tutto qua :)

L'unica cosa che ho omesso è che, in remove(), oltre a chiamare le
callback, io ho anche una chiamata tipo
`self._oggetto_cpp.distruggi()` e se dopo di essa provo a fare
`self._oggetto_cpp.metodo()` ottengo un bel errore :)

 PS. Le tue linee di codice sono identiche:

 for obj, cb in list(it for it in self._callbacks.get(event, [])):
 for obj, cb in self._callbacks.get(event, [])[:]:

Grazie; sì, ho presente [:], ma non mi piace molto, preferisco usare
list(), che personalmente trovo più esplicito e facile da leggere.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come fare il match di tutti i caratteri racchiusi tra /* e */?

2015-03-12 Per discussione Alessandro Re
Ciao Germano,

forse non ho capito bene la domanda, ma non puoi semplicemente
specificare '\n' nel pattern da cercare?

Ad esempio:

import re # Ref. [1]
com = '''/* inizio del commento
continua su seconda riga
terza riga e finisce */'''
re.findall('[aeiou]\n', com)

findall restituisce queste occorrenze:

['o\n', 'a\n']

E quindi il carattere \n fa match senza problemi... Forse hai esigenze
un po' più particolari?

[1]: no, il mio cognome non fa di me un esperto di regex :)

Ciauz
~Ale

2015-03-12 17:56 GMT+00:00 germano carella germano.care...@gmail.com:
 Salve a tutti,
 ho bisogno di fare il match di una porzine di commento che includa anche il
 carattere \n.
 /*inizio del commento
 il commento continua qui.
 Anche qui.
 */
 So che nelle espressioni regolari il metacarattere '.' serve proprio a
 questo, ma se voglio includere anche '\n' devo usare il flag re.DOTALL.
 Vorrei evitare di usarlo, anche se si complicano le cose.
 Secondo voi si può fare? Io ho cercato in rete, ma non riesco a trovare
 niente.
 Qualcuno mi dà lumi?
 Grazie!
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Gestire eventi con callback

2015-03-09 Per discussione Alessandro Re
Alla fine *credo* di aver trovato una soluzione *quasi* soddisfacente.
Alcune scelte fanno cagare, ma per ora può andare.
Condivido, per un ovvio atto di giustizia cosmica.

2015-03-08 15:12 GMT+00:00 Marco Giusti marco.giu...@posteo.de:
 Il patter che più gli assomigli è l'Observer ma non sono sicuro che la
 terminologia sia quella giusta in questo caso. Comunque
 l'implementazione è all'incirca quella:

 ...
 self._events = {}

 def register(self, event, callback):
 self._events.setdefault(event, []).append(callback)

 def unregister(self, event, callback):
 callbacks = self._events[event]
 callbacks.pop(callbacks.index(callback))

 def on_event(self, event, *args):
 for callback in self._events[event]:
 callback(*args)

Questa implementazione va sicuramente bene per un meccanismo basilare,
e le ho usate. Bene, Grazie Marco :)

Però poi mi sono accorto che volevo qualcosa di più elaborato ed
automatico. Fondamentalmente, quello che ho fatto è mettere in
register() un sistema che, quando passo un oggetto, io registro in
quell'oggetto una callback che - all'atto di distruzione - rimuove la
callback originale. E questa callback che rimuove, viene schedulata
per essere eseguita una volta sola, e poi rimossa automaticamente.

Inoltre, per permettere di usare funzioni che incapsulassero i vari
metodi, ho fatto in modo che register() prenda anche come parametro un
oggetto da passare come primo argomento alla callback.

In sostanza, il codice è questo:

class Base:
def register(self, event, target_obj, callback):
if target_obj is None:
def _call_once(*args, **kwargs):
callback(*args, **kwargs)
self.unregister(event, None, _call_once)
self._callbacks.setdefault(event, []).append((None, _call_once))
else:
self._callbacks.setdefault(event, []).append((target_obj, callback))
def _remove_cb(unused, obj):
self.unregister(event, target_obj, callback)
target_obj.register('on_remove', None, _remove_cb)

def unregister(self, event, target_obj, callback):
self._callbacks[event].remove((target_obj, callback))

def _run_callbacks(self, event, *args, **kwargs):
for obj, cb in list(it for it in self._callbacks.get(event, [])):
cb(obj, *args, **kwargs)

def remove(self):
self._run_callbacks('on_remove', self)

Scelte di design:
 - passare l'oggetto (target_obj) esplicitamente in register()
 - schedulare una callback come fire once se target_obj è None.
Avrei potuto usare un protocollo diverso, ma questo mi è sembrato un
buon compromesso per ragioni che non sto a spiegare
 - lasciare che quando la callback è fire once, le venga passato
None come primo parametro. Solo per consistenza col resto
 - ogni callback registrata avrà una callback automatica di
de-registrazione quando l'oggetto viene distrutto. Probabilmente è uno
spreco di memoria e ci sono soluzioni migliori (tipo un metodo solo
che rimuove tutte le callback associate all'oggetto, la lo lascio come
esercizio al lettore :D).

Punti interessanti:
 - in _run_callback costruisco una nuova lista perché può essere che
cb chiami unregister() durante l'esecuzione. Probabilmente non è la
soluzione migliore, comunque.
 - remove fa altre cose, ma è anche un esempio di come usare _run_callbacks.

Non ho fatto dei gran test, ma per ora funzionicchia.
Commenti ben accetti - ma considerate che è piuttosto legato al mio
stile e alle necessità di questa applicazione, non l'ho pensato perché
fosse generico.
Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Gestire eventi con callback

2015-03-08 Per discussione Alessandro Re
2015-03-08 20:24 GMT+00:00 Manlio Perillo manlio.peri...@gmail.com:
 Intendevo dire cosa usi per chiamare il codice C++.

Ah, forse ho capito: intendi dire se uso qualche modulo python per
usare C++, tipo ctypes?
Non uso niente di simile: sto usando una libreria che ha dei binding
in python, quindi includo il modulo, eredito una classe e costruisco
su quella.

~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Gestire eventi con callback

2015-03-08 Per discussione Alessandro Re
Ciao Manlio,

 Cosa usi per interfacciarti con codice C++?
 Che errore ottieni?

Come dicevo a flandero, non ho controllo sulla parte C++, non so cosa
venga usato per l'interfaccia e in questo caso lavoro 100% python.
Ottengo un errore tipo L'oggetto C++ è già stato distrutto, quando
cerco di fare riferimento ad esso dopo aver chiamato la remove().

Ho però realizzato che il mio problema di fondo è nella gestione delle
callback costruite al volo: purtroppo con python mi è troppo facile
lavorare in modo semi-funzionale, e quando devo collegare tra loro due
eventi, non è quasi mai un lavoro pulito. Ad esempio:

pr = Producer()
co = Consumer()
pr.register('on_data_ready', co.print_data)

In questo caso, tutto è molto lineare: un oggetto stampa i dati che
l'altro fornisce. Se co venisse distrutto, chiaramente un eventi
data_ready sarebbe problematico, a meno che non si è fatto
unregister() prima della distruzione.

Ora, finché la registrazione e de-registrazione coinvolgono due
oggetti, non ci metto molto a trovare una strategia per tenere le cose
pulite.

Il problema sorge se invece faccio così:

def clean_and_print(data):
data.replace( , nbsp;)
co.print_data(data)

pr.register('on_data_ready', clean_and_print)

In questo caso, mi esce più difficile immaginare un meccanismo che,
quando co viene rimosso, allora la funzione clean_and_print - che usa
co - venga de-registrata.

Il motivo è che mentre riesco a concepire facilmente un sistema per
cui degli oggetti implementano un'interfaccia standard che gestisca le
callback e la loro rimozione sicura all'atto di distruzione, non mi
esce così facile fare lo stesso per delle funzioni normali. Magari si
potrebbe usare un decoratore, ma così su due piedi non mi si accende
alcuna lampadina.

Avete delle idee o dei commenti a riguardo? Magari sto semplicemente
sbagliando approccio.

 Non so se è un uso corretto, ma puoi provare ad usare una weakref, oppure
 qualcosa di simile personalizzato.

Ok, darò un occhio anche a questo, non ci avevo pensato.

 Quindi immaginate ...
 [...]

 Troppo complesso, passo.

lol

 Come posso rendere sincrona (bloccante) l'invocazione di un comando?

 https://gist.github.com/perillo/21234cf7b06873227cb2

Molto interessante, grazie!!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Gestire eventi con callback

2015-03-08 Per discussione Alessandro Re
Ciao Marco,

intanto grazie per la risposta :)

2015-03-08 7:54 GMT+00:00 Marco Giusti marco.giu...@posteo.de:
 Come registri le callback? Gli oggetti in python sono referenziati da
 del codice python o solo dalle callback di c++? In questo caso basta
 che, nel momento in cui distruggi l'oggetto C, deregistri le callback
 e riduci il numero di referenze del metodo. Se i metodi di un oggetto
 P sono usati come callback di un solo oggetto C, al momento che
 tu rilasci tutte le callback non esistono più riferimenti all'oggetto
 python.

Il problema è proprio la registrazione delle callback... Per ora ho un
meccanismo piuttosto primitivo:
quando un evento accade, viene chiamato un metodo on_evento(*args) di python.
L'idea è che l'oggetto tiene una lista di callback da
chiamare per quell'evento, e quel metodo è definito più o meno come

def on_evento(self, *args):
  for callback in self._callbacks:
callback(*args)

Però è per l'appunto primitivo, e non viene assolutamente gestita la
rimozione delle callback. Prima di avventurarmi ed inventare qualcosa
che cerchi di automatizzare la rimozione, volevo capire se c'era già
qualche pattern usato in questi casi.

 Come posso rendere sincrona (bloccante) l'invocazione di un comando?

 La prima idea che mi viene in mente è di infilare la callback dentro la
 send e di chiamare sleep per salvare qualche ciclo macchina:

 def send_data_blocking(data):
 def go():
 free_to_go = True
 free_to_go = False
 send_data(data, callback=go)
 while not free_to_go:
  sleep(0.1)

Grazie, proverò con la sleep :) (btw, in go() non ci andrebbe un
nonlocal free_to_go?)

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Gestire eventi con callback

2015-03-08 Per discussione Alessandro Re
2015-03-08 14:25 GMT+00:00 flandero fland...@gmail.com:
 Perché non fai una abstract factory per istanziare la parte in c++,
 distruggendo quindi l'istanza e tutto il resto, quando necessario?

Premetto che non ho controllo sulla parte C++: io agisco solo sul lato
python, in cui posso distruggere gli oggetti C++ e in cui ricevo una
chiamata ai metodi on_evento.

Però non ho ben capito come intendi usare l'abstract factory... Come
risolve il problema di eliminare automaticamente le callback
registrate?

Grazie comunque per l'input, ci penserò un po' su.
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Gestire eventi con callback

2015-03-08 Per discussione Alessandro Re
2015-03-08 15:12 GMT+00:00 Marco Giusti marco.giu...@posteo.de:
 Così come registri una callback, così la rimuovi. Se non riesci a
 definire formalmente un ciclo di vita per i tuoi oggetti, allora è
 probabile che nel tuo design qualcosa sia sbagliato.

 Fossi in te inizierei con una implementazione di questo tipo. Se è vero
 che è primitiva, le specifiche non sembrano ancora definite e trovo
 inutile andare a complicarsi troppo la vita. Scrivi un paio di test,
 vedi se il codice che viene fuori è soddisfacente o se richiede qualche
 hack non troppo elegante e parti da lì per migliorarlo.

Bene, il codice che mi hai dato è chiaro e fa decisamente il suo
lavoro, però forse questa volta stavo mirando a complicarmi la vita
senza motivo (forse, dentro di me, stavo cercando di replicare un
meccanismo signals-and-slots)... Ma questi due consigli che mi hai
dato valgono molto: per quanto semplici, mi rimettono un po' i
prospettiva :)

 Per un momento ho creduto che go fosse il linguaggio. Non conosco
 nonlocal ma hai ragione se dici che c'è un errore grossolano. Più o meno
 è questo che avevo in mente, ma non avendo neanche provato il
 codice...

 def send_data_blocking(data):
 def go():
 free_to_go[0] = True
 free_to_go = [False]
 send_data(data, callback=go)
 while not free_to_go[0]:
  sleep(0.1)

Sì, é che uso Python 3 e nonlocal sostanzialmente fa il lavoro di
global in uno scope non-globale (tipo questo caso, con una chiusura).
Evita di dover usare la lista come hai mostrato - ma stavo solo
facendo il pignolo :)

Ancora mille grazie
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Vimrc

2015-03-01 Per discussione Alessandro Re
Ciao Lorenzo,
Io su via uso YouCompleteMe per completare Python e mi trovo abbastanza
bene. Per il resto non so, o non ho nulla in particolare da condividere :)

C'è un altro plugin che funziona bene, per lo stesso scopo, ma non ricordo
il nome. Entrambi si basano su jedi per il completamento automatico.
Entrambi imho funzionano bene.

Ciauz
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Alcune cose sono interessanti, altre non so se hanno senso

2015-02-27 Per discussione Alessandro Re
On Feb 26, 2015 8:27 PM, Carlos Catucci carlos.catu...@gmail.com wrote:

 http://www.dotnetcurry.com/showarticle.aspx?ID=1090

 Lo so e' ECMA Script, ma tanto prima o poi ci dovremo interagire con la
v. 6


Secondo te cosa non ha senso?

Personalmente ho sempre pensato che il bello di javascript era la
semplicità del linguaggio... Dopo aver letto questo mi è caduto tutto, a
parte le let, praticamente tutto il resto aggiunge complessità.

E poi la sintassi di molte cose nuove è esteticamente orribile :p
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Alessandro Re
2015-02-25 15:03 GMT+00:00 Carlos Catucci carlos.catu...@gmail.com:
 Salve gente

 stavolta non so dove sbattere la testa.
 Devo avere le combinazioni possibili di una seire di liste.

 Esempio
 L1 = [a,b,c,]
 L2 = [d,e]
 L3 = [f,g]

 Mi servono

 [a.d.f],[a.d.g],[a.e.f],[a.e.g],
 [b.d.f],[b.d.g],[b.e.f],[b.e.g.],
 [c.d.f],[c.d.g],[c.e.f],[c.e.g]

 solo che la lista che mi crea problemi e'


 [[3760], [3759, 3762, 3763, 3770], [3769, 3778], [7607, 3781, 3780, 3779,
 3777, 3773, 3774, 14617], [7476, 3788, 7475, 3786, 7472, 16514, 3784, 7470,
 3783, 3789, 7477, 7608], [3806, 3805, 3804, 3803, 3802, 7532, 7530, 7534,
 3813], [17164, 7486, 7490, 7491, 7492, 3814, 7495, 3818], [3819, 4216],
 [4217, 4220], [4219, 4268], [4267, 6475, 4273], [4271, 4272, 18235], [18236,
 18244], [18245, 18246, 20232], [20234, 20237], [20236, 34978], [8389]]

 Ho idea che un totale di 13 liste di cui la piu' lunga conta 12 elementi e
 un'altro paio 8 o 9 elemnti, sia piu' di quanto il povero itertools.product
 (che suppongo a questo punto usi la ricorsivita') possa reggere, infatti mi
 tira fuori un bellissimo segmentation fault.

 Mi choiedo, c'e' quna strada alternativa per fare la stessa cosa che fa
 product con una diversa libreria?

 Carlos

Il prodotto cartesiano di N liste di dimensioni N1, N2, N3.. è un
elemento di dimension N1*N2*N3*... Ha complessità esponenziale, quindi
occhio ai numeri :)

Nel tuo caso:

import functools
liste = [[3760], [3759, 3762, 3763, 3770], [3769, 3778], [7607, 3781,
3780, 3779, 3777, 3773, 3774, 14617], [7476, 3788, 7475, 3786, 7472,
16514, 3784, 7470, 3783, 3789, 7477, 7608], [3806, 3805, 3804, 3803,
3802, 7532, 7530, 7534, 3813], [17164, 7486, 7490, 7491, 7492, 3814,
7495, 3818], [3819, 4216], [4217, 4220], [4219, 4268], [4267, 6475,
4273], [4271, 4272, 18235], [18236, 18244], [18245, 18246, 20232],
[20234, 20237], [20236, 34978], [8389]]
functools.reduce(lambda a,b: a*len(b), liste, 1)

Esce 95'551'488

Se ci aggiungi un'altra lista da 10 elementi, diventano 950 milioni di
disposizioni.

Ora, io suppongo che il tuo problema non sia dovuto alla ricorsione,
ma proprio alla scala del problema... 95 milioni di oggetti non sono
necessariamente facili da gestire.

Non so com'é implementata itertools.product, ma secondo me non usa la
ricorsione. Ed è pure un generatore, quindi non si incanta neanche a
fare tutti i conti prima del necessario (quindi, anche fosse
ricorsiva, il problema è legato a quante next() usi).

Sei sicuro di stare usando il metodo giusto per risolvere il problema?
Non hai alternative a visitare tutte le combinazioni?
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come iniziare

2015-02-13 Per discussione Alessandro Re
2015-02-13 0:03 GMT+00:00 Robotica li...@robotica.it:
 invece si. lo statement loop: puoi creartelo in python

Uh, questo mi interessa abbastanza: come si fa?

Perché a tal riguardo ho trovato questo [1], che non ho ancora letto,
ma mi pare di capire che non sia in python... O comunque sembra
necessario ricompilare qualcosa. Perché un conto è se il linguaggio
può modificare la sua sintassi, un conto è modificare l'interprete per
fare parsing di un linguaggio simile.

[1]: 
http://eli.thegreenplace.net/2010/06/30/python-internals-adding-a-new-statement-to-python/

Grazie in anticipo :)
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Come iniziare

2015-02-12 Per discussione Alessandro Re
2015-02-12 11:12 GMT+00:00 Andrea Carocci andrea_d...@hotmail.it:
 Salve,
 Mi sono iscritto a questa mailing-list per aver alcune informazioni su
 python. Non sono ancora molto pratico di linguaggi di programmazione ma
 vorrei imparare. Da dove mi consigliate di iniziare?
 Sapete dove posso trovare una guida completa in italiano su python?
 Grazie e a presto

Sono semi-serio, ma ti consiglio anche www.pycon.it :D

Personalmente mi è servita moltissimo per consolidare le mie
conoscenze su python e passare da curioso a praticante...
Quindi, tienila in considerazione qual'ora ti volessi avvicinare di
più al linguaggio.

Ciauz
~Ale

 Inviata dal mio Windows Phone
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Delfino, no scusate, algoritmo curioso

2015-02-06 Per discussione Alessandro Re
2015-02-06 11:04 GMT+00:00 Marco Beri marcob...@gmail.com:
 Consiglio vivamente l'iscrizione a
 http://matematica.unibocconi.it/articoli/campionati-internazionali-di-giochi-matematici-2015

 Sono 3 o 4 ore l'anno e, se vi piace un minimo la matematica, vi tiene la
 mente fresca aggiungendo un pizzico di competizione.

Fantastico!! :D Non sapevo l'esistenza di questa cosa (o almeno non al
di fuori delle scuole) ed è troppo bella perché io non vi partecipi!
:D

Grazie mille :)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Delfino, no scusate, algoritmo curioso

2015-02-06 Per discussione Alessandro Re
2015-02-06 17:15 GMT+00:00 Marco Beri marcob...@gmail.com:
 2015-02-06 18:09 GMT+01:00 Alessandro Re a...@ale-re.net:

 2015-02-06 11:04 GMT+00:00 Marco Beri marcob...@gmail.com:
  Consiglio vivamente l'iscrizione a
 
  http://matematica.unibocconi.it/articoli/campionati-internazionali-di-giochi-matematici-2015
 
  Sono 3 o 4 ore l'anno e, se vi piace un minimo la matematica, vi tiene
  la
  mente fresca aggiungendo un pizzico di competizione.

 Fantastico!! :D Non sapevo l'esistenza di questa cosa (o almeno non al
 di fuori delle scuole) ed è troppo bella perché io non vi partecipi!
 :D


 Ok, time for bragging (e intanto ti puoi scaricare un testo di esempio):

 http://beri.it/2012/05/22/matematica/

 Ah, guarda che hanno esteso i termini per l'iscrizione, se vuoi già iniziare
 quest'anno... :-)

 Io non li manco dal 2010.

 Ciao.
 Marco.

Beh, a mio avviso il bragging è giustificato! :D Ahaha e
congratulazioni per i successi!

Però purtroppo speravo in qualcosa di più... telematico, perché
vivendo a Lisbona non riuscirò certamente a partecipare alla selezione
italiana.

Detto questo, cercherò di trovare dove li fanno qui in Portogallo :)
(o prendere un biglietto aereo per farli in Italia, ma non mi sembra
una cosa troppo efficiente :P).

Grazie ancora!
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Delfino, no scusate, algoritmo curioso

2015-02-05 Per discussione Alessandro Re
Ciao Carlos,

magari ho capito male il problema, ma non stai cercando di fare il
prodotto cartesiano?
Non te la cavi con un itertools.product usando come iterabili i valori
delle sezioni?

Però, ecco, non mi è molto chiaro perché ci stai anche dando la
struttura delle sezioni e delle sotto-sezioni: immagino che questo
introduca dei vincoli nel problema, ma non riesco a capire in che
modo.

Ciauz
~Ale


2015-02-05 16:37 GMT+00:00 Carlos Catucci carlos.catu...@gmail.com:
 Ho una situazione da dipanare tutt'altro che banale, nonostante le
 apparenze.
 Premetto che la struttura posso , se serve, modficiarla visto che la genero
 io.

 La struttura con cui mi trovo a lavorare e' tipo la seguente

 PARAGRAFO: {
  SUBPARAGRAFO: {
   SEZIONE 1: [
{1: 'A'},
{2: 'B'},
{3: 'C'},
   ],
   SEZIONE 2: [
{1: 'D'},
{2: 'E'},
   ],
   SEZIONE 3: [
{1: 'F'},
{2: 'G'},
{3: 'H'},
   ]
  }
 }

 Ora io devo creare una struttura dove ho una cosa del tipo

 [('A', 'D', 'F'), ('A', 'D', 'G'), ('A', 'D', 'H'), ('A', 'E', 'F'), ('A',
 'E', 'G'), ('A', 'E', 'H'), ('B', 'D', 'F'),...('C', 'E', 'H')]

 Quindi tutte le possibili permutazioni delle varie sezioni.
 Ovviamente (senno' era troppo comdo) le sezioni podsono essere da 2 a n
 (fortunatamente n e' massimo 5 o 6.
 Dmattina a mente fresca magari mi viene in mente la soluzione migliore ma al
 momento se ci provo a fare l'analisi mi incapretto da solo con cose che sono
 piu' degne di un programma in Basic (quello dei primi PC IBM per capirci)
 che di essere definite codice Python.
 Per cui se qualcuno ha qualche dritta su come potrei approcciare il problema
 (mi erano apparse stile Fatima delle parole di fuoco tipo yeld,
 itertools.permutations itertools.pèrodcut, ma non avendoli mai usati molto
 non vorrei avere capito male

 Muchas gracias
 Carlos
 --
 EZLN ... Para Todos Todo ... Nada para nosotros

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python ed Excel.

2015-02-02 Per discussione Alessandro Re
Io direi che dipende dal formato excel che ti serve ottenere.
Se, come ti diceva Carlos, devi ottenere xls o xlsx [1] probabilmente
avrai bisogno di qualche libreria esterna.
Se invece ti serve un qualunque modo per ottenere un file leggibile da
excel, allora puoi usare ad esempio un comma separated values
(batterie incluse).

Volendo speculare un po': esistono formati basati su XML che excel è
in grado di leggere e le cui specifiche sono disponibili.
Tecnicamente, con un po' di sforzo, puoi scrivere tu con puro python
un codice che esporta in uno di questi formati, come ad esempio i
formati Open Document (ods nel tuo caso). Gli Excel recenti lo sanno
aprire.

[1] XLSX in realtà è basato su XML e ZIP, e io credo che una specifica
piuttosto generale esista pubblicamente da qualche parte. Poi, in
realtà, a te basta riuscrire a riprodurre una specifica versione di
xlsx, non ti interessa supportare anche quelle future, perché nel
momento in cui riesci ad esportare in un formato accettabile, in
genere sarà excel stesso ad essere retrocompatibile. Quindi io credo
che con un po' di pazienza riusciresti ad ottenere un xlsx. Il
problema è... Il gioco vale la candela? :)

~Ale


2015-02-02 9:58 GMT+00:00 Carlos Catucci carlos.catu...@gmail.com:

 2015-02-02 10:46 GMT+01:00 Gabriele Battaglia iz4...@libero.it:

 La domanda è: per fare quanto segue, bastano le batterie incluse o mi
 serve qualche 3rd part software e quale mi consigliereste?

 Ecco una breve descrizione del progetto.

 Uno script python privo di interfaccia grafica, basta la console;

 Batterie incluse

 chiede all'utente un anno ed un mese, propone quelli correnti;

 Batterie incluse

 chiede giorni di ferie, permessi (sia giornate intere che ad ore);

 Dipende da dove prende questi dati. Se li hai in una struttura (lista di
 dizionari?) tua creata da te Batterie incluse, se la devi prendere da un Db
 dipende dal db engine, con Sqlite Batterie incluse

 calcola i giorni festivi e li esclude;

 Batterie incluse

 crea un foglio excel compilando una tabella riassuntiva delle presenze al
 lavoro: orari di ingresso, uscita, inizio e fine pausa, totale ore lavorate,
 permessi e assenze.

 Ti serve una libreria che gestisca il formato excel in output. O meglio fino
 qui ti basterebbe una struttura dati da covertire dopo in foglio excel.

 La tabella va compilata prendendo i dati da un modello, sempre gli stessi,
 ma lo script farebbe le variazioni laddove indicato dall'utente. Cioè, tutti
 i giorni si entra alla stessa ora, si esce alla stessa ora, c'è la stessa
 pausa, tranne in quelle giornate che io indicherei, lì farebbe i conti.

 Qui direi che Python possa automatizzare la creazione

 Salvare il foglio excel risultante o addirittura inviarlo via mail.

 Direi che qui piu' che mai ti serve la libreria esterna. Excel non e' un
 formato standard o open e per di piu' dipende anche dalla versione di Excel
 a cui ti riferisci (xls o xlsx, il secondo e' XML se non erro)

 Carlos
 --
 EZLN ... Para Todos Todo ... Nada para nosotros

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Julia (Was: Walks like Python. Runs like C).

2015-01-15 Per discussione Alessandro Re
Vincenzo, io credo che un gestionale abbia comunque una certa fetta di
interattività nel processo d'uso, o sbaglio?
Certo, magari ci sono fasi in cui devi macinare tanti numeri, ma credo
che sia un genere di calcoli dove è preponderante l'aspetto di andare
a trovare le informazioni, su cui poi fare i conti, piuttosto che
andare a fare i conti stessi... Cioé, non passi la maggior parte del
tempo ad aspettare un risultato.

Quanto Valerio parlava di ambito numerico/scientifico, credo
intendesse quegli ambiti dove essenzialmente si fanno solo conti in
maniera molto consistente. Immagina programmi che devono passare un
certo numero di ore (o talvolta giorni) a fare solo operazioni su
vettori, matrici e cose così... Ambiti molto rappresentativi, ad
esempio, sono simulazioni di fluidodinamica e previsioni
metereologiche.

Ora, sto un po' semplificando ed estremizzando, ma non so se tu sei
familiare con l'ambito scientifico e questo è solo un esempio per
darti un'idea del perché, anche secondo me, Julia non è il linguaggio
che raccomanderei per un gestionale (benché se non sbaglio ha tutti
gli elementi per poter fare anche quello) :)

Ciauz
~Ale


2015-01-15 10:02 GMT+00:00 Vincenzo Campanella vin...@gmail.com:
 Il 15.01.2015 10:22, Valerio Maggio ha scritto:

- è certamente un linguaggio ancora non molto maturo ma con una
 community in veloce espansione
   - è un linguaggio nato per la computazione scientifica e li morirà
 (imho). Non vuole essere un linguaggio general-purpose.
 Certo non mi meraviglierei se ci fosse qualcuno che inizi a fare anche il
 caffè con Julia, ma è un linguaggio che esprime le sue potenzialità in
 ambito numerico/scientifico.


 Questo significa che un programma gestionale essenzialmente in ambito
 contabile potrebbe essere veloce ed efficiente? Se sì, quanto più di -
 poniamo per esempio - Python, Java o C++?

 Scusate se mi permetto d'intromettermi, ma questo aspetto mi tocca in prima
 persona


 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] C'è qualcuno che ha già usato theano?

2015-01-13 Per discussione Alessandro Re
Io no, ma ce l'ho in programma... Probabilmente la userò per qualche prototipo.

Mi iscriverò a breve alla mailing list di theano, quindi :) Se vuoi
rimaniamo in contatto (o ti avviso quando inizio a smanettarci)
~Ale


2015-01-13 9:50 GMT+00:00 Marco Ippolito ippolito.ma...@gmail.com:
 Ciao Carlos,
 sono iscritto alla mailing list theano,in cui ovviamente scrivo.
 Ma sarebbe bello confrontarsi in modo piu' diretto,schietto ed immediato con
 utilizzatori italiani
 Se qualcuno lo ha usatobatta un colpo

 Marco

 Il giorno 13/gen/2015 10:43, Carlos Catucci carlos.catu...@gmail.com ha
 scritto:


 2015-01-13 10:19 GMT+01:00 Marco Ippolito ippolito.ma...@gmail.com:

 c'è qualcuno che ha già usato theano?


 Direi Garibaldi ;)
 No scusa la facile battuta ma non spaevo neppure sistesse sembra
 interessante, anche se io con grosse moli numeriche non mi ci confronto
 spesso.

 Carlos
 --
 EZLN ... Para Todos Todo ... Nada para nosotros

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Walks like Python. Runs like C.

2015-01-13 Per discussione Alessandro Re
2015-01-12 19:08 GMT+00:00 Manlio Perillo manlio.peri...@gmail.com:
 2015-01-12 20:01 GMT+01:00 Alessandro Re a...@ale-re.net:

 Io l'ho guardato un pochino... Devo dire che è interessante, per
 diversi motivi, ma ho un odio viscerale per la sua sintassi, quindi
 non lo preferirò al caro paiton.

 Anzi, mi son detto che è meglio aspettare che qualcuno ottimizzi
 python,


 Non succederà.
 Se vuoi Python veloce devi usare Cython o Numba, che sono linguaggi
 differenti, che
 servono solo a scrivere parti piccole di codice ottimizzate.

Interessante numba, non lo conoscevo!

E Pypy? E Pyston? E tutti gli altri? :) Comunque sia, la mia era
ovviamente una battuta sarcastica, non si meritava nemmeno una
risposta.

 La sintassi di Julia non è troppo male.
 Se vede che non hai mai studiato linguaggi come Lisp, Ocaml, Haskell o
 Rust...

I gusti non si discutono :) D'altronde io trovo estremamente bello
lisp (scheme), per quanto la sua non-sintassi sia sempre criticata a
mio avviso ingiustamente.

~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python con tipi

2015-01-02 Per discussione Alessandro Re
@Marco Beri, grazie per il link, appena riesco me lo rileggo attentamente :)

On Jan 1, 2015 6:24 PM, Manlio Perillo manlio.peri...@gmail.com wrote:
 Sovraccaricare un linguaggio di nuove funzionalità non è sempre
 la scelta migliore.

In realtà la cosa che trovo interessante è che non si sovraccarica, ma si
usa una funzionalità esistente per uno scopo diverso.

Ciao!
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python vs Java

2015-01-01 Per discussione Alessandro Re
Intendevo dire che a volte avere un compilatore che fa i controlli sui tipi
e molto utile :)
On Jan 1, 2015 3:06 PM, Enrico Bianchi enrico.bian...@ymail.com wrote:

 On 12/29/2014 12:12 PM, Alessandro Re wrote:

 Mi è anche capitato di usare python in un progetto e passare i mesi
 successivi a maledirmi perché mi serviva un controllo sui tipi, e
 python non mi aiutava poi molto...


 Wut? In Python il controllo dei tipi si fa senza troppi problemi:

 a = 1

 if type(a) == int:
 print(True)
 else:
 print(False)

 Enrico
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Python con tipi

2015-01-01 Per discussione Alessandro Re
Ciao, volevo portare alla vostra attenzione questo progetto

http://www.mypy-lang.org

che mi sembra un'ottima idea, ma vorrei soprattutto sapere che ne pensate.

Lo usereste?

Ciauz e buon 2015 :)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python vs Java

2014-12-29 Per discussione Alessandro Re
2014-12-29 10:36 GMT+01:00 Marco Ippolito ippolito.ma...@gmail.com:
 Ciao a tutti,
 riguardo al confronto Java-Python, pur essendo vero che non è mai
 bello fare confronti tra linguaggi di programmazione perchè fanno cose
 diverse, io volevo chiedervi quali sono le cose che Java ti consente
 di fare e che Python invece non può fare.

In linea teorica, nulla: entrambi i linguaggi sono equivalenti. E, in
generale, tutti i linguaggi Turing completi sono uguali in termini
di cosa è possibile fare. Fondamentalmente sono tutti i linguaggi di
programmazione di cui si sente parlare, quindi non porti questo
problema.

Il problema principale, alla fine, si riduce ad essere questo: quanto
è facile risolvere efficientemente un problema con un certo
linguaggio?

E qui si apre un mondo :)

Le questioni sono tante:

1. quanto materiale ho a disposizione già scritto da altri (quanto
codice posso evitare di riscrivere e di debuggare)? Java e Python sono
entrambi estremamente ricchi da questo punto di vista.

2. quanto la sintassi del linguaggio è adatta al problema? Java e
Python, seppure piuttosto diversi in termini di aspetto estetico,
ricadono nella stessa famiglia di linguaggi multi-paradigma
imperativi/oggetti/funzionali, quindi anche da questo punto di vista
sono fondamentalmente equivalenti... Chi sostiene il contrario, di
solito, è perché confonde questo punto con il punto successivo:

3. quanto un utente si trova bene con un linguaggio? Question molto
personale. C'é chi (come nel link postato dall'OP) si trova a vedere
il mondo in modo java e chi lo fa in modo python. Questo ha un grande
impatto sulla velocità con cui scrivi codice, anche se gli strumenti
che si hanno a disposizione sono spesso simili tra linguaggi.

4. quanto è efficiente l'implementazione del linguaggio? Alcuni
linguaggi, Fortran o C, ad esempio, sono molto efficienti, perché
lasciano poco da fare al compilatore, e tanti paletti li deve tenere
in testa il programmatore (che ha vita difficile). Java, a MIO
personalissimo avviso, è più efficiente in esecuzione di CPython 3
(che uso), e il confronto dipende molto da cosa si fa... Se usi bene
Numpy, se usi PyPy, etc, tutto può variare molto.

5. dove dovrà essere eseguito il programma? Se devi farlo andare sul
tuo computer, e solo quello, allora di solito scegli la tecnologia che
vuoi, ma altrimenti scegli la migliore tra quelle che la piattaforma
obiettivo ti consente di usare... A volte, python o java non sono
scelte, e spesso (tipo me, fino ad un paio di mesi fa) eri costretto
ad usare PHP... (Povero me!)

E ci sono molte altre questioni, ma personalmente tengo presente, di
solito, queste.

 Ve lo chiedo perchè per quello che sto facendo, in alcuni casi mi devo
 interfacciare con alcuni applicativi scritti in Java ed in tutti i
 casi mi sembrano piuttosto lenti e farraginosi.
 Per cui mi domandavo in quali casi uno dovrebbe scegliere Java anzichè Python.

Purtroppo, in questo caso, c'é anche il problema di COME è stato
scritto un sistema con cui bisogna interfacciarsi :) Purtroppo gli
incapaci (e io sono presidente del loro club) usano tutti i linguaggi
possibili, python, java, c++ e lisp... E il linguaggio non c'entra
nulla.

Io la vedo così: se non conosci i linguaggi, imparali entrambi, perché
sono importanti. Se sai già programmare, allora non dovresti essere
troppo preoccupato da questo.

Se li conosci, allora dovresti sapere quali strumenti e quali
paradigmi usa uno piuttosto che l'altro. Questo ti permette di
valutare il problema che devi risolvere, e quindi capire quale
linguaggio usare.

Ti faccio qualche esempio molto pratico (che ho dovuto affrontare)
così capisci cosa intendo.

Ti danno un CSV pieno di dati di un supermercato e ti dicono di
studiartelo. Python o Java? Python: puoi usare una shell interattiva
(ipython) e librerie pronte e comode (pantas, numpy, scikit-learn) per
fare analisi di dati. Non serve scrivere, compilare, distribuire... È
un task che devi far tu, in modo molto dinamico, quindi un linguaggio
dinamico va bene.

Ti trovi a dover esplorare un database per capire com'é fatto. Python:
anche questo è un task dinamico.

Devi tenere una lezione sul machine learning ad una classe di
scioperati. Ok, python o java per loro è uguale, la questione
principale sarà fare il deploy. Java è la scelta migliore, perché è
probabile che abbiano già JRE sul computer, mentre python sarebbe più
macchinoso. La JVM contiene un sacco di belle cose, tipo Swing, quindi
posso fare una GUI senza preoccuparmi di tutte le dipendenze e le
installazioni.

Devi buttare giù un algoritmo sui grafi che ti è venuto in mente, usi
Python, perché è più veloce da scrivere (meno parole) e stai facendo
qualcosa di molto specifico, quindi non ti preoccupi troppo di non
avere controllo sui tipi. Oppure

Devi tenere una lezione sul linguaggio Java. Usi Java, ma consigli
agli studenti di usare Python (quando sono in bagno da soli :D)

Mi è anche capitato di usare python in un progetto e passare i mesi

Re: [Python] Python vs Java

2014-12-29 Per discussione Alessandro Re
Bhe, se sono della Stanford non sono sicuramente nel mio club degli incapaci :D

Comunque hai ragione: ho dimenticato di mettere anche un pensiero
riguardo al fatto che, magari, le parti su cui vi interfacciate
potrebbero avere anche una notevole complessità computazionale...
Sicuro che non sia quello, più che java in sé? Avete altri software
che fanno la stessa cosa e sono molto più efficienti?

È vero, la JVM aggiunge un layer che rallenta l'esecuzione, ma...
Dipende dai contesti. Non so che genere di applicativi Java usiate, e
magari Java non è stata un'ottima scelta per quelle implementazioni.
Magari, come spiegavo prima, questi sviluppatori di Stanford hanno
usato Java per necessità ben sapendo che avrebbe avuto un impatto
negativo sulle performance, e magari avrebbero preferito un altro
linguaggio, ma Java gli è stato imposto.

Comunque java è usato in modo un po' troppo pervasivo e in progetti un
po' troppo grossi per farmi pensare che sia lento a prescindere. Ci
sono troppe cose nel mondo java che possono andare storte e rallentare
tutto, quindi è difficile capire a cosa dare la colpa (al
programmatore finale, a chi ha scritto il compilatore, a chi ha
scritto la JVM o chi ha scritto le librerie?)

Mi guarderò il link con cautela ;)

Ciao
~Ale


2014-12-29 12:42 GMT+01:00 Marco Ippolito ippolito.ma...@gmail.com:
 Ciao Alessandro,
 devo proprio ringraziarti tantissimo per la tua risposta e per le tua
 considerazioni che hai molto ben dettagliatamente descritto.

 Devo dire che non conosco assolutamente Java. Diversi mesi fa, proprio
 perchè dovevo interfacciarmi con questi applicativi, mi sono scaricato
 un manualone, ed ho letto alcuni capitoli. tutto qui...
 Questi applicativi sono stati scritti da ricercatori della Stanford
 University, e di altre università americane. Non saranno dei premi
 nobel della programmazione in java, ma penso che non siano nemmeno dei
 novizi nel campo.
 Un amico, decisamente un ottimo programmatore, cui ho chiesto come mai
 secondo lui tutti i programmi con cui mi interfaccio scritti in java
 sono così lenti e farraginosi, mi ha spiegato che tutti i programmi
 scritti in Java non vengono eseguiti direttamente ma viene eseguito
 sempre un solo processo, la JVM, che converte il codice in
 linguaggio macchina e lo esegue, diventando quindi un collo di
 bottiglia.

 Ho anche per 2 mesi provato ad usare il db neo4j: http://neo4j.com/
 che ha ottime idee di base ma che, ho dovuto abbandonare, perchè
 piuttosto lento, ed anche lui, farraginoso.

 Ho ritrovato il link ad un blog che mi aveva inviato riguardo al tema:
 http://tech.jonathangardner.net/wiki/Why_Java_Sucks

 Marco
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python vs Java

2014-12-29 Per discussione Alessandro Re
2014-12-29 13:31 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com:

 2014-12-29 12:12 GMT+01:00 Alessandro Re a...@ale-re.net:

 quanto la sintassi del linguaggio è adatta al problema? Java e
 Python, seppure piuttosto diversi in termini di aspetto estetico,
 ricadono nella stessa famiglia di linguaggi multi-paradigma
 imperativi/oggetti/funzionali, quindi anche da questo punto di vista
 sono fondamentalmente equivalenti... Chi sostiene il contrario, di
 solito, è perché confonde questo punto con il punto successivo:


 Mi permetto di dissentire. In entrambi tutto e' a oggetti, solo che in
 Python non devi definire una classe per scrivere Hello World!
 Io ho usato Java dalla 1.2 alla 1.5. Gia' li era diventato un bailamme
 ingestibile. Senza contare tutto il tempo che si perdeva nelle
 ricompiilazioni per fare un semplice test funzionale.
 Con python ho trovato uno strumento perfetto. Lo so che ci sono cose per cui
 non e' perfetto, ma si puo' integrare bene con piccole parti scritte con
 altri linguaggi.

Tutto è a oggetti è una cosa un po' forte da dire... È vero che in
Java hai bisogno di definire una classe per fare un hello world, ma di
fatto puoi fare un programma imperativo come nel caro vecchio C usando
solo metodi statici. In Python hai metodi, ma anche funzioni.

Ora, l'OOP per come lo vedo è solo un modo di organizzare le cose, e a
me sembra che sia in Java che Python si possano scrivere dei bei
programmoni assolutamente senza organizzare le cose in classi e
oggetti... Quindi, come dicevo, ritengo che entrambi i linguaggi siano
piuttosto flessibili sul paradigma che si può usare... E Java 1.8, se
non erro, innalza le funzioni ad elementi di prima classe portando
Java alla programmazione funzionale vera e propria.

 Sul deploy, si lo so che ci sono dipendenze, ma non e' che java ne sia poi
 cosi' privo. Dipende sempre dagli approcci.
 Poi nessuna guerra di religione.

Bhe con java si ha almeno una dipendenza obbligatoria: la jvm :D
Quindi non ne é privo, ma per molte cose quella basta e avanza, e
spesso il deploy viene fatto fornendo tutte le dipendenze necessarie
con l'eseguibile; la JVM è l'unica cosa grossa che l'utente deve
procurarsi. E secondo me è anche un buon concetto.

@Marco Ippolito, per tornare alla tua questione, ovviamente non so che
uso fate dei pacchetti NLP di Stanford, ma alcuni degli algoritmi
usati in quel campo non sono molto leggeri dal punto di vista
computazionale... Quindi magari non è affatto un problema di Java.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Python vs Java

2014-12-27 Per discussione Alessandro Re
Io rido per l'infografica, a partire dai punti e virgola in python, al modo
in cui i dizionari vengono usati come control flow, fino al... Bhe, più o
meno tutto il resto :D

Mi sembra di vedere python costretto a fare un lavoro forzato da uno
schjavista.

Io odio comparare i linguaggi. È come comparare una zappa e un martello e
dire eh cavoli, io devo piantare i chiodi e chiaramente la zappa fa
cagare. Mabbaffanculo.

~Ale

2014-12-27 17:17 GMT+01:00 Luigi Fontana picchiole...@gmail.com:

 Sì ma kivy non è così diretto e complica le cose un pochino (abbastanza
 per mettere on crisi il sottoscritto).

 Poi il supporto android/google è comodo, a partire da Android Studio.

 Quello che, da principiante, non capisco è poprio il perché abbiano scelto
 java. Alla fine il sistema è regolato da tag xml quindi costrurie il motore
 su Python non penso avrebbe cambiato nulla o no?

 Il giorno sab 27 dic 2014 17:14 Carlos Catucci carlos.catu...@gmail.com
 ha scritto:


 2014-12-27 17:11 GMT+01:00 Luigi Fontana picchiole...@gmail.com:

 Comunque java sta avendo un successo postumo per le app di android.

 Peccato perché è decisamente meno scorrevole di Python [image: ]

 Si puo' usare Kivy, che permette di pacchettizzare anche per gli iCosi,
 scrivendo in Python (Write Once) e facendolo girare anche su smartphones e
 tablets (Run Many)

 Carlos
 --
 EZLN ... Para Todos Todo ...
  ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Fibonacci in Forth

2014-12-12 Per discussione Alessandro Re
2014-12-12 11:45 GMT+00:00 Enrico Bianchi enrico.bian...@ymail.com:
 On 12/11/2014 09:19 PM, Carlos Catucci wrote:

 Poi amerete ancora di piu' Python e la sua chiarezza

 E` quando vedo 'ste cose che mi chiedo quale sia il problema nel creare un
 linguaggio di programmazione umano...

Il problema é che umano vuol dire proprio ricco di errori, di
opinioni, di incertezze, di variabilità, di cose belle e brutte
assieme :)

Oltre al fatto che, ovviamente, noi possiamo essere più o meno
abituati a certe sintassi e certi modi di fare che ci agevolano
nell'uso di un linguaggio, e chi lo crea ovviamente non è
necessariamente nello stesso schema mentale.

Ad esempio, per me si dovrebbe usare sempre la RPN per le espressioni :D
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Blocco casuale nel codice

2010-05-11 Per discussione Alessandro Re
Ciao a tutti,
tornato dalla Pycon Quattro mi son messo a fare un programmillo in
python che fa uso di algoritmi genetici.
Ho un piccolo problema: ogni tanto, abbastanza raramente, il programma
si blocca su una return (o cosi' pare).

Purtroppo non sono affatto esperto di python e il debugging mi e'
tutt'ora oscuro... L'unica cosa che ho scoperto, per ora, usando delle
print, e' che prima della chiamata di una certa funzione, il tutto si
blocca.
Ho provato con pydev, pdb ed idle, ma non riesco a venirne a capo:
purtroppo non riesco ad interrompere l'esecuzione nel punto in cui si
blocca (tipo con Ctrl-C), e sicuramente non posso usare dei breakpoint
perche', nella ipotesi media, devo fare 2000 iterazioni prima che si
blocchi... A volte si blocca subito, a volte non si blocca proprio.

Sto usando Python 2.6.2, so che non e' la versione piu' aggiornata, ma
per ora devo accontentarmi...

Potreste consigliarmi su come procedere? Un tool che mi permetta di
fermare il debug nel momento in cui premo una sequenza di tasti, che
mi permetta di tornare indietro di qualche passo e vedere se ci sono
delle condizioni specifiche in cui si blocca?

Il codice, senza commenti, saranno circa 100 righe, potrei copiarvelo
se necessario.

Grazie in anticipo!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Blocco casuale nel codice

2010-05-11 Per discussione Alessandro Re
Ciao Valerio, grazie per la risposta.

Con set_trace() (che non avevo visto prima) son riuscito a venirne a capo :)

Comunque non ho trovato un modo di interrompere l'esecuzione (come
fosse un break point) premendo una combinazione di tasti:
interrompendo con Ctrl-C m'e' finalmente andato in post-mortem (prima
non mi succedeva, non so se e' grazie a set_trace che ora lo fa, dalla
doc non capisco) e da li son riuscito a vedere cosa bloccava, ma senza
possibilita' di continuare:

KeyboardInterrupt
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program

In ogni caso grazie!
~Ale



2010/5/11 Valerio Turturici turturici.vale...@gmail.com:
 Come tool ho solo usa

 Il giorno mar, 11/05/2010 alle 17.28 +0200, Alessandro Re ha scritto:

 Potreste consigliarmi su come procedere? Un tool che mi permetta di
 fermare il debug nel momento in cui premo una sequenza di tasti, che
 mi permetta di tornare indietro di qualche passo e vedere se ci sono
 delle condizioni specifiche in cui si blocca?

 *Credo* che pdb abbia qualcosa di simile.
 http://docs.python.org/library/pdb.html#module-pdb

 Il codice, senza commenti, saranno circa 100 righe, potrei copiarvelo
 se necessario.

 Se lo metti viene di sicuro più facile aiutarti.

 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Blocco casuale nel codice

2010-05-11 Per discussione Alessandro Re
2010/5/11 Pietro Battiston too...@email.it:
 Nella mia ignoranza di una soluzione pulita, se fossi nella tua
 situazione probabilmente farei un

 try:
    chiamata_che_ogni_tanto_si_blocca()
 except KeyboardInterrupt:
    pass


 A questo punto, se ad esempio il tutto gira in un terminale interattivo,
 potrei, quando decido che si è piantato, dare un Ctrl+C ed ispezionare
 le variabili che più mi aggradano.

Uuuh non ci avevo pensato! :) Bella idea, spero di ricordarmela se mi
capitasse un'altra situazione simile...

Grazie!

~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python