Re: [Python-es] Traits en Python

2013-08-29 Thread Andrey Antukh
Hola.

No se si lo he entendido bien, pero puede que estes buscando algo asi:
https://gist.github.com/niwibe/3654502 ?
Obviamente esto solo es un experimento...

Andrey


El 29 de agosto de 2013 08:24, Olemis Lang  escribió:

> On 8/28/13, Chema Cortes  wrote:
> > El día 28 de agosto de 2013 01:44, Olemis Lang 
> escribió:
> >> Busco una librería q implemente un mecanismo de extensión similar a
> >> los traits (self, scala, smalltalk, ...) . Lo q necesito es extender
> >> el comportamiento de clases sin herencia múltiple i.e. mixins . Si el
> >> mecanismo funciona a nivel d objetos en vez d clases puede q m sirva
> >> también .
> >>
> >> En mi corta investigación he encontrado :
> >>
> >>   - https://pypi.python.org/pypi/strait : en la línea d lo q necesito
> >> hacer
> >> pero no permite redefinición (overrides) ni encadenamiento.
> >>   - http://pypi.python.org/pypi/Traits :
> >>   - https://pypi.python.org/pypi/simpletraits : lejanamente
> >> parecido a lo q quiero hacer , creo q ni siquiera tiene q ver ...
> >>
> >> ¿Alguien conoce otra librería o alguna otra variante q pueda recomendar?
> >
> > Viendo estas referencias, hay quién confunde "traits" con la
> > programación por contrato. Un trait define un comportamiento
> > determinado mediante:
> >
> > - Métodos "concretos" que implementan un comportamiento determinado
> > - Métodos "abstractos" que parametrizan un comportamiento determinado
> >
>
> el vocabulario técnico parece ser más rico de lo q yo esperaba ... hay
> un montón d cosas a las q le dicen traits sin relación alguna entre
> ellas ; pero bueno, estaba hablando d algo como los traits d Scala ...
>
> [...]
> >
> > Supongo que ésto ya lo habías probado.
>
> ;)
>
> > Según pidés, no quieres
> > "mixins", que equivaldría a que no quede rastro en el __mro__ .
>
> No es solamente por el hecho del mro , la cuestión consiste en q en el
> modelo q necesitaría :
>
>   1. habría **muchas** clases parciales
>   2. q extenderían / modificarían el comportamiento d una clase base
>   3. pero la composición q se necesita en un caso determinado se
>   determina en tiempo d ejecución (o sea, se generan clases)
>   4. y el número d clases en cada composición puede ser grande
>
> razón por la cual estaba creyendo conveniente tener el equivalente d
> (Scala)
>
> new Class() with Trait1 with Trait2 with ... Trait_n{
>   def transform(obj: String): obj.toLower()
> }
>
> con una sintaxis más o menos así
>
> cls = Trait1(Trait2(... Trait_n(Class)))
> obj = cls()
>
> > Se me
> > ocurre complicar algo más Trait para que sea capaz de "inyectar"
> > métodos:
> >
> > class Trait(ABCMeta):
> >
> > def __init__(self, name, bases, dic):
> > self.__dic=dic
> >
> > def register(self, cls):
> > super().register(cls)
> > for k,v in self.__dic.items():
> > if not hasattr(cls,k):
> > setattr(cls,k,v)
> > return cls
> >
> > El modo de empleo de MyTrait sería como decorador:
> >
> > @MyTrait.register
> > class MyClass(object):
> > def __str__(self):
> > return "MyTrait"
> >
> > assert(issubclass(MyClass, MyTrait))
> > assert(MyTrait not in MyClass.__mro__)
> >
> > c=MyClass()  ##OK
> > c.print()  ## >>>MyTrait<<<
> >
> > El problema de este último sistema es que no tiene en cuenta los
> > métodos abstractos ya que no está soportado añadir métodos abstractos
> > dinámicamente. Como solución, se podría suplantar los métodos
> > abstractos por una implementación que lanze una excepción
> > "NotImplementedError" o similar.
> >
>
> Algo parecido a esto es lo q busco pero con resolución dinámica d
> nombres (i.e. sin copia) . D todas formas estaba tratando d evitar
> tener q hacerlo. Pensé q era algo tan común q ya debería haber algo al
> respecto , pero creo q no m va a quedar otro remedio q empezarlo desde
> cero .
> :'(
>
> [...]
>
> --
> Regards,
>
> Olemis - @olemislc
>
> Apache™ Bloodhound contributor
> http://issues.apache.org/bloodhound
> http://blood-hound.net
>
> Blog ES: http://simelo-es.blogspot.com/
> Blog EN: http://simelo-en.blogspot.com/
>
> Featured article:
> Apache™ Bloodhound 0.7 listo para descarga -
> http://goo.gl/fb/OwzmM
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.be/about.html
http://www.kaleidos.net/A5694F/

"Linux is for people who hate Windows, BSD is for people who love UNIX"
"Social Engineer -> Because there is no patch for human stupidity"
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Traits en Python

2013-08-29 Thread Chema Cortes
El día 29 de agosto de 2013 08:24, Olemis Lang  escribió:
> On 8/28/13, Chema Cortes  wrote:
>> El día 28 de agosto de 2013 01:44, Olemis Lang  escribió:
>>> Busco una librería q implemente un mecanismo de extensión similar a
>>> los traits (self, scala, smalltalk, ...) . Lo q necesito es extender
>>> el comportamiento de clases sin herencia múltiple i.e. mixins . Si el
>>> mecanismo funciona a nivel d objetos en vez d clases puede q m sirva
>>> también .
>>>
>>> En mi corta investigación he encontrado :
>>>
>>>   - https://pypi.python.org/pypi/strait : en la línea d lo q necesito
>>> hacer
>>> pero no permite redefinición (overrides) ni encadenamiento.
>>>   - http://pypi.python.org/pypi/Traits :
>>>   - https://pypi.python.org/pypi/simpletraits : lejanamente
>>> parecido a lo q quiero hacer , creo q ni siquiera tiene q ver ...
>>>
>>> ¿Alguien conoce otra librería o alguna otra variante q pueda recomendar?
>>
>> Viendo estas referencias, hay quién confunde "traits" con la
>> programación por contrato. Un trait define un comportamiento
>> determinado mediante:
>>
>> - Métodos "concretos" que implementan un comportamiento determinado
>> - Métodos "abstractos" que parametrizan un comportamiento determinado
>>
>
> el vocabulario técnico parece ser más rico de lo q yo esperaba ... hay
> un montón d cosas a las q le dicen traits sin relación alguna entre
> ellas ; pero bueno, estaba hablando d algo como los traits d Scala ...
>
> [...]
>>
>> Supongo que ésto ya lo habías probado.
>
> ;)
>
>> Según pidés, no quieres
>> "mixins", que equivaldría a que no quede rastro en el __mro__ .
>
> No es solamente por el hecho del mro , la cuestión consiste en q en el
> modelo q necesitaría :
>
>   1. habría **muchas** clases parciales
>   2. q extenderían / modificarían el comportamiento d una clase base
>   3. pero la composición q se necesita en un caso determinado se
>   determina en tiempo d ejecución (o sea, se generan clases)
>   4. y el número d clases en cada composición puede ser grande
>
> razón por la cual estaba creyendo conveniente tener el equivalente d (Scala)
>
> new Class() with Trait1 with Trait2 with ... Trait_n{
>   def transform(obj: String): obj.toLower()
> }
>
> con una sintaxis más o menos así
>
> cls = Trait1(Trait2(... Trait_n(Class)))
> obj = cls()

No entiendo bien. La versión "decorador" que te había puesto puede
hacer este "encadenado":

cls = Trait1.register(Trait2.register(Trait_n.register(Class)))

Si lo quieres más práctico, cambia el método register por un método __call__

Otra cosa distinta es que quieras crear clases anónimas como en scala.
Pero, según Guido, éso es sólo para listos. :-P

>
>> Se me
>> ocurre complicar algo más Trait para que sea capaz de "inyectar"
>> métodos:
>>
>> class Trait(ABCMeta):
>>
>> def __init__(self, name, bases, dic):
>> self.__dic=dic
>>
>> def register(self, cls):
>> super().register(cls)
>> for k,v in self.__dic.items():
>> if not hasattr(cls,k):
>> setattr(cls,k,v)
>> return cls
>>
>> El modo de empleo de MyTrait sería como decorador:
>>
>> @MyTrait.register
>> class MyClass(object):
>> def __str__(self):
>> return "MyTrait"
>>
>> assert(issubclass(MyClass, MyTrait))
>> assert(MyTrait not in MyClass.__mro__)
>>
>> c=MyClass()  ##OK
>> c.print()  ## >>>MyTrait<<<
>>
>> El problema de este último sistema es que no tiene en cuenta los
>> métodos abstractos ya que no está soportado añadir métodos abstractos
>> dinámicamente. Como solución, se podría suplantar los métodos
>> abstractos por una implementación que lanze una excepción
>> "NotImplementedError" o similar.
>>
>
> Algo parecido a esto es lo q busco pero con resolución dinámica d
> nombres (i.e. sin copia) . D todas formas estaba tratando d evitar
> tener q hacerlo. Pensé q era algo tan común q ya debería haber algo al
> respecto , pero creo q no m va a quedar otro remedio q empezarlo desde
> cero .
> :'(
>
> [...]
>
> --
> Regards,
>
> Olemis - @olemislc
>
> Apache™ Bloodhound contributor
> http://issues.apache.org/bloodhound
> http://blood-hound.net
>
> Blog ES: http://simelo-es.blogspot.com/
> Blog EN: http://simelo-en.blogspot.com/
>
> Featured article:
> Apache™ Bloodhound 0.7 listo para descarga -
> http://goo.gl/fb/OwzmM
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/



-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Entrevista a GvR

2013-08-29 Thread Juan M. Puertas
Lo que no entiendo es lo de que Python no está bien preparado para la nube.
He tenido que hacer una aplicación asíncrona para la web que calcula y
dibuja las posiciones planetarias para una fecha, hora y lugar que
determina el usuario, la he realizado en Python por que me gusta el
lenguaje y sobre todo por que Python está muy mimado por la comunidad, por
ejemplo a muchos lenguajes le faltan cosas como pytz, con el que puedes
saber que huso horario hay en cada país en cualquier fecha y hora. Para el
cálculo de posiciones planetarias existe la extensión Pyswisseph. Con otro
lenguaje me las habría visto y deseado...


El 28 de agosto de 2013 11:39, Juan Ignacio  escribió:

> > Vale que es por el navegador ¡pero es que ahora con
> > nodejs resulta que también en el servidor! ¡Argh!
>
> Y con mongodb, ahora tambien en la base de datos. Verlo pa' creerlo.
>
> PD: A pesar de eso, mongodb mola :-)
>
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
*Nota: Por problemas con el e-mail. Puede que recibas de nuevo este mensaje
en un tiempo.*
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Entrevista a GvR

2013-08-29 Thread Andrey Antukh
La verdad que no tiene mucho sentido lo que se ha dicho sobre lo de la
nube...

;)
Andrey




El 29 de agosto de 2013 13:31, Juan M. Puertas escribió:

> Lo que no entiendo es lo de que Python no está bien preparado para la nube.
> He tenido que hacer una aplicación asíncrona para la web que calcula y
> dibuja las posiciones planetarias para una fecha, hora y lugar que
> determina el usuario, la he realizado en Python por que me gusta el
> lenguaje y sobre todo por que Python está muy mimado por la comunidad, por
> ejemplo a muchos lenguajes le faltan cosas como pytz, con el que puedes
> saber que huso horario hay en cada país en cualquier fecha y hora. Para el
> cálculo de posiciones planetarias existe la extensión Pyswisseph. Con otro
> lenguaje me las habría visto y deseado...
>
>
> El 28 de agosto de 2013 11:39, Juan Ignacio escribió:
>
>> > Vale que es por el navegador ¡pero es que ahora con
>> > nodejs resulta que también en el servidor! ¡Argh!
>>
>> Y con mongodb, ahora tambien en la base de datos. Verlo pa' creerlo.
>>
>> PD: A pesar de eso, mongodb mola :-)
>>
>>
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
>
> --
> *Nota: Por problemas con el e-mail. Puede que recibas de nuevo este
> mensaje en un tiempo.*
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Andrey Antukh - Андрей Антух - 
http://www.niwi.be/about.html
http://www.kaleidos.net/A5694F/

"Linux is for people who hate Windows, BSD is for people who love UNIX"
"Social Engineer -> Because there is no patch for human stupidity"
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Traits en Python

2013-08-29 Thread Olemis Lang
On 8/29/13, Chema Cortes  wrote:
> El día 29 de agosto de 2013 08:24, Olemis Lang  escribió:
[...]
>> razón por la cual estaba creyendo conveniente tener el equivalente d
>> (Scala)
>>
>> new Class() with Trait1 with Trait2 with ... Trait_n{
>>   def transform(obj: String): obj.toLower()
>> }
>>
>> con una sintaxis más o menos así
>>
>> cls = Trait1(Trait2(... Trait_n(Class)))
>> obj = cls()
>
> No entiendo bien. La versión "decorador" que te había puesto puede
> hacer este "encadenado":
>
> cls = Trait1.register(Trait2.register(Trait_n.register(Class)))
>
> Si lo quieres más práctico, cambia el método register por un método
> __call__
>

sí , lo q trataba d decir q el ejemplo está bastanate bien , solo q le
faltaría un detalle para no copiar los atributos del trait en el
namespace de la definición local de la clase , sino resolverlos
dinámicamente à la MRO.
;)

> Otra cosa distinta es que quieras crear clases anónimas como en scala.
> Pero, según Guido, éso es sólo para listos. :-P
>

 ¡ uso Python ! soy muy listo :P 

[...]

-- 
Regards,

Olemis - @olemislc

Apache™ Bloodhound contributor
http://issues.apache.org/bloodhound
http://blood-hound.net

Blog ES: http://simelo-es.blogspot.com/
Blog EN: http://simelo-en.blogspot.com/

Featured article:
Google Zoo - http://goo.gl/fb/rEI8e
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Traits en Python

2013-08-29 Thread Olemis Lang
On 8/29/13, Andrey Antukh  wrote:
> Hola.
>

:)

> No se si lo he entendido bien, pero puede que estes buscando algo asi:
> https://gist.github.com/niwibe/3654502 ?
> Obviamente esto solo es un experimento...
>

interesante y simple . no se me había ocurrido .

Gracias !

[...]

-- 
Regards,

Olemis - @olemislc

Apache™ Bloodhound contributor
http://issues.apache.org/bloodhound
http://blood-hound.net

Blog ES: http://simelo-es.blogspot.com/
Blog EN: http://simelo-en.blogspot.com/

Featured article:
Twitter : Apache™ Mesos se gradúa de Apache™ Incubator -
http://goo.gl/fb/fI4wW
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Traits en Python

2013-08-29 Thread Chema Cortes
El día 29 de agosto de 2013 17:12, Olemis Lang  escribió:
> On 8/29/13, Chema Cortes  wrote:
>> El día 29 de agosto de 2013 08:24, Olemis Lang  escribió:
> [...]
>>> razón por la cual estaba creyendo conveniente tener el equivalente d
>>> (Scala)
>>>
>>> new Class() with Trait1 with Trait2 with ... Trait_n{
>>>   def transform(obj: String): obj.toLower()
>>> }
>>>
>>> con una sintaxis más o menos así
>>>
>>> cls = Trait1(Trait2(... Trait_n(Class)))
>>> obj = cls()
>>
>> No entiendo bien. La versión "decorador" que te había puesto puede
>> hacer este "encadenado":
>>
>> cls = Trait1.register(Trait2.register(Trait_n.register(Class)))
>>
>> Si lo quieres más práctico, cambia el método register por un método
>> __call__
>>
>
> sí , lo q trataba d decir q el ejemplo está bastanate bien , solo q le
> faltaría un detalle para no copiar los atributos del trait en el
> namespace de la definición local de la clase , sino resolverlos
> dinámicamente à la MRO.
> ;)

Entiendo. Para lo que necesitas tendrías que hackear el método
__getattribute__ responsable del funcionamiento de los descriptores.
Sobrecargando este método en type.__getattribute__ (por ejemplo, desde
una metaclase) podrías añadir a la cadena de búsqueda de atributos el
conjunto de traits que quieres añadir.

La mala noticia es que las optimizaciones del intérprete de python
ignoran el método __getattribute__ cuando se trata de métodos
especiales (eg: __str__, __len__, __hash__,...), que son,
precisamente, los más interesantes para definir comportamientos.

La única forma que veo que funcione correctamente algo así es copiando
los métodos en la clase.

>
>> Otra cosa distinta es que quieras crear clases anónimas como en scala.
>> Pero, según Guido, éso es sólo para listos. :-P
>>
>
>  ¡ uso Python ! soy muy listo :P 
>
> [...]
>
> --
> Regards,
>
> Olemis - @olemislc
>
> Apache™ Bloodhound contributor
> http://issues.apache.org/bloodhound
> http://blood-hound.net
>
> Blog ES: http://simelo-es.blogspot.com/
> Blog EN: http://simelo-en.blogspot.com/
>
> Featured article:
> Google Zoo - http://goo.gl/fb/rEI8e
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/



-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Imagenes dañadas al descargar con urllib2

2013-08-29 Thread Mario Encalada Cavada

On 27/08/13 05:13, WolveLopez wrote:
Hola compañeros, Estoy realizando un script el cual descaraga una 
monton de imágenes de un proveedor a una carpeta en local de mi 
equipo. Utilizo write y urllib2 para descargarlas pero las imágenes se 
descargan dañadas. Este es el código que empleo:


Código:
URL = imagen
source = urllib2.urlopen(URL).read()
f = open(nombre_del_archivo, "w")
f.write(source)
f.close()
Las imágenes que voy descargando quedan de esta manera: 
http://subefotos.com/ver/?9e77a0892a...94fa6e8efo.jpg 



En linux me lo hace perfectamente, pero si ejecuto el script en 
windows es cuando daña las fotos. He probado en varios equipos con 
windows, para desestimar que fuera ese equipo en concreto.


Un saludo compañeros y gracias de antemano.


___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

trata de usar

open(nombre_del_archivo, "wb")

al trabajar con ficheros Windoxxx hace diferencia entre ficheros de texto y 
"b"inarios.

El codif¡go así funciona sin problemas en linux, ya que en este caso omite esta 
informacion.

espero que sirva  



http://stackoverflow.com/questions/2665866/what-is-the-wb-mean-in-this-code-using-python


___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Entrevista a GvR

2013-08-29 Thread Juan M. Puertas
 Si lo ha dicho Chema, seguro que tiene sentido, yo lo decía por tirarle de
la lengua para ver qué sabe.
 Guido ha declarado que ni se le ocurra a nadie hacer "compiladores" de
Python a Javascript.
 Supongo que una idea como Dart, que cuenta además con un entorno de
desarrollo fabuloso, sería ideal que existiese en Python. :-)


El 29 de agosto de 2013 14:29, Andrey Antukh  escribió:

> La verdad que no tiene mucho sentido lo que se ha dicho sobre lo de la
> nube...
>
> ;)
> Andrey
>
>
>
>
> El 29 de agosto de 2013 13:31, Juan M. Puertas 
> escribió:
>
> Lo que no entiendo es lo de que Python no está bien preparado para la nube.
>> He tenido que hacer una aplicación asíncrona para la web que calcula y
>> dibuja las posiciones planetarias para una fecha, hora y lugar que
>> determina el usuario, la he realizado en Python por que me gusta el
>> lenguaje y sobre todo por que Python está muy mimado por la comunidad, por
>> ejemplo a muchos lenguajes le faltan cosas como pytz, con el que puedes
>> saber que huso horario hay en cada país en cualquier fecha y hora. Para el
>> cálculo de posiciones planetarias existe la extensión Pyswisseph. Con otro
>> lenguaje me las habría visto y deseado...
>>
>>
>> El 28 de agosto de 2013 11:39, Juan Ignacio escribió:
>>
>>> > Vale que es por el navegador ¡pero es que ahora con
>>> > nodejs resulta que también en el servidor! ¡Argh!
>>>
>>> Y con mongodb, ahora tambien en la base de datos. Verlo pa' creerlo.
>>>
>>> PD: A pesar de eso, mongodb mola :-)
>>>
>>>
>>>
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>>
>> --
>> *Nota: Por problemas con el e-mail. Puede que recibas de nuevo este
>> mensaje en un tiempo.*
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
>
> --
> Andrey Antukh - Андрей Антух - 
> http://www.niwi.be/about.html
> http://www.kaleidos.net/A5694F/
>
> "Linux is for people who hate Windows, BSD is for people who love UNIX"
> "Social Engineer -> Because there is no patch for human stupidity"
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
*Nota: Por problemas con el e-mail. Puede que recibas de nuevo este mensaje
en un tiempo.*
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Entrevista a GvR

2013-08-29 Thread Chema Cortes
El día 29 de agosto de 2013 13:31, Juan M. Puertas
 escribió:
> Lo que no entiendo es lo de que Python no está bien preparado para la nube.
> He tenido que hacer una aplicación asíncrona para la web que calcula y
> dibuja las posiciones planetarias para una fecha, hora y lugar que determina
> el usuario, la he realizado en Python por que me gusta el lenguaje y sobre
> todo por que Python está muy mimado por la comunidad, por ejemplo a muchos
> lenguajes le faltan cosas como pytz, con el que puedes saber que huso
> horario hay en cada país en cualquier fecha y hora. Para el cálculo de
> posiciones planetarias existe la extensión Pyswisseph. Con otro lenguaje me
> las habría visto y deseado...

Creo que no tenemos el mismo concepto de "nube".

Puedes contar con el mejor sistema de alta disponibilidad y las
mejores comunicaciones y todavía no estar preparado para la nube. Es
necesario, para poder desviar la demanda de un nodo a otro, que se
puedan suspender y restauras tareas rápidamente, incluidos sus datos.
Y CPython, a mi entender, no está preparado para esta escalabilidad en
alta demanda. También es verdad que no todo lo que se usa en python
está programado en python, pero lo estaríamos convirtiendo en mero
lenguaje instrumental. Y es aquí donde veo el peligro, que algún día
alguien se pregunte para qué usar python si se puede hacer lo mismo
creando un DSL con los mismos lenguajes que se usan para el resto de
la aplicación.

Sólo por dejarlo claro: ni he dicho que python desaparecerá ni que no
se puedan hacer aplicaciones web maravillosas. De hecho, creo que el
uso de python crecerá durante los próximos años.


>
>
> El 28 de agosto de 2013 11:39, Juan Ignacio  escribió:
>>
>> > Vale que es por el navegador ¡pero es que ahora con
>> > nodejs resulta que también en el servidor! ¡Argh!
>>
>> Y con mongodb, ahora tambien en la base de datos. Verlo pa' creerlo.
>>
>> PD: A pesar de eso, mongodb mola :-)
>>
>>
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
>
>
> --
> Nota: Por problemas con el e-mail. Puede que recibas de nuevo este mensaje
> en un tiempo.
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Entrevista a GvR

2013-08-29 Thread Jose Calderon-Celis
Al leer me acordaba de esos sistemas que son cautivos por sus creadores,
pues ellos son los unicos que conocen como funcionan y claro son sistemas
que cumplen los requerimientos(algunos)  o sirven para determinadas cosas,
pero si queres ampliarlos y/o corregirlos (recien entiendes lo que es
cautivo) y en algun momento se reescriben,


---
Jose Calderon-Celis




2013/8/26 "Hernán M. F." 

> En slashdot.
>
> http://developers.slashdot.org/firehose.pl?op=view&type=story&sid=13/08/25/2115204
>
>
> Hernán MF S
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/