[15:44] Ola [15:53] buenas tardes! === cyrex_ is now known as luisalvarado [16:06] ignore #ubuntu-classroom CRAP NOTICES SNOTES CTCPS JOINS PARTS QUITS KICKS MODES WALLOPS NICKS DCC DCCMSGS CLIENTNOTICES CLIENTCRAP CLIENTERRORS HILIGHTS [16:09] whre's the traduction? [17:39] wop, hola gus-tavo, ya listo para tu sesion?, creo que me quede dormido, como han estado las charlas? [17:43] hola Conrado , veo que has estado siguiendo el canal desde las 16:00 utc, la introduccion, debio correr a mi cargo, sin embargo, no he podido llegar a tiempo.., gus-tavo tenia asignada las sesiones que aparecen con su nick en la wiki, de no tener otros problemas, comenzare a interpretar las siguientes sesiones, una vez que finalice ogra [17:45] ok [17:45] chilicuil [17:45] gracias [17:46] no para nada, una disculpa, espero que igual hayas podido seguir las charlas en #ubuntu-classroom [18:01] ogra ha terminado, ahora bilal se encargará de la sesion sobre 'Desarrollo de ubuntu para jovenes' (Ubuntu development for the youth!) [18:01] recuerden entrar a #ubuntu-classroom-chat para seguir las discusiones y para hacer sus preguntas [18:02] utilicen el prefijo QUESTION: para identificarlas [18:02] si no estan seguros de como hacer su pregunta, haganla por aqui, y les ayudaremos a traducirla [18:02] comienzo ahora mismo [18:02] Hola, mi nombre es Bilal Akhtar y he estado involucrado con la comunidad de Ubuntu por al menos 2 años [18:03] como se daran cuenta (o pronto lo haran), hay muchas otras formas de contribuir a Ubuntu ademas de la programacion [18:03] hola chilicuil, yo voy a interpretar la ultima sesion de hoy, necesito ayuda con lernid [18:04] hay una forma de que se conecte a ubuntu-classroom-es? [18:04] durante la sesion, no olviden hacer todas sus preguntas, y de utilizar QUESTION: como prefijo, por ejemplo, QUESTION: Why is Ubuntu so awesome?, y tratare de responderlas [18:04] asi no hay que cambiar de solapas para ver el ingles junto a la ventana de español [18:04] si, gus-tavo , con un cliente de irc, por ejemplo, xchat, irssi [18:05] o abrir dos sesiones del mismo cliente, y acomodar las ventanas [18:05] lo que yo hago, es interpretar, en la version inglesa y pegar en la española [18:05] ahi esta, hago eso, gracias ! [18:05] siguiendo, con la intepretacion.., En fin, permitanme comenzar con un pequeño resumen de lo que se considera por desarrollo de Ubuntu [18:06] Daniel Holbach durante la primera sesion de hoy, dio una charla titulada 'Introduccion al desarrollo de Ubuntu', que se trato justo sobre esto [18:07] yo solo hare un pequeño repaso sobre ello, para obtener mas detalles, pueden leer los logs de su sesion [18:07] Ubuntu es un sistema operativo completo, como tal, esta hecho a partir de muchos pequeños fragmentos, llamados 'paquetes' [18:08] cada paquete esta escrito en un determinado lenguaje de programacion, es compilado y a partir de eso, se crea un paquete 'binario' [18:08] el instalador de Ubuntu, aquel que usan para instalar Ubuntu, hace poco mas que descargar e instalar varios de esos programas [18:09] una pregunta frecuente que obtengo de prospectos a desarrolladores, es "En que lenguaje de programacion esta escrito Ubuntu?, que lenguaje deberia aprender para desarrollar a Ubuntu?" [18:11] la mayoria de los programas importantes de Ubuntu, como el kernel (el kernel es el software que se encarga de pegar en una sola capa, el software y hardware de su computadora, controlar los drivers, etc), o las librerias de bajo nivel estan escritas en C [18:11] los paquetes de escritorio, que forman la parte visual de Ubuntu, estan escritos en varios otros, la mayoria en C, C++, o python [18:12] esta es la razon, por la que sugiero a todos los que me hacen esa pregunta, aprender python [18:13] algunos ejemplos de estos programas son: El centro de software (escrito en python), Unity (C++), Nautilus el manejador de archivos (C), Gwibber (python), etc~ [18:14] recomiendo python, porque es facil de aprender, y al mismo tiempo les enseña las bases de la programacion, para que poco despues puedan moverse a C [18:14] FlowRiser ha pregunta sobre referencias, o tutoriales para aprender python [18:15] bilal lo felicita por la pregunta, y responde que le recomienda empezar por la documentacion oficial http://docs.python.org [18:15] http://docs.python.org/tutorial/index.html [18:16] para c++, menciona que hay cientos de tutoriales, algunos de los cuales son, cprogramming.com y cplusplus.com [18:16] ademas de esos, recomienda hacer una busqueda rapida en google para encontrar otros [18:17] coalitians ha preguntado si es verdad que java no muy popular dentro de la comunidad de Ubuntu [18:17] bilal le responde, que si lo es, pero que no tanto como C o python [18:17] y da el ejemplo de LibreOffice, cuyo codigo esta escrito en java [18:19] ademas de LibreOffice, otro ejemplo popular es Eclipse, aun asi, los ejemplos de java son menos que los que se podran encontrar de C y python, esto es porque java requiere una maquina virtual para funcionar, como OpenJDK o Sun Java VM [18:20] en caso de conocer java, sugiere que se aprenda C, ya que los 2 lenguajes son muy similares, y C es muy ocupado dentro de la comunidad de Ubuntu [18:20] CuppaT ha preguntado si se le podria recomendar un IDE (entorno de desarrollo) [18:21] bilal le recomienda que utilice vim, aunque menciona que tiene una curva de aprendizaje alta, asi que para los que no deseen aprender a usarlo, Gedit tambien es una buena alternativa [18:21] tambien sugiere Geany [18:22] coalitians pregunta si en Ubuntu hay aplicaciones en python que esten siendo migradas a la version 3.x del lenguaje de programacion [18:23] bilal responde que en parte, y agrega que python 3.x no es compatible con su antecesor, python 2.x por lo que algunas aplicaciones aun no se han actualizado [18:24] se espera que un futuro proximo, todos los programas que vienen incluidos en el CD de Ubuntu hayan sido portados a python3, y puedan deshacerse de python2 [18:24] recomienda que en caso de estar aprendiendo de 0, comiencen con python 3 [18:25] thotp pregunta cuales son las principales diferencias entre las aplicaciones en c/c++ de ubuntu y windows [18:26] bilal responde que la principal diferencia reside en el stack, es decir, mientras Ubuntu usa GTK+ y QT como librerias base para programar aplicaciones graficas, Windows utiliza WPF y WinForms [18:26] aunque la sintax es la misma~ [18:26] ademas de eso, agrega que las aplicaciones en GTK+ y QT pueden funcionar en Windows [18:27] como nota relacionada, barry hablara sobre programacion en python3 en la siguiente sesion [18:28] reanalizando la discusion de C en windows vs ubuntu, dice que para aprender la sintaxis basica, no importara desde que plataforma lo aprenda [18:28] aunque sugiere que se aprenda en Ubuntu, ya que sera la plataforma para la cual se va a programar [18:29] kamilnadeem pregunta que para un nuevo estudiante de ciencias de la computacion, cual es el mejor camino? [18:29] bilal responde que seguramente en su universidad le enseñaran algunos lenguajes, aunque si fuera el, comenzaria a estudiar C, puesto que seguramente se lo enseñaran de cualquier forma [18:30] eklok pregunta como ser un buen programador, cuantas hrs son necesarias al dia? [18:30] bilal responde que no tiene que ver con el numero de horas, calidad != cantidad [18:31] y dice, que la mayoria de las personas tienen agendas muy apretadas, y que muchas contribuciones se pueden hacer en 1 hr o menos [18:31] dice que lo mas importane, es encontrar algo que puedas y te guste hacer [18:32] FlowRiser pregunta por tutoriales para aprender c++ [18:33] bilal responde que para programar aplicaciones graficas, es mejor consultar las guias de Gtk, y para programación a secas, cplusplus.com, recomienda que comiencen aprendiendo la sintaxis antes de intentar cosas mas avanzadas, como la programacion en GTK [18:35] menciona que aunque muchas personas aprenden a programar en las escuelas y universidad, en la comunidad de Ubuntu, se aprende a traves de mejorar los programas [18:35] lo que ha largo plazo es mejor, que cualquier cosa que les puedan enseñar en la aulas [18:35] recomienda comenzar por python, c y por ultimo c++, si no se tiene idea de programacion [18:36] si se conoce java, entonces lo mejor desde su punto de vista, sera: Java -> C -> python [18:36] raki1 pregunta cual es mejor, GTK+ o QT [18:37] bilal responde que ambos son muy buenos, y agrega que QT tiene algunas caracteristicas extra, auqnue GTK es mas facil de aprender [18:37] SamTate pregunta si cree qeu Vala es un lenguaje adecuado, despues de JS y PHP [18:38] bilal responde, que aunque es un buen lenguaje, limpio sobre todo, para nuevos programadores recomienda asignarle menos prioridad [18:38] esto, porque Vala aun no es un lenguaje muy comun [18:38] despues de js y php, recomienda C [18:39] siguiendo con la sesion.., por que los jovenes deberian estar interesados en el desarrollo de Ubuntu? [18:40] bueno, primero, como ya se habia comentado, aprenderan a traves de ejemplos, de cuestiones practicas [18:40] esto les ayudara a entender la programacion, mas alla de cualquier curso que se pueda dar en cualquier escuela [18:40] aprenderan a resolver problemas criticos, tanto en la tecnica, como en la metodologia [18:41] obtendran la ayuda de cientos de talentosos desarrolladores alrededor del mundo [18:41] aprenderan a trabajar en equipo [18:41] y los conoceran al mismo tiempo, haran amigos dentro de la comunidad [18:42] como punto extra, se vera bien en su resumen, si piensan trabajar en el campo de las IT [18:42] los colocara un nivel arriba de sus compañeros de clase [18:42] contribuir a Ubuntu, es realmente, una excelente manera de pasar el rato [18:43] algunos podrian pensar que es una perdida de tiempo [18:43] sin embargo, es importante recordar, que el control sobre la cantidad de tiempo que le dedican la tienen ustedes [18:44] ustedes deciden el tiempo que deseen y la hr [18:44] y si encuentran problemas, hay muchas personas que estaran felices de ayudarlos [18:45] ya sea a traves de sitios, como Ask Ubuntu, los foros, o a traves de las listas de correo ubuntu-devel@lists.ubuntu.com, ubuntu-motu@lists.ubuntu.com [18:45] tambien, pueden obtener ayuda en los canales de irc, #ubuntu-app-devel para preguntas sobre desarrollo de aplicaciones, o #ubuntu-motu para preguntas sobre empaquetamiento de esas aplicaciones [18:46] raki1 pregunta sobre algunas guias de GTK [18:46] bilal le recomienda http://developer.gnome.org/ [18:46] helderc pregunta sobre partes de Ubuntu (no Kubuntu) donde se utilize QT [18:47] bilal menciona que unity 2d, solia usar qt, y que Ubuntu trata a QT, como una libreria de primer nivel [18:48] mesutcangurle pregunta por que Ubuntu no tiene mentores para nuevos miembros, o tareas sencilla para comenzar [18:48] bilal responde que hay platicas para reactivar al grupo de mentores [18:49] y sobre las formas colaborar, existen alternativas, se puede ayudar via upstream, es decir, ayudando en los proyectos originales, como en el caso de Nautilus [18:49] pueden verse una lista de bugs en http://launchpad.net/ubuntu/+source/nautilus/+bugs [18:50] y para enviar un parche, se puede descargar el codigo fuente, arreglar el problema, y enviar el parche [18:50] si desean conocer a detalle el procedimiento para enviar estos parches, tumbleweed tendra una sesion completa para ese tema mañana [18:51] tambien pueden ayudar, clasificando bugs, encontrando reportes duplicados, preguntando por mas datos, en los reportes que no sean claros [18:51] o ayudando con la traduccion de ubuntu [18:52] https://wiki.ubuntu.com/Translations , el equipo hispano, es especialmente activo [18:53] otras formas de ayudar, incluyen, escribir documentacion, o haciendo pruebas de los alpha y beta de Ubuntu [18:53] en fin, ahora contestare algunas de las preguntas que me suelen hacer [18:54] primera, existe una remuneracion economica por ayudar a Ubuntu? [18:54] lo que suelo responder, es que si se obtiene una recompensa, aunque esta no es economica, es de conocimientos [18:55] segunda, como se pueden obtener permisos para subir los cambios? [18:55] existen diferentes tipos de desarrolladores en Ubuntu https://wiki.ubuntu.com/UbuntuDevelopers [18:56] cada uno de ellos, tiene permisos para subir modificaciones a diferentes partes [18:56] sin embargo, en todos ellos es el mismo, una vez, que tengas un buen historial, con buenas y sustentadas contribuciones [18:57] puedes aplicar para cualquier membresia [18:57] una de las cosas que olvide mencionar, es que tambien puedes ayudar, creando paquetes para los programas que aun no estan disponibles en Ubuntu, de esto hablo un poco mas Daniel, en la primera sesion [18:58] pueden aprender, como hacer esto en developers.ubuntu.com [18:59] FlowRiser: pregunta como puede modificar y crear temas para el screen de login de ubuntu [18:59] bilal responde que tendra que hechar un vistazo en la documentacion de lightdm [18:59] ajitesh pregunta, cual es mejor para el desarrollo de ubuntu, c++ o python [19:00] bilal responde que aunque c/c++ es mas poderoso, python es mas facil de aprender [19:00] y que en realidad depende de lo que se quiera desarrollar [19:00] por ejemplo, para aplicaciones con interfaz grafica, generalmente es mejor usar python, mientras que para crear cosas de bajo nivel, drivers, etc, es mejor usar C [19:01] con eso termina la sesion de bilal, ahora barry hablara sobre desarrollo con python3 [19:01] todo tuyo gus-tavo [19:09] ops tarde, me he demorado [19:09] sin problemas, gus-tavo , venga que no tenemos una audiencia tremenda, bien podrian quedar unicamente los logs [19:10] ben72 pregunta: hay manera de correr las versiones 2 y 3 de python en el mismo sistema ubuntu? [19:12] si, corriendo 'python! (aka /usr/bin/python) en cualquier sistema ubuntu hará correr la última verson de python 2, para ubuntu 12.04 en adelante es python 2.7 [19:13] para correr python 3 se necesita explicitamente correr 'python3' ó /usr/bin/phython3' [19:15] puedo hablar de las diferencias entre python 3.2, por defecto en la distribucion ubuntu, y python 3.3 más tarde [19:15] nickE68 pregunta: Quantal usara Python 3.3? [19:16] No, python 3.2 sera todavía la version por defectho, la 3.3 no va a estar lista al momento del freeze. va a estar por defecto en la version 13.04 [19:17] quantal tiene la version 3.3 disponible a traves de: apt-get install python3.3 [19:18] e invocado a través de 'python3.3' [19:18] así pueden jugar con las nuevas caracteristicas [19:21] quantal tendra la 2.7, 3.2 y 3.3 con las dos primeras como por defecto [19:22] entonces, por que portar a python 3? [19:22] nunca habra un python 2.8, les puedo asegurar : ) [19:22] lo que implica que py2 nunca tendra alguna nueva característica [19:23] y el arreglo de errores, a traves de los canale oficiales tomara mas que lo usual [19:25] eventualmente 2.7 solo tendrá correcciones de seguridad, pero supongo que desarrollos upstream estarán menos interesados en matener la 2.7 a medida que pase el tiempo [19:25] hola alvaro_ , bienvenido, si andas un poco perdido, los logs generados hasta el momento en http://irclogs.ubuntu.com/2012/08/28/%23ubuntu-classroom-es.html [19:25] y en http://irclogs.ubuntu.com/2012/08/28/%23ubuntu-classroom.html para la sesion en Ingles [19:26] los modulos quedaran obsoletos [19:27] py2 tiene también muchas errores, algunos pequeños otros grandes [19:28] y mas importante imo: py3 soluciona el problema entre bytes vs. text [19:28] (la mayoría : ) [19:28] significando, tenemos el potecian de hacer aplicaciones py3 mas robustas [19:29] para usuarios no hablantes ingles [19:29] mas sobre bytes vs cadenas mas tarde [19:30] cuáles son los planes de ubuntu para py3? [19:31] estamos en una larga carrera para deprecar python2. hemos esperado a portar todo en las imágenes de intalacion para py3 en 12.10, pero encontramos unos bloqueos problematicos y no va a pasar para la 12.10 [19:32] tal vez para la 13.04, definiitivamente para la proxima lts [19:33] py2.7 nunca sera removida del archivo, pero va a estar en el universo para la 14.04, si podemos [19:33] hablemos acerca de portar [19:34] dejenme darles uno enlaces primero: [19:34] este es uno de los mejores recursos disponibles para entender como portar tu aplicacion py2 a py3 [19:34] http://python3porting.com/ [19:34] coalitians pregunta: [19:35] desde que el desarrollo para 12.10 se congeló, no hay actividades de portar ahora? [19:38] coalitians: tendriamos definitivamente una ffe para el servicio backend de gwibber portada a py3- tal vez haya otras pocas, pero a la larga hecha con los esfuerzos de portado para 12.10, desde aqui esto seria un error a arreglar [19:41] los enlaces arriba hablan de estrategiss, dan ejemplos de codigo para la conversion de idimas comunes, un poco de extensiones c, y mucho mas [19:41] y he escrito un numero de blog posts que encontrarán explicativas: [19:42] http://tinyurl.com/7tb3jkn [19:42] http://tinyurl.com/7famvx3 [19:42] http://tinyurl.com/6ufpvfq [19:43] tambien hay una página en la wiki ubuntu con ayuda especifica para portar, incluyendo como empaquetar librerías python y aplicaciones para py3 o para py2/py3 [19:43] https://wiki.ubuntu.com/Python/3 [19:45] tambien les voy a ddar este enlace para la charla de pycon 2012. les recomiendo que vean esto antes de que hagan cualquier trabajo significante con py3. Es la mejor descripcion para el tema bytes vs. cadenas. realmente una gran charla [19:45] http://pyvideo.org/video/948/pragmatic-unicode-or-how-do-i-stop-the-pain [19:46] hablemos de las estrategias para portar [19:48] permitanme decirles que si comienzan con un nuevo proyecto python, les sugiero que vayan directo a py3. tienen que asegurarse de que cualquier dependencia (ej. librerias de terceros que quieran usar) esttén disponible para py3 en ubuntu [19:49] hemos trabajado fuerte estos ultimos ciclos para asegurar el soporte py3 [19:51] hola mary_, bienvenida, si andas un poco perdida, los logs generados hasta el momento estan en http://irclogs.ubuntu.com/2012/08/28/%23ubuntu-classroom-es.html [19:51] y en http://irclogs.ubuntu.com/2012/08/28/%23ubuntu-classroom.html para la sesion en Ingles [19:52] y hemos portado en upstream algunos paquetes (dbus-python) [19:53] por supuesto, no todo esta disponible, pero *mucho* está hecho, así que probablemente estarán en una gran ventaja con quantal [19:53] gracias! [19:53] roadmr pregunta: que camibon recomendas si yo quiero portar una aplicacion usando gstreamer a Python3? [19:55] desafortunadamente no tengo mucha experiencia con gstreamer, asi que no estoy seguro que version py3 esta disponible, asi, donde (upstream, debian, ubuntu) [19:56] "pienso" que no esta, pero no me marques por eso : ) [19:56] para el nuevo codigo, que acerca de portar codigo existente a py3? [19:57] preguntate esto: necesitas mantener soporte py2? y si es asi, cuanto tiempo atras necesitas el soporte?? [19:58] recomendaría altamente nada mas alejado que py2.6 (no esta disponible en niguna forma en quantal) [20:00] recomendaría al menos py2.7 para algun exento 2.6 tiene muchos caracteristicas portadas que pueden hacer portado, y soportando py2 y py3 mas facil [20:01] a traves de cosas como "from__future__impor" [20:02] asi cuando comiencen a portar, la primera cosa a hacer es correr su codigo con 'python2.7 --3' [20:05] chilicuil, termino, no traduzco mas ? [20:05] me quede muy atras [20:06] gus-tavo: ya no hay mas sesiones por delante, si aun te queda tiempo, podrias terminar la sesion, si no, no hay problema puedo ayudar con el resto [20:07] bueno, vos podes terminar de traducir ? [20:07] si gus-tavo , gracias por tu tiempo, terminando igual haré la interpretacion de las charlas a las cuales no pude llegar [20:08] y anexo los logs a la wiki =) [20:08] bueno, no entendi mucho, espero estar mas afilado mañana :) [20:09] seguro gus-tavo, gracias =)! [20:10] siguiendo con la interpretacion... [20:10] a traves de cosas como "from__future__impor" [20:10] asi cuando comiencen a portar, la primera cosa a hacer es correr su codigo con 'python2.7 --3' [20:11] la opcion -3 les mostrara advertencias sobre cada caracteristica de su programa que no pueda ser convertido facilmente con el programa 2to3 (mas sobre eso en un momento) [20:12] luego en el log cuando se termine las sesiones estaran disponibles en la misma direccion arriba? [20:12] por el contrario, si su programa corre bien con 'python2.7 -3', el proceso de transicion sera muy simple [20:13] mary_: si, tambien a traves de https://wiki.ubuntu.com/SemanaDesarrollador , ambas las inglesas y sus interpretaciones españolas [20:13] si mary, en ingles, las traduccines tambien estan en la wiki [20:14] https://wiki.ubuntu.com/SemanaDesarrollador [20:15] 2to3 es un framework de transformacion de codigo, puede tomar la mayoria de las caracteristicas de un programa escrito para python2 y convertilo a codigo para python3 [20:16] mi opinion personal es que la salida que devuelve 2to3 es una excelente inicio, pero su codigo no deberia usarse para sistemas en produccion [20:18] desde mi punto de vista, se deberia usar un unico codigo base y tener cuidado en como se programa, tambien se deberia usar imports from-future tanto como sea posible [20:19] existe una libreria llamada 'six' (creo que se instala con $ apt-get install python-six) que puede simplificar el mantenimiento de su codigo fuente [20:21] todos estos tips estan bien, sin embargo, si quisiera recalcar algo, seria tener *muy bien* definido la diferencia entre los modelos de datos (por ejemplo, entre los datos del programa, y las cadenas, legibles por humanos) [20:22] si tienen varios errores del tipo UnicodeErrors, significa que no estan siendo suficientemente claros en esa division [20:23] esta division, es uno de los grandes beneficios (y dolores de cabeza) de actualizar su codigo a py3, sin embargo, una vez que lo hagan, sus usuarios de lenguas que no sea el Ingles dejaran de tener esos errores 'UnicodeErrors' [20:24] BlessJah pregunta si es posible escribir codigo en py3 que tambien funcione en py2? [20:25] barry contesta que hacia abajo no hay mucha diferencia, asi que definitivamente debe ser posible [20:25] espero que todos hayan entendido la diferencia entre bytes y cadenas [20:25] bytes son datos en binario, ejemplo: imagenes, audio, video, etc [20:26] mientras que cadenas, es texto que puede ser leido por otras personas [20:26] en py2 se tienen 2 diferentes tipos de cadenas, str que tambien se conocen como cadenas de 8 bits, y que pueden ser utilizadas como cadenas de texto, o como datos binarios [20:27] tambien existe el tipo unicode, que son justo esto, cadenas en unicode legibles para humanos [20:28] el problema de py2 es que comunmente mezclaba ambos, muchas veces en formas que no eran correcta, y que provocan algunos problemas 'UnicodeErrors' [20:29] en py3 se tienen bytes que *solo* pueden ser tratados como datos binarios [20:29] y str que solo son unicodes [20:30] estos 2 tipos no se mezclan, no existen metodos de conversion de uno a otro que sean automaticos [20:30] por ejemplo, no se pueden concadenar uno sobre otro, sin hacer una conversion *explicita* [20:31] asi que si tienes una cadena unicode, puedes convertirla a bytes, aunque para eso, debes conocer el encoding en el que se encuentran (la mayoria de las veces en utf-8, aunque tambien es frecuente que esten en latin-1 o algun otro) [20:32] para ir de bytes a str, tienes que decodificarlo, otra vez, para hacer eso, debes ser claro en el encoding al que quieres convertirlo [20:34] otro punto importante a recordar es que en py3, la funcion open() abrira los archivos en el modo binario por defecto [20:35] a diferencia de py2, py3 tambien tomara un argumento que establezca el encoding a utilizar [20:36] open('mi_archivo', encoding='utf-8') [20:36] de esta manera, se estaran leyendo cadenas del archivo codificadas en unicode [20:37] esto es genial (asumiendo que su archivo, realmente utilice la codificacion utf-8 en primer lugar :) [20:38] en py3, ya no se usa el prefijo u'', las cadenas literalmente se guardan como unicodes [20:39] (de hecho: el prefijo u'' se volvio a introducir py3.3, pero lo que he dicho anteriormente escencialmente es correcto) [20:39] para escribir bytes literalmente, se usa el prefijo b'' [20:39] ejemplo: este es el byte: b'foo' [20:39] y esta, la cadena: 'foo' [20:41] otra nota rapida sobre esto es que ahora pueden usar de forma segura el modulo 'gettext' en py3, puesto que gettext siempre devolvia unicodes como resultado de su ejecusion [20:41] hay mas preguntas sobre este tema, o puedo continuar con otro? [20:43] NickE68 pregunto sobre los archivos donde no se sabe el encoding de antemano, pregunta si existe una libreria que pueda adivinarlo [20:44] barry responde que si existe, pero que ahora mismo no recuerda su nombre, aunque parece que esta relacionada con el proyecto mozilla [20:45] en general, recomienda probar con algunos encodings si no se sabe, por ejemplo, primero utf-7, luego latin-1, luego ascii.., y asi [20:46] roadmr pide una aclaracion sobre eso de que 'gettext' siempre devuelve unicodes, esto se refiere a 'cadenas'?, en lugar de 'bytes'? [20:48] barry contesta que si, y agrega que desafortunadamente en py2, gettext.gettext('foo') siempre devolvia una cadena de 8 bits que causaba problemas, ademas de eso, el api para analizar unicodes en py2 era muy dificil de usar y no se usaba por defecto [20:49] en py3 por el contrario, gettext.gettext('foo') siempre devuelve un tipo 'str', es decir una cadena en unicode [20:49] barry agradece por pasarle el tipo puntual, que es python-chardet [20:50] regresando a la sesion., durante los siguiente 17 minutos, dare un tour sobre los principales cambios y nuevas caracteristicas en py3 de las que vale la pena estar informado [20:51] no es de ninguna manera, una lista completa [20:51] hay varios documentos, sobre los nuevos cambios, para cada nueva version de python 3, pero hasta donde se, no una sobre las diferencias entre por ejemplo python 2.7 y python 3.2 [20:52] aunque la liga que les di hace rato sobre porting a python esta muy cerca [20:53] sientanse libres de preguntar, cualquier cosa mientras comento esta lista [20:53] mcuhas partes de la libreria standard 'stdlib' han sido modificadas [20:54] lo que significa que algunos modulos antiguos, y modulos que estaban siendo actualizados, fueron finalmente eliminados [20:55] muchos de estos modulos no los extrañaran, a menos que esten haciendo procesamiento de imagenes sobre irix, en cuyo caso preguntaria, que estan haciendo aqui? =) [20:55] muchos otros modulos, han cambiado de ubicacion, algunos otros los movieron a paquetes [20:55] por ejemplo, la funcion urlparse() ahora es parte de urllib.parse.urlparse() [20:56] para conocer todas estas diferencias, la mejor guia que pueden revisar es http://docs.python.org/py3k/library/~ [20:56] algunas funciones integradas en python tambien han sido modificadas o removidas del todo [20:57] por ejemplo, la funcion reload() se puso en imp.reload() [20:57] para las funciones que se han eliminado, y que son de este tipo, existen generalmente buenas alternativas [20:59] por ejemplo, la funcion callable() se quito, pero ahora pueden si la funcion existe, llamandola ;), o a través del modulo 'inspect' [21:01] otro gran cambio, que me trajo muchos problemas, al menos hasta que aprendi la nueva forma (y despues de empezar a usar "from __future__ import print_function" en mi codigo py2) [21:01] fue que la funcion el predicado 'print' se ha convertido en funcion, por ejemplo: print('hello world') [21:02] esto fue muy problematico, pero tiene mucho sentido, eventualmente ustedes tambien comprenderan por que el cambio :) [21:02] recuerdan como python2 solia tener 2 tipos de clases?, las clasicas y las nuevas? [21:03] bueno, con py3, se eliminaron las clasicas [21:03] lo que significa que ya no tiene que heredar de objetos [21:05] o usar el truco "__metaclass__ = type" para obtener las geniales caracteristicas de las clases con 'el nuevo estilo' [21:05] asi que supongo, que ahora tendremos que dejarle de llamar 'el nuevo estilo', puesto que es el unico que queda =) [21:06] py2 solia tener 2 tipos de enteros, int y long [21:06] py3 ha eliminado long, asi que solo queda 'int' [21:07] automaticamente se encarga de como representar internamente los enteros pequeños y grandes [21:07] tambien se elimino el sufijo 'L' para los enteros [21:10] jsjgruber-l82-p ha preguntado si existen algun tipo de float que tenga una presicion elevada en py3 [21:11] barry responde que si, pero que el hace muy pocos calculos en python, asi que no puede darle una referencia exacta [21:11] agrega, que conoce un tipo 'decimal', pero que no esta accesible por defecto [21:12] siguiendo con la lista, los metodos de dict.iter*() ya no existen en python3, es decir, ya no existen mas las funciones .iterkeys(), .itervalues(), o .iteritems() [21:13] para estos casos, se puede usar .keys(), este metodo devuelve iteradores y *no* listas concretas [21:14] asi que probablemente tendran que analizar el valor que regrese, list(dict.values()) [21:14] la sintaxis para capturar excepciones se cambio (algunso de estos cambios tambien se hicieron en py2.6 y py2.7) [21:19] "except Foo, e" se cambio por [21:19] "except Foo as e" [21:20] exec tambien se convirtio en funcion, exec() [21:20] file() se quito, y en su lugar se recomienda el uso de open() [21:21] tambien se elimino xrange(), para los que deseen una funcionalidad similar, tendra que regresar a range(), que ahora devuelve un iterador [21:21] filter() y map() tambien devuelven interadores [21:21] una vez mas, para las funciones que devuelven iteradores, tienen que usar list() para crear una lista concreta [21:22] los imports absolutos ahora son los que usan por defecto, asi que tendran que hacer explicito su deseo de usar imports relativos [21:23] 1/2 ahora regresa 0.5 [21:23] 1 / 2 ahora regresa 0.5 [21:23] 1/2 (junto) devuelve la vieja forma de representar los flotantes [21:24] coalitians pregunta como y donde tienen que estar para ser parte de la comunidad de python en Ubuntu [21:25] barry responde que sugiere entrar al canal #debian-python en OFTC, a #ubuntu-devel y a #python (estas ultimas 2 en freenode) [21:25] y aclara que no existe un foro unicamente para python en Ubuntu, aunque considera que deberia existir uno [21:26] NickE68 pregunta si existe una lugar donde se listen los paquetes que necesiten ser portados a Ubuntu 13.04 [21:27] barry: responde que si, y da las siguiente ligas [21:27] https://docs.google.com/a/canonical.com/spreadsheet/ccc?key=0AiT4gOXSkmapdFA1anRkWERsaXgtWnllUG9QWXhDVWc&pli=1#gid=0 [21:27] https://blueprints.launchpad.net/ubuntu/+spec/foundations-q-python-versions [21:27] https://wiki.ubuntu.com/Python/FoundationsQPythonVersions [21:27] ademas de eso, invita a lo contacten en #ubuntu-devel para mayor informacion, estara feliz de ayudar [21:28] con eso termina la excelente sesion de barry =) [21:29] ahora, tomare 10 minutos, y regresare a subir los logs a la wiki, y a interpretar las sesiones que hicieron falta, Daniel Holbach "Introduccion al desarrollo de Ubuntu" [21:45] buenas tardes, ya estan listas las traducciones en irclogs.ubuntu? [21:51] joshua1983: hola, joshua, si, varias de ellas, http://irclogs.ubuntu.com/2012/08/28/%23ubuntu-classroom-es.html , ahora mismo, estoy actualizando la wiki para reflejar los cambios [22:18] comienzo con la interpretacion de "Introduccion al desarrollo de Ubuntu", por Daniel Holbach [22:19] antes de comenzar me gustaria dar unos cuantos tips, que les ayudara a disfrutar del evento [22:19] primero, asegurense de entrar a #ubuntu-classroom-chat [22:20] #ubuntu-classroom es solo para la clase, la platica y preguntes se hacen en #ubuntu-classroom-chat [22:20] si tienen alguna pregunta, haganla usando el prefijo QUESTOIN: [22:21] ejemplo, QUESTION: Can you recommend any good music for a late-night hacking session? [22:21] si tienen problemas para hacer su pregunta en ingles, haganla en este canal, y con gusto les ayudaremos a hacerla en la sesion original [22:22] tambien, es buena idea que revisen https://wiki.ubuntu.com/UbuntuDeveloperWeek si desean conocer el calendario de las charlas que se estaran haciendo [22:22] dos de las preguntas más frecuentes que se hacen son: 1.- abran logs disponibles? [22:22] para esa pregunta, la respuesta es si, se pondran en https://wiki.ubuntu.com/UbuntuDeveloperWeek/ [22:23] para la interpretacion, los logs estaran disponibles en https://wiki.ubuntu.com/SemanaDesarrollador [22:23] la segunda pregunta es: 'como puedo ignorar todo el ruido que se genera, cuando las personas y entran de la sala?' [22:24] para esa pregunta, la respuesta es, escriban "/ignore #ubuntu-classroom CRAP NOTICES SNOTES CTCPS JOINS PARTS QUITS KICKS MODES WALLOPS NICKS DCC DCCMSGS CLIENTNOTICES CLIENTCRAP CLIENTERRORS HILIGHTS" en la ventana de este canal [22:24] sin el " obviamente [22:25] en fin, eso es todo lo que dire, sobre aspecto organizacionales, que comiencen las sesiones! =) [22:26] mi nombre es Daniel Holbach, he estado trabajando en Ubuntu por casi todo el tiempo que lleva existiendo y siempre me ha gustado nuestra comunidad de desarrolladores [22:28] he trabajado durante años para canonical, comence en el equipo Desktop, y después como parte de nuestra comunidad de desarrolladores [22:29] durante esta sesion, les mostrare como funciona en general el desarrollo de Ubuntu [22:29] al principio parecera un caos, puesto que siempre hay personas modificando cosas por todos lados, sin embargo, pronto se daran cuenta de lo facil que es :) [22:30] tambien me gustaria responde la mayor cantidad de preguntas posibles [22:30] si voy demasiado rapido, o lo que digo no les hace sentido, comentenlo =) [22:32] Ubuntu esta hecho de miles de diferentes programas, todas ellos escritos en diferentes lenguajes, cada componente - ya sea una libreria de software, una herramienta del sistema, o una aplicacion grafica, esta disponible como un paquete, y el codigo fuente de dicha aplicacion integrado en el [22:33] los paquetes de codigo fuente consisten en la mayoria de los casos, de 2 partes, el codigo fuente en si, y metadatos que describen el paquete, esto incluye las dependencias, el copyrigh y las instrucciones sobre como compilar el programa [22:34] una vez que el paquete se compila, el proceso de construccion creara un paquete binario, estos paquetes binarios son los archivos .deb que los usuarios instalan [22:36] cada vez que se libera una nueva version del programa, o que alguien hace una modificación, el paquete debe subirse a Launchpad, ahi, sera recompilado [22:37] los paquetes .deb que resulten, seran distribuidos a traves del archivo y los diferentes mirros de ubuntu alrededor del mundo. Las urls que se encuentran en /etc/apt/sources.list apuntan a esos repositorios [22:38] todos los dias, diferentes imagenes de Ubuntu se crean, por ejemplo, ubuntu desktop, ubuntu server, kubuntu, etc. Estas imagenes para CD se utilizan para hacer pruebas y hacer comentarios sobre los planes de lanzamiento [22:41] como nota al margen, debo mencionar que durantes los ultimos 2-3 ciclos, hemos comenzado a crear un enorme laboratorio de QA, en el se varias pruebas en toda clase de programas, esto obviamente tambien es tomado en cuenta para modificar los planes de lanzamiento [22:41] el desarrollo en Ubuntu, depende de alguna forma, del estado del ciclo en el que se este [22:42] liberamos una nueva version de Ubuntu cada 6 meses, esto solo es posible debido a que establecemos fechas estrictas donde prohibimos hacer mas cambios (freeze dates) [22:43] con cada nueva de estas fechas, se va sugiriendo a los desarrolladores introducir menos modificaciones [22:44] si hechan un vistazo a https://wiki.ubuntu.com/QuantalQuetzal/ReleaseSchedule veran las fechas importantes para la version actual de Ubuntu, la 12.10 [22:46] como podran ver, acabamos de pasar la fecha de congelamiento (feature freeze) [22:47] esta fecha, es la primera de las que se daran para detener el desarrollo, y se da despues de haber avanzado la mitad del ciclo. Despues de esta fecha, la mayoria de las caracteristicas que contendra la proxima version de Ubuntu deberan estar hechas, el resto del ciclo se utiliza para pulir la distribucion, y para corregir los bugs que se encuentren [22:49] despues de esta fecha, se empiezan a prohibir cambios en la interfaz grafica, en la documentacion, en el kernel, etc.., una vez hecho esto, se liberan las versiones beta, las cuales se prueban en gran cantidad de usuarios debido a su madurez [22:51] y se comienzan a solucionar unicamente los errores criticos, cuando ya no hay mas errores importantes, se convierte en la version final, y esa es la que se pone a disposicion del publico en general [22:51] alguna pregunta hasta el momento? [22:52] marcos pregunta si QA significa 'Question and Answer' o 'Pregunta y respuesta' [22:53] a lo que dholbach responde que de hecho significa 'Quality Assurance' o 'Aseguramiento de la calidad' [22:54] lo que a su vez significa que es donde se hacen toda clase de pruebas, tanto automaticas como manuales, tambien es donde se hacen pruebas de la integridad de los CD, y donde se verifica que los sistemas son instalables, entre otras cosas [22:55] QA es lo que hace que Ubuntu en lugar de ser bueno, sea excelente [22:55] conner_bw pregunta sobre el criterio para definir que 'ya no hay ningun problema critico' [22:58] dholbach responde que aunque no hay un criterio extremadamente formal, el que se pierdan datos, o que existan aplicaciones cruciales que no funcionen (y con aplicaciones cruciales se definen las que vienen en un sistema Ubuntu por defecto) es sin duda un critero que se toma en cuenta para decidir si esta o lista la distribucion [22:59] agmenor_ pregunta sobre la version de Ubuntu que tiene que correr si el un desarrollador de aplicaciones [22:59] dholbach responde que en su caso, seria suficiente que usara la ultima version estable, es decir, la version 12.04 [23:00] aunque si desea modificar a Ubuntu directamente, necesita correr la ultima version en desarrollo, es decir Ubuntu 12.10 [23:01] esto es, porque los cambios que se hacen deben probarse antes de su inclusion [23:02] paulo_gomes pregunta que es lo que pasa, cuando una nueva aplicacion es liberada, pasada la fecha de congelamiento de ubuntu, se tiene que esperar hasta la proxima version de Ubuntu? [23:05] dholbach responde que depende, si el software es liberado antes de la fecha de congelamiento, puede incluirse sin problemas, si es una actualizacion que arregla problemas importantes, puede que pase incluso despues de la fecha de congelamiento de Ubuntu, sin embargo, conforme vayan pasando los dias, cada vez sera mas dificil convencer al equipo que se encarga de la liberacion (el release team) [23:05] esto es por una buena razon: se necesita tiempo para probar las cosas [23:06] hablare sobre eso, un poco mas adelante [23:07] conner_bw vuelve a preguntar sobre el criterio para definir los errores criticos que impiden el lanzamiento de Ubuntu, esto lo hace, porque usando 12.04 esta inscrito a algunos bugs que a su consideracion son muy importantes, y que no detuvieron que Ubuntu precise se liberara, por ejemplo la integracion del launcher de LibreOffice [23:08] dholbach responde que algunas veces se tienen que tomar decisiones que permitan liberar Ubuntu el día en el que esta marcado, este proceso no es facil, pero tiene que hacerse [23:10] Liverpudlian pregunta si las aplicaciones se desarrollan de diferente manera cuando se crean para versiones LTS [23:10] obounaim pregunta sobre la ulr del equipo QA [23:11] dholbach da la liga https://wiki.ubuntu.com/QATeam/ y sugiere que se lea como introduccion [23:13] dholbach responde a Liverpudlian que definitivamente, y agrega que muchas personas deciden utilizar esas versiones por mucho tiempo, asi que los autores se esfuerzan por hacer que sus aplicaciones sean incluidas [23:14] C1sM0 pregunta si los archivos .deb se crean automaticamente una vez que el codigo fuente se sube a launchpad [23:15] dholbach responde que si, aunque eso puede tardar un poco, porque se organizan en filas, debido a la falta de maquinas asignadas para compilar que se tienen en launchpad [23:15] sin embargo, la espera comunmente es de menos de 1 hr [23:16] nja pregunta porque la seccion de trabajo en el calendario de lanzamiento de quantal dice A-2 en lugar de A-1 [23:17] dholbach responde que realmente no esta seguro, y pregunta si se refiere a lo que aparece en http://status.ubuntu.com/ubuntu-quantal/ [23:18] sugiere que tal vez se deba a que la ultima liberacion intermedia fue Alpha 2, aunque confirma que no tiene idea [23:18] marcos pregunta si el concurso App Showdown acepta aplicaciones privativas / comerciales [23:19] dholbach responde que hasta donde sabe, no [23:21] dholbach pide que por el momento, las preguntas y la charla se centre en el desarrollo de Ubuntu por si mismo, y se deje el tema de las aplicaciones para las siguientes sesiones, agrega que parte de lo que ahora mismo se discute (como las fechas de congelamiento) aplican para ambos temas [23:21] _et pregunta si usan C-I para compilar los paquetes [23:22] dholbach responde que no conoce de C-I, pero que todos los programas, se compilan en launchpad, que es un plataforma de software libre hecha a partir de Zope/Python, y que el sistema de compilacion por si mismo se hace con la ayuda de 'sbuild' [23:23] ziviani pregunta sobre la personas que definen las caracteristicas que se implementan en un cilo, y tambien sobre que pasa, con aquellas que no pudieron implementarse antes de la fecha de congelamiento (freeze date) [23:24] dholbach responde que aquellas caracteristicas que no pueden completarse, se dejan para el siguiente ciclo, y que las decisiones sobre lo que se hace las toma el equipo de lanzmiento (el release team), y los respectivos lideres de los sub equipos de ubuntu [23:25] nja pregunta porque la aplicacion Lernid tiene integrada una terminal [23:26] dholbach responde que es porque cuando los ponentes deciden hacer algun ejercicio, los asistentes pueden correrlo en su sistema [23:27] marcos pregunta si las versiones estables, como Ubuntu 12.04.1 aceptan nuevas caracteristicas [23:29] dholbach responde que no, que lo "unico" que se acepte son actualizaciones de seguridad, correccion de errores pequeños, nuevas traducciones y cuestiones por el estilo, que sean seguras de implementar [23:30] y agrega que con los recursos actuales es muy dificil concentrarte en ambas versiones (la 12.04 y la 12.10 por poner un ejemplo) [23:30] Henrich pregunta si existe una lista donde pueda ver las maquinas que crean los paquetes [23:31] dholbach responde que si, y le pasa el link https://launchpad.net/builders/ [23:31] tambien agradece la avalancha de preguntas =) [23:31] asegura que aunque sus dedos le duelen, aun no ve sangre, asi que cree seguro continuar [23:32] miles de aplicaciones, billones de lineas de codigo, cientos de colaboradores, requieren mucha comunicacion y planeacion para mantener altos niveles de calidad [23:34] asi que al comienzo de cada ciclo, se organiza el Ubuntu developer Summit, donde tanto desarrolladores como contribuiores se reunen para hablar sobre las caracteristicas de la siguiente version de Ubuntu [23:35] cada idea se discute, y se toman anotaciones sobre la informacion requerida para implementarla, de los cambios que se necesitan hacer en otros lugares, del plan para probarla, etc [23:38] todo esto se hace en un ambiente abierto y transparente, asi que incluso cuando no puedan asistir en persona, siempre pueden participar en linea, escuchar los streamcast, hablar con los asistentes y suscribirse a la lista de modificaciones y especificaciones de cada tema, de esta forma, siempre pueden mantenerse al dia