<?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>Wed, 25 Apr 2012 15:02:15 +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>FreeStation: a little sneak peek</title><link>http://shakaran.net/blog/2012/04/freestation-a-little-sneak-peek/</link> <comments>http://shakaran.net/blog/2012/04/freestation-a-little-sneak-peek/#comments</comments> <pubDate>Mon, 16 Apr 2012 16:12:00 +0000</pubDate> <dc:creator>shakaran</dc:creator> <category><![CDATA[Free Station]]></category> <category><![CDATA[Inclasificado]]></category> <category><![CDATA[Open Source]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[software libre]]></category> <category><![CDATA[Universidad]]></category> <category><![CDATA[adif]]></category> <category><![CDATA[advances]]></category> <category><![CDATA[architecture]]></category> <category><![CDATA[blind]]></category> <category><![CDATA[client]]></category> <category><![CDATA[communication]]></category> <category><![CDATA[dissertation]]></category> <category><![CDATA[dni]]></category> <category><![CDATA[freestation]]></category> <category><![CDATA[ice]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[peek]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[POI]]></category> <category><![CDATA[police]]></category> <category><![CDATA[python]]></category> <category><![CDATA[server]]></category> <category><![CDATA[sescam]]></category> <category><![CDATA[sneak]]></category> <category><![CDATA[software]]></category> <category><![CDATA[SPOF]]></category> <category><![CDATA[stack]]></category> <category><![CDATA[ussability]]></category> <category><![CDATA[zeroc]]></category><guid isPermaLink="false">http://shakaran.net/blog/?p=1202</guid> <description><![CDATA[Several months&#160;have passed&#160;since&#160;I&#160;wrote about Freestation. I would like show some advances and write about my dissertation project that I hope to finish for the 2th June as last day for deadline on this course. An introduction&#160;reminder FreeStation is a program built for help to distribute easy and reliable software and information on point of interest [...]<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/2012/04/freestation-a-little-sneak-peek/" data-imageurl=""></a><script type="text/javascript" src="http://www.google.com/buzz/api/button.js"></script></div><p>Several months&nbsp;have passed&nbsp;since&nbsp;<a title="Free Station: plataforma para el desarrollo de sistemas de distribución de software libre en puntos de información" href="http://shakaran.net/blog/2011/05/free-station-plataforma-para-el-desarrollo-de-sistemas-de-distribucion-de-software-libre-en-puntos-de-informacion/" target="_blank">I&nbsp;wrote about Freestation</a>. I would like <strong>show some advances</strong> and write about my dissertation project that I hope to <strong>finish for the 2th June</strong> as last day for deadline on this course.</p><h3><span style="color: #993300;">An introduction&nbsp;reminder</span></h3><p>FreeStation is a program built for help to distribute easy and reliable software and information on <strong>point of interest</strong> (POI).</p><p>Basically, a POI is huge device that you can find on&nbsp;universities, libraries, hospitals, police stations, train stations, etc.</p><p>For example, this are a couple of images of POIs:</p><div id="attachment_1203" class="wp-caption aligncenter" style="width: 460px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/view-poi-dni-reduced.jpg"><img class="size-full wp-image-1203" title="DNI POI on police station" src="http://shakaran.net/blog/wp-content/uploads/2012/04/view-poi-dni-reduced.jpg" alt="DNI POI on police station" width="450" height="600" /></a><p class="wp-caption-text">DNI POI on police station</p></div><p>This is POI on a police station for perform changes with a DNI (National Idenfication Document on Spain). It shows a keyboard, trackball and DNI card reader for easy operations with <strong>credential authentication</strong> using DNI.</p><p>It has normal power connection but it also&nbsp;has <strong>internet connection</strong> for load data. On the following image:</p><div id="attachment_1205" class="wp-caption aligncenter" style="width: 460px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/front-poi-dni-reduced.jpg"><img class="size-full wp-image-1205" title="Front detail of DNI POI on a police station" src="http://shakaran.net/blog/wp-content/uploads/2012/04/front-poi-dni-reduced.jpg" alt="Front detail of DNI POI on a police station" width="450" height="338" /></a><p class="wp-caption-text">Front detail of DNI POI on a police station</p></div><p>As you can apreciate, it shows with more details a screen showing input boxes for the user and a <strong>simple interface</strong> with buttons. The&nbsp;height POI is adjusted to&nbsp;people&nbsp;in wheelchairs (a laudable&nbsp;feature for accessibility).</p><p>Another example of POI:</p><div id="attachment_1207" class="wp-caption aligncenter" style="width: 460px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/poi-adif-train-station-reduced.jpg"><img class="size-full wp-image-1207" title="Adif POI on a train station" src="http://shakaran.net/blog/wp-content/uploads/2012/04/poi-adif-train-station-reduced.jpg" alt="Adif POI on a train station" width="450" height="600" /></a><p class="wp-caption-text">Adif POI on a train station</p></div><p>This image corresponds to another POI on a Adif&#8217;s train station. It has a <strong>different design</strong>, totally vertical with a big screen rotated. Unfortunaly when I take the photo it was turned off, but I think that it is a tactil screen model with internet connection too.</p><p>It incorporates a audio system maybe <strong>useful for blind people</strong> and as possible confirmation for using audio notification. Sadly, it is enough high for wheelchairs people, so maybe the only functions could be a information panel with low interaction. I can&#8217;t ensure this, because I never can see running this POI when I travel.</p><p>Finally another radical example of POI (three different examples should be enough for ilustrate my point):</p><div id="attachment_1208" class="wp-caption aligncenter" style="width: 460px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/poi-sescam-hospital-reduced.jpg"><img class="size-full wp-image-1208" title="SESCAM POI on a hospital" src="http://shakaran.net/blog/wp-content/uploads/2012/04/poi-sescam-hospital-reduced.jpg" alt="SESCAM POI on a hospital" width="450" height="600" /></a><p class="wp-caption-text">SESCAM POI on a hospital</p></div><p>This is another interesting POI that has a <strong>intercommunication phone</strong> for direct assistance, keyboard, tracball mouse and sanitary card reader. It also has a tray as printer for deliver useful data to the user. Sadly, when I take the photo the POI also is turned off.</p><p>So, this is only a reduced set of examples of a <strong>huge variety</strong> of POIs. Usually you can find the same model for each same hospital, train station, police station, university, etc. Each model runs practically the same model of software and hardware features. But, when the time past, it is highly probably that some POIs have breakdows,&nbsp;energy loss, software bugs, unconsistence of versions, etc.</p><p>So, FreeStation try to <strong>repair and unify</strong> this problems for offer a kindly solution, because it is important deploy same versions between POIs, recieve notifications when a POI it is offline for a breakdown, auto-restart the POI if some hard bug happens, etc.</p><h3><span style="color: #993300;">Architecture</span></h3><p>The Freestation architecture is mainly based on <strong>client-server model</strong>. Each component is easy to tweak or customize and it doesn&#8217;t require technical knowledge for diary use.</p><div id="attachment_1214" class="wp-caption aligncenter" style="width: 458px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/infraestructure.png"><img class=" wp-image-1214  " title="Architecture - Server and clients infrastructure" src="http://shakaran.net/blog/wp-content/uploads/2012/04/infraestructure.png" alt="Architecture - Server and clients infrastructure" width="448" height="336" /></a><p class="wp-caption-text">Architecture - Server and clients infrastructure</p></div><p>Let me introduce you the architecture with real screenshots of the application and some diagrams.</p><h3><span style="color: #993300;">Server architecture</span></h3><p>FreeStation server runs over a <strong>software stack</strong>&nbsp;consisting of several technologies and components. It handles all the communication with every client.</p><p>It has a friendly webserver GUI panel administration based on PHP + Javascript.</p><div id="attachment_1209" class="wp-caption aligncenter" style="width: 446px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-gui.png"><img class=" wp-image-1209   " title="FreeStation Server Webserver GUI" src="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-gui.png" alt="FreeStation Server Webserver GUI" width="436" height="321" /></a><p class="wp-caption-text">FreeStation Server Webserver GUI</p></div><p>As you can see, you can start/stop/restart the server, see real status and different useful output logs for<strong> analyce and diagnose</strong> whatever event.</p><p>It allows easily make the common tasks for <strong>deploy and configure</strong> a high amount of clients with POIs.</p><p>Under the webserver GUI, it runs a daemon process as backend based on python. Each action and task is handled internally and <strong>dispatched on fast way</strong>.</p><p>The backend can make asynchronous&nbsp;communication with clients. For that the <a title="Install ZeroC Ice for Python on Centos" href="http://shakaran.net/blog/2012/02/instalar-zeroc-ice-para-python-en-centos-5-7/" target="_blank">backend uses ICE</a> (Internet Comunication Engine of <a title="Zero C Ice" href="http://zeroc.com" target="_blank">ZeroIce</a>).</p><p>This allows a reliable and robust way to <strong>transfer huge information datasets</strong> between a big amount of clients and the server.</p><p>For example, you also can see a list of current clients handled by the server with stats:</p><div id="attachment_1210" class="wp-caption aligncenter" style="width: 445px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-clients.png"><img class=" wp-image-1210   " title="FreeStation Server GUI - List of clients" src="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-clients.png" alt="FreeStation Server GUI - List of clients" width="435" height="298" /></a><p class="wp-caption-text">FreeStation Server GUI - List of clients</p></div><p>The list shows each client hostname, IP address, last connection, requests, status and some actions for each client. You can add/remove/edit clients and <strong>all the data associated</strong> with a clients would be updated.</p><h3><span style="color: #993300;">Client architecture</span></h3><p>A client run only on a POI and <strong>periodically poll</strong>&nbsp;to the server for updates or information. Clients need a specification for deploy widgets and the data associated for each widget.</p><p>A widget on Freestation terminology is a abstract element that <strong>performs a atomic operation</strong> and provides communication for the data handled inside the widget.</p><p>For complex operations a widget could associate with more widgets for perform a sofisticated task or simply commnicate data with other widgets. The widgets only run on clients, but all them are configured only from a server.</p><p>This describe a&nbsp;<strong>orchestra model</strong> where the server acts like a manager and clients with widgets acts like a&nbsp;choir.</p><p>That means that a client only can communicate with the server and it is not allowed the communication between clients. But this can be easily a <a title="SPOF - Single Point Of Failure" href="http://es.wikipedia.org/wiki/Single_point_of_failure" target="_blank">SPOF</a> (Single Point Of Failure) for server. So, it is planned on a future allow several masters servers as failover and syncronize and replicate data between masters.</p><p>In other hand, an a server, you have a list of widgets available to configure on a client.</p><div id="attachment_1211" class="wp-caption aligncenter" style="width: 468px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-widgets.png"><img class=" wp-image-1211    " title="FreeStation Server GUI - List of total widgets" src="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-widgets.png" alt="FreeStation Server GUI - List of total widgets" width="458" height="334" /></a><p class="wp-caption-text">FreeStation Server GUI - List of total widgets</p></div><p>For example, you can choose deploy and configure a USB Storage widget and a Mount Device widget on a client. That widgets could associate operations for list several files of books about medicine. When the user pick a set and choose save to a usb key, the Mount Device detect the usb key and usb&nbsp;storage widget write the data. The result it is a happy user that obtain the needed information quickly and without problems.</p><div id="attachment_1212" class="wp-caption aligncenter" style="width: 447px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-associate-widget.png"><img class=" wp-image-1212   " title="FreeStation Server - Associate widget to client" src="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-associate-widget.png" alt="FreeStation Server - Associate widget to client" width="437" height="299" /></a><p class="wp-caption-text">FreeStation Server - Associate widget to client</p></div><p>&nbsp;</p><p>You can associate the needed widgets for a client and configure/edit each widget with custom params (for example, only allow 5 items for save on Mount Device):</p><div id="attachment_1213" class="wp-caption aligncenter" style="width: 527px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-configure-widget.png"><img class=" wp-image-1213   " title="FreeStation Server - Configure Widget for a client" src="http://shakaran.net/blog/wp-content/uploads/2012/04/freestation-server-configure-widget.png" alt="FreeStation Server - Configure Widget for a client" width="517" height="354" /></a><p class="wp-caption-text">FreeStation Server - Configure Widget for a client</p></div><p>Another example, you can choose a Video widget and display a video on POI for idle mode. When the user touch or interact with the POI, you can load a Browser Widget with a concrete webpage. Additionally as some institution you can choose a simple logo widget for display your institution logo on screen.</p><p>When a client is totally configured, then can be deployed on POI (normal desktop computer customized). A simple example of client screen deployed:</p><p>&nbsp;</p><div id="attachment_1216" class="wp-caption aligncenter" style="width: 578px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/welcome-client-widgets.png"><img class=" wp-image-1216  " title="FreeStation Client - Welcome wigdets configured" src="http://shakaran.net/blog/wp-content/uploads/2012/04/welcome-client-widgets.png" alt="FreeStation Client - Welcome wigdets configured" width="568" height="389" /></a><p class="wp-caption-text">FreeStation Client - Welcome wigdets configured</p></div><p>There are not limit defining or using new widgets. So in theory, the <strong>widget model scale</strong> for each custom need for a institution.</p><h3><span style="color: #993300;">Free &amp; easy&nbsp;to scale to&nbsp;your&nbsp;needs</span></h3><p>With FreeStation some basic <strong>widgets are offered</strong>, but on the future, it could has <strong>repository widgets</strong> associated, widget patners and offer a rich market for developers that they are interested on develop custom widgets for companies, institutions, hospitals.</p><p>Soon, I plan to release the code as AGPLv3 on Github. Still I need polish some widgets, finish a real demo case for my dissertation and literally write a boring book with approximattelly 200 pages (currently, I have around 80 bad structure pages written).</p><p>So, the project is nearly to finish and with lucky I can finish before to 2th june deadline (and 15 th june official presentation) and finally has a big engineer diploma on my wall, yay!</p><p>Meanwhile, there are&nbsp;nearly two&nbsp;months of hard work, But&nbsp;shhh&nbsp;&#8230;&nbsp;I found a&nbsp;secret weapon <img src='http://shakaran.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>&nbsp;</p><div id="attachment_1218" class="wp-caption aligncenter" style="width: 410px"><a href="http://shakaran.net/blog/wp-content/uploads/2012/04/secret-hard-work-weapon.jpg"><img class="size-full wp-image-1218" title="Secret hard work weapon" src="http://shakaran.net/blog/wp-content/uploads/2012/04/secret-hard-work-weapon.jpg" alt="Secret hard work weapon" width="400" height="300" /></a><p class="wp-caption-text">Secret hard work weapon</p></div><p>&nbsp;</p><p>&nbsp;</p> <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/2012/04/freestation-a-little-sneak-peek/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <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> </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 1/78 queries in 0.043 seconds using memcached
Object Caching 1210/1419 objects using memcached

Served from: shakaran.net @ 2012-05-23 16:41:43 -->
