<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>Shakaran &#187; Inclasificado</title> <atom:link href="http://shakaran.net/blog/category/Inclasificado/feed/" rel="self" type="application/rss+xml" /><link>http://shakaran.net/blog</link> <description>Blog de un estudiante de ingeniería informática y sysadmin</description> <lastBuildDate>Fri, 20 Jan 2012 01:04:24 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <image><link>http://shakaran.net/blog</link> <url>http://www.shakaran.net/blog/wp-content/favicon.png</url><title>Shakaran</title> </image> <item><title>Extrayendo diagramas UML de código python con PyReverse</title><link>http://shakaran.net/blog/2011/07/extrayendo-diagramas-uml-de-codigo-python-con-pyreverse/</link> <comments>http://shakaran.net/blog/2011/07/extrayendo-diagramas-uml-de-codigo-python-con-pyreverse/#comments</comments> <pubDate>Sun, 24 Jul 2011 11:25:46 +0000</pubDate> <dc:creator>shakaran</dc:creator> <category><![CDATA[Inclasificado]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[dot]]></category> <category><![CDATA[graphviz]]></category> <category><![CDATA[pylint]]></category> <category><![CDATA[pyreverse]]></category> <category><![CDATA[python]]></category> <category><![CDATA[svg]]></category> <category><![CDATA[uml]]></category> <category><![CDATA[xml]]></category><guid isPermaLink="false">http://shakaran.net/blog/?p=1088</guid> <description><![CDATA[En la mayoría de proyectos Python de gran desarrollo, se hace necesario documentar el desarrollo de una aplicación. A menudo se utilizan los diagramas UML, para ilustrar diagramas de clases, paquetes, etc. Pyreverse es una utilidad que analiza el código fuente Python y extrae diagramas de clases y dependencias con paquetes. En los diagramas generados [...]<br /><div><img src="http://shakaran.net/blog/wp-content/plugins/gd-star-rating/gfx.php?value=9.0" /></div><div>Rating: 9.0/<strong>10</strong> (1 vote cast)</div><br />]]></description> <content:encoded><![CDATA[<div class="wpbuzzer_button" style="float: right"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-button" data-url="http://shakaran.net/blog/2011/07/extrayendo-diagramas-uml-de-codigo-python-con-pyreverse/" data-imageurl=""></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div><p>En la mayoría de proyectos Python de gran desarrollo, se hace necesario <strong>documentar el desarrollo</strong> de una aplicación.</p><p>A menudo se utilizan los diagramas <a title="UML: Lenguaje unificado de modelado" href="http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado" target="_blank">UML</a>, para ilustrar diagramas de clases, paquetes, etc.</p><p><a title="Pyreverse: a set of tools for reverse engineering Python code." href="http://www.logilab.org/view?rql=Any%20X%20WHERE%20X%20eid%202560" target="_blank">Pyreverse</a> es una utilidad que <strong>analiza el código fuente</strong> Python y extrae diagramas de clases y dependencias con paquetes.</p><p>En los diagramas generados se muestran:</p><ul><li>Atributos de clases y si es posible su tipo</li><li>Métodos de clases</li><li>Enlaces de herencia entre clases</li><li>Enlaces de asociación entre clases</li><li>Representación de excepciones e interfaces</li></ul><blockquote><p><strong><span style="text-decoration: underline;">Nota:</span></strong> Esta utilidad ha sido integrada desde 2008 con Pylint a partir de la versión 0.15.</p></blockquote><h3><span style="color: #993300;">Instalación en Ubuntu 11.04</span></h3><p>Puesto que Pyreverse esta integrado en <a title="Pylint" href="http://www.logilab.org/857" target="_blank">Pylint</a> y este utiliza <a title="Graphviz" href="http://www.graphviz.org/" target="_blank">Graphviz</a> para <strong>generar los diagramas</strong> nos basta con instalar los siguientes paquetes:</p><div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1088code6'); return false;">Ver código</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p10886"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1088code6"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> graphviz pylint</pre></td></tr></table></div><p>A modo de ejemplo, utilizare el código fuente de <a title="Tivion" href="http://shakaran.net/blog/tivion/" target="_blank">Tivion</a>, para generar algunos diagramas UML.</p><p>Generaramos con pyreverse, un archivo classes_Tivion.png aplicándolo a la carpeta src de Tivion:</p><div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1088code7'); return false;">Ver código</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p10887"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1088code7"><pre class="bash" style="font-family:monospace;">pyreverse <span style="color: #660033;">-o</span> png <span style="color: #660033;">-p</span> Tivion src<span style="color: #000000; font-weight: bold;">/</span></pre></td></tr></table></div><p>-o : establece el formato de salida<br /> -p nombre : produce los archivos de salida añadiendo el nombre establecido</p><p>Esto generará un diagrama como el siguiente (haz click para agrandar):</p><p><a href="http://shakaran.net/blog/wp-content/uploads/2011/07/classes_Tivion1.png"><img class="aligncenter size-full wp-image-1091" title="Python Classes Tivion" src="http://shakaran.net/blog/wp-content/uploads/2011/07/classes_Tivion1.png" alt="Python Classes Tivion" width="413" height="183" /></a></p><p>Pero el layout por defecto, es algo espartano y podemos mejorarlo con otras hojas de estilo XML que definamos. Para ello necesitamos cambiar el formato de salida a .dot, para posteriormente generar un archivo SVG.</p><p><strong>Generar el .dot</strong></p><div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1088code8'); return false;">Ver código</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p10888"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1088code8"><pre class="bash" style="font-family:monospace;">pyreverse <span style="color: #660033;">-o</span> dot <span style="color: #660033;">-p</span> Tivion src<span style="color: #000000; font-weight: bold;">/</span></pre></td></tr></table></div><p><strong>Generar el SVG a partir del DOT</strong></p><div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1088code9'); return false;">Ver código</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p10889"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1088code9"><pre class="bash" style="font-family:monospace;">dot <span style="color: #660033;">-Tsvg</span> classes_Tivion.dot <span style="color: #000000; font-weight: bold;">&gt;</span> classes_Tivion.svg</pre></td></tr></table></div><p><strong>Aplicar el layout mejorado</strong></p><p>Para ello he utilizado el xsl definido <a title="XSL notugly.xsl" href="https://raw.github.com/vidarh/diagram-tools/master/notugly.xsl">aquí</a>:</p><div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1088code10'); return false;">Ver código</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p108810"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1088code10"><pre class="bash" style="font-family:monospace;">xsltproc notugly.xsl classes_Tivion.svg <span style="color: #000000; font-weight: bold;">&gt;</span> classes_Tivion-notugly.svg</pre></td></tr></table></div><p>Esto mejora un poco, pero habría que editar el .dot para cambiar los estilos de cada &#8220;record&#8221;. Como prueba, he editado un par de records, cambiándoles el fondo, pero sería <strong>necesario automatizarlo</strong>, o incluso mucho mejor si pyreverse admitiera un xsl y lo generara ya con otro layout mas moderno.</p><p>El resultado es el siguiente (haz click para agrandar):</p><div id="attachment_1094" class="wp-caption aligncenter" style="width: 510px"><a href="http://shakaran.net/blog/wp-content/uploads/2011/07/classes_Tivion-notugly.png"><img class="size-large wp-image-1094" title="Python Class Tivion pretty layout" src="http://shakaran.net/blog/wp-content/uploads/2011/07/classes_Tivion-notugly-500x1024.png" alt="Python Class Tivion pretty layout" width="500" height="242" /></a><p class="wp-caption-text">Python Class Tivion pretty layout</p></div><h3><span style="color: #993300;">Fuentes</span></h3><p><a title="PyReverse: UML Diagrams for Python" href="http://www.logilab.org/6883" target="_blank">Pyreverse : UML Diagrams for Python </a></p><p><a title="Making Grapthviz output pretty with xsl" href="http://www.hokstad.com/making-graphviz-output-pretty-with-xsl.html" target="_blank">Making Graphviz output pretty with xsl </a></p><p><a title="Making Grapthviz output pretty with xsl (updated)" href="http://www.hokstad.com/making-graphviz-output-pretty-with-xsl-updated.html" target="_blank">Making Graphviz output pretty with xsl (updated) </a></p> <br /><div><img src="http://shakaran.net/blog/wp-content/plugins/gd-star-rating/gfx.php?value=9.0" /></div><div>Rating: 9.0/<strong>10</strong> (1 vote cast)</div><br />]]></content:encoded> <wfw:commentRss>http://shakaran.net/blog/2011/07/extrayendo-diagramas-uml-de-codigo-python-con-pyreverse/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Tivion ganador del mejor proyecto en el III Concurso Universitario de Software Libre de Castilla-La Mancha</title><link>http://shakaran.net/blog/2010/04/tivion-ganador-del-mejor-proyecto-en-el-iii-concurso-universitario-de-software-libre-de-castilla-la-mancha/</link> <comments>http://shakaran.net/blog/2010/04/tivion-ganador-del-mejor-proyecto-en-el-iii-concurso-universitario-de-software-libre-de-castilla-la-mancha/#comments</comments> <pubDate>Thu, 29 Apr 2010 21:01:25 +0000</pubDate> <dc:creator>shakaran</dc:creator> <category><![CDATA[CUSL]]></category> <category><![CDATA[Inclasificado]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[software libre]]></category> <category><![CDATA[Tivion]]></category> <category><![CDATA[Universidad]]></category> <category><![CDATA[ceslcam]]></category> <category><![CDATA[entrega]]></category> <category><![CDATA[especial]]></category> <category><![CDATA[exposicón]]></category> <category><![CDATA[free]]></category> <category><![CDATA[ganador]]></category> <category><![CDATA[ganadores]]></category> <category><![CDATA[libre]]></category> <category><![CDATA[mayor]]></category> <category><![CDATA[premio]]></category> <category><![CDATA[proyecto]]></category> <category><![CDATA[publico]]></category> <category><![CDATA[software]]></category> <category><![CDATA[streaming]]></category> <category><![CDATA[Vídeos]]></category><guid isPermaLink="false">http://shakaran.net/blog/?p=935</guid> <description><![CDATA[De nuevo buenas noticias para Tivion, tras anunciar el pasado miércoles que era finalista en el CUSL regional, la sorpresa ha sido máxima cuando he resultado ganador del mayor premio del concurso con el &#8220;Premio especial JCCM &#8211; CESLCAM &#8211; Mejor proyecto&#8220;, dotado con 1500 € en metálico. Aparte del premio, la jornada fue muy [...]<br /><div><img src="http://shakaran.net/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>10</strong> (0 votes cast)</div><br />]]></description> <content:encoded><![CDATA[<div class="wpbuzzer_button" style="float: right"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-button" data-url="http://shakaran.net/blog/2010/04/tivion-ganador-del-mejor-proyecto-en-el-iii-concurso-universitario-de-software-libre-de-castilla-la-mancha/" data-imageurl=""></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div><p style="text-align: center;margin:auto"><a href="http://shakaran.net/blog/wp-content/uploads/2010/04/winner-cup-tivion.png"><img class="size-full wp-image-939 aligncenter" style="margin: auto;" title="Winner cup Tivion" src="http://shakaran.net/blog/wp-content/uploads/2010/04/winner-cup-tivion.png" alt="Winner cup Tivion" width="252" height="314" /></a></p><p>De nuevo buenas noticias para <a title="Tivion un reproductor de streaming" href="http://www.shakaran.net/blog/tivion" target="_blank">Tivion</a>, tras anunciar el pasado miércoles que era<a title="Tivion finalista en el CUSL" href="http://shakaran.net/blog/2010/04/tivion-finalista-en-el-cusl-de-castilla-la-mancha/" target="_blank"> finalista en el CUSL regional</a>, la sorpresa ha sido máxima cuando he resultado ganador del <strong>mayor premio</strong> del concurso con el &#8220;<em>Premio especial JCCM &#8211; CESLCAM &#8211; Mejor proyecto</em>&#8220;, dotado con 1500 € en metálico.</p><p>Aparte del premio, la jornada fue muy enriquecedora ya que conocí en persona a los otros finalistas e intercambiamos muchas ideas y opiniones sobre<strong> software libre</strong> y sobre otros temas como es de suponer.</p><p>Hice nuevos amigos, conocí a mucha más gente y la <strong>asistencia de público</strong> me sorprendió bastante, ya que el aforo estaba a un 80 o 90%, que <a title="Celebrado el Día del Software Libre en Albacete." href="http://es-es.facebook.com/notes/centro-de-excelencia-de-software-libre-de-castilla-la-mancha/celebrado-el-dia-del-software-libre-en-albacete/385371064199" target="_blank">calculo que serían unas 150 personas,</a> todas muy interesadas en los proyectos, charlas y talleres que se hicieron.</p><p>Esta es la <strong>foto de los ganadores</strong> que nos hicieron (soy el del centro, camiseta blanca con un logo negro):</p><div id="attachment_937" class="wp-caption aligncenter" style="width: 502px"><a href="http://shakaran.net/blog/wp-content/uploads/2010/04/cusl-castilla-la-mancha-ganadores.jpg"><img class="size-full wp-image-937" title="CUSL regional foto de los ganadores" src="http://shakaran.net/blog/wp-content/uploads/2010/04/cusl-castilla-la-mancha-ganadores.jpg" alt="CUSL regional foto de los ganadores" width="492" height="326" /></a><p class="wp-caption-text">CUSL regional foto de los ganadores</p></div><p>El resto de ganadores para esta edición son:<br /> - <strong>José María Ochotorena,</strong> <em>Primer Premio al Proyecto más  Innovador</em> por su proyecto LUCKA.<br /> - <strong>José Luis Segura</strong>,<em> Primer Premio Mejor Utilidad</em> por su  proyecto ARGOS.<br /> - <strong>Hugo Caballero, Javier Cózar y José Miguel Serrano</strong>, <em>Segundo  Premio a Mejor Utilidad</em> por su proyecto TURMS.</p><p>Por otro lado, al resultar ganador, paso a ser <strong>finalista del CUSL a nivel nacional</strong>, en la que han participado más de 100 alumnos de 150 proyectos diferentes de todas las universidades de España y que se celebrará en la <a title="Escuela Superior de Ingeniería de la Universidad de Cádiz" href="http://www.uca.es/centro/1C11" target="_blank">Escuela Superior de Ingeniería de la Universidad de Cádiz </a>los días <a title="Finalistas del IV Concurso Universitario de Software Libre" href="http://www.concursosoftwarelibre.org/0910/finalistas-iv-cusl" target="_blank">13 y 14 de Mayo</a>.</p><p>El resto de finalistas del <strong>IV Concurso Universitario de Software Libre</strong> a nivel nacional son:</p><ul><li><strong>Casual Services</strong>, de <em>Daniel Martín Yerga</em> de  la <em>Universidad de Oviedo</em> [<a href="http://yerga.wordpress.com/">Blog</a>][<a href="http://forja.rediris.es/projects/cusl4-cservices/">Código</a>]</li><li><strong>Cañafote: Redes de sensores basados en Arduino</strong>, de <em>Álvaro  Neira Ayuso</em> de la <em>Universidad de Sevilla</em> [<a href="http://canafote.wordpress.com/">Blog</a>][<a href="https://forja.rediris.es/projects/cusl4-canafote/">Código</a>]</li><li><strong>Curuxa</strong>, de <em>Adrián Bulnes Parra</em> de la <em>Universidad  de Oviedo</em> [<a href="http://blog.curuxa.org/">Blog</a>][<a href="https://forja.rediris.es/plugins/scmsvn/viewcvs.php/?root=cusl4-curuxa">Código</a>]</li><li><strong>Kora</strong>, de <em>Jose Alcalá Correa</em> de la <em>Universidad  de Granada</em> [<a href="http://www.gskbyte.net/category/personal/proyectos/kora/">Blog</a>][<a href="https://forja.rediris.es/projects/cusl4-kora/">Código</a>]</li><li><strong>TBO</strong>, de <em>Daniel García Moreno</em> de la <em>Universidad  Nacional de educación a distancia</em> [<a href="http://danigm.net/TBO">Blog</a>][<a href="https://forja.rediris.es/projects/cusl4-tbo/">Código</a>]</li><li><strong>Visuse</strong>, de <em>José Luis López Pino</em> de la <em>Universidad  de Granada</em> [<a href="http://visuse.wordpress.com/">Blog</a>][<a href="https://forja.rediris.es/projects/cusl4-visuse/">Código</a>]</li><li><strong>WikiUnix</strong>, de <em>Noelia Sales Montes</em> de la <em>Universidad  de Cádiz</em> [<a href="http://wikiunix.wordpress.com/">Blog</a>][<a href="http://osl.uca.es/wikiunix">Código</a>]</li></ul><p>Así mismo, se otorgarán las siguientes <strong>menciones  especiales</strong>:</p><ul><li><strong>oFlute</strong>, de <em>José Tomás Tocino García</em> de la <em>Universidad  de Cádiz</em> [<a href="http://oflute.wordpress.com/">Blog</a>][<a href="http://forja.rediris.es/projects/cusl4-oflute/">Código</a>]</li><li><strong>Resistencia en Cádiz: 1812</strong>, de <em>Pablo Recio  Quijano</em> de la <em>Universidad de Cádiz</em> [<a href="http://sumergiendose.wordpress.com/">Blog</a>][<a href="https://forja.rediris.es/projects/cusl4-res-cadiz">Código</a>]</li><li><strong>Tea: Tiny Environmental Analyzer</strong>, de <em>Ricardo  Cañuelo Navarro</em> de la <em>Universidad de Granada</em> [<a href="http://proyectotea.wordpress.com/">Blog</a>][<a href="http://forja.rediris.es/cusl4-tea">Código</a>]</li><li><strong>Gexal</strong>, de <em>Juan Santamaría Moreno</em> y de <em>Christian  Blaya Benito</em> del <em>IES Villaverde de Madrid</em> como proyecto  destacado en la categoría Junior [<a href="http://proyectogexal.wordpress.com/">Blog</a>][<a href="https://forja.rediris.es/projects/cusl4-gexal/">Código</a>]</li></ul><p>Por último, os dejo unos vídeos de la<strong> exposición</strong> que hice y <strong>entrega de premios </strong>y las <strong>trasnsparencias</strong> y alguna<strong> documentación en pdf adicional</strong> que recopila información del proyecto (en los vídeos he cortado algún trozo donde se perdía tiempo al poner el vídeo y bajado el volumen de los aplausos).</p><h3 id="watch-headline-title"><span style="color: #993300;">Tivion &#8211; Exposicion CUSL CLM &#8211; Parte 1 (9 min 43 seg)<br /> </span></h3><p><a href="http://shakaran.net/blog/2010/04/tivion-ganador-del-mejor-proyecto-en-el-iii-concurso-universitario-de-software-libre-de-castilla-la-mancha/"><em>Pinche aquí para ver el vídeo</em></a></p><h3 id="watch-headline-title"><span style="color: #993300;">Tivion &#8211; Exposicion CUSL CLM &#8211; Parte 2</span><span style="color: #993300;"> (9 min 21 seg)</span></h3><p><a href="http://shakaran.net/blog/2010/04/tivion-ganador-del-mejor-proyecto-en-el-iii-concurso-universitario-de-software-libre-de-castilla-la-mancha/"><em>Pinche aquí para ver el vídeo</em></a></p><h3 id="watch-headline-title"><span style="color: #993300;">Entrega de premios CUSL 2009-2010 Castilla &#8211; La Mancha (3 min 18  seg)</span></h3><p><a href="http://shakaran.net/blog/2010/04/tivion-ganador-del-mejor-proyecto-en-el-iii-concurso-universitario-de-software-libre-de-castilla-la-mancha/"><em>Pinche aquí para ver el vídeo</em></a></p><h3><span style="color: #993300;">Documentación</span></h3><ul><li><a title="Trasparencias exposicón Tivion (PDF)" href="http://shakaran.net/blog/wp-content/uploads/tivion/doc/tivion-slides.pdf" target="_blank">Transparencias exposición TIvion (PDF)</a></li></ul><ul><li><a title="Trasparencias exposición Tivion (ODP)" href="http://shakaran.net/blog/wp-content/uploads/tivion/doc/tivion-slides.odp" target="_blank">Transparencias exposición TIvion (ODP)</a></li></ul><ul><li><a title="Documentación adicional del proyecto (PDF)" href="http://shakaran.net/blog/wp-content/uploads/tivion/doc/tivion-doc-es.pdf" target="_blank">Documentación adicional del proyecto (PDF)</a></li></ul><p>Ya os contaré que tal en Mayo, y ¡suerte al resto de finalistas!</p><p>¿Te gusta el software libre y realizas algún desarrollo en Castilla-La Mancha? Te animo a que te apuntes para el próximo año y me hagas competencia <img src='http://shakaran.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>Más info en <a title="III Concurso Universitario de Software Libre" href="http://www.ceslcam.es/concurso/" target="_blank">http://www.ceslcam.es/concurso/</a></p><p><a href="http://es-es.facebook.com/notes.php?id=50235728852">Notas de  Centro de Excelencia de Software Libre de Castilla-La Mancha en Facebook</a></p><p><a title="Finalistas del IV Concurso Universitario de Software Libre" href="http://www.concursosoftwarelibre.org/0910/finalistas-iv-cusl" target="_blank">Finalistas del IV Concurso Universitario de Software Libre</a></p><div id="_mcePaste" style="position: absolute; left: -10000px; top: 603px; width: 1px; height: 1px; overflow: hidden;">Escuela<br /> Superior de Ingeniería de la Universidad de Cádiz</div> <br /><div><img src="http://shakaran.net/blog/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>10</strong> (0 votes cast)</div><br />]]></content:encoded> <wfw:commentRss>http://shakaran.net/blog/2010/04/tivion-ganador-del-mejor-proyecto-en-el-iii-concurso-universitario-de-software-libre-de-castilla-la-mancha/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Comprobar si un usuario es root con Python</title><link>http://shakaran.net/blog/2008/12/comprobar-si-un-usuario-es-root-con-python/</link> <comments>http://shakaran.net/blog/2008/12/comprobar-si-un-usuario-es-root-con-python/#comments</comments> <pubDate>Sun, 07 Dec 2008 03:01:42 +0000</pubDate> <dc:creator>shakaran</dc:creator> <category><![CDATA[Inclasificado]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[admiistrativo]]></category> <category><![CDATA[biblioteca]]></category> <category><![CDATA[función]]></category> <category><![CDATA[geteuid]]></category> <category><![CDATA[os]]></category> <category><![CDATA[privilegios]]></category> <category><![CDATA[programa]]></category> <category><![CDATA[python]]></category> <category><![CDATA[root]]></category> <category><![CDATA[usuario]]></category><guid isPermaLink="false">http://shakaran.net/blog/?p=242</guid> <description><![CDATA[Cuando realizamos algún programa en Python a veces es necesario conocer si el usuario que lo ejecuta tiene privilegios de administrador o superusuario, también conocido como usuario root. Con Python este asunto es una tarea bastante sencilla, simplemente debemos importar la biblioteca &#8220;os&#8221; (Operating System, del inglés Sistema Operativo) y llamar a la función geteuid() [...]<br /><div><img src="http://shakaran.net/blog/wp-content/plugins/gd-star-rating/gfx.php?value=9.5" /></div><div>Rating: 9.5/<strong>10</strong> (2 votes cast)</div><br />]]></description> <content:encoded><![CDATA[<div class="wpbuzzer_button" style="float: right"><a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post" data-button-style="normal-button" data-url="http://shakaran.net/blog/2008/12/comprobar-si-un-usuario-es-root-con-python/" data-imageurl=""></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div><p style="text-align: center;"><a href="http://shakaran.net/blog/wp-content/uploads/2008/12/python-root.png"><img class="size-full wp-image-249 aligncenter" title="Python root" src="http://shakaran.net/blog/wp-content/uploads/2008/12/python-root.png" alt="Python root" width="201" height="199" /></a></p><p>Cuando realizamos algún programa en Python a veces es necesario conocer si el usuario que lo ejecuta <strong>tiene privilegios de administrador</strong> o superusuario, también conocido como usuario root.</p><p>Con Python este asunto es una tarea bastante sencilla, simplemente debemos importar la biblioteca &#8220;<a title="Biblioteca OS Python documentación" href="http://pydoc.org/1.6/os.html" target="_blank">os</a>&#8221; (<em>Operating System</em>, del inglés Sistema Operativo) y llamar a la función <a title="getuid() documentación python" href="http://pydoc.org/1.6/os.html#-geteuid" target="_blank"><em>geteuid()</em></a> que nos devuelve el id del usuario efectivo (<em>euid=efective user identification</em>). Si esta función nos devuelve el valor de 0 entonces es el usuario<strong> root</strong>.</p><p>Si guardamos el siguiente código (por ejemplo con el nombre <em>check_root.py</em>) y le damos permisos de ejecución, podremos comprobar fácilmente esta tarea:</p><div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Descargar <a href="http://shakaran.net/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=242&amp;download=check_root.py">check_root.py</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p24213"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code" id="p242code13"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #483d8b;">&quot;&quot;&quot;
Comprobar si el usuario es root
&quot;&quot;&quot;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">sys</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">geteuid</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">0</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Debes tener privilegios root para este script.'</span>
    <span style="color: #dc143c;">sys</span>.<span style="color: black;">exit</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">else</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Bienvenido usuario root'</span></pre></td></tr></table></div><p>Para darle permisos de ejecución a nuestro script check_root.py:</p><div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Descargar <a href="http://shakaran.net/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=242&amp;download=privilegios-check_root.py">privilegios-check_root.py</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p24214"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p242code14"><pre class="shell" style="font-family:monospace;">$ sudo chmod +x check_root.py</pre></td></tr></table></div><br /><div><img src="http://shakaran.net/blog/wp-content/plugins/gd-star-rating/gfx.php?value=9.5" /></div><div>Rating: 9.5/<strong>10</strong> (2 votes cast)</div><br />]]></content:encoded> <wfw:commentRss>http://shakaran.net/blog/2008/12/comprobar-si-un-usuario-es-root-con-python/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching 9/45 queries in 0.153 seconds using memcached
Object Caching 1389/1432 objects using memcached

Served from: shakaran.net @ 2012-02-05 00:30:22 -->
