Re: [Python-es] En busca del libro
El "Python Essential Reference" de David Beazley siempre me gustó mucho. Tiene una parte de introducción al lenguaje que es básica, pero muy completa al mismo tiempo. Pero la parte "buena" para mí es la referencia de las librerías que vienen incluidas en el lenguaje (batteries included). Se nota que el tipo estuvo muy cerca de Guido durante la fase de desarrollo de las mismas. Saludos! On Fri, Jan 15, 2021 at 12:38 PM Miguel Sánchez Rodríguez < miguels...@gmail.com> wrote: > Yo te recomendaría Fluent Python, de Luciano Ramalho. > > El vie, 15 ene 2021 a las 11:55, Javier Morales de Lucas (< > javm...@gmail.com>) escribió: > >> Llevo buscando un buen libro sobre Python hace semanas y estoy lleno de >> dudas el nivel medio alto. Bueno lo explico la mayoría de libros que han >> pasado por mis manos llevan mucha paja, otros son muy básico , aunque a >> veces y no siempre me sorprendo con líneas de código no siempre es así. >> Busco un libro lo más completo posible que se hable de una forma clara. >> Nivel medio alto >> ¿ Cuál me recomendáis ? >> ___ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> > _______ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Tutorial online para colaborar en software libre
On Sun, May 10, 2020 at 11:20 PM Marc Garcia wrote: > Que alguien me avise si spameo mucho con estos eventos... > Al contrario, se agradece mucho tu dedicación :-) Francesc > Pero por si a alguien le interesa, este miércoles vamos a hacer una > introducción desde cero al análisis de datos en Python. Será muy básico, > para tener una pequeña idea de qué son y como usar Conda, Jupyter, pandas y > Matplotlib. Y ver el potencial que tienen. > > Más info: https://twitter.com/datapythonista/status/1259520468605943808 > > On Fri, May 8, 2020 at 7:54 AM Leandro Aguinaga > wrote: > >> Gracias, >> Justo iba a preguntar dónde lo subirías. >> Saludos >> >> El mar., 5 may. 2020 4:14, Marc Garcia escribió: >> >>> Lo hemos subido a peertube, se puede ver aqui: >>> https://p.eertu.be/videos/watch/e10300f6-453d-4256-bbf6-bf6fd1034e3f >>> >>> On Sun, May 3, 2020 at 8:33 PM Agustin Bueno >>> wrote: >>> >>>> Yo no puedo, pero si que me gustaría verlo, si después lo cuelgas en >>>> alguna plataforma podrías indicar cual. >>>> >>>> Muchas gracias >>>> >>>> >>>> El dom., 3 may. 2020 a las 10:53, Marc Garcia () >>>> escribió: >>>> >>>>> Por si alguien tiene interés en colaborar en proyectos de software >>>>> libre, y no sabe por donde empezar, esta tarde/noche voy a estar dando un >>>>> tutorial práctico online sobre el tema. >>>>> >>>>> El tutorial va a ser 100% práctico, y está pensado para que los >>>>> participantes vayan siguiendo los pasos, y hagan las primeras >>>>> contribuciones mientras se aprenden los conceptos. >>>>> >>>>> Va a ser a la 13h en Ciudad de México, 15h en Buenos Aires, 20h en >>>>> Madrid... >>>>> >>>>> Más info: >>>>> https://twitter.com/datapythonista/status/1254892940452921344?s=19 >>>>> ___ >>>>> Python-es mailing list >>>>> Python-es@python.org >>>>> https://mail.python.org/mailman/listinfo/python-es >>>>> >>>> ___ >>>> Python-es mailing list >>>> Python-es@python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> >>> ___ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> >> ___ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Es coconut solamente azucar sintactico?
Missatge de Chema Cortes del dia ds., 27 d’abr. 2019 a les 19:03: > > El vie., 26 abr. 2019 a las 18:14, Francesc Alted () > escribió: > >> Yo también me alegro que los lenguajes funcionales se empiecen a tomar en >> serio en ámbitos cada vez más amplios. No acabo de estar totalmente con >> Chema cuando dice en su blog que las construcciones funcionales estan >> siendo arrinconcadas en Python; personalmente, uso mucho los >> iteradores/generadores, que estan considerados como constructos >> funcionales, y que creo que estan en la base de muchas librerias Python. >> > > Como siempre digo, los paradigmas en programación depende de la actitud > del programador. El lenguaje ayuda bastante, pero es el programador quién > hace el esfuerzo. > > Efectivamente, los iteradores/generadores son el fundamento de muchas > librerías y su uso debería ser obligado. Pero si usas un iterador para > crear otro al puro estilo funcional, ¿se puede evitar que un error > interrumpa la cadena de iteradores? ¿se podrían paralelizar (incluso > ignorando que existe GIL)? > > > Para la primera pregunta, no he visto cómo. Para la segunda, Futures. > Bueno, para el paralelismo (sin GIL), también existe el módulo multiprocessing ( https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool.imap); hay muchas variantes de uso, como por ejemplo: http://www.grantjenks.com/wiki/random/python_multiprocessing_lazy_iterating_map. Aunque lanzar un proceso por cada worker parezca muy caro, no lo es tanto (unos 35 us en Linux, como se puede ver en: https://eli.thegreenplace.net/2018/launching-linux-threads-and-processes-with-clone/ ). Y si, para la primera no habia caido, pero es verdad que tampoco hago demasiado uso de cadenas de iteradores. > > En mi blog hablaba en pasado. Hoy en día, todos los lenguajes se ven > obligados a introducir características funcionales, incluso java. Pero > visto lo que se ha tardado en dejar atrás python2, reconozco que se me > agota la paciencia. > > >> De todas maneras habrá que seguir con mucho interés a Chema en lo que se >> prevé como una prometedora serie de artículos sobre coconut en su blog: >> https://blog.ch3m4.org/2019/04/16/que-es-un-coconut/ (aunque esperemos >> que las apariciones de Enrique y Ana no se prodiguen demasiado ;-) >> > > Prometo que será la última aparición de Enrique y Ana :-P > Se agradece (aunque he de confesar que, como tú, soy de la generación que creció viéndolos en la tele; pero creo que, o ellos o yo hemos envejecido mal :-) Francesc > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > https://blog.ch3m4.org > Buscador Python Hispano: http://busca.ch3m4.org > <https://blog.ch3m4.org/pages/busqueda-python-es/> > -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] Es coconut solamente azucar sintactico?
Yo también me alegro que los lenguajes funcionales se empiecen a tomar en serio en ámbitos cada vez más amplios. No acabo de estar totalmente con Chema cuando dice en su blog que las construcciones funcionales estan siendo arrinconcadas en Python; personalmente, uso mucho los iteradores/generadores, que estan considerados como constructos funcionales, y que creo que estan en la base de muchas librerias Python. De todas maneras habrá que seguir con mucho interés a Chema en lo que se prevé como una prometedora serie de artículos sobre coconut en su blog: https://blog.ch3m4.org/2019/04/16/que-es-un-coconut/ (aunque esperemos que las apariciones de Enrique y Ana no se prodiguen demasiado ;-) Saludos! Missatge de Chema Cortes del dia dv., 26 d’abr. 2019 a les 11:54: > > El vie., 26 abr. 2019 a las 4:39, AGTUGO () escribió: > >> Perdon la traduccion de syntatic sugar pero es lo que se me ocurri'o. Lo >> que mas esperaba de coconut es verificaci'on de tipos en funciones, no hay. >> El objetivo es escribir mas claro el programa con estilo funcional? Aveces >> uso decoradores para revisar los tipos, solamente cuando es necesario >> pensaba que coconut podria ahorrarme la molestia. >> >> > Yo no lo consideraría como *syntatic sugar*. Aunque opcional, puedes > activar el modo estricto y las comprobaciones de tipos con mypy. Lo único a > tener en cuenta es que la versión de python objetivo (*target*) debe > tener soporte para notación de tipos para que mypy lo procese. O sea, debes > usar un target superior a 3 en lugar del target universal que usa por > defecto: > > https://coconut.readthedocs.io/en/latest/DOCS.html#allowable-targets > > Aunque no necesitas coconut. Para chequear tipos puedes usar algún linter > con mypy en el IDE que uses (por ejemplo, visual code con pylama). > > > Por seguir con coconut, tiene comprobación de patrones, tanto en > asignación como en definición de función. Por ejemplo, se puede definir la > función factorial como: > > def factorial(0) = 1 > @addpattern(factorial)def factorial(n is int if n > 0) = > range(1, n+1) |> reduce$(*) > > No tienen *returns*, casi podría decirse que son funciones lambdas. Pero > implícitamente saldrá un error si el argumento no es cero o un entero > positivo, por lo que hace bastante más que una simple función lambda. > > Por otro lado, el reduce se está aplicando parcialmente con el operador > multiplicación. Se podría hacer igual con reduce, partial y mul que puedes > "rescatar" de algunos módulos donde han sido exiliados en python. Pero en > coconut son entidades de primer orden que, además, puedes combinar con > otras inexistentes en python como la evaluación perezosa de listas (lazy > lists) o el procesamiento paralelo (útil en monads). > > > Saludos. > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > https://blog.ch3m4.org > Buscador Python Hispano: http://busca.ch3m4.org > <https://blog.ch3m4.org/pages/busqueda-python-es/> > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
[Python-es] [ANN] 11ᵗʰ Advanced Scientific Programming in Python in Camerino, Italy, 3—8 September, 2018
Hola, Esta es la nueva convocatoria del curso gratuito de programación científica avanzada en Python que este año tendrá lugar en Camerino, Italia. A ver si os animáis y por favor, darle difusión al tema. Suerte! Francesc 11ᵗʰ Advanced Scientific Programming in Python == a Summer School by the G-Node and the University of Camerino https://python.g-node.org Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists have been trained to use them. As a result, instead of doing their research, they spend far too much time writing deficient code and reinventing the wheel. In this course we will present a selection of advanced programming techniques and best practices which are standard in the industry, but especially tailored to the needs of a programming scientist. Lectures are devised to be interactive and to give the students enough time to acquire direct hands-on experience with the materials. Students will work in pairs throughout the school and will team up to practice the newly learned skills in a real programming project — an entertaining computer game. We use the Python programming language for the entire course. Python works as a simple programming language for beginners, but more importantly, it also works great in scientific simulations and data analysis. We show how clean language design, ease of extensibility, and the great wealth of open source libraries for scientific computing and data visualization are driving Python to become a standard tool for the programming scientist. This school is targeted at Master or PhD students and Post-docs from all areas of science. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. Basic knowledge of Python and of a version control system such as git, subversion, mercurial, or bazaar is assumed. Participants without any prior experience with Python and/or git should work through the proposed introductory material before the course. We are striving hard to get a pool of students which is international and gender-balanced: see how far we got in previous years < https://python.g-node.org/wiki/archives#stats>! Date & Location === 3–8 September, 2018. Camerino, Italy. Application === You can apply online: https://python.g-node.org/wiki/applications Application deadline: 23:59 UTC, 31 May, 2018. There will be no deadline extension, so be sure to apply on time. Be sure to read the FAQ before applying: https://python.g-node.org/wiki/faq Participation is for free, i.e. no fee is charged! Participants however should take care of travel, living, and accommodation expenses by themselves. Program === • Version control with git and how to contribute to open source projects with GitHub • Best practices in data visualization • Organizing, documenting, and distributing scientific code • Testing scientific code • Profiling scientific code • Advanced NumPy • Advanced scientific Python: decorators, context managers, generators, and elements of object oriented programming • Writing parallel applications in Python • Speeding up scientific code with Cython and numba • Memory-bound computations and the memory hierarchy • Programming in teams Also see the detailed day-by-day schedule: https://python.g-node.org/ wiki/schedule Faculty === • Ashwin Trikuta Srinath, Cyberinfrastructure Technology Integration, Clemson University, SC USA • Jenni Rinker, Department of Wind Energy, Technical University of Denmark, Roskilde Denmark • Juan Nunez-Iglesias, Melbourne Bioinformatics, University of Melbourne Australia • Nicolas P. Rougier, Inria Bordeaux Sud-Ouest, Institute of Neurodegenerative Disease, University of Bordeaux France • Pietro Berkes, NAGRA Kudelski, Lausanne Switzerland • Rike-Benjamin Schuppner, Institute for Theoretical Biology, Humboldt-Universität zu Berlin Germany • Tiziano Zito, freelance consultant, Berlin Germany • Zbigniew Jędrzejewski-Szmek, Red Hat Inc., Warsaw Poland Organizers == For the German Neuroinformatics Node of the INCF (G-Node) Germany: • Tiziano Zito, freelance consultant, Berlin Germany • Caterina Buizza, Personal Robotics Lab, Imperial College London UK • Zbigniew Jędrzejewski-Szmek, Red Hat Inc., Warsaw Poland • Jakob Jordan, Department of Physiology, University of Bern, Switzerland Switzerland For the University of Camerino Italy: • Flavio Corradini, Computer Science Division, School of Science and Technology, University of Camerino Italy • Barbara Re, Computer Science Division, School of Science and Technology, University of Camerino Italy Website: https://python.g-node.org Contact: python-i...@g-node.org -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] ¿Propuesta de algoritmo o estructura de datos para conjuntos aleatorios con pocos cambios?
2017-11-27 23:37 GMT+01:00 Jesus Cea <j...@jcea.es>: > On 27/11/17 21:38, Francesc Alted wrote: > > De todas maneras, lo que intentaba era hacer ver > > que una ordenación siempre suele aumentar el ratio de compresión. > > Aquí > > hay un ejemplo mejor de lo que quería decir: > > > > In [40]: b = np.random.randint(2**63, size=1000*1000) > > Estás usando 63 bits, no 64, pero vale :-) > Bueno, la verdad es que confieso que mientras estaba intentando los 64 me encontré con: In [8]: b = np.random.randint(2**64, size=1000*1000) --- ValueErrorTraceback (most recent call last) in () > 1 b = np.random.randint(2**64, size=1000*1000) mtrand.pyx in mtrand.RandomState.randint (numpy/random/mtrand/mtrand.c:16123)() ValueError: high is out of bounds for int64 y me dije "bah, probablemente Jesús me va a perdonar 1 bit" :) > > Ordenar mejora la compresión porque estamos reduciendo la entropía de > los datos. En mi caso, si tengo 256000 valores diferentes, podrían > ordenarse de 256000! maneras, un número de 1.4 millones de dígitos. Si > de todas esas posibilidades me quedo exclusivamente con la versión > ordenada numéricamente, me ahorro (por entropía) unos 4229911 bits > (aproximación de Stirling del factorial). Es decir, un compresor > perfecto comprimiría mis 8192000 bytes perfectamente aleatorios a > 7663261 bytes. Una compresión teórica máxima del 6.45%. Si los datos son > verdaderamente aleatorios y la única estructura que tenemos es que están > ordenados, no podemos comprimir más que un 6.45%. Salvo error matemático > por mi parte. (considerando 256000 valores de 256 bits aleatorios). > > Por tanto, insisto nuevamente, me centraría en buscar una estructura de > datos que acceda al mínimo posible de páginas de RAM, no en comprimir, > porque por la parte de compresión estoy limitado al 6.45% de un > compresor ideal que no existe. > > Usemos la fórmula para analizar tu ejemplo. Un millón de valores son > 1e6! de combinaciones de ordenación. Si me quedo solo con la variedad > ordenada numéricamente, un compresor IDEAL podría ahorrar 18488874 bits. > Tus datos ocupan 63 bits cada uno (no 64), así que en total suman > 6300 bits. Con la compresión IDEAL salen 44511126 o 5563891 bytes. > Como tú partes de 64 bits de mentirijillas y no 63 bits reales (jeje, te > doy ventaja), el nivel de compresión máximo teórico cogiendo esos 64 > bits por elemento sería del 30.5%. > Buena estimación. Para ver que pasa con 64 bits he hecho la prueba fetén: In [25]: b = np.random.randint(2**64, size=1000*1000, dtype=np.uint64) In [26]: b.sort() In [27]: %time len(blosc.compress(b)) CPU times: user 26.3 ms, sys: 0 ns, total: 26.3 ms Wall time: 6.9 ms Out[27]: 6324530 Lo cual nos deja la compresión en un 21% (no 23% de 63 bits). Usando el codec más potente en blosc, el ztsd: In [28]: %time len(blosc.compress(b, cname="zstd")) CPU times: user 1.09 s, sys: 0 ns, total: 1.09 s Wall time: 290 ms Out[28]: 6050011 que representa el 25% de compresión (supongo que muy cerca del límite teórico). > > La compresión que muestra blosc en ese mismo ejemplo es del 23%. > Confieso que es una hazaña reseñable e inesperada y que mientras hacía > las cuentas estaba nervioso por que la "práctica" contradijese la > "teoría" matemática inviolable. A fin de cuentas yo soy ingeniero, no > matemático :-). > Bueno, mientras no se supere el límite teórico no hay ninguna 'hazaña' reseñable ;) > > > Probablemente ya lo habrás estudiado, pero con cosas como Cassandra o > > HBase no podrías atacar estos problemas? Si éstos te parecen demasiado > > 'pesados', a lo mejor un filesystem distribuido como Gluster > > (https://en.wikipedia.org/wiki/Gluster) ayudaría. Y si quieres más bajo > > nivel todavía, qué tal un simple almacén de objetos? Hay un interesante > > artículo sobre esto en: > > https://www.digitalocean.com/community/tutorials/object- > storage-vs-block-storage-services > > (a mí me gusta la aproximación de Ceph en particular). > > La clave del asunto es que los nodos de almacenaje no corren ningún > código especial. Imagina montar un sistema así con nodos tontos, simples > almacenes de datos sin capacidad para ejecutar ningún tipo de código. > Sus únicas operaciones son: escribir un objeto, leer un objeto y listar > los objetos que almacena (de forma muy lenta, por cierto). Supón que tus > nodos de almacenamiento son cosas como Google Drive o Dropbox, con una > latencia estratosférica e incapacidad total para ejecutar ningún código > más alla de GET, PUT, REMOVE o LIST. > > Los almacenes están completamente descoordinados y son TONTOS
Re: [Python-es] ¿Propuesta de algoritmo o estructura de datos para conjuntos aleatorios con pocos cambios?
2017-11-27 20:12 GMT+01:00 Jesus Cea <j...@jcea.es>: > On 27/11/17 19:01, Francesc Alted wrote: > > Sin embargo, antes de decidir si tu > > conjunto comprime bien o no, nunca está de más hacer una prueba. Lo que > > me hacía pensar en que tus datos podrían ser comprimibles es > > precisamente lo que decías de que los valores te llegaban ordenados, y > > sé que eso puede afectar mucho al ratio de compresión. Por ejemplo, > > usando un conjunto de números aleatorios de 1 millón de enteros de 64 > > bits (en total 8 MB) se tiene: > > Estás siendo un poco tramposo, Francesc :-). En tu ejemplo, tus datos no > ocupan 64 bits cada uno, ocupan 20 bits escasos. Además, como generas un > millón de valores en el rango 0-99, la diferencia entre un valor y > el siguiente es muy pequeño, incluso cero :-). > Así no vale :-). > > Bueno, más que tramposo me faltaba información sobre la distribución de tus datos; viendo que estás tratando con valores SHA256, ya veo de que estamos hablando :) De todas maneras, lo que intentaba era hacer ver que una ordenación siempre suele aumentar el ratio de compresión. Aquí hay un ejemplo mejor de lo que quería decir: In [40]: b = np.random.randint(2**63, size=1000*1000) In [41]: %time len(blosc.compress(b)) CPU times: user 74.8 ms, sys: 2.2 ms, total: 77 ms Wall time: 23 ms Out[41]: 816 # sin compresion In [42]: b.sort() In [43]: %time len(blosc.compress(b)) CPU times: user 51.1 ms, sys: 1.93 ms, total: 53 ms Wall time: 15.6 ms Out[43]: 6165702 # hay compression En los dos casos los datos son aleatorios, pero en el segundo caso están ordenados, y por tanto comprimen (un 23% de reducción en este caso, bastante notable para datos pseudo-aleatorios como éste). En tu caso creí entender que ordenabas los valores de alguna manera, pero viendo los ratios que obtienes, y que son bastante más pobres que mi prueba, posiblemente no entiendo bien a que te refieres cuando dices 'ordenados'. > Para quedarnos todos tranquilos, voy a ver mi caso real: > > >>> import blosc > >>> # Eliminamos el número de versión y el hash final de integridad > >>> data=open("", "rb").read()[1:-32] > >>> len(data) > 8041888 > >>> len(blosc.compress(data, typesize=32)) > 7898856 > >>> 100 * (1 - 7898856 / 8041888) > 1.7785873168091881 > > La compresión es del 1.78%. Es inferior al 3.3% de simplemente dividir > la tabla en 256 tablas y eliminar el primer byte de cada valor en cada > subtabla. Posiblemente se pueda llegar con facilidad al 3% con blosc > usando prefiltros. > Blosc usa el filtro de SHUFFLE por defecto, así que tus datos son claramente *dificilmente comprimibles*. > Mis datos son verdaderamente aleatorios en sus 256 bits. Son el SHA256 > de bloques de datos cifrados con claves a azar. Más (pseudo)aleatorio > imposible :-). > > Aplicar blosc a un filtro cuckoo donde los fingerprints son más pequeños > (digamos, 32 bits) parece más prometedor, pero en ese caso los > fingerprints no están ordenados, tendrán un orden aleatorio y tampoco > los vas a poder comprimir. Por ejemplo: > > >>> b=np.random.randint(2**32, size=1000*1000) > # NO HAGO EL 'SORT()' PORQUE EN UN FILTRO CUCKOO LOS FINGERPRINTS > # ESTAN DESORDENADOS. > >>> len(blosc.compress(b)) > 4018965 > > Dado que los datos ocupan realmente 400 bytes, blocs los expande un > 0.5%. > > Que conste que blosc me parece un proyecto espectacular. Sencillamente > no parece aplicable en este caso. > > Dicho lo cual, las discusiones sobre algoritmos me encantan. Sigamos :-). > > De momento sigo pensando que lo mejor que puedo hacer es usar "hash > cuckoo" con un posible "filtro cucko" con una pequeña tasa de falsos > positivos para una parte concreta del proceso. > > Por si alguien se pregunta sobre el uso de todo esto, se trata de un > sistema de localización de bloques de datos en un sistema de > almacenamiento distribuido donde no puedes controlar dónde se almacena > cada bloque, pero debes saber dónde está a la hora de buscarlo, o > declarar taxativametne que ese bloque no existe en el sistema. No se > controla dónde se guardan las cosas, no hay rebalanceo a posteriori ni > tampoco puedes contar con meter inteligencia en los nodos de > almacenamiento más allá de un WEBDAV para listar, leer y escribir > bloques (inmutables). > > A la hora de localizar bloques podría tolerarse una pequeña tasa de > falsos positivos, que te obligaría a buscar en dos servidores en vez de > solo en uno. Molesto, pero tolerable. Pero hay otras tareas donde no > puedo permitir falsos positivos, como es el caso de la replicación > (salvo que los falsos positivos se al
Re: [Python-es] ¿Propuesta de algoritmo o estructura de datos para conjuntos aleatorios con pocos cambios?
Lo único que se me ocurre es que, para minimizar el uso de memoria uses compresión para tus bloques binarios (dices que te llegan ordenados numéricamente, así que seguro que se pueden obtener buenos ratios de compresión). Para las búsquedas puedes continuar usando hashes cuckoo, pero sólo guardando las claves, no los valores, y así maximizas la localidad de los accesos a memoria (durante la búsqueda no te sirve de nada traer los valores a las lineas de cache). Una vez localizado el lugar donde está el valor puedes acceder al bloque comprimido que toque, descomprimir, y extraerlo. Blosc te permite esta clase de acceso de manera muy eficiente a través de la llamada `blosc_getitem()` ( https://github.com/Blosc/c-blosc/blob/master/blosc/blosc.h#L290). Si eliges el tamaño de bloque lo suficientemente pequeño (digamos 4/8/16/32 KB), la descompresión normalmente sucede en la cache L1, así que es muy rápido. Francesc 2017-11-27 5:13 GMT+01:00 Jesus Cea <j...@jcea.es>: > Requisitos: > > Tengo millones de bloques binarios de 256 bits. Estos millones de > bloques están divididos aleatoriamente en grupos, digamos de un millón > de elementos. > > Las operaciones básicas que debo soportar son: > > 1. Creación de un grupo. Una vez creado un grupo, no necesita ser > actualizado. Ni para añadir ni para eliminar. > > 2. Comprobar si un elemento pertenece a un grupo concreto. > > 3. Generar un grupo nuevo como unión de dos o más grupos. > > 4. Generación de un grupo nuevo como intersección de dos o más grupos. > > 5. Iterar sobre un grupo. El orden no es importante. > > A nivel de limitaciones, la más importante es que la sobrecarga en > memoria debe ser lo mínimo posible. Cada elemento ocupa 32 bytes (256 > bits). La segunda más importante es que el algoritmo debe ser "cache > friendly", sobre todo en la parte de búsqueda de pertenencia. En > realidad solo necesito que el número de bloques de memoria de 4096 bytes > que se revisan para buscar un elemento sea lo más bajo posible, porque > el entorno de trabajo tiene muy poca memoria RAM pero se puede tirar de > SWAP. > > No puedo tolerar falsos positivos, así que no puedo usar filtros bloom o > filtros cuckoo. De momento la estructura de datos que va ganando son los > hashes cuckoo: La ocupación de memoria es prácticamente óptima y solo > requiere acceder a dos bloques de 4096 bytes. > > En cuanto a los datos en sí, son valores de 256 bits aleatorios. Ahora > mismo los recibo en orden numérico, pero podría generar cualqueir otra > estructura. Por ejemplo, podrían almacenarse directamente como un hash > cuckoo para no tener que regenerarlos en tiempo de ejecución cada vez. > > Buscando en PYPI veo un par de proyectos que implementan filtros cuckoo. > En principio no me sirven porque están escritos en Python nativo sin > prestar atención al uso de memoria y porque no tolero falsos positivos. > > Dado que tengo los datos ya ordenados en la entrada, una opción evidente > sería usar MMAP para verlos en memoria y hacer búsquedas mediante > bisección. Esto sería óptimo en consumo de memoria, pero teniendo grupos > de 8 megabytes, estaría tocando unos 11 bloques de 4096 bytes por cada > comprobación de pertenencia. Aún suponiendo que los bloques más > "calientes" estén cacheados en RAM, es preferible que el almacenamiento > nativo sea un chuckoo hash, que nos garantiza un máximo de acceso a dos > bloques de 4096 bytes. > > Usar un "set()" nativo de Python me garantiza un acceso típico de uno o > dos bloques de 4096 bytes (bien) pero la ocupación en memoria es > importante: entre dos y tres veces el tamaño de los datos originales. > > ¿Alguna sugerencia?. > > Gracias por vuestras neuronas :-). > > Cuckoo hashing: https://en.wikipedia.org/wiki/Cuckoo_hashing > > Cuento con programar el algoritmo en C o en Cython, si no encuentro nada > hecho. > > -- > Jesús Cea Avión _/_/ _/_/_/_/_/_/ > j...@jcea.es - http://www.jcea.es/ _/_/_/_/ _/_/_/_/ _/_/ > Twitter: @jcea_/_/_/_/ _/_/_/_/_/ > jabber / xmpp:j...@jabber.org _/_/ _/_/_/_/ _/_/ _/_/ > "Things are not so easy" _/_/ _/_/_/_/ _/_/_/_/ _/_/ > "My name is Dump, Core Dump" _/_/_/ _/_/_/ _/_/ _/_/ > "El amor es poner tu felicidad en la felicidad de otro" - Leibniz > > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > > -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] ¿cómo anunciar un proyecto para que la comunidad participe en su desarrollo?
2017-06-26 13:45 GMT+02:00 Daπid: > 2017-06-24 4:39 GMT+02:00 Jose Caballero : > >> Así que pienso que tal vez la única forma de ver esos proyectitos salir >> adelante sería "liberarlos" y dejar que la comunidad se encargue de ellos, >> si así lo considerase oportuno (quizás no sean tan interesantes como a mí >> me lo pueden parecer). >> > > No cuentes con ello. A menos que sean verdaderamente muy interesantes, o > alguien lo use en su trabajo, la probabilidad es baja. Y como ejemplo, mira > numexpr: una biblioteca fantástica, con bastantes usuarios, que cuando > Francesc no pudo seguir manteniéndola, se quedó huérfana por meses (y aún > ahora, sigue medio huérfana). > Bueno, no dramatizemos con el mantenimiento. numexpr es un proyecto considerado maduro, y eso quiere decir que típicamente sólo se hacen versiones cuando 1) hay unas cuantas mejoras acumuladas o 2) cuando hay que arreglar un problema importante. La última versión de numexpr es de principios de año, así que tampoco está tan mal :P Una cosa muy importante a entender es que el tema del software abierto se hace siempre de manera desinteresada (aunque hay gente que piense que el dominio global forma parte del plan, esto en general no es así), y los desarrolladores tenemos que tomarnos las cosas con un poco de calma y distancia para no quemarnos a largo plazo. > > Pero, en todo caso, tener una biblioteca a medio hacer, es mejor que no > tener nada, y nunca sabes cuando alguien va a darle un empujón. > Exacto, esa es la filosofia. Francesc ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es
Re: [Python-es] 10ᵀᴴ Advanced Scientific Programming in Python
No que yo sepa. Aunque en nuestro curso no hacemos discriminación de nacionalidades (de hecho, hemos tenido alumnos de muchas partes de Latino-América, aunque es verdad que estaban haciendo estancias en Europa, y por tanto el viaje les salía más barato). 2017-05-05 0:14 GMT+02:00 Gonzalo V <gvm2...@gmail.com>: > hay algo así para Latinoamérica? > > El 3 may. 2017 08:55, "Francesc Alted" <fal...@gmail.com> escribió: > >> Hola, >> >> Acaba de salir la convocatoria de nuestro décimo curso de verano sobre >> Python en entornos científicos que este año tendrá lugar en Grecia. La >> fecha límite para las solicitudes es el 31 de Mayo, así que no os podéis >> despistar mucho. >> >> Suerte! >> >> 10ᵀᴴ Advanced Scientific Programming in Python >> == >> a Summer School by the G-Node and the Municipality of Sithonia >> >> Scientists spend more and more time writing, maintaining, and debugging >> software. While techniques for doing this efficiently have evolved, only >> few scientists have been trained to use them. As a result, instead of doing >> their research, they spend far too much time writing deficient code and >> reinventing the wheel. In this course we will present a selection of >> advanced programming techniques and best practices which are standard in >> the industry, but especially tailored to the needs of a programming >> scientist. Lectures are devised to be interactive and to give the students >> enough time to acquire direct hands-on experience with the materials. >> Students will work in pairs throughout the school and will team up to >> practice the newly learned skills in a real programming project — an >> entertaining computer game. >> >> We use the Python programming language for the entire course. Python >> works as a simple programming language for beginners, but more importantly, >> it also works great in scientific simulations and data analysis. We show >> how clean language design, ease of extensibility, and the great wealth of >> open source libraries for scientific computing and data visualization are >> driving Python to become a standard tool for the programming scientist. >> >> This school is targeted at Master or PhD students and Post-docs from all >> areas of science. Competence in Python or in another language such as Java, >> C/C++, MATLAB, or Mathematica is absolutely required. Basic knowledge of >> Python and of a version control system such as git, subversion, mercurial, >> or bazaar is assumed. Participants without any prior experience with Python >> and/or git should work through the proposed introductory material before >> the course. >> >> We are striving hard to get a pool of students which is international and >> gender-balanced. >> >> You can apply online: https://python.g-node.org >> Application deadline: 23:59 UTC, May 31, 2017. There will be no deadline >> extension, so be sure to apply on time ;-) >> Be sure to read the FAQ before applying. >> >> Participation is for free, i.e. no fee is charged! Participants however >> should take care of travel, living, and accommodation expenses by >> themselves. >> >> Date & Location >> === >> August 28—September 2, 2017. Nikiti, Sithonia, Halkidiki, Greece >> >> Program >> === >> → Best Programming Practices >> • Best practices for scientific programming >> • Version control with git and how to contribute to open source >> projects with GitHub >> • Best practices in data visualization >> → Software Carpentry >> • Test-driven development >> • Debugging with a debuggger >> • Profiling code >> → Scientific Tools for Python >> • Advanced NumPy >> → Advanced Python >> • Decorators >> • Context managers >> • Generators >> → The Quest for Speed >> • Writing parallel applications >> • Interfacing to C with Cython >> • Memory-bound problems and memory profiling >> • Data containers: storage and fast access to large data >> → Practical Software Development >> • Group project >> >> Preliminary Faculty >> === >> • Francesc Alted, freelance consultant, author of Blosc, Castelló de la >> Plana, Spain >> • Pietro Berkes, NAGRA Kudelski, Lausanne, Switzerland >> • Zbigniew Jędrzejewski-Szmek, Krasnow Institute, George Mason >> University, Fairfax, VA USA >> • Eilif Muller, Blue Brain Project, École Polytechnique Fédérale de >> Lausanne Switzerland >> • Juan N
[Python-es] 10ᵀᴴ Advanced Scientific Programming in Python
Hola, Acaba de salir la convocatoria de nuestro décimo curso de verano sobre Python en entornos científicos que este año tendrá lugar en Grecia. La fecha límite para las solicitudes es el 31 de Mayo, así que no os podéis despistar mucho. Suerte! 10ᵀᴴ Advanced Scientific Programming in Python == a Summer School by the G-Node and the Municipality of Sithonia Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists have been trained to use them. As a result, instead of doing their research, they spend far too much time writing deficient code and reinventing the wheel. In this course we will present a selection of advanced programming techniques and best practices which are standard in the industry, but especially tailored to the needs of a programming scientist. Lectures are devised to be interactive and to give the students enough time to acquire direct hands-on experience with the materials. Students will work in pairs throughout the school and will team up to practice the newly learned skills in a real programming project — an entertaining computer game. We use the Python programming language for the entire course. Python works as a simple programming language for beginners, but more importantly, it also works great in scientific simulations and data analysis. We show how clean language design, ease of extensibility, and the great wealth of open source libraries for scientific computing and data visualization are driving Python to become a standard tool for the programming scientist. This school is targeted at Master or PhD students and Post-docs from all areas of science. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. Basic knowledge of Python and of a version control system such as git, subversion, mercurial, or bazaar is assumed. Participants without any prior experience with Python and/or git should work through the proposed introductory material before the course. We are striving hard to get a pool of students which is international and gender-balanced. You can apply online: https://python.g-node.org Application deadline: 23:59 UTC, May 31, 2017. There will be no deadline extension, so be sure to apply on time ;-) Be sure to read the FAQ before applying. Participation is for free, i.e. no fee is charged! Participants however should take care of travel, living, and accommodation expenses by themselves. Date & Location === August 28—September 2, 2017. Nikiti, Sithonia, Halkidiki, Greece Program === → Best Programming Practices • Best practices for scientific programming • Version control with git and how to contribute to open source projects with GitHub • Best practices in data visualization → Software Carpentry • Test-driven development • Debugging with a debuggger • Profiling code → Scientific Tools for Python • Advanced NumPy → Advanced Python • Decorators • Context managers • Generators → The Quest for Speed • Writing parallel applications • Interfacing to C with Cython • Memory-bound problems and memory profiling • Data containers: storage and fast access to large data → Practical Software Development • Group project Preliminary Faculty === • Francesc Alted, freelance consultant, author of Blosc, Castelló de la Plana, Spain • Pietro Berkes, NAGRA Kudelski, Lausanne, Switzerland • Zbigniew Jędrzejewski-Szmek, Krasnow Institute, George Mason University, Fairfax, VA USA • Eilif Muller, Blue Brain Project, École Polytechnique Fédérale de Lausanne Switzerland • Juan Nunez-Iglesias, Victorian Life Sciences Computation Initiative, University of Melbourne, Australia • Rike-Benjamin Schuppner, Institute for Theoretical Biology, Humboldt-Universität zu Berlin, Germany • Nicolas P. Rougier, Inria Bordeaux Sud-Ouest, Institute of Neurodegenerative Disease, University of Bordeaux, France • Bartosz Teleńczuk, European Institute for Theoretical Neuroscience, CNRS, Paris, France • Stéfan van der Walt, Berkeley Institute for Data Science, UC Berkeley, CA USA • Nelle Varoquaux, Berkeley Institute for Data Science, UC Berkeley, CA USA • Tiziano Zito, freelance consultant, Berlin, Germany Organizers == For the German Neuroinformatics Node of the INCF (G-Node) Germany: • Tiziano Zito, freelance consultant, Berlin, Germany • Zbigniew Jędrzejewski-Szmek, Krasnow Institute, George Mason University, Fairfax, USA • Jakob Jordan, Institute of Neuroscience and Medicine (INM-6), Forschungszentrum Jülich GmbH, Germany • Etienne Roesch, Centre for Integrative Neuroscience and Neurodynamics, University of Reading, UK Website: https://python.g-node.org Contact: python-i...@g-node.org -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/list
Re: [Python-es] Consulta modulo time
Por lo que se puede ver en el codigo fuente, si, parece que usa las librerias de tiempo del sistema: https://github.com/python-git/python/blob/715a6e5035bb21ac49382772076ec4c630d6e960/Modules/timemodule.c Saludos 2016-10-03 16:29 GMT+02:00 David Samaniego <dsama...@fi.uba.ar>: > Bueno, parece que convirtiendo a entero muestra lo que necesito. Lo que me > queda la duda ahora es si la libreria time utiliza los mismas librerias de > tiempo (tiempo.h) del sistema operativo. > > > 2016-09-29 9:46 GMT-03:00 Daπid <davidmen...@gmail.com>: > >> 2016-09-28 19:16 GMT+02:00 David Samaniego <dsama...@fi.uba.ar>: >> > Gente buenas tardes, alguien conoce si el modulo time.time() tiene >> alguna >> > forma de devolver el tiempo en segundos y con una resolución de >> > nanosegundos >> >> Malamente. Mi ordenador, con un procesador potente tarda 80 ns en >> darte el tiempo: >> >> %timeit time.time() >> 1000 loops, best of 3: 79 ns per loop >> >> Y entre llamadas sucesivas: >> >> x = [time.time() for _ in range(10)] >> np.diff(x) >> array([ 2.38418579e-07, 2.38418579e-07, 0.e+00, >> 0.e+00, 4.76837158e-07, 0.e+00, >> 0.e+00, 2.38418579e-07, 2.38418579e-07]) >> >> La resolución parece ser de unos doscientos nanosegundos, y por debajo >> se va a zero. >> >> Por completar: el tiempo que tarda en crear la lista con los tiempos y >> en crear una lista: >> >> In [11]: %timeit [time.time() for _ in range(10)] >> ...: >> 100 loops, best of 3: 1.51 µs per loop >> >> In [12]: %timeit [_ for _ in range(10)] >> ...: >> 100 loops, best of 3: 710 ns per loop >> >> La diferencia nos da 800 ns, consistente con los 79 ns de time.time(). >> ___ >> Python-es mailing list >> Python-es@python.org >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> > > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
[Python-es] [OT] Pase para EuroPython 2016
Hola, Aunque tenia pensado acudir al EuroPython 2016 que tendrá lugar durante los dias 17 y 24 de Julio en Bilbao, al final no podré acudir por problemas de agenda. Así que si alguien está interesado en ir, le puedo vender mi entrada; el previo original que pagué fue de 380 € (early bird), pero lo ofrezco por 323 € (15% de descuento). Los interesados pueden enviarme un correo privado. Gracias! -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Oferta de empleo
Hola, Personalmente no creo que haya que ponerse demasiado estricto en 'condiciones' para publicar ofertas de trabajo, excepto que sean breves y que redirecionen a enlaces externos para más info. Tradicionalmente nunca ha habido un gran número de ofertas en esta lista, pero en el caso de que éstas nos empezaran a abrumar (esto seria interesante ;) pues ya veríamos. Francesc 2016-07-01 14:02 GMT+02:00 Chema Cortes <pych...@gmail.com>: > > > El vie., 1 jul. 2016 a las 11:39, Juan Luis Cano (<juanlu...@gmail.com>) > escribió: > >> Chema, ¿se podrían incluir esas normas, así como unos requisitos >> **mínimos** para poner ofertas de empleo, en la página principal de la >> lista? O sea: que tengan cuanta más información mejor, porque si no sucede >> como ha pasado aquí, que no se especifica ni de qué es el puesto, ni qué >> tecnologías se usan, ni si se considera trabajo remoto, ni si se >> proporciona visado, ni cuál es el salario, ni cuáles son las condiciones. >> <http://python-es-faq.wikidot.com/> >> > > ¿Página principal? Tenemos puesto un enlace a un wiki que no sabría > decirte quiénes lo actualizan. Habría que mirarlo. > > Por otro lado, creo recordar que una vez hablamos aquí de los "requisitos > mínimos" para las ofertas de trabajo y no llegamos a un acuerdo. Desde > entonces estoy esperando a que se ponga en marcha la sección de la web de > Python-ES de ofertas de empleo. Mientras tanto, habrás notado que te voy > redirigiendo a tu cuenta de presidente2016 algunas ofertas que me van > llegando para que decidas cómo publicitarlas entre los socios :P. > > > -- > Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": > http://ch3m4.org/blog > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Paython trabaja en memoria?
2016-05-13 3:20 GMT+02:00 Chema Cortes <pych...@gmail.com>: > > > El jue., 12 may. 2016 a las 21:57, Francesc Alted (<fal...@gmail.com>) > escribió: > >> 2016-05-12 18:10 GMT+02:00 Chema Cortes <pych...@gmail.com>: >> >>> El jue., 12 may. 2016 a las 10:51, Javier Sangalo (<jjsang...@gmail.com>) >>> escribió: >>> >>>> muchas gracias! >>>> No tengo ningun problema en particular, tan solo que me hen hecho esa >>>> pregunta y no estaba seguro de que responder jeje. >>>> >>> >>> La diferencia entre trabajar con datos en memoria en lugar de en disco >>> supone un factor multiplicativo de x20. Con los nuevos discos SSD >>> mejora bastante bajando a unos x1. Vamos, que es muy recomendable tener >>> todos los datos en memoria, aunque sea como matrices dispersas (sparse >>> matrices), con el fin de operar más rápido sin pasar por disco. Tanto R >>> como numpy tienen técnicas para optimizar el espacio ocupado en memoria. >>> >> >> Supongo que estás citando números de latencia. Aunque la cifra para >> discos duros es más o menos correcta, la que das para SSDs está bastante >> desfasada. Actualmente puedes comprar SSDs SATA con latencias de entre 40 >> y 100 us sin hacer un gran desenbolso. Teniendo en cuenta que las >> latencias típicas de la RAM son de 0.1 us, la diferencia es ('solo') de >> entre 500x y 1000x. Para los discos SSD de PCIe, las latencias son >> bastante más bajas, y ya se pueden ver tarjetas a buen precio con latencias >> de 2 y 10 us (e incluso de menos de 1 us, como las de >> http://www.violin-memory.com/, aunque estas ya son *muy* caras). >> >> Respecto a las diferencias en ancho de banda las cosas van bastante más >> ajustadas, y los discos SSD SATA que saturan el bus (~520 MB/s) son muy >> habituales, mientras que los SSD PCIe pueden llegar hasta 2 GB/s. Compara >> esto con la RAM que va entre 10 GB/s a 20 GB/s (en ordenadores modernos). >> Añade compresión ultra-rápida para mejorar el ancho de banda de I/O y se ve >> claro que estamos asistiendo a una verdadera revolución que cambiará (está >> cambiando) la manera de guardar y efectuar cálculos con datos. >> >> Hablé justamente de esto en mi charla de PyData Madrid del mes pasado: >> >> https://speakerdeck.com/francescalted/new-computer-trends >> >> Francesc >> > > Tienes toda la razón, me había quedado desfasado. Hasta ahora sólo > consideraba los SSDs para acelerar los sistemas críticos (eg: sistemas > oracles), pero con lo que dices ya empiezan a ser muy interesantes para > realizar cálculos masivos. > > Incluso me puedo imaginar ya realizable un viejo deseo: que la > persistencia de los datos se independice de la vida de la aplicación. O > visto de otro modo, los datos no se mueven, se mueven las aplicaciones > (pensando siempre en programación funcional). > Si, mucha gente va detrás de eso. Sin embargo, hay muchas aplicaciones y cada una tiene sus necesidades. Yo más bien abogo por empezar a utilizar la jerarquía de memoria (y muy en particular los SSDs) de manera eficaz, cosa que se podrá aprovechar para tu 'viejo deseo' de que los datos no se muevan. Pero no nos equivoquemos, las CPUs hacen càlculos con las caches (más que con la RAM), y no hay más tu tía que los datos sean transmitidos a ellas de manera eficiente a través de la jerarquía de memoria para que los cores de las CPUs dejen de estar tanto tiempo haciendo nada más que esperar a los datos. La compresión puede ayudar a rebajar la cantidad de bytes transmitidos (al tiempo que se usan ciclos de CPU que otra manera se desaprovechan), pero aun así hay mucha labor por hacer en determinar parámetros esenciales como los tamaños de bloque, los contenedores de datos óptimos, etc... Aquí hay otro ejemplo de contenedor multidimensional totalmente general que se está desarrollando ahora mismo con todo esto en mente: http://zarr.readthedocs.io/en/refactor/index.html y aquí unos benchmarks: http://nbviewer.jupyter.org/github/alimanfoo/zarr/blob/refactor/notebooks/dask_copy.ipynb Como se ve, usar todos nuestros cores (que usualmente están parados), así como las capacidades SIMD de las CPUs modernas (que también están infra-utilizadas), y en el futuro, las GPUs integradas, es fundamental para hacer que los datos fluyan hacia la CPU lo más rápido posible. Francesc > > > >> >> >>> >>> Pero no siempre es la mejor opción. A veces tu datos vienen como streams >>> de datos desde algún servidor web o desde algún nodo de la base de datos. >>> En estos casos, los tiempos invertidos en traerte los datos pueden ser >>> mucho mayor que el
Re: [Python-es] Paython trabaja en memoria?
2016-05-12 18:10 GMT+02:00 Chema Cortes <pych...@gmail.com>: > El jue., 12 may. 2016 a las 10:51, Javier Sangalo (<jjsang...@gmail.com>) > escribió: > >> muchas gracias! >> No tengo ningun problema en particular, tan solo que me hen hecho esa >> pregunta y no estaba seguro de que responder jeje. >> > > La diferencia entre trabajar con datos en memoria en lugar de en disco > supone un factor multiplicativo de x20. Con los nuevos discos SSD > mejora bastante bajando a unos x1. Vamos, que es muy recomendable tener > todos los datos en memoria, aunque sea como matrices dispersas (sparse > matrices), con el fin de operar más rápido sin pasar por disco. Tanto R > como numpy tienen técnicas para optimizar el espacio ocupado en memoria. > Supongo que estás citando números de latencia. Aunque la cifra para discos duros es más o menos correcta, la que das para SSDs está bastante desfasada. Actualmente puedes comprar SSDs SATA con latencias de entre 40 y 100 us sin hacer un gran desenbolso. Teniendo en cuenta que las latencias típicas de la RAM son de 0.1 us, la diferencia es ('solo') de entre 500x y 1000x. Para los discos SSD de PCIe, las latencias son bastante más bajas, y ya se pueden ver tarjetas a buen precio con latencias de 2 y 10 us (e incluso de menos de 1 us, como las de http://www.violin-memory.com/, aunque estas ya son *muy* caras). Respecto a las diferencias en ancho de banda las cosas van bastante más ajustadas, y los discos SSD SATA que saturan el bus (~520 MB/s) son muy habituales, mientras que los SSD PCIe pueden llegar hasta 2 GB/s. Compara esto con la RAM que va entre 10 GB/s a 20 GB/s (en ordenadores modernos). Añade compresión ultra-rápida para mejorar el ancho de banda de I/O y se ve claro que estamos asistiendo a una verdadera revolución que cambiará (está cambiando) la manera de guardar y efectuar cálculos con datos. Hablé justamente de esto en mi charla de PyData Madrid del mes pasado: https://speakerdeck.com/francescalted/new-computer-trends Francesc > > Pero no siempre es la mejor opción. A veces tu datos vienen como streams > de datos desde algún servidor web o desde algún nodo de la base de datos. > En estos casos, los tiempos invertidos en traerte los datos pueden ser > mucho mayor que el que inviertes escribiendo/leyendo del disco local, con > lo que puedes usar el disco como almacenamiento secundario para liberar > RAM. Es en parte lo que hace Hadoop para poder procesar colecciones de > datos enormes (aunque luego venga Spark y pulverize los tiempos de proceso > cacheándolo todo en RAM). > > Una comparativa tecnológica e histórica de los tiempos de latencia: > > https://gist.github.com/jboner/2841832 > http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html > > > >> >> El 12 de mayo de 2016, 10:40, Kiko <kikocorre...@gmail.com> escribió: >> >>> >>> El 12 de mayo de 2016, 10:23, Javier Sangalo <jjsang...@gmail.com> >>> escribió: >>> >>>> Buenos días, >>>> >>>> Me surge una duda, R trabaja en memoria con el inconveniente que tiene >>>> si no dispones de suficiente memoria ram, pero...y Python? trabaja de la >>>> misma forma? >>>> >>>> >>> Sí. R, Python y el resto del universo. Tendrás que encargarte de >>> gestionar la memoria. Hay formas más o menos eficientes de hacerlo. Si >>> describes un poco mejor tu problema relacionado con Python quizá te puedan >>> ofrecer mejor ayuda. >>> >>> >>>> Gracias! >>>> >>>> ___ >>>> Python-es mailing list >>>> Python-es@python.org >>>> https://mail.python.org/mailman/listinfo/python-es >>>> FAQ: http://python-es-faq.wikidot.com/ >>>> >>>> >>> >>> ___ >>> Python-es mailing list >>> Python-es@python.org >>> https://mail.python.org/mailman/listinfo/python-es >>> FAQ: http://python-es-faq.wikidot.com/ >>> >>> >> ___ >> Python-es mailing list >> Python-es@python.org >> https://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 > > ___ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
[Python-es] ANN: Summer School "Advanced Scientific Programming in Python" in Reading, UK, September 5—11, 2016
Hola a todos, Este año nuestro curso anual sobre Python avanzado para programación científica va a ser en Reading, Reino Unido. Hay poco más de 1 mes (hasta el 15 de Mayo) para presentar vuestras candidaturas. Espero ver a algunos de vosotros entre los asistentes! Saludos, Francesc Alted Advanced Scientific Programming in Python = a Summer School by the G-Node, and the Centre for Integrative Neuroscience and Neurodynamics, School of Psychology and Clinical Language Sciences, University of Reading, UK Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists have been trained to use them. As a result, instead of doing their research, they spend far too much time writing deficient code and reinventing the wheel. In this course we will present a selection of advanced programming techniques and best practices which are standard in the industry, but especially tailored to the needs of a programming scientist. Lectures are devised to be interactive and to give the students enough time to acquire direct hands-on experience with the materials. Students will work in pairs throughout the school and will team up to practice the newly learned skills in a real programming project — an entertaining computer game. We use the Python programming language for the entire course. Python works as a simple programming language for beginners, but more importantly, it also works great in scientific simulations and data analysis. We show how clean language design, ease of extensibility, and the great wealth of open source libraries for scientific computing and data visualization are driving Python to become a standard tool for the programming scientist. This school is targeted at Master or PhD students and Post-docs from all areas of science. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. Basic knowledge of Python and of a version control system such as git, subversion, mercurial, or bazaar is assumed. Participants without any prior experience with Python and/or git should work through the proposed introductory material before the course. We are striving hard to get a pool of students which is international and gender-balanced. You can apply online: https://python.g-node.org Application deadline: 23:59 UTC, May 15, 2016. Be sure to read the FAQ before applying. Participation is for free, i.e. no fee is charged! Participants however should take care of travel, living, and accommodation expenses by themselves. Travel grants may be available. Date & Location === September 5—11, 2016. Reading, UK Program === - Best Programming Practices • Best practices for scientific programming • Version control with git and how to contribute to open source projects with GitHub • Best practices in data visualization - Software Carpentry • Test-driven development • Debugging with a debuggger • Profiling code - Scientific Tools for Python • Advanced NumPy - Advanced Python • Decorators • Context managers • Generators - The Quest for Speed • Writing parallel applications • Interfacing to C with Cython • Memory-bound problems and memory profiling • Data containers: storage and fast access to large data - Practical Software Development • Group project Preliminary Faculty === • Francesc Alted, freelance consultant, author of Blosc, Spain • Pietro Berkes, Enthought Inc., Cambridge, UK • Zbigniew Jędrzejewski-Szmek, Krasnow Institute, George Mason University, Fairfax, VA, USA • Eilif Muller, Blue Brain Project, École Polytechnique Fédérale de Lausanne, Switzerland • Juan Nunez-Iglesias, Victorian Life Sciences Computation Initiative, University of Melbourne, Australia • Rike-Benjamin Schuppner, Institute for Theoretical Biology, Humboldt-Universität zu Berlin, Germany • Bartosz Teleńczuk, European Institute for Theoretical Neuroscience, CNRS, Paris, France • Stéfan van der Walt, Berkeley Institute for Data Science, UC Berkeley, CA, USA • Nelle Varoquaux, Centre for Computational Biology Mines ParisTech, Institut Curie, U900 INSERM, Paris, France • Tiziano Zito, freelance consultant, Germany Organizers == For the German Neuroinformatics Node of the INCF (G-Node) Germany: • Tiziano Zito, freelance consultant, Germany • Zbigniew Jędrzejewski-Szmek, Krasnow Institute, George Mason University, Fairfax, USA • Jakob Jordan, Institute of Neuroscience and Medicine (INM-6), Forschungszentrum Jülich GmbH, Germany For the Centre for Integrative Neuroscience and Neurodynamics, School of Psychology and Clinical Language Sciences, University of Reading UK: • Etienne Roesch, Centre for Integrative Neuroscience and Neurodynamics, University of Reading, UK Website: https://python.g-node.org Contact: python-i...@g-node.org -- Francesc A
[Python-es] Fwd: GNU Mailman email lists at mail.python.org
Hola a tod@s, Parece que la semana que viene nos van a actualizar la lista a Mailman 2.1.20. No creo que haya ningún problema, pero si alguien detecta que sus envios no aparecen o alguna otra cosa, que avise. Saludos! Francesc -- Forwarded message -- From: Mark Sapiro m...@python.org Date: 2015-03-28 3:17 GMT+01:00 Subject: GNU Mailman email lists at mail.python.org To: fal...@pytables.org Hello fal...@pytables.org, This is Mark Sapiro, GNU Mailman developer and primary supporter of the Mailman 2.1 branch. I am writing to you because you are an owner of a list hosted at mail.python.org. This list is: python-es@python.org I want to inform you of an upcoming change to Mailman on mail.python.org. Mailman 2.1.20 will be released next week. It is being released now because it contains a fix for a security issue which doesn't affect the python.org Mailman installation, but I will be installing it here as it contains a new feature which I think will be of interest. A new sub-section, Address Change, is being added to the Membership Management... section in the web admin interface. Here you will be able to change a list member's email address in one step as opposed to previously where you had to add the new address, copy options and settings from old to new and finally delete the old address. If you use the Address Change sub-section, the member's password will be preserved in addition to all the member's other options and settings. Previously you couldn't preserve the password. There are also check boxes to send notice of the change to the old and/or new address. -- Mark Sapiro m...@python.org -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Pregunta acerca de Python en Mono/.Net
Hay que decir que si haces software libre, siempre tienes la opción de que te regalen una licencia de PyCharm. A mi me la concedieron y la verdad es que está muy, muy bien (aunque todavia no pueda dejar de usar Emacs a diario). Francesc El 23/08/14 a les 17:12, Hiko hitokiri ha escrit: pycharm es buena opcion lo unico que no me gusta es que este hecho en java jajja y que la mejor version obvio es la pagada ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] dump json no muestra bien las dobles comillas
A eso hay que añadir que Python acepta los dos tipos de comillas para representar cadenas: http://www.tutorialscollection.com/python-string-using-strings-and-its-methods-in-python/ Francesc El 15/08/14 a les 14:46, Rock Neurotiko ha escrit: El estandar para json dice que hay que usar comillas simples, es por eso que el modulo lo transforma automaticamente a simples :) El 15/08/2014 14:43, Sergio Cubero serc...@alumni.uv.es mailto:serc...@alumni.uv.es escribió: Hola. Estoy jugando a procesar ficheros json. Siendo el script: #!/usr/bin/env python # -*- coding: utf-8 -*- import json from pprint import pprint with open('info.json') as data_file: data = json.load(data_file) pprint(data) y el json: {maps:[{id:blabla,iscategorical:0},{id:blabla,iscategorical:0}], masks:{id:valore}, om_points:value, parameters:{id:valore} } Al ejecutarlo por consola, muestra mal las comillas dobles. {u'maps': [{u'id': u'blabla', u'iscategorical': u'0'}, {u'id': u'blabla', u'iscategorical': u'0'}], u'masks': {u'id': u'valore'}, u'om_points': u'value', u'parameters': {u'id': u'valore'}} El cat lo muestra bien. Tengo que pasarle un encode utf-8 ?? Gracias ___ Python-es mailing list Python-es@python.org mailto:Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Auto-completado con ayuda
De que te vamos a odiar? :) De hecho Chema siempre ha dicho que Eclipse/PyDev deberia ser parte de la gran unificacion de herramientas de programacion. En mi caso (e imagino que en la mayoria), el hecho de usar cierto editor y no otro es un tema de pereza para hacer que mis dedos dejen de ir a ciertas partes del teclado para hacer ciertas operaciones. Despues de años de uso, esas combinaciones estan grabadas a fuego en mi cerebro y luchar contra ello seria tanto como renunciar a parte de mi yo. Dicho esto, es verdad que las guerras sobre editores e IDEs en general siempre ha sido bastante religiosas. Aunque es necesario decir que emacs siempre sale victorioso: http://xkcd.com/378/ Francesc On 6/11/14, 4:23 PM, Fernando Oliva Hueto wrote: Igual me meto en un jardín muy profundo y me odiáis (:P), pero yo uso eclipse con PyDev y va fantástico. El 11 de junio de 2014, 15:25, Arturo Llaja Alarcón artus@autistici.org mailto:artus@autistici.org escribió: On 10/06/14 08:36, Andres Marin wrote: Sres muchas gracias, voy a leer y a tratar de implementar ya q sus comentarios son solo buenos. Slds. El 10/06/2014 06:41, Kiko kikocorre...@gmail.com mailto:kikocorre...@gmail.com escribió: El 10 de junio de 2014, 13:35, Francesc Alted fal...@gmail.com mailto:fal...@gmail.com escribió: On 6/10/14, 11:59 AM, Chema Cortes wrote: El 10 de junio de 2014, 9:17, Kiko kikocorre...@gmail.com mailto:kikocorre...@gmail.com mailto:kikocorre...@gmail.com mailto:kikocorre...@gmail.com escribió: El 10 de junio de 2014, 8:26, Andres Marin aym...@gmail.com mailto:aym...@gmail.com mailto:aym...@gmail.com mailto:aym...@gmail.com escribió: Hola, Estoy tratando de personalizar mi IDE con vim y encontre para autocompletar el omnicomplete, q tiene algo muy importante (la ayuda) pero no esta actualizado, por ejemplo, no tiene el argparse q viene en python 2.7. Por otro lado esta pydiction super bueno pq si no tiene un modulo solo le corres el script y ya queda actualizado, pero no tiene la ayuda. Algun autocomplete q tenga lo mejor de estos 2? Es decir q se pueda actualizar pero que tenga la ayuda. Aquí tienes una documentación muy completa para personalizar vim, incluyendo autocompletado: https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md Tan sólo comentar que ese enlace es de un commit viejo. Es mejor usar la última revisión: https://github.com/joedicastro/dotfiles/tree/master/vim Un trabajo de recopilación impresionante de Joe di Castro. Gracias, Chema. Exacto: Im-presionante. Incluso a un usuario emacs de vieja escuela como yo le dan ganas de cambiar :P Coincido con vosotros. Increible. Muchas gracias a Joe. -- Francesc Alted ___ Python-es mailing list Python-es@python.org mailto:Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org mailto:Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ ___ Python-es mailing list Python-es@python.org mailto:Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ:http://python-es-faq.wikidot.com/ Emacs también tiene lo suyo :) http://tkf.github.io/emacs-jedi/latest/ ___ Python-es mailing list Python-es@python.org mailto:Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- *Fernando Oliva Hueto* * * /“Los programas deben ser escritos para que los lean las personas, y sólo incidentalmente, para que lo ejecuten las máquinas”. / ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es
Re: [Python-es] Auto-completado con ayuda
On 6/10/14, 11:59 AM, Chema Cortes wrote: El 10 de junio de 2014, 9:17, Kiko kikocorre...@gmail.com mailto:kikocorre...@gmail.com escribió: El 10 de junio de 2014, 8:26, Andres Marin aym...@gmail.com mailto:aym...@gmail.com escribió: Hola, Estoy tratando de personalizar mi IDE con vim y encontre para autocompletar el omnicomplete, q tiene algo muy importante (la ayuda) pero no esta actualizado, por ejemplo, no tiene el argparse q viene en python 2.7. Por otro lado esta pydiction super bueno pq si no tiene un modulo solo le corres el script y ya queda actualizado, pero no tiene la ayuda. Algun autocomplete q tenga lo mejor de estos 2? Es decir q se pueda actualizar pero que tenga la ayuda. Aquí tienes una documentación muy completa para personalizar vim, incluyendo autocompletado: https://github.com/joedicastro/dotfiles/blob/a87b42deb9c1132c8f801bb91d119f0b26d21d68/vim/README.md Tan sólo comentar que ese enlace es de un commit viejo. Es mejor usar la última revisión: https://github.com/joedicastro/dotfiles/tree/master/vim Un trabajo de recopilación impresionante de Joe di Castro. Exacto: Im-presionante. Incluso a un usuario emacs de vieja escuela como yo le dan ganas de cambiar :P -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Crear imagenes como resultado de otras
On 6/9/14, 10:55 PM, Ivan Roms wrote: Hola, he aprendido a base de bien gracias a esta lista de mail. Ahora me he propuesto un pequeño reto que no consigo realizar del todo. Es el siguiente: # RETO 1 A partir de una 'imagenPequeña' y una 'imagenGrande', crear una tercera 'imagenResultado' del tamaño de 'imagenGrande' y fondo transparente, que contenga copias de la 'imagenPequeña' en las mismas posiciones detectadas en 'imagenGrande'. Un croquis de esto podría ser algo así: test.jpg Gracias de antemano! Scikit-image que te deja segmentar de manera bastante facil: http://scikit-image.org/docs/dev/auto_examples/plot_watershed.html Con los segmentos puedes calcular diferents propiedades: http://scikit-image.org/docs/dev/auto_examples/plot_regionprops.html#example-plot-regionprops-py de manera que, si coinciden con tu patron, puedes dejar la region original, y si no, la borras (la rellenas de ceros). Podrias incluso coger un conjunto de propiedades que sea invariante respecto a rotaciones o cambios de escala, pero eso ya depende del problema. -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] IPython 2.0 requiere node.js?
On 4/3/14, 12:25 PM, Kiko wrote: El 3 de abril de 2014, 11:52, Chema Cortes pych...@gmail.com mailto:pych...@gmail.com escribió: Hola, a todos: Probando el notebook de la nueva versión de IPython 2.0 veo que busca una instalación de node.js para que funcione nbconvert. Al no encontrarlo, utiliza pandoc en su lugar para renderizar markdown.. Desconozco si se trata de alguna prueba vestigial de cambiar el kernel de ipython a node.js o que se haya empaquetado mal en conda (anaconda). ¿Sabéis si hay alguna forma de que el nbconvert de ipython 2.0 use el módulo markdown2 en lugar de node.js o pandoc? platform : win-32 conda version : 3.3.2 python version : 2.7.5.final.0 Según la documentación: http://ipython.org/ipython-doc/stable/notebook/nbconvert.html / / /Note/ /nbconvert uses pandoc http://johnmacfarlane.net/pandoc/ to convert between various markup languages, so pandoc is a dependency of most nbconvert transforms, excluding Markdown and Python./ nbconvert ya te convierte a markdown sin usar Pandoc. /ipython(2 o 3) nbconvert --to markdown notebook_a_transformar.ipynb/ Confirmo que eso funciona. Ademas me funcionan todas la demas opciones ('latex', 'markdown', 'python', 'rst', 'slides'), excepto com 'html' que me pide el pandoc. ¿Quieres transformar ese markdown a html usando markdown2 o es otra cosa la que quieres hacer? En ningún caso necesita node (será un tema interno de anaconda para sus herramientas en la nube o compartir en wakari o alguna cosa de esas. Yo acabo de actualizar ipython 2.0.0 desde conda y no pide la instalacion de ningun node.js. Estoy en Mac, no se si desde Win la cosa es diferente. -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
[Python-es] ANN: Escuela de verano Advanced Scientific Programming in Python en Split, Croacia
Hola, Bueno, pues ya hay una nueva convocatoria para nuestra (ya tradicional) escuela de verano sobre Python avanzado para cientificos. Esta vez se celebra en Croacia, que es un marco estupendo para una semana de aprendizaje, camaraderia y competicion (torneo Pelita!) con otros colegas. Si estas interesado, tradicionalmente siempre ha habido bastante demanda para este tipo de cursos (los ratios de aceptacion suelen ser de 1 entre 4 o 5), asi que ponle cariño a tu propuesta de participacion y ¡suerte! Francesc Alted Continuum Iberica = Advanced Scientific Programming in Python = a Summer School by the G-Node and the Faculty of Electrical Engineering, Mechanical Engineering and Naval Architecture (FESB), University of Split Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists have been trained to use them. As a result, instead of doing their research, they spend far too much time writing deficient code and reinventing the wheel. In this course we will present a selection of advanced programming techniques, incorporating theoretical lectures and practical exercises tailored to the needs of a programming scientist. New skills will be tested in a real programming project: we will team up to develop an entertaining scientific computer game. We use the Python programming language for the entire course. Python works as a simple programming language for beginners, but more importantly, it also works great in scientific simulations and data analysis. We show how clean language design, ease of extensibility, and the great wealth of open source libraries for scientific computing and data visualization are driving Python to become a standard tool for the programming scientist. This school is targeted at Master or PhD students and Post-docs from all areas of science. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. Basic knowledge of Python is assumed. Participants without any prior experience with Python should work through the proposed introductory materials before the course. Date and Location = September 8—13, 2014. Split, Croatia Preliminary Program === Day 0 (Mon Sept 8) — Best Programming Practices • Best Practices for Scientific Computing • Version control with git and how to contribute to Open Source with github • Object-oriented programming design patterns Day 1 (Tue Sept 9) — Software Carpentry • Test-driven development, unit testing quality assurance • Debugging, profiling and benchmarking techniques • Advanced Python I: idioms, useful built-in data structures, generators Day 2 (Wed Sept 10) — Scientific Tools for Python • Advanced NumPy • The Quest for Speed (intro): Interfacing to C with Cython • Programming in teams Day 3 (Thu Sept 11) — The Quest for Speed • Writing parallel applications in Python • Python 3: why should I care • Programming project Day 4 (Fri Sept 12) — Efficient Memory Management • When parallelization does not help: the starving CPUs problem • Advanced Python II: decorators and context managers • Programming project Day 5 (Sat Sept 13) — Practical Software Development • Programming project • The Pelita Tournament Every evening we will have the tutors' consultation hour: Tutors will answer your questions and give suggestions for your own projects. Applications You can apply on-line athttp://python.g-node.org Applications must be submitted before 23:59 UTC, May 1, 2014. Notifications of acceptance will be sent by June 1, 2014. No fee is charged but participants should take care of travel, living, and accommodation expenses. Candidates will be selected on the basis of their profile. Places are limited: acceptance rate is usually around 20%. Prerequisites: You are supposed to know the basics of Python to participate in the lectures. You are encouraged to go through the introductory material available on the website. Faculty === • Francesc Alted, Continuum Analytics Inc., USA • Pietro Berkes, Enthought Inc., UK • Kathryn D. Huff, Department of Nuclear Engineering, University of California - Berkeley, USA • Zbigniew Jędrzejewski-Szmek, Krasnow Institute, George Mason University, USA • Eilif Muller, Blue Brain Project, École Polytechnique Fédérale de Lausanne, Switzerland • Rike-Benjamin Schuppner, Technologit GbR, Germany • Nelle Varoquaux, Centre for Computational Biology Mines ParisTech, Institut Curie, U900 INSERM, Paris, France • Stéfan van der Walt, Applied Mathematics, Stellenbosch University, South Africa • Niko Wilbert, TNG Technology Consulting GmbH, Germany • Tiziano Zito, Institute for Theoretical Biology, Humboldt-Universität zu Berlin, Germany Organized by Tiziano Zito (head) and Zbigniew
[Python-es] Reunió(n) de Pythonistas en Castelló
Hola, [En castellano más abajo] Els Pythonistes de Castelló de la Plana i rodalies pensem reunir-nos per a parlar del llenguatge i d'altres coses interessants. Els interessats podeu acudir el proper proper divendres 13 de desembre de 2013 a les 19:30 hores, al bar Ágora , que és un garito a l'aire lliure que han obert a la placeta del carrer Campoamor, prop del carrer Governador, a Castelló. Com que el lloc és nou i no sé molt bé el seu horari d'apertura, la segona opció seria la cafeteria 'Teapot' que es troba a la mateixa placeta. Los Pythonistas de Castellón de la Plana vamos a reunirnos para hablar del lenguaje y otras cosas interesantes. Los interesados podeis acudir el próximo viernes 13 de diciembre de 2013 a las 19:30 horas, al bar Ágora, que es un garito al aire libre en la placita de la calle Campoamor, cerca de la calle Governador, en Castellón. Como el lugar es nuevo y no conozco bien su horario de apertura, la segunda opción sería la cafetería 'Teapot' sita en la misma plaza. Ens veiem! -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Almacenamiento en disco automático y transparente
On 10/28/13, 12:20 PM, Daπid wrote: Tengo un objeto Python (pongamos una cadena de texto o un array de numpy) que puede crecer arbitrariamente, hasta, quizá, superar el límite de memoria del SO. Quiero mantenerla en memoria mientras sea posible, pero si llegara a crecer por encima de un cierto límite, se almacenaría en disco. El programa, sin embargo, vería el mismo objeto, y sería capaz de leer valores de la misma forma. ¿Es esto posible? Con una cadena lo veo más o menos factible, sobrecargando los métodos que la extenderían para que, si supera el límite de memoria, vuelque a archivo; e igualmente los métodos __getitem__ fueran redirigidos a seek() y read(). Con un array, quizá me iría a EArray (extendable array) de PyTables. Si, yo creo que un EArray sobrecargado te puede servir perfectamente para eso. ¿Hay algo ya hecho? ¿Alguna idea más inteligente y eficiente? Hombre, no se exactamente para que quieres cargar lo mas possible el array en memoria, pero en esos casos yo lo que haria es guardar todo el array en disco y dejar que sea el sistema operativo, y no tu, quien decida que partes se cachean en memoria. A la larga es mas practico y eficiente. -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Almacenamiento en disco automático y transparente
On 10/28/13, 1:49 PM, Daπid wrote: 2013/10/28 Kiko kikocorre...@gmail.com mailto:kikocorre...@gmail.com Si los datos son lo suficientemente grandes como para que no quepan en memoria El problema es que, en principio, no sé si va a ser así. Depende de los datos en concreto y de la RAM instalada en la máquina (cualquier cosa entre 4 y 16 GB). Me gustaría poder evitar el disco mientras fuera posible, pero sin que el programa sea asesinado. Creeme, a no ser que tengas requerimientos muy precisos, mucho mejor que se encargue el SO. 2013/10/28 Francesc Alted fal...@gmail.com mailto:fal...@gmail.com ¿Hay algo ya hecho? ¿Alguna idea más inteligente y eficiente? Hombre, no se exactamente para que quieres cargar lo mas possible el array en memoria, pero en esos casos yo lo que haria es guardar todo el array en disco y dejar que sea el sistema operativo, y no tu, quien decida que partes se cachean en memoria. A la larga es mas practico y eficiente. Cierto, me olvidaba de la caché. Mi idea iba más por usar, digamos, backend en memoria hasta que llegara a un cierto límite, en el que pasaría a guardarse en disco. Pero quizá, usando directamente la opción en disco, el SO mantendrá el contenido en caché mientras sea lo suficientemente pequeño, y el rendimiento será lo suficientemente bueno. Otra opción sería carray, que tiene la ventaja de ofrecer exactamente la misma API para memoria que para disco. http://carray.pytables.org/docs/manual/tutorial.html Veré cuál se ajusta más a mis especificaciones. Gracias por las ideas. Bueno, yo tambien habia pensado en carray :). De todas maneras, el carray lo tengo medio abandonado porque basicamente lo hemos integrado como un subpaquete en el proyecto Blaze (blaze.pydata.org). El subpaquete se llama BLZ (blaze.blz), y se trata basicamente de carray, aunque con algunos retoques y mejoras. El manual de BLZ no lo encontraras en la web de Blaze ya que esta pensado para no ser visible directamente por el usuario final, sino mas bien como una forma de almacenaje mas de Blaze. Pero basicamente se puede tomar el manual de carray y reemplazando `carray` por `barray` y `ctable` por `btable` mas o menos todo deberia funcionar tal cual. -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
[Python-es] Llamada a charlas en la PyConEs?
Hola, Alguien de la organización que lea esta lista sabe si la fecha límite para hacer una charla en al próxima PyConEs se va a prorrogar? Nosotros queríamos enviar algo, pero parece que el plazo acabó ayer :( -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Llamada a charlas en la PyConEs?
Bueno, pues nos quedamos fuera :P A ver si otra vez nos damos más prisa :) Francesc 2013/9/16 Yamila Moreno Suárez yamila...@gmail.com Hola Francesc, te comento que desde la organización no contemplamos prorrogar el plazo. Un saludo, Yamila (Equipo Organizador PyConES 2013) 2013/9/16 Francesc Alted fal...@gmail.com Hola, Alguien de la organización que lea esta lista sabe si la fecha límite para hacer una charla en al próxima PyConEs se va a prorrogar? Nosotros queríamos enviar algo, pero parece que el plazo acabó ayer :( -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Yamila Moreno Suárez http://dendarii.wordpress.com http://moduslaborandi.net -- Francesc Alted ___ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
Re: [Python-es] Entrevista a GvR
2013/8/27 Chema Cortes pych...@gmail.com 2013/8/26 Hernán M. F. hfoff...@gmail.com: En slashdot. http://developers.slashdot.org/firehose.pl?op=viewtype=storysid=13/08/25/2115204 No parece que haya mucha novedad. Sigue renegando de la programación funcional, a pesar de reconocer sus ventajas, y sigue con CPython como la implementación locomotora para el desarrollo del lenguaje. Bueno, es que el sentido común no es algo que se tenga que cambiar todos los dias. Al menos ya nombra scala, aunque sea para menospreciarlo como algo sólo para listos. Esperaré otro año más a ver si cambia la cosa. Curiosamente, la gente más inteligente que conozco son unos enamorados de los lenguajes funcionales (aunque la mayoría no pueda ganarse la vida con ellos, claro). Yo, sinceramente, me considero mucho más imperativo, y espero que la opinión de GvR no cambie mucho al respecto ;) -- Francesc Alted ___ 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] [SciPy 2013] Periodo para presentar candidaturas a tutoriales abierto
Se ha abierto oficialmente el plazo para presentar candidaturas a enseñar tutoriales en el proximo SciPy 2013 en Austin, Texas. Recordad que hay un estipendio de entre $750 y $1000 para los tutores que puede ayudar a compensar los gastos de desplazamiento. Mas info en: http://conference.scipy.org/scipy2013/tutorial_overview.php Animo y suerte! -- Francesc Alted Tutorial co-chair SciPy 2013 ___ 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] Oferta de trabajo Programador Python y PHP
On 2/26/13 3:44 AM, J. Javier Maestro wrote: 2013/2/25 Martin Maqueira martinmaque...@gmail.com mailto:martinmaque...@gmail.com Buenos Dias a todos, Queria extender una oferta de trabajo que detallo abajo. El rango salarial es de 24.000 a 30.000 brutos anuales. Si os interesa podeis mandarme curriculum al email. Gracias y saludos Martin Maqueira Programador PYTHON y PHP / ERP (barcelona) Buscamos un *Ingeniero en Informática* / *Analista de Sistemas titulado *con experiencia en desarrollo WEB y ERP. Necesitamos alguien con iniciativa y capacidad de adaptación a entornos cambiantes y dinámicos. Sus tareas serán desarrollar un ERP desde cero y algunas funcionalidades web integradas con el CMS. Luego se dedicará a labores de mantenimiento , optimización , desarrollos de nuevas funcionalidad e integración con distintos sistemas. Para esto*requerimos experiencia en Programación en Python y PHP con frameworks MVC* (Zend o u otro) , Wordpress, MySql , Python . Ofrecemos un buen ambiente de trabajo. Experiencia mínima: (excluyente) (Por favor , ABSTENERSE si no se cumplen rigurosamente estos requisitos ya que desestimaremos automaticamente las candidaturas). Habría que empezar a pedir Salarios mínimos y POR FAVOR ABSTENERSE DE MANDAR OFERTAS ABSURDAS. Sobre todo, si no se dice para qué empresa es (porque así, al menos, apunto la empresa a mi lista de favoritas XXD) 24K-30K por una persona con titulación, 8 años de experiencia combinada, unos 5 reales (pongamos, 2 de Python, 2 de PHP y 1 de HTML/CSS/JS, etc), y encima full-stack (Frontend + Backend)? Y, por si además la persona pudiera, tener experiencia en Wordpress, administración de sistemas LAMP... para que haga horas extra administrando la infraestructura? Pero... estamos de coña? o.0 Y, por curiosidad, un manager normal de la empresa, con, pongamos, unos 6-7 años de experiencia... cuánto cobra? Mmmm... veamos, así a ojo, yo digo que unos 40-45K. No sé, me gustaría equivocarme. jj: Esta es una lista de Python, y las ofertas de trabajo relacionadas con este lenguaje son bienvenidas. Ademas, en un sistema de libre mercado como el que estamos, cada uno es libre de enviar las ofertas que crea oportunas, asi como cada cual es libre de aceptarlas o no. Y si crees que la oferta es una OFERTA ABSURDA, agradeceriamos que al menos expreses tus opiniones de manera mas educada. -- Francesc Alted ___ 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] Muy importante para salvar la marca Python en Europa
On 2/15/13 12:15 PM, Oswaldo wrote: El 15/02/2013 11:08, José Luis Redrejo escribió: Ya sé que esta lista es en español, pero seguro que muchos de vosotros entendeis esta información y su importancia: http://pyfound.blogspot.ca/2013/02/python-trademark-at-risk-in-europe-we.html Por si alguno está en una empresa con oportunidad de echar una mano. Ya tardaban mucho en aparecer los listos. En la pagina de la oami se puede comprobar que hay una solicitud de marca para, entre otras cosas, diseño de software y web hosting. Una de las cosas que piden es escribir una carta explicando como utilizamos ptython y que solo reconocemos esta marca como originaria de la Python Software Fundation. En mi empresa no tenemos incoveniente en realizarla, pero seria conveniente que creáramos un modelo para seguir todos la misma pauta. ¿Que opinais? Si, estaria muy bien. Intentare tener algun modelo para hoy (aunque si alguien me gana, pues mejor :) -- Francesc Alted Continuum Iberica ___ 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] Charlas y tutoriales para PyData 2013 disponibles
On 2/6/13 1:04 PM, Daπid wrote: 2013/2/5 Kiko kikocorre...@gmail.com: Jajaja lo siento Francesc, me ha hecho gracia la parte de «a ver si os animáis». ¡Mi bolsillo no me permite todavía volar 6000 kilómetros, asistir a la conferencia y dormir bajo techo allí! :P Tienen una pinta extraordinaria, me tendré que conformar con los vídeos :) +1. La solución es fácil, en dos pasos: 1) Hacernos asquerosamente ricos. 2) Ir al PyData. Bueno, no creo que 1) sea estrictamente necesaria. Seguro que hay mucha gente que lee esta lista que está bastante más cerca de Santa Clara que desde España. Después, para los que trabajan en empresas, está la oportunidad de formación y de negocio que supone acudir al PyData. -- Francesc Alted ___ 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] Charlas y tutoriales para PyData 2013 disponibles
Pues como dice el asunto, ya son oficiales las charlas y tutoriales para la próxima conferencia PyData 2013 que se celebrará el 18, 19 y 20 de Marzo (justo después del PyCon) en Santa Clara, California: http://pydata.org/sv2013/schedule/ Esperamos que sea de vuestro agrado, y a ver si os animais! -- Francesc Alted Continuum Analytics ___ 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] Mini Symposiums para SciPy 2013
Hola, Para el siguiente SciPy 2013 (Austin, Texas) estamos sondeando al personal sobre los temas que les gustaria que se trataran en profundidad dentro de lo que llamamos mini-simposiums. Por ejemplo, el año pasado se celebraron los siguientes: Astronomia/Astrofisica, Bio-informatica, Meteorologia, y Geofisica. Por favor, los interesados, pasaros por: http://www.surveygizmo.com/s3/1114631/SciPy-2013-Themes y votar a vuestros preferidos. Gracias! -- Francesc Alted Tutorial co-chair for SciPy 2013 ___ 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] Python y Julia para LLVM
On 1/17/13 11:45 AM, Chema Cortes wrote: El día 16 de enero de 2013 17:29, Francesc Alted fal...@gmail.com escribió: On 1/16/13 4:34 PM, Jaime Perea wrote: Cuando habláis de computación distribuida, ¿se refieres a python en entornos, digamos, mpi o sólo en memoria compartida?. No sé lo que piensa Chema en particular, pero para nosotros (Continuum), los dos. Bajo el paraguas de computación distribuida caben muchas cosas. Si importa la escabilidad, entonces se deben evitar los sistemas de memoria compartida. Pero hay más opciones que MPI como, por ejemplo, los sistemas que implementan el modelo Actor como hacen la librería Akka[1] (scala/java) y su imitación en python, Pykka[2], basada en gevents[3]. En efecto, caben muchas cosas (no conocía los paquetes que mencionas, pero son interesantes). Un sistema de ficheros distribuido en el fondo es otra manera de comunicar datos entre diferentes nodos. Todo depende de lo que se quiera hacer. Por ejemplo, para hacer cálculos que requieran mucho trasiego de datos hay pocas cosas mejores que un paradigma de multihilos accediendo a la misma area de memoria (por ejemplo, coprocesadores como GPUs o Intel Xeon Phi funcionan así). Incluso sistemas con memoria compartida usando procesadores con arquitectura Intel tradicional se pueden llegar a configuraciones bastante potentes con 40 cores físicos y 750 GB de RAM (que ya está bien). Para cosas que requieren mas memoria hay que ir a sistemas distribuidos, y aquí MPI ahora mismo es el rey, ya que existen versiones optimizadas que permiter aprovechar al máximo el hardware de comunicaciones (por ejemplo, Infiniband). Entre estos extremos existe efectivamente un conjunto de soluciones realmente grande. -- Francesc Alted ___ 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] Python y Julia para LLVM
On 1/17/13 10:49 AM, Chema Cortes wrote: El día 16 de enero de 2013 17:17, Francesc Alted fal...@gmail.com escribió: Así que el tema de computación distribuida está definitavmente en nuestro radar. En particular, y dado lo caro que es el transporte de datos, y como se lee arriba, nuestro objetivo es llevar el código donde están los datos, y no al revés. Ahí es donde Numba (y LLVM) van a ser realmente importantes. Excelente enfoque. Suena a nuevo paradigma en el tratamiento de datos. Es lo que se intenta, si. Travis Oliphant (nuestro CEO y creador de NumPy) tiene las ideas muy claras, y, a veces, inspiraciones tremendas. La verdad es que trabajar junto a el es un privilegio. Ahora queda por ver si podemos realizar todo lo que pasa por su mente, que no es poco :) -- Francesc Alted ___ 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] Python y Julia para LLVM
On 1/16/13 10:38 AM, Chema Cortes wrote: Hasta hoy, desconocía totalmente la infraestructura LLVM[1] como soporte en la creación de compiladores (estáticos o dinámicos). Estoy viendo que con él se están implementando bastantes lenguajes de programación y librerías (sobre todo de cálculo). Me preguntaba si álguien conoce algo LLVM como para comentar sus virtudes en la implementación de lenguajes como Julia[2] (similar a python, orientado al cálculo numérico) o como target de PyPy. Entiendo que no es una máquina virtual, a pesar de lo que pueda parecer su acrónimo, pero me interesaría saber en particular qué tal se lleva esta infraestructura con el multiproceso y la escalabilidad, como en el caso de la computación paralela distribuída que posee Julia. Yo no puedo opinar mucho de la interacción de LLVM con Julia por que no lo conozco demasiado, pero sí que puedo decir que en Continuum estamos poniendo a punto Numba (https://github.com/numba/numba), un compilador al vuelo (JIT) que traduce código Python al lenguaje intermedio (IR) que usa LLVM internamente. LLVM, a su vez, compila el IR a código nativo (que depende de la platforma) y lo ejecuta (o lo puede guardar en un fichero binario, esto ya depende de la aplicación). Numba permite, mediante decoradores y anotaciones de tipo, hacer que funciones puras en Python (ahora mismo no se soporta todo el lenguaje, pero sí un subconjunto bastante amplio) puedan correr a velocidad de C puro, y lo que es mejor, de manera completamente interactiva (la compilación al vuelo es realmente rápida). Numba es completamente open-source, así que cualquiera puede contribuir al proyecto (de hecho alguien de esta lista ya menciona que han contribuido ya). Pero no hay que llevarse a engaño: LLVM realmente no es una tecnología demasiado útil para PyPy, ya que éste último viene con su propio compilador JIT, asi no se complementan demasiado bien. En Continuum claramente hemos apostado más por LLVM (via Numba) que por la vía PyPy. La ventaja de Numba es que no se tiene por qué renunciar a librerias que son extensiones (el proyecto de migración de NumPy a PyPy está siendo lento y plagado de trampas, y ya somos muchos los que dudamos de que se pueda llevar a cabo de una manera completa). Numba permite compilar de manera selectiva la parte de código Python que es un cuello de botella, respetando toda la gama de librerias y extensiones que ya existen ahora mismo. Por supuesto que Blaze (https://github.com/ContinuumIO/blaze), nuestro proyecto para reemplazar NumPy para problemas de Big Data, usará Numba como motor de cálculo de manera que el usuario no tenga que preocuparse de hacer extensiones para optimizar los cálculos, sino que éstos se efectuarán a velocidad de C (¡y sin arrays temporales!) directamente. Blaze es otro desarrollo open source, y aunque todavía está en su infancia, esperamos que de aquí a no mucho tiempo ya pueda ser posible hace cosas interesantes con él. -- Francesc Alted ___ 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] Python y Julia para LLVM
On 1/16/13 4:06 PM, Chema Cortes wrote: El día 16 de enero de 2013 15:17, Francesc Alted fal...@gmail.com escribió: Yo no puedo opinar mucho de la interacción de LLVM con Julia por que no lo conozco demasiado, pero sí que puedo decir que en Continuum estamos poniendo a punto Numba (https://github.com/numba/numba), un compilador al vuelo (JIT) que traduce código Python al lenguaje intermedio (IR) que usa LLVM internamente. LLVM, a su vez, compila el IR a código nativo (que depende de la platforma) y lo ejecuta (o lo puede guardar en un fichero binario, esto ya depende de la aplicación). Numba permite, mediante decoradores y anotaciones de tipo, hacer que funciones puras en Python (ahora mismo no se soporta todo el lenguaje, pero sí un subconjunto bastante amplio) puedan correr a velocidad de C puro, y lo que es mejor, de manera completamente interactiva (la compilación al vuelo es realmente rápida). Numba es completamente open-source, así que cualquiera puede contribuir al proyecto (de hecho alguien de esta lista ya menciona que han contribuido ya). Creo que ya tengo claro cómo usáis LLVM en numba. Incluso veo que permite la compilación estática además de JIT, lo que seguramente tiene que dar resultados bastantes buenos. Sí, pero cuando digo que el JIT de Numba es rápido, es porque lo es, y mucho. Por ejemplo, en la transparencia 36 y 37 de esta presentación: https://python.g-node.org/wiki/_media/starving_cpu/starving-cpu.pdf se puede ver que el tiempo de compilación para el código es de unos 20 ms, que normalmente es despreciable para rutinas que suelen ser el cuello de botella de cálculos complicados. Tenía interés en saber si LLVM facilitaba la concurrencia y el cómputo distribuido. Por lo que veo, Julia tiene estas facilidades, pero debe ser cosecha propia. También estoy viendo proyectos para portar otros lenguajes como scala o C# a LLVM, por lo que parece que esta plataforma empieza a tomar auge y, tal vez, lleguemos a librarnos de JVM y .Net. Pero no hay que llevarse a engaño: LLVM realmente no es una tecnología demasiado útil para PyPy, ya que éste último viene con su propio compilador JIT, asi no se complementan demasiado bien. En Continuum claramente hemos apostado más por LLVM (via Numba) que por la vía PyPy. La ventaja de Numba es que no se tiene por qué renunciar a librerias que son extensiones (el proyecto de migración de NumPy a PyPy está siendo lento y plagado de trampas, y ya somos muchos los que dudamos de que se pueda llevar a cabo de una manera completa). Numba permite compilar de manera selectiva la parte de código Python que es un cuello de botella, respetando toda la gama de librerias y extensiones que ya existen ahora mismo. Por supuesto que Blaze (https://github.com/ContinuumIO/blaze), nuestro proyecto para reemplazar NumPy para problemas de Big Data, usará Numba como motor de cálculo de manera que el usuario no tenga que preocuparse de hacer extensiones para optimizar los cálculos, sino que éstos se efectuarán a velocidad de C (¡y sin arrays temporales!) directamente. Blaze es otro desarrollo open source, y aunque todavía está en su infancia, esperamos que de aquí a no mucho tiempo ya pueda ser posible hace cosas interesantes con él. No conocía Blaze. Le echaré un vistazo. Ya solo os falta un proyecto para computación distribuída ;-) Bueno, ese el espíritu de Blaze, que nos valga para computación distribuida. En http://blaze.pydata.org/vision.html se puede leer: Just as NumPy is the center of an ecosystem of singe-node, in-memory tools that use the NumPy array as a common shared abstraction around a single pointer to memory, Blaze is the center of an ecosystem of multiple-node, multiple-segment, and multiple calculation-unit algorithms and programs. The common meme in effective use of Blaze is that developers should think about their data and the operations that should be done on their data in an array-oriented fashion, and that code should be moved to data as much as possible. Así que el tema de computación distribuida está definitavmente en nuestro radar. En particular, y dado lo caro que es el transporte de datos, y como se lee arriba, nuestro objetivo es llevar el código donde están los datos, y no al revés. Ahí es donde Numba (y LLVM) van a ser realmente importantes. -- Francesc Alted ___ 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] Python y Julia para LLVM
On 1/16/13 4:34 PM, Jaime Perea wrote: On Miércoles, 16 de enero de 2013 16:06:29 Chema Cortes escribió: El día 16 de enero de 2013 15:17, Francesc Alted fal...@gmail.com escribió: Yo no puedo opinar mucho de la interacción de LLVM con Julia por que no lo conozco demasiado, pero sí que puedo decir que en Continuum estamos poniendo a punto Numba (https://github.com/numba/numba), un compilador al vuelo (JIT) que traduce código Python al lenguaje intermedio (IR) que usa LLVM internamente. LLVM, a su vez, compila el IR a código nativo (que depende de la platforma) y lo ejecuta (o lo puede guardar en un fichero binario, esto ya depende de la aplicación). Numba permite, mediante decoradores y anotaciones de tipo, hacer que funciones puras en Python (ahora mismo no se soporta todo el lenguaje, pero sí un subconjunto bastante amplio) puedan correr a velocidad de C puro, y lo que es mejor, de manera completamente interactiva (la compilación al vuelo es realmente rápida). Numba es completamente open-source, así que cualquiera puede contribuir al proyecto (de hecho alguien de esta lista ya menciona que han contribuido ya). Creo que ya tengo claro cómo usáis LLVM en numba. Incluso veo que permite la compilación estática además de JIT, lo que seguramente tiene que dar resultados bastantes buenos. Tenía interés en saber si LLVM facilitaba la concurrencia y el cómputo distribuido. Por lo que veo, Julia tiene estas facilidades, pero debe ser cosecha propia. También estoy viendo proyectos para portar otros lenguajes como scala o C# a LLVM, por lo que parece que esta plataforma empieza a tomar auge y, tal vez, lleguemos a librarnos de JVM y .Net. Pero no hay que llevarse a engaño: LLVM realmente no es una tecnología demasiado útil para PyPy, ya que éste último viene con su propio compilador JIT, asi no se complementan demasiado bien. En Continuum claramente hemos apostado más por LLVM (via Numba) que por la vía PyPy. La ventaja de Numba es que no se tiene por qué renunciar a librerias que son extensiones (el proyecto de migración de NumPy a PyPy está siendo lento y plagado de trampas, y ya somos muchos los que dudamos de que se pueda llevar a cabo de una manera completa). Numba permite compilar de manera selectiva la parte de código Python que es un cuello de botella, respetando toda la gama de librerias y extensiones que ya existen ahora mismo. Por supuesto que Blaze (https://github.com/ContinuumIO/blaze), nuestro proyecto para reemplazar NumPy para problemas de Big Data, usará Numba como motor de cálculo de manera que el usuario no tenga que preocuparse de hacer extensiones para optimizar los cálculos, sino que éstos se efectuarán a velocidad de C (¡y sin arrays temporales!) directamente. Blaze es otro desarrollo open source, y aunque todavía está en su infancia, esperamos que de aquí a no mucho tiempo ya pueda ser posible hace cosas interesantes con él. No conocía Blaze. Le echaré un vistazo. Ya solo os falta un proyecto para computación distribuída ;-) Hola Unas preguntas técnicas de un ignorante: Cuando habláis de computación distribuida, ¿se refieres a python en entornos, digamos, mpi o sólo en memoria compartida?. No sé lo que piensa Chema en particular, pero para nosotros (Continuum), los dos. El problema que le veo siempre a esta historia es que si quieres mover datos sin tener que ir a tcp/ip, por ejemplo moviendo cosas en infiniband, no te quedan muchas más opciones que mpi... o inventarte algo como protocolo de comunicaciones. ¿Sabéis como lo gestiona esto julia?. Yo no tengo ni idea de como lo gestiona Julia. Pero como he dicho antes, el espíritu de Blaze es distribuir los datos entre diferentes nodos y después intentar mapear el código donde están los datos con el fin de minimizar su transporte (el map-reduce funciona de manera parecida). En los casos donde este mapeo no pueda ser exacto los datos se tendran que transportar. El tipo de transporte que se usará todavia está por decidir, pero Disco (http://discoproject.org/), y en particular, su filesystem distribuido tiene muchas papeletas para ser el vehiculo elegido (pero es cierto que todavia contemplamos otras posibles soluciones). Otra pregunta ¿como afecta la existencia del GIL a vuestros tipos de optimizaciones? El GIL sólo afecta a código que corre en la máquina virtual de Python, asi que el código emitido por LLVM no está sujeto a tales restricciones. En particular, nuestro objectivo es poder usar de manera efectiva no sólo los diferentes cores de la CPU de manera simultánea, sino también las posibles GPUs del sistema. Poder programar number-crunching en python es un sueño para gente como yo :-) Bueno, para tí y para mucha gente ;) -- Francesc Alted ___ 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] Fwd: Queda inaugurada la lista Python España
On 11/27/12 9:58 AM, Kiko wrote: Dices que ésta lista de python-spain será el lugar para discutir sobre la PyconES. ¿Quiere decir que la otra lista, la de Pycon España, ya no se piensa usar? Más que nada, por evitar despistes. Python España: https://groups.google.com/d/forum/python-spain Pycon España: https://groups.google.com/d/forum/pycon-espana La verdad es que hay unas cuantas listas, habría que empezar a eliminar: https://groups.google.com/forum/?hl=esfromgroups#!forum/pycon-espana https://groups.google.com/forum/?hl=esfromgroups#%21forum/pycon-espana https://groups.google.com/forum/?hl=esfromgroups#!forum/asociacion-python-es https://groups.google.com/forum/?hl=esfromgroups#%21forum/asociacion-python-es https://groups.google.com/forum/?hl=esfromgroups#!forum/python-es-admin https://groups.google.com/forum/?hl=esfromgroups#%21forum/python-es-admin La primera que pongo, que también ha puesto Chema tiene varios años y no se ha vuelto a usar. La segunda que pongo, se creó este año para coordinar el tema de la asociación y de la PyConEs. La tercera que pongo es para administrar python-hispano.org http://python-hispano.org sobre lo que tendríamos que hablar en algún momento para ver qué hacer con ello (Óscar, Joe, Chema, Luis,... un hangout de 15mins?). Luego está la lista de toda la vida que es para resolver las dudas de la comunidad hispana de python: http://mail.python.org/mailman/listinfo/python-es Y la nueva lista que se ha creado para organizar la PyConEs y los anuncios de los grupos territoriales en España, python Sevilla, python Madrid, python BCN,... https://groups.google.com/d/forum/python-spain O sea que sí, creo que estas dos sobran: https://groups.google.com/forum/?hl=esfromgroups#!forum/pycon-espana https://groups.google.com/forum/?hl=esfromgroups#%21forum/pycon-espana https://groups.google.com/forum/?hl=esfromgroups#!forum/asociacion-python-es https://groups.google.com/forum/?hl=esfromgroups#%21forum/asociacion-python-es Y esta la podemos discutir: https://groups.google.com/forum/?hl=esfromgroups#!forum/python-es-admin https://groups.google.com/forum/?hl=esfromgroups#%21forum/python-es-admin Y quedarnos con la lista de siempre para las dudas http://mail.python.org/mailman/listinfo/python-es Y la lista nueva para temas locales de España: https://groups.google.com/d/forum/python-spain Pues no sabia que habian tantas listas. Por lo que hablamos ayer, pensaba que ibamos a crear 'pycon-espana', pero supongo que 'python-spain' puede servir igual (aunque la veo demasiado generica :P) De todas maneras, insisto, no sera mejor user la pycon-espana para discutir temas de la PyConES? -- Francesc Alted ___ 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] Asociación y PyConEs
On 11/20/12 10:10 AM, Kiko wrote: El 20 de noviembre de 2012 09:53, Juan Luis Cano Rodríguez juanlu...@gmail.com mailto:juanlu...@gmail.com escribió: Google hangout es una propuesta, puede ser skype, jabber, gtalk, ... La que resulte más cómoda a todo el mundo. Ah pero una cosa, ¿se supone que queremos hacer una suerte de videoconversación o con que sea chat vale? Si nadie tiene nada que objetar, se fija el lunes a las 20.30. Si somos mucha gente, quizá se pueda hacer un chat, intentando seguir un orden del día para no eternizarlo y hablar sobre cosas concretas: diseño de la web, fechas, lugar, patrocinadores, estructura de las charlas (1h, tutoriales más largos, charlas relámpago,),... Luego el chat es fácil convertirlo en un log de la 'reunión'. Yo preferiria una conversacion hablada (el video es un poco lo de menos). Creo que hablando se va mas rapido y se puede captar mejor lo que quiere decir alguien, sin menos lugar a equivocos. De todas manera, contad conmigo. Y ya direis cual es el canal del comunicacion elegido. -- Francesc Alted ___ 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] Asociación y PyConEs
Hola David, seras bienvenido. Si alguien mas esta por Madrid este find de semana y quiere hablar del tema de la PyConES, ademas de cualquier otra cosa relacionada con Python (y lo que no es Python), que nos envie un correo a mi o a Kiko y quedamos. Mi movil es el 661 156 576. Hasta pronto! Francesc On 11/15/12 3:51 PM, Daπid wrote: 2012/11/15 Kiko kikocorre...@gmail.com mailto:kikocorre...@gmail.com Por otra parte, Francesc (Alted), si quieres, te puedo invitar a una (o varias) cerve(s) el finde para hablar sobre qué papel podría tomar Continuum en el tema. Si crees que vas a tener tiempo mándame un correo. Por lo que había dicho en otro correo que a Continuum le interesaría, me gustaría estar en esa discusión. Avisadme, por favor. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Francesc Alted ___ 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] Asociación y PyConEs
más países, España se quedara atrás. A mí personalmente me entristecería. Por último, me gustaría poner una nota de optimismo: ¡solo tenemos que organizar la primera PyConEs una vez! El resto ya será todo mucho más fácil, habremos aprendido de nuestros errores, muchísima más gente nos conocerá y nos querrá ayudar y seguro que nos saldrá mejor. Pero alguna vez tiene que ser la primera :) ¡Ánimo compañeros! Perdonad por el email increíblemente largo, un abrazo a todos desde la distancia y espero vuestras opiniones. Juanlu [1]: https://groups.google.com/d/topic/python-madrid/lLFZ-omMSKU/discussion [2]: http://ar.pycon.org/2012/venue/index [3]: http://uy.pycon.org/es/acerca-de [4]: http://ve.pycon.org/ [5]: https://groups.google.com/d/topic/asociacion-python-es/euUdfRNhsvg/discussion [6]: http://webs.uvigo.es/sage2012/ ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Francesc Alted ___ 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] Conferencia BigData Spain 2012
Hola, Este próximo viernes 16 tendrá lugar en Madrid la conferencia Big Data Spain 2012. En ella se hablará de muchas de las tecnologías relacionadas con el tratamiento de las grandes cantidades de información que podemos reunir hoy en dia. Yo daré una charla sobre como diseñar aplicaciones con un acceso eficiente a la memoria, y basaré la mayor parte de mi intervención en cómo hacerlo desde Python. En mi opinión, Python tiene un futuro brillante en este contexto y, en un mundo todavía dominado por aplicaciones C++ y Java, espero poder transmitir esa idea de manera convincente. Si alguien de vosotros se presenta por allí (aunque creo que las entradas hace tiempo que se agotaron) me gustaría poder hablar sobre cómo usáis Python en vuestra vida diaria y sobre todo, de cómo impulsarlo aún más. Un cordial saludo, -- Francesc Alted ___ 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] Conferencia BigData Spain 2012
Uh, no creo que se pueda conseguir sitio fácilmente, pero yo voy a estar por Madrid el fin de semana después de la conferencia, así que, si os interesa, podemos quedar y hablar del tema (con unas cañas de por medio mejor :). Enviame un mensaje personal si estás interesado, Francesc On 11/13/12 10:46 AM, Manuel Ignacio Franco Galeano wrote: Hola, unos compañeros de trabajo y yo queremos ir, pero estamos en lista de espera desde hace un mes, realmente nos vendría muy bien ir porque nuestra app en python no para de crecer, tenemos mas de 150 millones de registros y necesitamos ideas de como escalar, sera posible conseguir sitio? por si interesa la la app web de la que hablo es http://www.marca.com/social/ El 13 de noviembre de 2012 10:39, Francesc Alted franc...@continuum.io mailto:franc...@continuum.io escribió: Hola, Este próximo viernes 16 tendrá lugar en Madrid la conferencia Big Data Spain 2012. En ella se hablará de muchas de las tecnologías relacionadas con el tratamiento de las grandes cantidades de información que podemos reunir hoy en dia. Yo daré una charla sobre como diseñar aplicaciones con un acceso eficiente a la memoria, y basaré la mayor parte de mi intervención en cómo hacerlo desde Python. En mi opinión, Python tiene un futuro brillante en este contexto y, en un mundo todavía dominado por aplicaciones C++ y Java, espero poder transmitir esa idea de manera convincente. Si alguien de vosotros se presenta por allí (aunque creo que las entradas hace tiempo que se agotaron) me gustaría poder hablar sobre cómo usáis Python en vuestra vida diaria y sobre todo, de cómo impulsarlo aún más. Un cordial saludo, -- Francesc Alted ___ Python-es mailing list Python-es@python.org mailto: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/ -- Francesc Alted ___ 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] Conferencia BigData Spain 2012
Bueno, respecto a la PyConEs seguro que Continuum Iberica (la rama española de Continuum Analytics) estaría encantada de ayudar en la organización del evento de una manera u otra. No sé, lo mismo podriamos hablar en persona ya que estoy por ahi el fin de semana. Saludos, Francesc On 11/13/12 11:06 AM, Juan Luis Cano Rodríguez wrote: Hola, Yo me temo que no estaré por allí, pero ojalá tengamos noticias cuando acabe de cómo ha ido porque tiene muy buena pinta. Admiro mucho lo que estáis trabajando en Continuum sobre Python para aplicaciones de este nivel. En otro orden de cosas, no quiero desviarme mucho del propósito original de tu mensaje, pero aprovechando la coyuntura ¿alguien puede hablar con la ETSIT o los organizadores sobre una eventual PyConEs? Un saludo, Juan Luis Cano 2012/11/13 Francesc Alted franc...@continuum.io mailto:franc...@continuum.io Hola, Este próximo viernes 16 tendrá lugar en Madrid la conferencia Big Data Spain 2012. En ella se hablará de muchas de las tecnologías relacionadas con el tratamiento de las grandes cantidades de información que podemos reunir hoy en dia. Yo daré una charla sobre como diseñar aplicaciones con un acceso eficiente a la memoria, y basaré la mayor parte de mi intervención en cómo hacerlo desde Python. En mi opinión, Python tiene un futuro brillante en este contexto y, en un mundo todavía dominado por aplicaciones C++ y Java, espero poder transmitir esa idea de manera convincente. Si alguien de vosotros se presenta por allí (aunque creo que las entradas hace tiempo que se agotaron) me gustaría poder hablar sobre cómo usáis Python en vuestra vida diaria y sobre todo, de cómo impulsarlo aún más. Un cordial saludo, -- Francesc Alted ___ Python-es mailing list Python-es@python.org mailto: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/ -- Francesc Alted ___ 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] Videos de la pycon-us 2012
Si, hay muchas buenas. Recomiendo especialmente la keynote de Paul Graham, creador de YCombinator, una empresa que se dedica a invertir en empresas de reciente creación. Su charla es muy inspiradora para gente que anda buscando crearse su propia startup, y da unas cuantas ideas sobre como crear la próxima aplicacion-bomba (traducción de killer-app?). Importante recalcar que este anyo ha habido unos 2500 participantes, y el interes por Python es muy evidente por parte de empresas grandes (como esponsors estaban monstruos como Google, Disney o JP Morgan). También ha habido una 'job fair', donde las empresas interesadas en contratar gente tenían un tenderete donde la gente podía interesarse por el tipo de trabajo, condiciones, etc. Y había unas cuantas… Parece que ya se ha derribado definitivamente el mito de que Python no es un lenguaje corporativo (al menos en los US). Los tutoriales también han sido un éxito (la mayoría con el aforo completo). Y la sesión de pósters estaba llenita de ellos también, con gente hablando de todo tipo de proyectos con Python (por ejemplo, uno muy interesante de Diesel, una aplicación para escribir aplicaciones de red: http://diesel.io/). Yo estaba mirando el póster, cuando llego Guido y empezó a acribillarles a preguntas :) Un resumen, que Python y su comunidad gozan de muy buena salud, lo cual es una excelente noticia para todos nosotros! Francesc On Mar 11, 2012, at 12:11 PM, Kiko wrote: Por si a alguien le interesa: http://pyvideo.org/category/17/pycon-us-2012 Hay unos cuantas horas de video que voy a tener que ver. Saludos. ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/ -- Francesc Alted ___ 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] Almacenado de datos
On Mar 6, 2012, at 11:03 PM, Kiko wrote: El 7 de marzo de 2012 00:30, Francesc Alted fal...@pytables.org escribió: On Mar 6, 2012, at 2:21 PM, Kiko wrote: El 6 de marzo de 2012 22:55, Daπid davidmen...@gmail.com escribió: 2012/3/6 Inigo Aldazabal Mensa inigo_aldaza...@ehu.es: a. La verdad es que estuve en un tutorial de pytables y me pareció muy interesante, pero pensé que su principal utilidad era para cosas grandes Tienen mucho esfuerzo puesto en ello, parece su principal orientación, pero si quieres hacer fácil lo complicado, acabas haciendo muy fácil lo elemental. Lo que me gusta de Tables es que es una estructura muy intuitiva (tablas) y muy pythónica. Como bonus, se puede escalar mucho, pero eso ya no me interesa (todavía). Si la fusión de bases de datos se pusiera fea, se me ha ocurrido que las simulaciones pueden generar ASCII, y una vez teniendo todas, combinarlas en la BD. En cualquier caso, me paso por su lista a ver qué me dicen, porque en la documentación no he encontrado nada. Y para simplificar un poco el tema, ¿no te valdría netcdf [1]? PyTables quizá sea para proyectos más gordos y para algo sencillo te pueda valer usar solo netcdf, que vienen a ser algo parecido a HDF. PyTables trabaja con HDF y permite hacer muchas cosas con datos en ese formato pero, como comento, quizá sea para desarrollos grandes que hagan uno intensivo de creación y lectura de datos. La librería que enlazo permite leer y escribir netcdf de forma muy sencilla. Bueno, NetCDF4 necesita HDF5 para correr, así que la instalación en principio es mas complicada, no? Y después, supongo que hay cosas mas fáciles en una librería que en otra y viceversa, pero no creo que haya muchas diferencias en términos de usabilidad (pero puedo estar equivocado). Pero sobretodo, donde PyTables hace énfasis es en la manipulación de tablas, y es ahí donde creo que puede aportar cosas que otros paquetes no pueden. -- Francesc Alted Obviamente, Francesc tiene más autoridad que yo para hablar de estos temas y agradecería que corrigiera cualquier burrada que yo haya podido decir. Por otra parte, creo recordar que netcdf4 sí que hace uso de HDF5, pero netcdf3 no. Cierto, pero a no ser que tengas muchos datos en formato NetCDF3 no creo que valga la pena usar un formato para el que no van salir nuevas cosas. NetCDF4 es lo que se ha decidido para mejorar NetCDF3, y esta basado en HDF5. Ademas, el netcdf4-python que recomendabas esta hecho para NetCDF4, no NetCDF3. -- Francesc Alted ___ 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] Almacenado de datos
On Mar 6, 2012, at 2:21 PM, Kiko wrote: Si la fusión de bases de datos se pusiera fea, se me ha ocurrido que las simulaciones pueden generar ASCII, y una vez teniendo todas, combinarlas en la BD. En cualquier caso, me paso por su lista a ver qué me dicen, porque en la documentación no he encontrado nada. Y para simplificar un poco el tema, ¿no te valdría netcdf [1]? PyTables quizá sea para proyectos más gordos y para algo sencillo te pueda valer usar solo netcdf, que vienen a ser algo parecido a HDF. PyTables trabaja con HDF y permite hacer muchas cosas con datos en ese formato pero, como comento, quizá sea para desarrollos grandes que hagan uno intensivo de creación y lectura de datos. La librería que enlazo permite leer y escribir netcdf de forma muy sencilla. Bueno, NetCDF4 necesita HDF5 para correr, así que la instalación en principio es mas complicada, no? Y después, supongo que hay cosas mas fáciles en una librería que en otra y viceversa, pero no creo que haya muchas diferencias en términos de usabilidad (pero puedo estar equivocado). -- Francesc Alted ___ 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] Almacenado de datos
On Mar 6, 2012, at 2:21 PM, Kiko wrote: El 6 de marzo de 2012 22:55, Daπid davidmen...@gmail.com escribió: 2012/3/6 Inigo Aldazabal Mensa inigo_aldaza...@ehu.es: a. La verdad es que estuve en un tutorial de pytables y me pareció muy interesante, pero pensé que su principal utilidad era para cosas grandes Tienen mucho esfuerzo puesto en ello, parece su principal orientación, pero si quieres hacer fácil lo complicado, acabas haciendo muy fácil lo elemental. Lo que me gusta de Tables es que es una estructura muy intuitiva (tablas) y muy pythónica. Como bonus, se puede escalar mucho, pero eso ya no me interesa (todavía). Si la fusión de bases de datos se pusiera fea, se me ha ocurrido que las simulaciones pueden generar ASCII, y una vez teniendo todas, combinarlas en la BD. En cualquier caso, me paso por su lista a ver qué me dicen, porque en la documentación no he encontrado nada. Y para simplificar un poco el tema, ¿no te valdría netcdf [1]? PyTables quizá sea para proyectos más gordos y para algo sencillo te pueda valer usar solo netcdf, que vienen a ser algo parecido a HDF. PyTables trabaja con HDF y permite hacer muchas cosas con datos en ese formato pero, como comento, quizá sea para desarrollos grandes que hagan uno intensivo de creación y lectura de datos. La librería que enlazo permite leer y escribir netcdf de forma muy sencilla. Bueno, NetCDF4 necesita HDF5 para correr, así que la instalación en principio es mas complicada, no? Y después, supongo que hay cosas mas fáciles en una librería que en otra y viceversa, pero no creo que haya muchas diferencias en términos de usabilidad (pero puedo estar equivocado). Pero sobretodo, donde PyTables hace énfasis es en la manipulación de tablas, y es ahí donde creo que puede aportar cosas que otros paquetes no pueden. -- Francesc Alted ___ 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] [ANN] Día Python en al LSWC'11
2011/10/11 Luis Miguel Morillas moril...@gmail.com: El día 8 de octubre de 2011 14:37, Chema Cortes pych...@gmail.com escribió: Sobre temas más puntuales, tenemos toda la documentación del curso que preparamos para este septiembre http://es.wikieducator.org/Curso_Python_DGA_2011 Muy interesante. Otro curso del que se pueden sacar ideas es del G-Node: https://python.g-node.org/wiki/schedule pero puede que sea un poco demasiado avanzado (aunque el dia 0 es bastante accesible). Se puede organizar algún taller si algún tema resulta más interesante. Si, un taller siempre resulta muy atractivo para los usuarios potenciales. Además, precisamente uno de los puntos fuertes de Python es que se pueden hacer demos interactivas muy potentes (sobretodo con ipython combinado con matplotlib para gráficos chulos). Suerte con la iniciativa! -- Francesc Alted ___ 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] cosa rara con la función shape()
2011/5/11 jOkAmE jok...@gmail.com Hola, lista. Buen día. Pues sucede que estoy trabajando haciendo unas convoluciones en imágenes. Además, estoy implementando la función para aplicar las convoluciones de tamaño arbitrario tanto en el filtro como en la imagen. Para esto, dentro de las varias funciones que utilizaré, implementé una que me define el tamaño resultante de la imagen después de ser convolucionada. La función es la siguiente: def tam_convo(filtro,imagen): ii_i, jj_i = shape(imagen) ii_f, jj_f = shape(filtro) print type(imagen) print type(filtro) print shape(imagen), shape(filtro) print ii_i, jj_i print ii_f, jj_f xx=(ii_i-ii_f)+1 yy=(jj_i-jj_f)+1 print xx print yy return xx, yy los print excesivos que se leen son para corroborar el funcionamiento raro, porque no me cuadra la salida de la función. Un ejemplo de la salida de esa función es lo siguiente: type 'numpy.ndarray' type 'numpy.ndarray' (60, 60) (9, 9) 60 60 9 9 52 52 [[ 52.05549424 52.05549424]] - Aquí está lo extraño Creo que independientemente lo que haga la función, el resultado de las sumas y restas entre números enteros debe ser un entero. Además, la salida del último renglón no es siempre la misma, pero si hiciéramos un redondeo a esos números siempre serían 52 (para este caso). [clip] Si, eso es muy raro, ya que las operaciones de suma y multiplicación con enteros siempre deberían dar enteros como resultado. Puedes enviar un programa auto-contenido que reproduzca el problema? Y también las versiones de Python y NumPy. -- Francesc Alted ___ 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] [ANN] Escuela de verano de programación científica avanzada en Python
Hola, Como ya viene siendo tradición, celebraremos una nueva edición del Advanced Scientific Programming in Python, esta vez en St. Andrews, Escocia, durante la segunda semana del Septiembre próximo. El curso es gratuito, aunque el asistente ha de correr con los gastos del viaje y hospedaje. Y aunque en el anuncio oficial se dice que se orienta a estudiantes de doctorado o post-docs, no es condición necesaria (como Ricardo Cárdenes puede atestiguar :). El plazo de presentación de candidaturas acaba el 29 de Mayo de 2011, pero ya daré otro 'toque' cuando falte poco tiempo para que concluya el plazo, por si hay algún despistado. Espero ver a algún colistero por allí! Y ahora el anuncio oficial: Advanced Scientific Programming in Python = a Summer School by the G-Node and the School of Psychology, University of St Andrews Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists actually use them. As a result, instead of doing their research, they spend far too much time writing deficient code and reinventing the wheel. In this course we will present a selection of advanced programming techniques, incorporating theoretical lectures and practical exercises tailored to the needs of a programming scientist. New skills will be tested in a real programming project: we will team up to develop an entertaining scientific computer game. We use the Python programming language for the entire course. Python works as a simple programming language for beginners, but more importantly, it also works great in scientific simulations and data analysis. We show how clean language design, ease of extensibility, and the great wealth of open source libraries for scientific computing and data visualization are driving Python to become a standard tool for the programming scientist. This school is targeted at PhD students and Post-docs from all areas of science. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. Basic knowledge of Python is assumed. Participants without any prior experience with Python should work through the proposed introductory materials before the course. Date and Location = September 11—16, 2011. St Andrews, UK. Preliminary Program === Day 0 (Sun Sept 11) — Best Programming Practices - Agile development Extreme Programming - Advanced Python: decorators, generators, context managers - Version control with git Day 1 (Mon Sept 12) — Software Carpentry - Object-oriented programming design patterns - Test-driven development, unit testing quality assurance - Debugging, profiling and benchmarking techniques - Programming in teams Day 2 (Tue Sept 13) — Scientific Tools for Python - Advanced NumPy - The Quest for Speed (intro): Interfacing to C with Cython - Best practices in data visualization Day 3 (Wed Sept 14) — The Quest for Speed - Writing parallel applications in Python - Programming project Day 4 (Thu Sept 15) — Efficient Memory Management - When parallelization does not help: the starving CPUs problem - Data serialization: from pickle to databases - Programming project Day 5 (Fri Sept 16) — Practical Software Development - Programming project - The Pac-Man Tournament Every evening we will have the tutors' consultation hour: Tutors will answer your questions and give suggestions for your own projects. Applications You can apply on-line at http://python.g-node.org Applications must be submitted before May 29, 2011. Notifications of acceptance will be sent by June 19, 2011. No fee is charged but participants should take care of travel, living, and accommodation expenses. Candidates will be selected on the basis of their profile. Places are limited: acceptance rate in past editions was around 30%. Prerequisites: You are supposed to know the basics of Python to participate in the lectures. Please consult the website for a list of introductory material. Faculty === - Francesc Alted, author of PyTables, Castelló de la Plana, Spain - Pietro Berkes, Volen Center for Complex Systems, Brandeis University, USA - Valentin Haenel, Berlin Institute of Technology and Bernstein Center for Computational Neuroscience Berlin, Germany - Zbigniew Jędrzejewski-Szmek, Faculty of Physics, University of Warsaw, Poland - Eilif Muller, The Blue Brain Project, Ecole Polytechnique Fédérale de Lausanne, Switzerland - Emanuele Olivetti, NeuroInformatics Laboratory, Fondazione Bruno Kessler and University of Trento, Italy - Rike-Benjamin Schuppner, Bernstein Center for Computational Neuroscience Berlin, Germany - Bartosz Teleńczuk, Institute for Theoretical Biology, Humboldt-Universität zu Berlin, Germany - Bastian Venthur, Berlin Institute of Technology and Bernstein Focus: Neurotechnology, Germany - Pauli Virtanen
Re: [Python-es] [ANN] Escuela de verano de programación científica avanzada en Python
A Thursday 03 March 2011 16:21:38 Inigo Aldazabal Mensa escrigué: ¡Hola Francesc! El Jueves, 3 de Marzo de 2011, Francesc Alted escribió: ... El curso es gratuito, aunque el asistente ha de correr con los gastos del viaje y hospedaje. Y aunque en el anuncio oficial se dice que se orienta a estudiantes de doctorado o post-docs, no es condición necesaria (como Ricardo Cárdenes puede atestiguar :). mmm... parece mas avanzado que al que acudí. ¿Se puede repetir? Bueno, siempre se queda bastante gente fuera durante el proceso de selección, así que no creo que se pueda repetir. De todas maneras, el temario va a ser bastante parecido al que ofrecimos en Trento. Saludos! -- Francesc Alted ___ 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] [Beca] Machine learning for Neuroimaging
Hola, Aunque el campo de trabajo sea muy específico, me han pedido que de máxima difusión a esto. Se trata de una beca para una estancia de 8 meses para Trento (Italia). Yo he estado en la fundación Bruno Kessler (para nuestro último curso de programación avanzada) y la verdad es que me quedé impresionado, tanto por el nivel del personal, como de las instalaciones. Puede ser una buena oportunidad para alguien que se sienta atraido por campo del machine learning y la Neurociencia (ya sabeis, dos 'hot- topics' con enorme potencial de desarrollo). Suerte! --- INTERNSHIP GRANTS IN MACHINE LEARNING FOR NEUROIMAGING The University of Trento and Fondazione Bruno Kessler assign 2 internship grants for carrying out research activity on machine learning methodologies for neuroscientific data analysis. The main goal is to investigate how machine learning approaches might provide competitive advantages in cognitive neuroscience investigations. The research effort focuses on two specific tasks: brain decoding and brain mapping. The challenge is to design effective computational methods for multivariate pattern analysis. The internship program aims to provide a comprehensive research experience that includes the design of a neuroimaging data analysis, the implementation of the computational process, the evaluation of the empirical results, the publishing of the scientific report. PhD scholarships will be assigned to proficient applicants to attend the ICT Doctoral School at the University of Trento at the end of the internship program. The internship program will take place at the Neuroinformatics Laboratory located at the Center for Mind/Brain Sciences in Trento, Italy. The duration of the internship is 8 months. The beginning is scheduled for March 2011. The grant amount is 1350 euro per month. YOUR PROFILE This grant is intended for graduated students in computer science with background in machine learning or related field covering topic as pattern recognition and data mining. Experience with data analysis, preferably on fMRI, EEG or MEG data, is not mandatory even though it would be beneficial. Furthermore, experience in programming with Python and related tools for scientific computing are highly recommended. HOW TO APPLY The application form has to be mailed to the Head of the Department of Engineering and Information Science, University of Trento, Italy. Detailed instructions are available at the following addresses: http://disi.unitn.it/openings , http://static.digns.com/uploads/disi/openings/772/original/DD15.pdf For additional information or help, please email to paolo.aves...@unitn.it. Deadline for application is February 17th, 2011. ABOUT NILAB The Neuroinformatics Laboratory (NILab) rises as a collaboration between Fondazione Bruno Kessler and the Center for Mind/Brain Sciences in order to promote interdisciplinary research in cognitive neuroscience. The scientific research activity covers mostly the design and the development of novel models for the integration, the analysis, and the interpretation of unimodal and multimodal brain-imaging data. LINKS Neuroinformatics Laboratory - nilab.fbk.eu Fondazione Bruno Kessler - www.fbk.eu Department for Engineering and Information Science - www.disi.unitn.it Center for Mind/Brain Sciences - www.cimec.unitn.it Information and Communication Doctoral School - www.ict.unitn.it -- Francesc Alted ___ 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] Dudas para la publicación (GPL) de una herramienta python de reporting
A Thursday 16 December 2010 20:06:27 Luis Miguel Morillas escrigué: http://www.pytables.org/temporal/pdflistings-0.6.1.dev.tar.gz -- 403 Forbidden Ups. Arreglao. -- Francesc Alted ___ 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] Ofertas de trabajo
Hola, Me han pedido que de difusión a estas ofertas de trabajo. El campo de aplicación es la Neurociencia, y como vereis, Python forma parte de los requisitos para algunas plazas. Puedo asegurar que el Blue Brain Project es uno de los más punteros en su campo, así que si a alguien de por aquí le van los desafios, éste puede ser un buen sitio para él. Saludos, Francesc I would like to draw you attention to the following new openings at the Blue Brain Project: Postdoc in Data-Driven Modeling in Neuroscience (100%) http://jahia-prod.epfl.ch/site/emploi/page-48940-en.html Software Developer on Massively Parallel Compute Architectures (100%) http://jahia-prod.epfl.ch/site/emploi/page-48916-en.html Scientific Visualization Engineer (%100) http://jahia-prod.epfl.ch/site/emploi/page-48941-en.html System Administrator (100%) http://jahia-prod.epfl.ch/site/emploi/page-48939-en.html I would appreciate if you could forward them to qualified persons who might be interested. Regards, Eilif - Dr. Eilif Muller BBP - EPFL Station 15, Building SG-AAB CH-1015 Lausanne Switzerland Tel: ++41 21 693 0698 Fax: ++41 21 693 5350 www: http://neuralensemble.org/people/eilifmuller ___ 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] Duplicados en una lista
A Tuesday 19 October 2010 13:28:38 Ricardo Cárdenes Medina escrigué: 2010/10/19 lasizoillo lasizoi...@gmail.com El día 19 de octubre de 2010 03:37, Carlos Herrera Polo carlos.herrerap...@gmail.com escribió: La RAM de la maquina suena a limitación, pero si no te importa el rendimiento puedes aumentar el tamaño de swap y la ram es tan grande como lo sea el espacio en disco. Hay limitaciones prácticas al máximo teórico (RAM + swap), que depende de plataforma y arquitectura y la manera en que se asigna el espacio de direcciones virtuales. En Linux-32 bits, tal cual suele venir configurado, cada proceso tiene un máximo de 3GB en userland (off-topic: sí Francesc, lo he comprobado :P) Reconozco que me resulta raro esto de los 3 GB, ya que siempre pensé que el límite para sistemas UNIX de 32-bit era de 2 GB. En fin, supongo que eran prejuicios que tenía. De todas maneras, parece que activando PAE (Physical Address Extension) en el kernel se pueden direccionar incluso más de 4 GB (pero supongo que el límite direccionable por un sólo proceso continúa siendo de 3 GB). Saludos! -- Francesc Alted ___ 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] Opinión de la lista Python, sobre mi propuesta de Logo para el Ares-Python.
Hola a todos, Soy uno de los administradores de la lista, y personalmente creo que este mensaje está claramente fuera del ámbito de los temas de python-es. Si alguien quiere opiniones sobre logos, lo mejor sería que buscara una lista de diseño de imagen, o que se creara una propia para discusiones sobre ese proyecto en concreto. Saludos, A Saturday 16 October 2010 23:26:20 TurriTelefonica escrigué: Hola amigos. Me gustaría saber la opinión maoritaria, de todos los usuarios de Python, sobre mi propuesta de logo. Gracias por todas vuestras opiniones. Saludos cordiales. -- Francesc Alted ___ 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] Asignación de memoria dinámica (malloc/free) en Python
A Wednesday 29 September 2010 14:30:07 Angel Guzman Maeso escrigué: El 29 de septiembre de 2010 12:41, Santi Saez santis...@woop.es escribió: rre que puede estar pasando o como podría hacer debug? strace no está aportando mucha información: (..) write(1, 1 MB\n, 51 MB) = 5 --- SIGSEGV ( Hola Santi, Lo siguiente es solo una teoría, puede incluso que sea algo equivocado, pero, podría ser que estuvieras cogiendo libc.so.6 de lib64/ en vez de lib32? No se exactamente si al hacer libc = CDLL('libc.so.6') coja la de 32 bits por estar en path de forma prefente. Quizás poniendo la ruta completa a la biblioteca no te problemas (como digo es solo una suposición). Si, probablemente es eso lo que le pasa a Angel. De todas maneras, usar el malloc 'a pelo' no hace falta. Mejor usa algo más independiente de platforma, como `ctypes.create_string_buffer`: ctypes.create_string_buffer(int(3e6)) ctypes.c_char_Array_300 object at 0xdf1dd0 ctypes.create_string_buffer(int(3e10)) --- MemoryError Traceback (most recent call last) /tmp/serialization/ipython console in module() /usr/local/lib/python2.6/ctypes/__init__.pyc in create_string_buffer(init, size) 64 elif isinstance(init, (int, long)): 65 buftype = c_char * init --- 66 buf = buftype() 67 return buf 68 raise TypeError(init) MemoryError: -- Francesc Alted ___ 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] [ANN] Recordatorio: Escuela de Oto ño Advanced Scientific Programming in Python en Trento, Italia
Hola, Para aquellos que a lo mejor se han despistado, hoy es el último dia para presentar candidaturas para un excelente curso en programación avanzada de Python para usos científicos. Si te interesa, aún estás a tiempo! Francesc --- Reminder: Application deadline is August 31st, 2010! === Advanced Scientific Programming in Python = an Autumn School by the G-Node, the Center for Mind/Brain Sciences and the Fondazione Bruno Kessler Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists actually use them. As a result, instead of doing their research, they spend far too much time writing deficient code and reinventing the wheel. In this course we will present a selection of advanced programming techniques with theoretical lectures and practical exercises tailored to the needs of a programming scientist. New skills will be tested in a real programming project: we will team up to develop an entertaining scientific computer game. We'll use the Python programming language for the entire course. Python works as a simple programming language for beginners, but more importantly, it also works great in scientific simulations and data analysis. Clean language design and easy extensibility are driving Python to become a standard tool for scientific computing. Some of the most useful open source libraries for scientific computing and visualization will be presented. This school is targeted at Post-docs and PhD students from all areas of science. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. A basic knowledge of the Python language is assumed. Participants without prior experience with Python should work through the proposed introductory materials. Date and Location = October 4th—8th, 2010. Trento, Italy. Preliminary Program === Day 0 (Mon Oct 4) — Software Carpentry Advanced Python • Documenting code and using version control • Object-oriented programming, design patterns, and agile programming • Exception handling, lambdas, decorators, context managers, metaclasses Day 1 (Tue Oct 5) — Software Carpentry • Test-driven development, unit testing Quality Assurance • Debugging, profiling and benchmarking techniques • Data serialization: from pickle to databases Day 2 (Wed Oct 6) — Scientific Tools for Python • Advanced NumPy • The Quest for Speed (intro): Interfacing to C • Programming project Day 3 (Thu Oct 7) — The Quest for Speed • Writing parallel applications in Python • When parallelization does not help: the starving CPUs problem • Programming project Day 4 (Fri Oct 8) — Practical Software Development • Efficient programming in teams • Programming project • The Pac-Man Tournament Every evening we will have the tutors' consultation hour: Tutors will answer your questions and give suggestions for your own projects Applications You can apply on-line at http://www.g-node.org/python-autumnschool Applications must be submitted before August 31st, 2010. Notifications of acceptance will be sent by September 4th, 2010. No fee is charged but participants should take care of travel, living, and accommodation expenses. Candidates will be selected on the basis of their profile. Places are limited: acceptance rate in past editions was around 30%. Prerequisites = You are supposed to know the basics of Python to participate in the lectures! Look on the website for a list of introductory material. Faculty === • Francesc Alted, author of PyTables, Castelló de la Plana, Spain • Pietro Berkes, Volen Center for Complex Systems, Brandeis University, USA • Valentin Haenel, Berlin Institute of Technology and Bernstein Center for Computational Neuroscience Berlin, Germany • Zbigniew Jędrzejewski-Szmek, Faculty of Physics, University of Warsaw, Poland • Eilif Muller, The Blue Brain Project, Ecole Polytechnique Fédérale de Lausanne, Switzerland • Emanuele Olivetti, NeuroInformatics Laboratory, Fondazione Bruno Kessler and University of Trento, Italy • Rike-Benjamin Schuppner, Bernstein Center for Computational Neuroscience Berlin, Germany • Bartosz Teleńczuk, Institute for Theoretical Biology, Humboldt-Universität zu Berlin, Germany • Bastian Venthur, Berlin Institute of Technology and Bernstein Focus: Neurotechnology, Germany • Stéfan van der Walt, Applied Mathematics, University of Stellenbosch, South Africa • Tiziano Zito, Berlin Institute of Technology and Bernstein Center for Computational Neuroscience Berlin, Germany Organized by Paolo Avesani for the Center for Mind/Brain Sciences and the Fondazione Bruno Kessler, and by Zbigniew Jędrzejewski-Szmek
Re: [Python-es] [ANN] Recordatorio: Escuela de O toño Advanced Scientific Programming in Python en Trento, Italia
A Tuesday 31 August 2010 13:15:01 Ricardo Cárdenes Medina escrigué: 2010/8/31 Francesc Alted fal...@pytables.org: Hola, Para aquellos que a lo mejor se han despistado, hoy es el último dia para presentar candidaturas para un excelente curso en programación avanzada de Python para usos científicos. Jum... Una pregunta Francesc. Veo que está orientado a post-docs y estudiantes de doctorado, pero, ¿es requisito? (sólo puedo presentar una Ing. Técnica como grado más alto obtenido - más mi matrícula en la UNED para la Ing.). Porque la verdad es que el curso está interesante. Más que nada como refresco y formalización, porque ya tengo bastante experiencia en Python y lo uso (NumPy/SciPy/PyFITS/etc) en el trabajo; pero siempre es bueno ir a estos eventos para reciclarse un poco... Pues sí, es un requisito imprescindible ser post-doc. Estos cursos están promovidos por entidades de investigación que usan fondos europeos para estos propósitos (i.e. formación de post-docs). De todas maneras lo comentaré a ver si en el futuro se pueden 'relajar' las condiciones (yo no las veo demasiado justificadas, pero bueno...) Saludos, -- Francesc Alted ___ 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] [ANN] Recordatorio: Escuela de O toño Advanced Scientific Programming in Python en Trento, Italia
A Tuesday 31 August 2010 13:38:40 Francesc Alted escrigué: A Tuesday 31 August 2010 13:15:01 Ricardo Cárdenes Medina escrigué: 2010/8/31 Francesc Alted fal...@pytables.org: Hola, Para aquellos que a lo mejor se han despistado, hoy es el último dia para presentar candidaturas para un excelente curso en programación avanzada de Python para usos científicos. Jum... Una pregunta Francesc. Veo que está orientado a post-docs y estudiantes de doctorado, pero, ¿es requisito? (sólo puedo presentar una Ing. Técnica como grado más alto obtenido - más mi matrícula en la UNED para la Ing.). Porque la verdad es que el curso está interesante. Más que nada como refresco y formalización, porque ya tengo bastante experiencia en Python y lo uso (NumPy/SciPy/PyFITS/etc) en el trabajo; pero siempre es bueno ir a estos eventos para reciclarse un poco... Pues sí, es un requisito imprescindible ser post-doc. Estos cursos están promovidos por entidades de investigación que usan fondos europeos para estos propósitos (i.e. formación de post-docs). De todas maneras lo comentaré a ver si en el futuro se pueden 'relajar' las condiciones (yo no las veo demasiado justificadas, pero bueno...) Umm, veo que también aceptan doctorandos, aunque no creo que sea tu caso. -- Francesc Alted ___ 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] [ANN] Recordatorio: Escuela de O toño Advanced Scientific Programming in Python en Trento, Italia
A Tuesday 31 August 2010 14:45:18 Ricardo Cárdenes Medina escrigué: 2010/8/31 Francesc Alted fal...@pytables.org: A Tuesday 31 August 2010 13:38:40 Francesc Alted escrigué: A Tuesday 31 August 2010 13:15:01 Ricardo Cárdenes Medina escrigué: 2010/8/31 Francesc Alted fal...@pytables.org: Hola, Para aquellos que a lo mejor se han despistado, hoy es el último dia para presentar candidaturas para un excelente curso en programación avanzada de Python para usos científicos. Jum... Una pregunta Francesc. Veo que está orientado a post-docs y estudiantes de doctorado, pero, ¿es requisito? (sólo puedo presentar una Ing. Técnica como grado más alto obtenido - más mi matrícula en la UNED para la Ing.). Porque la verdad es que el curso está interesante. Más que nada como refresco y formalización, porque ya tengo bastante experiencia en Python y lo uso (NumPy/SciPy/PyFITS/etc) en el trabajo; pero siempre es bueno ir a estos eventos para reciclarse un poco... Pues sí, es un requisito imprescindible ser post-doc. Estos cursos están promovidos por entidades de investigación que usan fondos europeos para estos propósitos (i.e. formación de post-docs). De todas maneras lo comentaré a ver si en el futuro se pueden 'relajar' las condiciones (yo no las veo demasiado justificadas, pero bueno...) Umm, veo que también aceptan doctorandos, aunque no creo que sea tu caso. Me lo imaginaba :) No, no soy doctorando. El trabajo full-time no me deja ni siquiera pensar en ello :D Y eso que trabajo rodeado de doctores y doctorandos, pero bueno... Bueno, lo he preguntado, y me han dicho que tal limitación no existe y que de hecho se ha aceptado en el pasado gente que no es doctor, ni estudiante (lo que reza el anuncio es simplemente sobre el perfil de los asistentes). Bueno, pues date prisa y envía tu candidatura antes de las 12 de esta noche. Suerte! -- Francesc Alted ___ 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] [ANN] Recordatorio: Escuela de Otoño Advanced Scientific Programming in Python e n Trento, Italia
A Tuesday 31 August 2010 15:03:11 Kiko escrigué: Muy interesante el curso. Yo soy PhD pero actualmente no estoy haciendo ningún post-doc sino que estoy en la empresa privada por lo que me interesaría que estos cursos en el futuro fueran más abiertos. Bueno, ya he dicho que, después de unas consultas, *no* es requisito el ser doctor y ni siquiera estar estudiando uno. Y por supuesto, los procedentes de la empresa privada son absolutamente bienvenidos. -- Francesc Alted ___ 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] Curso avanzado de programación cient ífica en Python
Hola a todos El pasado curso de invierno en Varsovia sobre cálculo científico avanzado en Python se va a repetir en Trento (Italia) para el otoño. Si alguien está interesado, que lea la documentación de abajo y... suerte! Francesc Advanced Scientific Programming in Python = an Autumn School by the G-Node, the Center for Mind/Brain Sciences and the Fondazione Bruno Kessler Scientists spend more and more time writing, maintaining, and debugging software. While techniques for doing this efficiently have evolved, only few scientists actually use them. As a result, instead of doing their research, they spend far too much time writing deficient code and reinventing the wheel. In this course we will present a selection of advanced programming techniques with theoretical lectures and practical exercises tailored to the needs of a programming scientist. New skills will be tested in a real programming project: we will team up to develop an entertaining scientific computer game. We'll use the Python programming language for the entire course. Python works as a simple programming language for beginners, but more importantly, it also works great in scientific simulations and data analysis. Clean language design and easy extensibility are driving Python to become a standard tool for scientific computing. Some of the most useful open source libraries for scientific computing and visualization will be presented. This school is targeted at Post-docs and PhD students from all areas of science. Competence in Python or in another language such as Java, C/C++, MATLAB, or Mathematica is absolutely required. A basic knowledge of the Python language is assumed. Participants without prior experience with Python should work through the proposed introductory materials. Date and Location = October 4th—8th, 2010. Trento, Italy. Preliminary Program === Day 0 (Mon Oct 4) — Software Carpentry Advanced Python • Documenting code and using version control • Object-oriented programming, design patterns, and agile programming • Exception handling, lambdas, decorators, context managers, metaclasses Day 1 (Tue Oct 5) — Software Carpentry • Test-driven development, unit testing Quality Assurance • Debugging, profiling and benchmarking techniques • Data serialization: from pickle to databases Day 2 (Wed Oct 6) — Scientific Tools for Python • Advanced NumPy • The Quest for Speed (intro): Interfacing to C • Programming project Day 3 (Thu Oct 7) — The Quest for Speed • Writing parallel applications in Python • When parallelization does not help: the starving CPUs problem • Programming project Day 4 (Fri Oct 8) — Practical Software Development • Efficient programming in teams • Programming project • The Pac-Man Tournament Every evening we will have the tutors' consultation hour: Tutors will answer your questions and give suggestions for your own projects Applications You can apply on-line at http://www.g-node.org/python-autumnschool Applications must be submitted before August 31th, 2010. Notifications of acceptance will be sent by September 4th, 2010. No fee is charged but participants should take care of travel, living, and accommodation expenses. Candidates will be selected on the basis of their profile. Places are limited: acceptance rate in past editions was around 30%. Prerequisites = You are supposed to know the basics of Python to participate in the lectures! Look on the website for a list of introductory material. Faculty === • Francesc Alted, author of PyTables, Castelló de la Plana, Spain • Pietro Berkes, Volen Center for Complex Systems, Brandeis University, USA • Valentin Haenel, Berlin Institute of Technology and Bernstein Center for Computational Neuroscience Berlin, Germany • Zbigniew Jędrzejewski-Szmek, Faculty of Physics, University of Warsaw, Poland • Eilif Muller, The Blue Brain Project, Ecole Polytechnique Fédérale de Lausanne, Switzerland • Emanuele Olivetti, NeuroInformatics Laboratory, Fondazione Bruno Kessler and University of Trento, Italy • Rike-Benjamin Schuppner, Bernstein Center for Computational Neuroscience Berlin, Germany • Bartosz Teleńczuk, Institute for Theoretical Biology, Humboldt-Universität zu Berlin, Germany • Bastian Venthur, Berlin Institute of Technology and Bernstein Focus: Neurotechnology, Germany • Stéfan van der Walt, Applied Mathematics, University of Stellenbosch, South Africa • Tiziano Zito, Berlin Institute of Technology and Bernstein Center for Computational Neuroscience Berlin, Germany Organized by Paolo Avesani for the Center for Mind/Brain Sciences and the Fondazione Bruno Kessler , and by Zbigniew JędrzejewscySzmek and Tiziano Zito for the German Neuroinformatics Node of the INCF. Website: http://www.g-node.org/python-autumnschool Contact: python-i...@g-node.org -- Francesc Alted
[Python-es] Archivos completamente operativos
Hola a todos, Después de unas semanillas yendo detrás del administrador de las listas amparadas bajo python.org (entre la que se incluye ésta), tengo el placer de comunicar que los archivos 'oficiales' de la lista ya están completamente actualizados (o al menos, eso creo). Los que les querais echar un ojo a ver que tal, pasaros por: http://mail.python.org/pipermail/python-es/ y me decís qué tal (si hay algún problema mejor decirlo pronto que tarde). Bueno, pues sólo agradecer a Chema que se sacó de la chistera (bueno, Gmane) la serie completa de archivos. Saludos, -- Francesc Alted ___ 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] Sobre permutaciones y productos
A Wednesday 26 May 2010 14:00:11 Chema Cortes escrigué: El día 26 de mayo de 2010 00:03, Arnau Sanchez pyar...@gmail.com escribió: Repasando el archivo encontré este correo del lunes; no debe haberse reenviado a los correos personales (al menos a mi no me llegó) por problemas en la cabecera, viene sin remitente y sin asunto: http://mail.python.org/pipermail/python-es/2010-May/024367.html Estos días se ha debido cargar el antiguo archivo de la lista y, por lo que veo, ha fallado al insertar este mensaje del año pasado: http://thread.gmane.org/gmane.comp.python.general.castellano/23751 La línea que empieza por From ha confundido al mayordomo de la lista para que creyera que empezaba un nuevo mensaje sin cabeceras. El mensaje original ha quedado truncado: http://mail.python.org/pipermail/python-es/2009-March/024366.html Sí, parece la explicación más lógica. Posiblemente existan más fallos. En concreto veo que faltan bastantes años, los que van desde 2001 hasta 2007. Si que hay más fallos, sí. No has recibido las copias (a python-es- ow...@python.org) de los mensajes que estoy intercambiando con Ralf Hildebrandt para la inyección de los archivos de aditel.org en el nuevo python.org? Revisa tu buzón, y si no están me lo dices y te los reenvio. Bueno, esperemos que el tema de los archivos se solucione satisfactoriamente (y pronto). -- Francesc Alted ___ 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] mensajes rebotados
A Sunday 02 May 2010 06:17:28 Milton Galo Patricio Inostroza Aguilera escrigué: al enviar mensajes me sale lo siguiente: Delivery to the following recipient failed permanently: python-es@python.org Technical details of permanent failure: Google tried to deliver your message, but it was rejected by the recipient domain. We recommend contacting the other email provider for further information about the cause of this error. The error that the other server returned was: 553 553 rejected, message looks like spam. (state 18). Pues este entró. No sé, lo mismo se ha solucionado... -- Francesc Alted ___ 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] Reducir un diccionario usando un subconjunto de claves
A Saturday 01 May 2010 10:39:19 Arnau Sanchez escrigué: On 01/05/10 00:51, Rolando Espinoza La Fuente wrote: %timeit dict((k, d[k]) for k in subkeys) 10 loops, best of 3: 6.99 µs per loop %timeit dict([(k, d[k]) for k in subkeys]) 10 loops, best of 3: 5.82 µs per loop Pero esto hay que explicarlo: con pocos elementos una lista por compresión será (normalmente) más rápida, pero si tenemos muchos ya no está tan claro: d = dict((k, 2*k) for k in xrange(10)) %timeit dict([(k, d[k]) for k in xrange(0, 10, 2)]) 10 loops, best of 3: 23.9 ms per loop %timeit dict((k, d[k]) for k in xrange(0, 10, 2)) 100 loops, best of 3: 16.8 ms per loop En cualquier caso, la principal ventaja de los generadores está en espacio, no en tiempo. Sí señor, la memoria es un bien escaso, que conviene conservar. Y cada vez más, debido al abismo que se abre entre acceso a memoria y velocidad de CPU, espacio ganado se traduce en tiempo reducido. -- Francesc Alted ___ 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] Cómo especificar versiones RC (en setup.py ?)
A Wednesday 14 April 2010 16:40:29 Olemis Lang (Simelix) escrigué: Hola a todos ! He visto que varios paquetes [1]_ permiten número de versiones RC (e.g. ropevim 0.3-rc). Sin embargo cuando pongo esa versión en `setup.py` me da [clip] Prueba sin el guión (o sea, algo como 1.4.1rc2). -- Francesc Alted ___ 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] [OT] Artículo sobre CPUs hambrie ntas
Iep, Pau, A Thursday 25 March 2010 22:16:06 Pau Freixes escrigué: Interesante Francesc, buena introducción a un problema latente y más que actual - y que discutimos tiempo aca. Si, la verdad es que tomé 'prestados' varios elementos de nuestras discusiones pasadas para el artículo. Cuando recapacitas, es increible la cantidad de cosas que se aprenden en los foros como éste. Quizá la explosión de lenguajes interpretados como lenguajes de uso habitual ha alejado un poco más al programador de las tecnicas habituales de optimización ? Probablemente, aunque los principios son igual de generales, así que también se pueden aplicar a lenguajes interpretados (y a Python en particular). La idea que queria comunicar era doble: la disposición de datos en nuestros programas es importante, y que hay que hacer uso de las mejores herramientas disponibles a nuestro alcance. Por ejemplo, todos sabemos cuán importante es, dependendiendo de nuestras necesidades, el uso apropiado de listas, diccionarios o conjuntos en nuestros programas para lograr las mejores prestaciones. O, cómo usando librerias como NumPy junto con BLAS optimizados nos puede llevar a obtener prestaciones quasi-óptimas en nuestros programas. Pero si tú tienes que hacerte tu propio algoritmo y éste no está ya implementado de manera eficiente, aquí si que los lenguajes interpretados no son tan flexibles y probablemente hayas de bajar al nivel de lenguajes compilados para aplicar las optimizaciones. Por ejemplo podemos con Python aplicar tecnicas para reducir las malas prediciones de salto por parte de la CPU ? tiene sentido hablar de esto cuando es la maquina virtual i no el codigo de usuario quien realiza las operaciones envueltas en una instrucción simulada de salto ? si es el caso el branch prediction de la CPU se vuelve más estupido ? No, no creo que sea el caso. Como he dicho antes, cuando estas tratando de extraer la última gota de las prestaciones de un procesador, los lenguajes compilados (en particular C o Fortran) son mucho más apropiados. Pero de nuevo, asegúrate que lo que quieres hacer no está ya disponible en tu lenguaje interpretado preferido. Por ejemplo, usar numexpr te va a permitir evaluar expresiones algebraicas a una velocidad muy similar a hacer tu el programa en C, con la ventaja de que numexpr te permite compilar 'al vuelo' (es un JIT), y todos sabemos lo que eso significa en términos de comodidad (y por tanto, productividad, que al final es lo que se trata de obtener). Saludos, -- Francesc Alted ___ 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] [OT] Artículo sobre CPUs hambrie ntas
Hace poco me comunicaron que un artículo mío para la revista Computer in Science and Engineering ha sido seleccionado para la edición online de Computing Now. El artículo habla de la necesidad de entender el modelo jerárquico de memoria para lograr prestaciones decentes en nuestros programas. Evindentemente se nota mi experiencia en Python así que lo nombro brevemente (aunque el artículo intenta ser lo más agnóstico posible con los lenguajes). Los que esteis interesados, podeis acceder al artículo en: http://www.computer.org/portal/web/computingnow y pinchar en Why Modern CPUs Are Starving and What Can Be Done About It. Bueno, perdón por el OT, pero no podía resistir la ocasión ;-) Aunque sé que no hay mucha gente interesada en las muy altas prestaciones en cálculo, espero que le sirva de ayuda a alguien! -- Francesc Alted ___ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/