<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5704109791193957139</id><updated>2024-10-05T04:12:36.769+02:00</updated><category term="personal"/><category term="php"/><category term="vacaciones"/><category term="QT"/><category term="Linux"/><category term="OpenSuse"/><category term="Acid Rain"/><category term="Android"/><category term="MTB"/><category term="amigos"/><category term="opinion"/><category term="symfony"/><category term="zend framework"/><category term="Armaño"/><category term="frameworks"/><category term="programación"/><category term="qml"/><category term="C++"/><category term="dropbox"/><category term="noche vieja"/><category term="qt5"/><category term="situación del sector"/><category term="uml"/><category term="ArgoUml"/><category term="Atom"/><category term="Eclipse"/><category term="Foxconn"/><category term="IDE"/><category term="OBS"/><category term="PDT"/><category term="Potes"/><category term="Qt Android Extras"/><category term="SQL"/><category term="TTS"/><category term="Text to Speech"/><category term="XBMC"/><category term="Zotac"/><category term="app"/><category term="dfilebrowser"/><category term="qt quick controls"/><category term="running"/><category term="CASE"/><category term="CodeIgniter"/><category term="EN"/><category term="Google Play"/><category term="Ion"/><category term="Joomla"/><category term="MyFartlek"/><category term="Netbeans"/><category term="Nokia"/><category term="Nvidia"/><category term="Odyssey"/><category term="Open-PC"/><category term="PHPUnit"/><category term="Planet QT"/><category term="Porcieda"/><category term="Programación heroica"/><category term="QT Creator"/><category term="RoR"/><category term="Sports Traker"/><category term="Sweet Home 3d"/><category term="Transifex"/><category term="Trolltech"/><category term="beta"/><category term="curl"/><category term="decompiler"/><category term="facebook"/><category term="fartlek"/><category term="framework"/><category term="google glasses"/><category term="ingenieria del software"/><category term="jad"/><category term="java"/><category term="kde"/><category term="kdropbox"/><category term="mapas"/><category term="mda"/><category term="media maratón"/><category term="modelado"/><category term="notebooks"/><category term="phpDocumentor"/><category term="propel"/><category term="qtlocation"/><category term="retroinformática"/><category term="software"/><category term="startup"/><category term="subversion"/><category term="tecnología"/><category term="traducción"/><category term="trol"/><category term="web 2.0"/><category term="yaml"/><title type='text'>Combatiendo al byte rebelde</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>80</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-252826948289810487</id><published>2014-02-23T19:09:00.001+01:00</published><updated>2014-02-23T19:12:57.409+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="app"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><category scheme="http://www.blogger.com/atom/ns#" term="MyFartlek"/><title type='text'>Primera versión de MyFartlek en Google Play ¡A correr!</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmw5av9G0wzVzdaZ2oQEEgq45bJVGvCHRDa68iRQAgM0S2FlbBPsoPtwL_KNA39qrfSiddYNOX5Vos39WZJPhnxzl7pflZyyMpGxCNVVS0kbLbLiWDt7rh4L2QezqC4i1bUlVvRM7pLOGE/s1600/Screenshot_2014-02-23-00-40-38.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmw5av9G0wzVzdaZ2oQEEgq45bJVGvCHRDa68iRQAgM0S2FlbBPsoPtwL_KNA39qrfSiddYNOX5Vos39WZJPhnxzl7pflZyyMpGxCNVVS0kbLbLiWDt7rh4L2QezqC4i1bUlVvRM7pLOGE/s1600/Screenshot_2014-02-23-00-40-38.png&quot; height=&quot;320&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
La primera versión de MyFartlek ya esta disponible en &lt;a href=&quot;https://play.google.com/store/apps/details?id=es.deuteros.MyFartlek&amp;amp;ah=ZygBfGK1B5URZE4t9KYcQJ_51oc&quot; target=&quot;_blank&quot;&gt;Google Play&lt;/a&gt; para teléfonos con Android 4.0 o superior.&lt;br /&gt;
&lt;br /&gt;
Con esta app puedes entrenar tus fartleks sin preocuparte de mirar 
continuamente el crono ni de llevar la cuenta de la ronda en la que 
estás. Tu teléfono te avisará al inicio de cada fase de la duración de 
esta y el ritmo que debes llevar.&amp;nbsp; Además, podrás crear todos los 
fartleks que quieras y después elegir cuál hacer.&lt;br /&gt;
&lt;br /&gt;
Hace un par de meses empecé a interesarme por los fartleks. Cuando salía
 a correr de esta manera, tenía que tener en la cabeza toda la sesión y 
además descubrí que miraba constantemente el crono para ver si me tocaba
 cambiar el ritmo.&lt;br /&gt;
&lt;br /&gt;
Así fue como decidí hacer una app que me 
alertara cuando tocase un cambio de ritmo y, de paso, me permitiera 
despreocuparme de tener todo el plan memorizado.&lt;br /&gt;
&lt;br /&gt;
Características:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Creación y edición de Fartleks y sus respectivas fases&lt;/li&gt;
&lt;li&gt;Avisos por voz al inicio de cada fase del fartlek&lt;/li&gt;
&lt;li&gt;Generación&amp;nbsp; automática del comando de voz a escuchar en función del tiempo de duración y ritmo a llevar en el fartlek&lt;/li&gt;
&lt;li&gt;Disponible en inglés y español&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Fondos de pantalla a elegir para cada fartlek. Bueno esto no era indispensable para correr, pero queda chulo :)&lt;/li&gt;
&lt;/ul&gt;
MyFartlek es una app que he hecho para mi propio uso así que espero que os guste.﻿&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Descargar &lt;a href=&quot;https://play.google.com/store/apps/details?id=es.deuteros.MyFartlek&amp;amp;ah=ZygBfGK1B5URZE4t9KYcQJ_51oc&quot; target=&quot;_blank&quot;&gt;MyFartlek 1.0.0&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/252826948289810487/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/252826948289810487' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/252826948289810487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/252826948289810487'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2014/02/primera-version-de-myfartlek-en-google.html' title='Primera versión de MyFartlek en Google Play ¡A correr!'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmw5av9G0wzVzdaZ2oQEEgq45bJVGvCHRDa68iRQAgM0S2FlbBPsoPtwL_KNA39qrfSiddYNOX5Vos39WZJPhnxzl7pflZyyMpGxCNVVS0kbLbLiWDt7rh4L2QezqC4i1bUlVvRM7pLOGE/s72-c/Screenshot_2014-02-23-00-40-38.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-2404273975007328144</id><published>2014-02-16T11:33:00.000+01:00</published><updated>2014-12-04T15:58:38.949+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="app"/><category scheme="http://www.blogger.com/atom/ns#" term="beta"/><category scheme="http://www.blogger.com/atom/ns#" term="EN"/><category scheme="http://www.blogger.com/atom/ns#" term="fartlek"/><category scheme="http://www.blogger.com/atom/ns#" term="qml"/><category scheme="http://www.blogger.com/atom/ns#" term="running"/><title type='text'>Are you a runner? Try MyFartlek!</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjNkM0SwW_YbGaMEIv5Had3zpNO_jiFyclm85qB9e_9j3gz2speeEbO3mBmrZplvlEkia_rCGXQOngzDUiPkaToN3H-XQ9h_LNXGZrmh9EPsNLOXXT4gtW_HgNB_O8bSqHVh-9roK90H3r/s1600/Screenshot_2014-02-16-11-05-54.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt; &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTXxCDotfop1iTexndB6fcKrXMaC5TzDLx0BBEPTwiIFc6Xsbofn5v6LWxdEK0QpvIwey-62ahJyIc6Iea1n-Pz7RwJHGcMYRZN1kzm10uhgQytirQYijoxCyjjlfO5Ho1ve8lq09vZEdx/s1600/Screenshot_2014-02-16-11-31-30.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTXxCDotfop1iTexndB6fcKrXMaC5TzDLx0BBEPTwiIFc6Xsbofn5v6LWxdEK0QpvIwey-62ahJyIc6Iea1n-Pz7RwJHGcMYRZN1kzm10uhgQytirQYijoxCyjjlfO5Ho1ve8lq09vZEdx/s1600/Screenshot_2014-02-16-11-31-30.png&quot; height=&quot;320&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#39;m working on a QML app for runners. Some weeks ago I tried to train 
doing fartlek sessions and I realized I was continuously looking to my 
watch checking for the next period. So I decided to make an app featuring 
voice alerts to order when to change my pace.&lt;br /&gt;
&lt;br /&gt;
Yesterday I uploaded a beta to Google Play and is available to test through the linked G+ group.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope somebody of you will like it.﻿&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://plus.google.com/u/0/communities/116780908692376524180&quot; target=&quot;_blank&quot;&gt;Try MyFartlek 0.9.2 Beta &lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/2404273975007328144/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/2404273975007328144' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/2404273975007328144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/2404273975007328144'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2014/02/are-you-runner-try-myfartlek.html' title='Are you a runner? Try MyFartlek!'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTXxCDotfop1iTexndB6fcKrXMaC5TzDLx0BBEPTwiIFc6Xsbofn5v6LWxdEK0QpvIwey-62ahJyIc6Iea1n-Pz7RwJHGcMYRZN1kzm10uhgQytirQYijoxCyjjlfO5Ho1ve8lq09vZEdx/s72-c/Screenshot_2014-02-16-11-31-30.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-213809654009074592</id><published>2014-02-07T18:19:00.000+01:00</published><updated>2014-02-26T17:29:34.102+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Planet QT"/><category scheme="http://www.blogger.com/atom/ns#" term="qml"/><category scheme="http://www.blogger.com/atom/ns#" term="QT"/><category scheme="http://www.blogger.com/atom/ns#" term="Qt Android Extras"/><category scheme="http://www.blogger.com/atom/ns#" term="Text to Speech"/><category scheme="http://www.blogger.com/atom/ns#" term="TTS"/><title type='text'>Calling Android&#39;s Text to Speech from QT 5.2. An example of QT Android Extras</title><content type='html'>&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;en&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;hps&quot;&gt;I wrote &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;this post (in Spanish) a couple of weeks ago as a reminder&lt;/span&gt; just in case I have to do something similar in the future&lt;span class=&quot;hps&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Sometimes&lt;/span&gt; I found &lt;span class=&quot;hps&quot;&gt;QT&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;documentation&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;is not all&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;good&amp;nbsp; I would desire and with &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Android&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;Extras I&lt;/span&gt;&amp;nbsp;had to spend quite a lot of&lt;span class=&quot;hps&quot;&gt; time to solve some problems.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;What I wanted to&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;do is&lt;/span&gt; to &lt;span class=&quot;hps&quot;&gt;call &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;Adroid&#39;s TexToSpeech&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;from&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;QT&lt;/span&gt; so I used &lt;span class=&quot;hps&quot;&gt;QtAndroidExtras&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;&lt;a href=&quot;http://qt-project.org/doc/qt-5/qtandroidextras-index.html&quot; target=&quot;_blank&quot;&gt;documentation &lt;/a&gt;as a reference&lt;/span&gt;, this &lt;a href=&quot;http://qt-project.org/doc/qt-5/qtandroidextras-notification-example.html&quot; target=&quot;_blank&quot;&gt;example &lt;/a&gt;&lt;span class=&quot;hps&quot;&gt;of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;notifications&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and this &lt;a href=&quot;http://www.qtcentre.org/threads/56925-Calling-Android-s-TextToSpeech-functionality-from-Qt&quot; target=&quot;_blank&quot;&gt;post &lt;/a&gt;of&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;someone else&lt;/span&gt; trying to&lt;span class=&quot;hps&quot;&gt; do the same&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;hps&quot;&gt;At the beginning, it seemed&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;enough to me&lt;/span&gt;, in fact, changing &lt;span class=&quot;hps&quot;&gt;a little the notification&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;example with some &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;code from the QT forum&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;should have been a good solution&lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;But the guy&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;on the forum&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;did not have a&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;working code&lt;/span&gt;, he&lt;span class=&quot;hps&quot;&gt;&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;asked for help&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;and there was no &lt;/span&gt;&lt;span class=&quot;hps&quot;&gt;response.&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;On the other hand,&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;the&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;sample code in&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;QT&lt;/span&gt; notification example &lt;span class=&quot;hps&quot;&gt;calls a static&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;method and&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;I wanted to create&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;a Java class that&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;inherited&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;TextToSpeech&lt;/span&gt; &lt;span class=&quot;hps atn&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;&quot;&gt;something that in the end&lt;/span&gt; &lt;span class=&quot;hps&quot;&gt;I did not get&lt;/span&gt;&lt;span class=&quot;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
As I said before, these are a set of notes I want to keep regarding some problems I found and how I solved them. So, the format is something like a personal notes, a FAQ or if you prefer, a conversation with myself.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. I usually write code in QT but I have no experience as Android programmer.&lt;/b&gt;&lt;br /&gt;
Well, there is no solution for this. The only thing is to google searching for examples. Anyway, I wrote the resources I used at the beginning of this post.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. After studying the examples, I see it is required to have access to the activity context so, it is necessary to create an object from a class with an activity context parameter in his constructor.&lt;/b&gt;&lt;br /&gt;
Your new class should extend QtActivity, it will provide the proper context when you invoke TextToSpeech class.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. But it is required to implement onListener in my class and it is already inheriting QtActivity&lt;/b&gt;!&lt;br /&gt;
No problem, you can do both things at the same time:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;public class TestAndroidClient extends QtActivity implements TextToSpeech.OnInitListener
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4. I&#39;ve created my class but I don&#39;t know the correct location in the file tree, moreover it isn&#39;t included in the apk when the project is build.&lt;/b&gt;&lt;br /&gt;
See the notification example and make a similar structure. At your project&#39;s root folder create a directory called &lt;i&gt;android-source&lt;/i&gt; and a &lt;i&gt;src &lt;/i&gt;one within it. From the last one you should have the rest of the structure for your java files, i.e. &amp;nbsp;org/qtproject/example/your-app-name/YourClass.java&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDmt3uOiarUVs_ZNAhzG_kVwIrJWOqez9fd1-pmk8jKHQKVcom64k4u3cHuznQw5hQZezx7RWCstCDaKs-eu8XpbPH99OCIBFlKqaGzBIFHWiUvCh09QQaFX0cX4POGq7R2_o8VBp0DBX/s1600/androdi+source.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDmt3uOiarUVs_ZNAhzG_kVwIrJWOqez9fd1-pmk8jKHQKVcom64k4u3cHuznQw5hQZezx7RWCstCDaKs-eu8XpbPH99OCIBFlKqaGzBIFHWiUvCh09QQaFX0cX4POGq7R2_o8VBp0DBX/s1600/androdi+source.png&quot; height=&quot;600&quot; width=&quot;640&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Be sure to have these two lines in your project&#39;s .pro:&lt;br /&gt;
&lt;br /&gt;
QT+=android-extras&lt;br /&gt;
ANDROID_PACKAGE_SOURCE_DIR&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;=&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;$$&lt;span style=&quot;color: purple;&quot;&gt;PWD&lt;/span&gt;/android-source&lt;br /&gt;
&lt;br /&gt;
Check the build directory (normally named build-xxxx) for your class file. In linux you can use find:&lt;br /&gt;
&lt;br /&gt;
find . -name YourClass.java&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-R6QEiNQ6bb9QnIwYHaRo02oIGSqq85KKtc7jG68Os0Kig8z_45orWsio16MfhMOkME6Br3KW4lFmNC6qspzNE6oyG1Acj6c0UAYbF-Oog6HO9zzeNC89qRavZgfWvvjsDtJWMSKyAy9i/s1600/find+java+class.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-R6QEiNQ6bb9QnIwYHaRo02oIGSqq85KKtc7jG68Os0Kig8z_45orWsio16MfhMOkME6Br3KW4lFmNC6qspzNE6oyG1Acj6c0UAYbF-Oog6HO9zzeNC89qRavZgfWvvjsDtJWMSKyAy9i/s1600/find+java+class.png&quot; height=&quot;98&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5. When I launch the application it crashes and closes without showing any exception report and the error is previous to my class invocation.&lt;/b&gt;&lt;br /&gt;
Maybe this is because the class is not found. Check your manifest.xml and look your activity tag, it should point to your class&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot; name=&quot;code&quot;&gt;&lt;manifest android:installlocation=&quot;auto&quot; android:versioncode=&quot;1&quot; android:versionname=&quot;1.0&quot; package=&quot;org.qtproject.example.testandroidextras&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;
    &lt;application android:label=&quot;@string/app_name&quot; android:name=&quot;org.qtproject.qt5.android.bindings.QtApplication&quot;&gt;
        &lt;activity android:configchanges=&quot;orientation|uiMode|screenLayout|screenSize|smallestScreenSize|locale|fontScale|keyboard|keyboardHidden|navigation&quot; android:label=&quot;Qt Test&quot; android:name=&quot;org.qtproject.example.testandroidextras.TestAndroidClient&quot; android:screenorientation=&quot;unspecified&quot;&gt;
   
&lt;/activity&gt;&lt;/application&gt;&lt;/manifest&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;6. But I want to write a class that inherits TextToSpeech so everything would be more object oriented.&lt;/b&gt;&lt;br /&gt;
Well... I don&#39;t have a solution for this. To tell the truth I failed to do a non static method, furthermore I haven&#39;t found an example doing that.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7. I&#39;m trying a call my static method from the C++ code and nothing happens.&lt;/b&gt;&lt;br /&gt;
Take a look to your parameters signature. It is also important to use the right javaobject from C++to being recognised by the Java function. Having the following Java function:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot; name=&quot;code&quot;&gt;    public static void test(String msg)
    {
        System.out.println(msg );
        tts.speak(msg, TextToSpeech.QUEUE_FLUSH, null);

    }
&lt;/pre&gt;
&lt;br /&gt;
The appropriate C++ call will be:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: c++&quot; name=&quot;code&quot;&gt;    QAndroidJniObject javaMessage = QAndroidJniObject::fromString(msg);
    QAndroidJniObject::callStaticMethod&lt;void&gt;(&quot;org/qtproject/example/testandroidextras/TestAndroidClient&quot;,
                                              &quot;test&quot;,
                                              &quot;(Ljava/lang/String;)V&quot;,
                                              javaMessage.object&lt;jstring&gt;());
&lt;/jstring&gt;&lt;/void&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;8. I need a example!!&lt;/b&gt;&lt;br /&gt;
Ok, you can grab the source code from&amp;nbsp;&lt;a href=&quot;https://github.com/deuteros76/qt-android-extras-text-to-speech&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/213809654009074592/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/213809654009074592' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/213809654009074592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/213809654009074592'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2014/02/calling-androids-text-to-speech-from-qt.html' title='Calling Android&#39;s Text to Speech from QT 5.2. An example of QT Android Extras'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDmt3uOiarUVs_ZNAhzG_kVwIrJWOqez9fd1-pmk8jKHQKVcom64k4u3cHuznQw5hQZezx7RWCstCDaKs-eu8XpbPH99OCIBFlKqaGzBIFHWiUvCh09QQaFX0cX4POGq7R2_o8VBp0DBX/s72-c/androdi+source.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-3610149646328392411</id><published>2014-01-10T18:16:00.003+01:00</published><updated>2014-01-10T18:44:02.141+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="qml"/><category scheme="http://www.blogger.com/atom/ns#" term="QT"/><category scheme="http://www.blogger.com/atom/ns#" term="Qt Android Extras"/><category scheme="http://www.blogger.com/atom/ns#" term="Text to Speech"/><category scheme="http://www.blogger.com/atom/ns#" term="TTS"/><title type='text'>Un ejemplo de Qt Android Extras: usando el Text To Speech de Android</title><content type='html'>Escribo esto como recordatorio por si me vuelve a tocar hacerlo otra vez. A veces la documentación de QT no es todo lo extensa que uno querría y con los extras de Android me he tenido que pegar un buen rato. Lo que quería hacer es llamar a la clase TexToSpeech del SDK de Android desde QT y lo que tenía como referencia era la documentación de &lt;a href=&quot;http://qt-project.org/doc/qt-5/qtandroidextras-index.html&quot; target=&quot;_blank&quot;&gt;QtAndroidExtras&lt;/a&gt;, el &lt;a href=&quot;http://qt-project.org/doc/qt-5/qtandroidextras-notification-example.html&quot; target=&quot;_blank&quot;&gt;ejemplo &lt;/a&gt;de notificaciones que proporcionan y el intento de otra persona de hacer lo mismo que yo en un &lt;a href=&quot;http://www.qtcentre.org/threads/56925-Calling-Android-s-TextToSpeech-functionality-from-Qt&quot; target=&quot;_blank&quot;&gt;foro&lt;/a&gt; de QT.&lt;br /&gt;
&lt;br /&gt;
Parecía que era suficiente, de hecho, cambiando un poco el ejemplo de las notificaciones por el código del foro debería haber sido más que suficiente. Pero el tipo del foro no tenia un código funcional, el mismo pedía ayuda y no había respuesta. Por otro lado el código de ejemplo de QT no hace más que llamar a un método estático y yo quería crear una clase Java que heredase TextToSpeech (cosa que al final no conseguí).&lt;br /&gt;
&lt;br /&gt;
Pues bien, como decía, a modo de recordatorio dejaré una serie de problemas que me he encontrado y como los he ido sorteando. El formato del siguiente guión es el de notas mentales, o si lo preferís, un diálogo conmigo mismo.&lt;br /&gt;
&lt;br /&gt;
1. Me defiendo en QT pero no tengo ni idea de programar en el SDK de Android.&lt;br /&gt;
No&amp;nbsp; hay mucha solución a esto, o aprendes o te buscas la vida buscando ejemplos. Ya se han citado los ingredientes a utilizar.&lt;br /&gt;
&lt;br /&gt;
2. Se necesita crear un objeto de una clase en cuyo constructor toma como parámetro el contexto de la actividad. &lt;br /&gt;
La clase que escribas debe extender QtActivity, esta proporcionará el contexto a la hora de crear la otra, en este caso TextToSpeech.&lt;br /&gt;
&lt;br /&gt;
3. Pero necesito que mi clase implemente onListener y ya hereda QtActivity.&lt;br /&gt;
Bueno... una cosa no quita la otra:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot;&gt;public class TestAndroidClient extends QtActivity implements TextToSpeech.OnInitListener
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
4. He creado la clase java y no se dónde ponerla, de hecho creo que no se instala a través del apk&lt;br /&gt;
Fíjate en el ejemplo de las notificaciones y crea una estructura similar. En la raíz de tu proyecto crea un directorio llamado android-source y dentro de este otro con el nombre src. A partir de ahí tendrás los subsiguientes, por ejemplo: org/qtproject/example/nombre-de-tu-app/TuClase.java&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDmt3uOiarUVs_ZNAhzG_kVwIrJWOqez9fd1-pmk8jKHQKVcom64k4u3cHuznQw5hQZezx7RWCstCDaKs-eu8XpbPH99OCIBFlKqaGzBIFHWiUvCh09QQaFX0cX4POGq7R2_o8VBp0DBX/s1600/androdi+source.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDmt3uOiarUVs_ZNAhzG_kVwIrJWOqez9fd1-pmk8jKHQKVcom64k4u3cHuznQw5hQZezx7RWCstCDaKs-eu8XpbPH99OCIBFlKqaGzBIFHWiUvCh09QQaFX0cX4POGq7R2_o8VBp0DBX/s1600/androdi+source.png&quot; height=&quot;600&quot; width=&quot;640&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
Asegúrate de que en el .pro del proyecto están las siguientes líneas:&lt;br /&gt;
&lt;br /&gt;
QT+=android-extras&lt;br /&gt;
ANDROID_PACKAGE_SOURCE_DIR&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;=&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;$$&lt;span style=&quot;color: purple;&quot;&gt;PWD&lt;/span&gt;/android-source&lt;br /&gt;
&lt;br /&gt;
En linux, una vez constrido, puedes hacer en el directorio de construcción (build-xxxx) en un terminal:&lt;br /&gt;
&lt;br /&gt;
find . -name TuClase.java&lt;br /&gt;
&lt;br /&gt;
y comprobar que la ruta es la correcta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-R6QEiNQ6bb9QnIwYHaRo02oIGSqq85KKtc7jG68Os0Kig8z_45orWsio16MfhMOkME6Br3KW4lFmNC6qspzNE6oyG1Acj6c0UAYbF-Oog6HO9zzeNC89qRavZgfWvvjsDtJWMSKyAy9i/s1600/find+java+class.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-R6QEiNQ6bb9QnIwYHaRo02oIGSqq85KKtc7jG68Os0Kig8z_45orWsio16MfhMOkME6Br3KW4lFmNC6qspzNE6oyG1Acj6c0UAYbF-Oog6HO9zzeNC89qRavZgfWvvjsDtJWMSKyAy9i/s1600/find+java+class.png&quot; height=&quot;98&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Cuando trato de ejecutar la aplicación se cierra sin mostrar excepción y esto ocurre al llamar a mi clase.&lt;br /&gt;
Esto seguramente es porque no la encuentra. Comprueba que tienes creado el manifest.xml y que referencia correctamente a tu clase en un tag activity&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: xml&quot; name=&quot;code&quot;&gt;&lt;manifest android:installlocation=&quot;auto&quot; android:versioncode=&quot;1&quot; android:versionname=&quot;1.0&quot; package=&quot;org.qtproject.example.testandroidextras&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&gt;
    &lt;application android:label=&quot;@string/app_name&quot; android:name=&quot;org.qtproject.qt5.android.bindings.QtApplication&quot;&gt;
        &lt;activity android:configchanges=&quot;orientation|uiMode|screenLayout|screenSize|smallestScreenSize|locale|fontScale|keyboard|keyboardHidden|navigation&quot; android:label=&quot;Qt Test&quot; android:name=&quot;org.qtproject.example.testandroidextras.TestAndroidClient&quot; android:screenorientation=&quot;unspecified&quot;&gt;
   
&lt;/activity&gt;&lt;/application&gt;&lt;/manifest&gt;&lt;/pre&gt;
&lt;br /&gt;
6. Pero yo quiero hacer una clase que herede de TextToSpeech y que sea todo más dinámico.&lt;br /&gt;
Bueno pues no tengo solución para esto. De hecho, no he conseguido hacer una llamada que no sea estática a la clase Java creada. A decir verdad, tampoco he encontrado un ejemplo que lo haga.&lt;br /&gt;
&lt;br /&gt;
7. Estoy intentando llamar a un método estático desde el código C++ y sigo sin conseguirlo.&lt;br /&gt;
Hay que fijarse en la firma de los parámetros de entrada y salida. También es importante usar el javaobject correcto desde C++ para que la función Java lo reconozca. Si tienes la siguiente función en java:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: java&quot; name=&quot;code&quot;&gt;    public static void test(String msg)
    {
        System.out.println(msg );
        tts.speak(msg, TextToSpeech.QUEUE_FLUSH, null);

    }
&lt;/pre&gt;
&lt;br /&gt;
La correspondiente llamada en C+++ será:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: c++&quot; name=&quot;code&quot;&gt;    QAndroidJniObject javaMessage = QAndroidJniObject::fromString(msg);
    QAndroidJniObject::callStaticMethod&lt;void&gt;(&quot;org/qtproject/example/testandroidextras/TestAndroidClient&quot;,
                                              &quot;test&quot;,
                                              &quot;(Ljava/lang/String;)V&quot;,
                                              javaMessage.object&lt;jstring&gt;());
&lt;/jstring&gt;&lt;/void&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, el código fuente lo podéis encontrar en &lt;a href=&quot;https://github.com/deuteros76/qt-android-extras-text-to-speech&quot; target=&quot;_blank&quot;&gt;GitHub &lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/3610149646328392411/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/3610149646328392411' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3610149646328392411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3610149646328392411'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2014/01/un-ejemplo-de-qt-android-extras-usando.html' title='Un ejemplo de Qt Android Extras: usando el Text To Speech de Android'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDmt3uOiarUVs_ZNAhzG_kVwIrJWOqez9fd1-pmk8jKHQKVcom64k4u3cHuznQw5hQZezx7RWCstCDaKs-eu8XpbPH99OCIBFlKqaGzBIFHWiUvCh09QQaFX0cX4POGq7R2_o8VBp0DBX/s72-c/androdi+source.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-5854549400652822751</id><published>2013-12-30T20:47:00.000+01:00</published><updated>2013-12-30T20:47:00.236+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="google glasses"/><category scheme="http://www.blogger.com/atom/ns#" term="tecnología"/><title type='text'>Un par de horas con las Google Glasses</title><content type='html'>Resulta que ha llegado a la oficina un prototipo de las famosas gafas de Google, así que me he puesto a jugar con ellas. Tengo que decir por una lado que me lo he pasado bien, como con cualquier trasto tecnológico que pasa por mis manos, pero también aviso que soy mas bien un detractor de las mismas desde antes de probarlas.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWhTGwHd7gMRXeId7SOFgoJRQZSXEUZaLXLZOeFtsC1cigq3pypAZ7IcsACoVf0gbksiI2vFJJ0HgElW_KPqu2faUjgPSjHVlsHHjz7k1WhYR3V0GApgCnI0QGDKVUU2zk2gTpYywv8eGd/s1600/DSC_0385%5B1%5D.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWhTGwHd7gMRXeId7SOFgoJRQZSXEUZaLXLZOeFtsC1cigq3pypAZ7IcsACoVf0gbksiI2vFJJ0HgElW_KPqu2faUjgPSjHVlsHHjz7k1WhYR3V0GApgCnI0QGDKVUU2zk2gTpYywv8eGd/s320/DSC_0385%5B1%5D.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Guille Glasses vs Google Glasses&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h3&gt;
El prisma &lt;/h3&gt;
Siempre que he visto a alguien haciendo uso de las gafas, me ha dado la impresión de que no debe ser muy cómodo sostener la mirada continuadamente sobre el prisma y ciertamente no lo es, te cansas. En su favor puedo decir que mirando durante unos pocos segundos la imagen es lo suficientemente nítida y no tienes la sensación de estar mirando un punto excesivamente cercano. Pero repito, por encima de unos 20-30 segundos empiezas a tener sensación de cansancio.&lt;br /&gt;
&lt;br /&gt;
No te esperes una gran resolución ni un gran contraste. El prisma no da para más y, aunque puedes ver fotos de forma aceptable, salta a la vista que las apps de Google eligen cuidadosamente los colores a utilizar. Por ejemplo, en la aplicación de navegación veremos fondos negros, letras blancas y lineas azules para orientarnos.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Hablando con las gafas&lt;/h3&gt;
Llegado el momento de interaccionar con ellas, habrá que hacerlo en inglés (de momento) y con un acento mínimamente aceptable. El problema se acrecienta cuando intentas una llamada o vídeo llamada y tienes que interpretar como se pronuncia en inglés el nombre de la otra persona. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
- &quot;Ok Glass&quot;&lt;br /&gt;
- &quot;Make a video call&quot;&lt;br /&gt;
- &quot;Guillermo Amat&quot;&lt;br /&gt;
&lt;br /&gt;
Pues tendrás que imaginarte como diría un estadounidense el nombre Guillermo Amat. Como comprenderás haciendo este tipo de pruebas uno se siente un poco inútil, así que me he encerrado en un despacho para no dar un espectáculo a los compañeros. Tras unas cuantas pruebas consigues decir el nombre de fulanito como si fueses guiri, aunque seguirá siendo difícil repetirlo.&lt;br /&gt;
&lt;br /&gt;
Pero lo más frustrante (y divertido de paso) ha sido descubrir que no sé decir &quot;Google&quot;, debo haberlo intentado unas cincuenta veces y lo he logrado decir bien una. No he tenido problemas con el resto de las opciones: &quot;make a call&quot;, &quot;get directions&quot;, &quot;take a picture&quot;, &quot;record a video&quot;, etc. ¡Pero no sé decir Google! ¡Es el colmo! Así que he tenido que acceder al buscador mediante el touchpad para probar a buscar cosas, y entonces la diversión ha seguido ¡No se pronunciar Sean Penn!&lt;br /&gt;
&lt;br /&gt;
- &quot;Who is Sean Penn&quot;&lt;br /&gt;
Google: Who is something&lt;br /&gt;
&lt;br /&gt;
- &quot;Who is Sean Penn&quot;&lt;br /&gt;
Google: Who is some pain&lt;br /&gt;&lt;br /&gt;
- &quot;Who is Sean Penn&quot;&lt;br /&gt;
Google: Who is same song&lt;br /&gt;
&lt;br /&gt;
Y unos cuantos intentos más que no recuerdo. Así que cambié de actor:&lt;br /&gt;
&lt;br /&gt;
- &quot;How old is Tom Cruise&quot;&lt;br /&gt;
Google: How tall is Tom Cruise. Y a continuación mostraba un listado de imágenes de Tom Cruise en las que siempre estaba al lado de alguien ¿Recochineo? Al menos esto me funcionó al siguiente intento.&lt;br /&gt;
&lt;br /&gt;
De acuerdo, esto no es un punto en contra del dispositivo, ya que cuando se comercialicen en nuestro país estarán preparadas para nuestro idioma. Realmente la interacción por voz es bastante buena y si no te aclaras puedes usar el área táctil de la patilla.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
El Touchpad&lt;/h3&gt;
No hay mucho que decir aquí, en la patilla tenemos un touchpad con el que podremos navegar por todas las opciones, simplemente hay que aprenderse los gestos a utilizar.&lt;br /&gt;
&lt;br /&gt;
Tal vez pienses que no es obligatorio usarlo, que realmente puedes usar el dispositivo realizando todas las acciones mediante voz, pues no es así. Te hará falta darle un toque al pad para colgar una llamada o detener un vídeo, por ejemplo. Otras acciones también lo requerirán, como la navegación por ciertos menús.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
El &quot;auricular&quot; &lt;/h3&gt;
Técnicamente el auricular no existe, hay un elemento que vibra en contacto con tu cabeza, aunque de todos modos si no las llevas puestas algo se oye. Al principio he tenido la sensación de que las vibraciones se me introducían por la sien pero al rato se me ha olvidado por completo. De nuevo es cuestión de adaptarse. En la práctica, cuando estés en una llamada, el sonido que percibirás será de una calidad aproximadamente similar a la de un teléfono. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
La cámara&amp;nbsp; &lt;/h3&gt;
Bueno, no es nada del otro mundo. Cumple su cometido pero si quieres sacar una buena foto no uses las gafas. Además si quieres enfocar a algo cercano tendrás que practicar un poco, la idea en la foto de abajo era sacar el portalápices y el vaso completamente centrados. En cuanto a la grabación de vídeo puede ser divertido grabar un descenso en bicicleta de montaña (por decir algo) pero deberías tener en cuenta que si te la pegas llevas 1500$ sobre las orejas.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6OWeKSkUjDZZ5rK-06a4UbEEFgxAq_KuQdXodqVCCub0uWBndvhoA3SysDgKw78x6LAYNjUQ0Qtb0ISG5BaInwjaSd-AIwRLe-3EMePJekJiMU8z4l4Du1F4LwNP2s8d8aIFf3I_Nxdd9/s1600/20131230_125928_910.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;235&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6OWeKSkUjDZZ5rK-06a4UbEEFgxAq_KuQdXodqVCCub0uWBndvhoA3SysDgKw78x6LAYNjUQ0Qtb0ISG5BaInwjaSd-AIwRLe-3EMePJekJiMU8z4l4Du1F4LwNP2s8d8aIFf3I_Nxdd9/s320/20131230_125928_910.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Fotografía cortesía de las Google Glasses&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Usos y aplicaciones&lt;/h3&gt;
Hay unas cuantas aplicaciones disponibles en un app store dedicado a las gafas, todavía no muchas, pero hay para entretenerse un rato. Además, por supuesto, están preinstaladas las más importantes de Google.&lt;br /&gt;
&lt;br /&gt;
Entre los usos básicos, podemos hacer fotos mediante nuestra voz (&quot;take a picture&quot;) o guiñando el ojo derecho, grabar un vídeo, hacer una llamada, pedir indicaciones para llegar a una dirección, buscar en Google... aunque de nuevo insisto en que de momento en inglés.&lt;br /&gt;
&lt;br /&gt;
Más interesante puede ser hacer una vídeo llamada, usando Hangouts, con lo que el receptor verá lo que tú estas mirando. Por otro lado tu verás la cara de esa persona en el prisma.&lt;br /&gt;
&lt;br /&gt;
Desde el store podremos descargar aplicaciones deportivas (&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.strava.run&quot; target=&quot;_blank&quot;&gt;Strava&lt;/a&gt;), de recetas de cocina, meteorología, etc. A mi me ha parecido interesante probar &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.questvisual.wordlens&quot; target=&quot;_blank&quot;&gt;World Lens&lt;/a&gt; porque en un móvil ya me parecía fantástica y en las gafas tendría que ser aún mejor... lamentablemente no he conseguido que me tradujera un texto en ingles. Detectaba el párrafo y hacía zoom sobre el pero no me ha salido la traducción.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Entonces, ¿por qué no soy un fan de este cacharro?&lt;/h3&gt;
A ver... repito que me lo estoy pasando bomba con ellas pero hay una serie de aspectos que me hacen pensar que este dispositivo tiene que mejorar bastante. En realidad la mayoría ya las pensaba de antemano y el hecho de probarlas no me ha cambiado la opinión:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Para empezar soy un cuatro ojos y no puedo usar mis gafas con las Google Glasses&lt;/li&gt;
&lt;li&gt;Mirar la imagen del prisma de forma continua es cansino. Hay tecnologías parecidas desde hace tiempo, por ejemplo el casco del Eurofighter. En su día estuve buscando alguna referencia sobre esto y encontré que algunos pilotos de combate desarrollan problemas en la vista por el uso continuado de este tipo de visores. Ahora este &lt;a href=&quot;http://www.webmd.boots.com/eye-health/news/20120411/will-google-glasses-be-safe?page=2&quot; target=&quot;_blank&quot;&gt;posible problema&lt;/a&gt; nos lo podremos encontrar todos.&lt;/li&gt;
&lt;li&gt;Requieren bastante atención, sobre todo mirando la pantalla. Para que se entienda: si vas en tu coche mirando un GPS montado en el parabrisas tendrás más información de lo que pasa delante tuyo que si miras el prisma de estas gafas. La vista tiene que centrarse en un punto muy cercano y extremo. En mi opinión no es como para andar con ellas por la calle, pero tampoco creo que lo sean los auriculares y la gente lo hace: es normal ver personas cruzar calles sin miedo a la muerte mientras escuchan su música preferida encerradas en su mundo, en fin...&lt;/li&gt;
&lt;li&gt;Tampoco iría con ellas por la calle, hoy por hoy, por razones de estética. Me sentiría raro y me daría vergüenza , pero vuelvo a poner el caso de antes: no andaría por la calle con unos auriculares que me tapasen las orejas y parte de la cara... pero la gente lo hace. Si crees que exagero, prueba lo siguiente en presencia de gente: ponte una gafas, preferiblemente sin&amp;nbsp; cristales o con unos transparentes, di &quot;hola gafas&quot;, después di &quot;haz una foto&quot;, ahora comienza a acariciar la patilla derecha con cariño, dale un toque seco, luego mas caricias hacia abajo, luego hacia un lado, al otro o aleatoriamente, guiña el ojo derecho, sigue acariciando con amor la patilla... Si puedes hacer esto en público (por ejemplo en un vagón del metro), entonces podrás llevar unas Google Glasses&lt;/li&gt;
&lt;li&gt;Duración de la batería (unas cuantas horas como mucho) &lt;/li&gt;
&lt;li&gt;Precio prohibitivo, si no cambia claro.&lt;/li&gt;
&lt;li&gt;Básicamente hacen lo mimo que tu teléfono. Por cierto, necesitarás enlazarlas con tu teléfono para poder hacer llamadas, o sea, no están pensadas como una alternativa real al móvil.&lt;/li&gt;
&lt;/ol&gt;
En resumen, no estoy afirmando rotundamente que no tengan futuro o que nunca vaya a usar algo parecido. Yo desde luego no me gastaría 1500$ en estas en particular. Lo que es innegable es que la wearable technology, o mejor dicho ropa tecnológica, está llegando para quedarse y si no es este dispositivo será otro el que se masifique.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.reconinstruments.com/wp-content/themes/recon/img/jet/slide-3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;110&quot; src=&quot;http://www.reconinstruments.com/wp-content/themes/recon/img/jet/slide-3.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Las gafas Recon Jet para ciclistas&lt;/td&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
En cuanto a las gafas, hay unas cuantas más de otros fabricantes, similares. Creo que vamos a ver pronto alguna de ellas especializadas en ciertas actividades, como las &lt;a href=&quot;http://www.reconinstruments.com/products/jet/&quot; target=&quot;_blank&quot;&gt;Recon Jet&lt;/a&gt;. Sí que me parece útil para un corredor visualizar su pulso, tiempo, diferencia con un oponente, velocidad, etc. y apuesto a que veremos algunas en el próximo Tour de Francia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/5854549400652822751/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/5854549400652822751' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/5854549400652822751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/5854549400652822751'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2013/12/un-par-de-horas-con-las-google-glasses.html' title='Un par de horas con las Google Glasses'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWhTGwHd7gMRXeId7SOFgoJRQZSXEUZaLXLZOeFtsC1cigq3pypAZ7IcsACoVf0gbksiI2vFJJ0HgElW_KPqu2faUjgPSjHVlsHHjz7k1WhYR3V0GApgCnI0QGDKVUU2zk2gTpYywv8eGd/s72-c/DSC_0385%5B1%5D.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-9117722779680289609</id><published>2013-11-29T19:50:00.000+01:00</published><updated>2013-11-29T19:50:01.319+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenSuse"/><category scheme="http://www.blogger.com/atom/ns#" term="XBMC"/><title type='text'>Instalación de XBMC sobre OpenSuse: optimización y personalización</title><content type='html'>En el &lt;a href=&quot;http://deuteria.blogspot.com.es/2013/11/instalacion-de-xbmc-sobre-opensuse.html&quot; target=&quot;_blank&quot;&gt;post anterior&lt;/a&gt;, dejamos nuestro XBMC en u punto en el que ya era utilizable. Ahora ha llegado el momento de hacer unas cuantas pruebas y de realizar un ajuste fino para optimizar el arranque. Además le daremos un pequeño toque de personalización para que nos de más impresión de estar ante un equipo HTPC.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Sobre tiempos de arranque&lt;/h3&gt;
Las comparaciones son odiosas, y esta no va a ser una excepción. Tiempo atrás había estado haciendo unas cuantas pruebas con el equipo original y OpenElec. Como dije, OpenElec está muy optimizado y eso se nota también a la hora de iniciar nuestra máquina.&lt;br /&gt;
&lt;br /&gt;
La prueba inicial, antes de embarcarme en todo esto, fue comparar tiempos de arranque con diferentes medios. Realmente tenía OpenElec instalado en una tarjeta microSD y después la cloné a una memoria USB bastante más rápida. Luego, por tener una primera referencia, comparé esos tiempos con los de arranque de la OpenSuse, que tenía instalada en el disco SATA de 3,5&quot; de la misma máquina.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Quiero aclarar que el tiempo que quise medir se corresponde con lo que el usuario percibiría como arranque, o sea, desde que se inicia el ordenador hasta que el sistema acepta la interacción con el usuario por ratón, teclado o lo que sea. Así que en el caso de OpenElec era desde que le daba al botón de alimentación hasta que presenta el menú inicial, mientras que para openSuse también comenzaba a contar con el botón de alimentación, me saltaba la espera de Grub pulsando intro y paraba cuando KDE mostraba el escritorio.&lt;br /&gt;
&lt;br /&gt;
Aclarado esto, antes de ponernos con la faena y para tener más información y poder deducir más cosas, podemos averiguar la velocidad de nuestros discos. Para ello, ejecutaremos como root lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:bash;&quot;&gt;hdparm -t /dev/xxxx&lt;/pre&gt;
&lt;br /&gt;
donde xxxx podrá ser hda, sda...&lt;br /&gt;
&lt;br /&gt;
En mi caso me dio por comparar unos cuantos medios que tenía a mi alcance pero, para no marear, sólo pondré los que he mencionado antes. Las velocidades de lectura fueron las siguientes:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Tarjeta MicroSD: 12MB/s&lt;/li&gt;
&lt;li&gt;USB Kigston DataTraveler G2: 20MB/s&lt;/li&gt;
&lt;li&gt;Disco duro SATA 3,5&quot;: 120MB/s&lt;/li&gt;
&lt;/ol&gt;
Y después me puse a arrancar el mismo PC desde cada uno de los soportes y a tomar tiempos crono en mano:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Arranque de OpenElec desde MicroSD: 40 segundos&lt;/li&gt;
&lt;li&gt;Arranque de OpenElec desde la memoria USB: 30 segundos&lt;/li&gt;
&lt;li&gt;Arranque de OpenSuse desde el disco: 42 segundos&lt;/li&gt;
&lt;/ol&gt;
Viendo esto, y teniendo en cuenta que iba a comprar un disco SATA de 2.5&quot; donde iba a instalar una openSuse que no cargaría KDE, esperaba tener unos tiempos menores de 40 segundos.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Tras llegarme todo el material, montarlo e instalar el sistema operativo, el tiempo de inicio era de unos 35 segundos. Para mejorarlo busqué &lt;a href=&quot;http://lizards.opensuse.org/2012/07/26/optimizing-a-boot-time-aka-2-second-boot/&quot; target=&quot;_blank&quot;&gt;algún artículo&lt;/a&gt; en el que se hablaba de cómo optimizar este tiempo modificando los servicios arrancados durante el inicio de la máquina. Así pues, lo siguiente que se puede hacer para comprobar nuestros avances, será instalar el paquete systemd-analyze.&lt;br /&gt;
&lt;br /&gt;
El primer resultado que obtuve al ejecutar dicho comando fue el siguiente: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOvnhfhKZL_syvAyM5875iZQ8Mb8vAMKkDNYZZSIsB4aQi7fWkVw88pGEAVvA-t6CCswTPVK3PY_zhZPd4TOUw0MzvYW1ubBdPwIjp_4btCv4v473lqP-kQ31PMqyk-csv8cVHK_AlC6ru/s1600/instant%C3%A1nea21.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;427&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOvnhfhKZL_syvAyM5875iZQ8Mb8vAMKkDNYZZSIsB4aQi7fWkVw88pGEAVvA-t6CCswTPVK3PY_zhZPd4TOUw0MzvYW1ubBdPwIjp_4btCv4v473lqP-kQ31PMqyk-csv8cVHK_AlC6ru/s640/instant%C3%A1nea21.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
En Yast, en &lt;i&gt;Servicios del Sistema&lt;/i&gt;, se puede desactivar aquello que no necesitemos. Yo quité sólo Postfix y CUPS&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipqiw3_wvjw86c8EhpbxZ2Db-n1bqBHRIsw4uwMMVxBreiFcJx2f-predlKIWmr3b1s-thIygVT16VDXGpkD6FChn9I8OuzzyiNIL802Vx19wusjh_3Ko0u7ej7s7dmmdV2sPTPxZZ7V8m/s1600/instant%C3%A1nea22.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipqiw3_wvjw86c8EhpbxZ2Db-n1bqBHRIsw4uwMMVxBreiFcJx2f-predlKIWmr3b1s-thIygVT16VDXGpkD6FChn9I8OuzzyiNIL802Vx19wusjh_3Ko0u7ej7s7dmmdV2sPTPxZZ7V8m/s640/instant%C3%A1nea22.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Como se puede ver en la primera linea ejecutada en la imagen mostrada a continuación, sólo mejoró unas décimas de segundo. Tendremos más pistas de lo que está sucediendo gracias a la segunda orden que aparece:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;pre class=&quot;brush:bash;&quot;&gt;systemd-analyze blame&lt;/pre&gt;
&lt;br /&gt;
En este caso levantar la red resulta ser un proceso muy pesado. &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZo9VSjzr359tTphdcTovIijv_1-3UwB7LSxeHJMNUvCaAg0RtK6nhtV7DTwhqhXi7FcnMntNAaTdcrqZ7qK7tKG_G0dRQSdYw4Uav_y_ye-RPVsO3h-rI-MV1Qywj5C7ft7VcoKNGb42T/s1600/instant%C3%A1nea24.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;491&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZo9VSjzr359tTphdcTovIijv_1-3UwB7LSxeHJMNUvCaAg0RtK6nhtV7DTwhqhXi7FcnMntNAaTdcrqZ7qK7tKG_G0dRQSdYw4Uav_y_ye-RPVsO3h-rI-MV1Qywj5C7ft7VcoKNGb42T/s640/instant%C3%A1nea24.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Para evitar lo que acabamos de ver podremos conectarnos a la red mediante NetworkManager en vez de hacerlo con ifup en el arranque. Para ello lo cambiaremos otra vez en Yast, en el apartado de &lt;i&gt;Ajustes de Red&lt;/i&gt; tal como se ve aquí:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZR8GTGHfvAYeVbiY0oP4AHUElXB3eno48CR3VrHKVdYPod2kw0Roq8vQ4ZlpisWCj-092VhUKYa3Vsnqsd_fytLhmjro81C6KpIYb9icnuJKSOV3Jhwp3xMSRVpO_aADPmekKAnV2Fri0/s1600/instant%C3%A1nea25.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZR8GTGHfvAYeVbiY0oP4AHUElXB3eno48CR3VrHKVdYPod2kw0Roq8vQ4ZlpisWCj-092VhUKYa3Vsnqsd_fytLhmjro81C6KpIYb9icnuJKSOV3Jhwp3xMSRVpO_aADPmekKAnV2Fri0/s640/instant%C3%A1nea25.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;Ahora nos avisará de que necesitamos tener una aplicación que nos gestione la conexión. Aceptaremos.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDeIxf1KJnUoIR76A_iIQUX26fOmSHGnvkRoGw-Lm1PX2CM2DLrGE6GiWgnUfj3vWV9d_XxXwAxux0ryfoCLv46gIzPY8katVXBV_Qhr98QzFwUh4CcAsi4fTYtPjDyvyoJg9cSVJKmf7m/s1600/instant%C3%A1nea26.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;144&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDeIxf1KJnUoIR76A_iIQUX26fOmSHGnvkRoGw-Lm1PX2CM2DLrGE6GiWgnUfj3vWV9d_XxXwAxux0ryfoCLv46gIzPY8katVXBV_Qhr98QzFwUh4CcAsi4fTYtPjDyvyoJg9cSVJKmf7m/s320/instant%C3%A1nea26.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;Revisamos los tiempos y vemos que se obtiene una mejora sustancial (ver en la imagen siguiente). Es cierto que sigue siendo necesario 
conectarse a la red, pero esa operación se realizará una vez cargado 
XBMC y no nos percataremos de ello. &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;492&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihGtKl8rVYCfGzJBFYuzy805o-xgtHdUmDSwCOtBwWfvwMm_0gfrV8eOzTIN0lPdEbqkhLzROYXpIOp6yTsEt2KXcKLuLgTgaXK7f17Z62W_7CYtKesond6nY21GvW0rcTBE_1yHG1de7M/s640/instant%C3%A1nea27.png&quot; width=&quot;640&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Para conseguir lo que se acaba de comentar, es necesario instalar un Addon de XBMC para NetworkManager. Lo encontraremos en el listado de addons de programas de XBMC &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigerCQoGuGhvnLretWGKMjQHO2TK_lS0SCde5L1lbQ0FFaAmnWE5Ee09t_JqW-8gKF21DYS6GysnaG6DMWUjIUzSz3s8BdFQVuetl5O5pM0BJRv7R9PfVm8t7II0UJdwJKYtG6diodvRb_/s1600/screenshot006.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigerCQoGuGhvnLretWGKMjQHO2TK_lS0SCde5L1lbQ0FFaAmnWE5Ee09t_JqW-8gKF21DYS6GysnaG6DMWUjIUzSz3s8BdFQVuetl5O5pM0BJRv7R9PfVm8t7II0UJdwJKYtG6diodvRb_/s640/screenshot006.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Tras la instalación lo encontraremos en el menú programas y solo tendremos que configurar nuestra red. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgipKkAruRE7RZrRxRKbwP3zmhjk_ASvuzfLzB_6QeKnwoK2FfeE8jPGvBuWlfwvt2WIWvrYkv8wIHUt2MMXY0wKguFmA7a-eFcmVoF8-X7qXTAcEne9egEbLrAA1VoH1RZXMKi9_Sl9d8X/s1600/screenshot007.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgipKkAruRE7RZrRxRKbwP3zmhjk_ASvuzfLzB_6QeKnwoK2FfeE8jPGvBuWlfwvt2WIWvrYkv8wIHUt2MMXY0wKguFmA7a-eFcmVoF8-X7qXTAcEne9egEbLrAA1VoH1RZXMKi9_Sl9d8X/s640/screenshot007.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Ahora vuelvo a referirme al tiempo crono en mano. Tras todos estos cambios el nuevo tiempo de arranque era de 29 segundos frente a los 35 iniciales. Había mejorado unos 6 segundos, no está mal, aunque supongo que será mejorable, así que &lt;u&gt;cualquier idea será bienvenida&lt;/u&gt; :) Me gustaría ver esto mismo en un disco SSD pero, como ya dije, sacrifiqué tiempo por espacio.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Ocultar Grub &lt;/h3&gt;
Al tratarse de un equipo dedicado a arrancar sólamente nuestro XBMC ¿por qué mostrar el menú de Grub? ¿Por qué perder unso valiosos segundos esperando a que el usuario haga una elección en el menú de arranque? No nos hace falta: vamos a ocultarlo.&lt;br /&gt;
&lt;br /&gt;
Para hacer esto acudiremos como siempre a Yast. En &lt;i&gt;Configuración del cargador de Arranque&lt;/i&gt; haremos clic sobre el botón &lt;i&gt;Opciones del cargador de arranque&lt;/i&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigEroAmbm4gG5NSym_e0GsqmGOQ18IIKNpGKhkWceDG7znHILpTiwK8HP1ooBnUw2ef-P26qQw-ir0KbPUKynHYyIsUW8s-OQJHug_ILz7cDKUTQgEMTh2TA66L__anQY54IiqPHJqDOZJ/s1600/instant%C3%A1nea34.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigEroAmbm4gG5NSym_e0GsqmGOQ18IIKNpGKhkWceDG7znHILpTiwK8HP1ooBnUw2ef-P26qQw-ir0KbPUKynHYyIsUW8s-OQJHug_ILz7cDKUTQgEMTh2TA66L__anQY54IiqPHJqDOZJ/s640/instant%C3%A1nea34.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;Ahora simplemente marcaremos la opción &lt;i&gt;Ocultar el menú en el arranque&lt;/i&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6mV8576xd6CWM6fASKjYlJDfsyusP87RbFZNXPlpQND9Llv09JHw2rBurLJ39e7S29LBU2DGhvLJXykkPpJlJgHJ7-kKe0UFsIOpugswF6w6A6tjYunpL4OxY0nxamEFTOt_DkmVLGwEI/s1600/instant%C3%A1nea35.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6mV8576xd6CWM6fASKjYlJDfsyusP87RbFZNXPlpQND9Llv09JHw2rBurLJ39e7S29LBU2DGhvLJXykkPpJlJgHJ7-kKe0UFsIOpugswF6w6A6tjYunpL4OxY0nxamEFTOt_DkmVLGwEI/s640/instant%C3%A1nea35.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;Gracias a esto nuestro sistema iniciará sin pausas nuestro XBMC, con lo que nos habremos ahorrado 8 segundos más. Ojo, este tiempo no lo estaba contabilizando en las referencias que estaba dando antes, así que en el ejemplo siguen siendo los 29 segundos que comentaba antes.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Un arranque más XBMC&lt;/h3&gt;
No tengo nada en contra de la mascota de openSuse pero no me apetece ver el camaleón verde en los 30-40 segundos en los que carga el sistema, en todo caso se debería mostrar una imagen algo más integrada en el espíritu de nuestro media center. Afortunadamente alguien ya ha pensado en esto y tenemos un paquete que sustituirá al fondo por defecto: plymouth-branding-xbmc&lt;br /&gt;
&lt;br /&gt;
Para bajarlo acudiremos a la &lt;a href=&quot;http://software.opensuse.org/find&quot; target=&quot;_blank&quot;&gt;web&lt;/a&gt; de búsqueda de paquetes, ya que no lo tendremos en ningún repositorio de nuestra máquina y no podremos instalarlo directamente.&lt;br /&gt;
&lt;br /&gt;
Buscaremos el término xbmc&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhINOtiJjCm6pWGU1mX8Q2tDYPb47box78WWIJpEQ-4ksmLKnAjSssBfmYPk4ZA0BffUvjwYe0-gtIiRCHr4MK7UjgXGRchu3A-8WcAJ1s3WNHG3N6lhfweGApRnyHcaOt8NUOAQUWnVO7N/s1600/instant%C3%A1nea36.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhINOtiJjCm6pWGU1mX8Q2tDYPb47box78WWIJpEQ-4ksmLKnAjSssBfmYPk4ZA0BffUvjwYe0-gtIiRCHr4MK7UjgXGRchu3A-8WcAJ1s3WNHG3N6lhfweGApRnyHcaOt8NUOAQUWnVO7N/s640/instant%C3%A1nea36.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW_5YjCS1aOntsyxbkpaJOw0WSlAIEJ20jhSianZXNC0qaL30Wvf_hZhLofdetUw3hHbh_5829VEsR4SZhLk25hdWhOLwfD4A9DLUZKI05sZKAjRx8m9ijBkHDoRDVufEhSFJpcrqnCMDk/s1600/instant%C3%A1nea41.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Escogeremos el paquete que nos interesa y se nos desplegarán las opciones. Si no hay versión estable le diremos que nos muestre las que no lo son y finalmente seleccionaremos &lt;i&gt;1 click install&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW_5YjCS1aOntsyxbkpaJOw0WSlAIEJ20jhSianZXNC0qaL30Wvf_hZhLofdetUw3hHbh_5829VEsR4SZhLk25hdWhOLwfD4A9DLUZKI05sZKAjRx8m9ijBkHDoRDVufEhSFJpcrqnCMDk/s1600/instant%C3%A1nea41.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;398&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW_5YjCS1aOntsyxbkpaJOw0WSlAIEJ20jhSianZXNC0qaL30Wvf_hZhLofdetUw3hHbh_5829VEsR4SZhLk25hdWhOLwfD4A9DLUZKI05sZKAjRx8m9ijBkHDoRDVufEhSFJpcrqnCMDk/s640/instant%C3%A1nea41.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;Después de esto nos eliminará el paquete&amp;nbsp; por defecto y nos añadirá el nuevo. &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI96T8NRNF2GjJAVaH31r9d2Nj8c0wDiOMO7oSHiKBQaPN-TWNM9YoR6hBABQ78grS2Ol0_TTdyryy2ylCzgCWnEUsKDn4pdA-IrDUjuYc_vjXgBOGp1FX-1feDADyU4RGCw-K5d8r7Xwb/s1600/instant%C3%A1nea40.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI96T8NRNF2GjJAVaH31r9d2Nj8c0wDiOMO7oSHiKBQaPN-TWNM9YoR6hBABQ78grS2Ol0_TTdyryy2ylCzgCWnEUsKDn4pdA-IrDUjuYc_vjXgBOGp1FX-1feDADyU4RGCw-K5d8r7Xwb/s640/instant%C3%A1nea40.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;No hay nada más que hacer, en el próximo reinicio nos encontraremos con una pantalla similar a esta:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwqz_24kcvmm4MN9GMZDWe7Wg3WVXt-RaCSn4KCLz5cAA4Xc3qFwlAN-VZXK6qPvHS9K-R9Bro8ExddPsXc67SdDR_h_h8Dor038mX-wroqyL3Il-35mp_cKMPfK3sclRnA-7_AYK2XDdn/s1600/Plymouth-theme-xbmc-logo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwqz_24kcvmm4MN9GMZDWe7Wg3WVXt-RaCSn4KCLz5cAA4Xc3qFwlAN-VZXK6qPvHS9K-R9Bro8ExddPsXc67SdDR_h_h8Dor038mX-wroqyL3Il-35mp_cKMPfK3sclRnA-7_AYK2XDdn/s400/Plymouth-theme-xbmc-logo.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
Mi guerra con la temperatura&lt;/h3&gt;
Ya dije en el otro post que adquirí dos nuevos ventiladores. Lo que no conté es que fue una compra posterior, después de ver como funcionaba el equipo recién montado. Con el ventilador original de la placa Zotac, llegaba facilmente a los 65 grados e, incluso, a los 70 en determinadas condiciones. Cuando la tuve montada en la caja anterior no era así, seguramente porque había más espacio interior. Tras el montaje de los dos nuevos ventiladores más silenciosos, y con mejor circulación de aire, la situación mejoro bastante (de 5 a 10 grados).&lt;br /&gt;
&lt;br /&gt;
En todo caso, esto fue un problema mío que tal vez no interese. Lo que sí que puede interesar es lo siguiente. Todos estos valores los veía en un monitor de sistema de KDE ya que mi XBMC no me los mostraba en las pantallas de información en las que debe aparecer.&lt;br /&gt;
&lt;br /&gt;
Si os ocurre esto podéis consultar &lt;a href=&quot;http://wiki.xbmc.org/?title=advancedsettings.xml#.3Ccputempcommand.3E&quot; target=&quot;_blank&quot;&gt;este&lt;/a&gt; enlace y después poneros manos a la obra con el archivo de configuración. Básicamente, necesitáis hacer un script que devuelva el valor de la temperatura que debe ser mostrar tanto para la CPU como para la GPU.&lt;br /&gt;
&lt;br /&gt;
Podéis ejecutar las pruebas que hagáis en un terminal de comandos hasta que os funcione adecuadamente:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-KkMGnGTV0bjKM-PfJM5b-G-ZF3jdtC_9E27__HG4saXcO1dt9fRuyna6VYUeYH4BLD8Hh49uFdLotSTzv0e_19Mbsiqxl7igZJ5hshWKGY1NHYZ4VRu3DNUmvGFDFbWYkVXIn6SjYn66/s1600/instant%C3%A1nea61.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-KkMGnGTV0bjKM-PfJM5b-G-ZF3jdtC_9E27__HG4saXcO1dt9fRuyna6VYUeYH4BLD8Hh49uFdLotSTzv0e_19Mbsiqxl7igZJ5hshWKGY1NHYZ4VRu3DNUmvGFDFbWYkVXIn6SjYn66/s640/instant%C3%A1nea61.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
después se debe crear el archivo XML que contenga la instrucción, que deberá estar en la ruta:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
~./xbmc/userdata/advancedsettings.xml&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
Este es mi fichero, pero no tiene por qué ser válido para otros, como se puede ver, depende mucho del hardware que se tenga:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:xml;&quot;&gt;  
&lt;advancedsettings&gt;
&lt;gputempcommand&gt;echo &quot;$(nvidia-settings -c :0 -tq GPUCoreTemp | tail -n 1) C&quot;&lt;/gputempcommand&gt;
&lt;cputempcommand&gt;echo &quot;$(sensors -u | tail -n64 | grep temp2_input | awk &#39;{print $2 }&#39; |awk &#39;{printf(&quot;%d\n&quot;,$1 + 0.5);}&#39;) C&quot;&lt;/cputempcommand&gt;
&lt;/advancedsettings&gt;
&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Una vez hecho esto ya deberías ver la temperatura de la CPU (sólo mostrará un valor aunque tengáis varios cores) &lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMjR6rInDvM-Amv4Bu4GRDjJUNEVCmf1_lM189C3q0ytKuLquAfbI27i8L15R04gU_ApbgF-QnfuZbhnDahzApEs8bFMnGiH6QifNYsLzPyukVJW5Yp35QYpsbNN7vMbqHGSQ7hV2E9Jnt/s1600/instant%C3%A1nea32.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;500&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMjR6rInDvM-Amv4Bu4GRDjJUNEVCmf1_lM189C3q0ytKuLquAfbI27i8L15R04gU_ApbgF-QnfuZbhnDahzApEs8bFMnGiH6QifNYsLzPyukVJW5Yp35QYpsbNN7vMbqHGSQ7hV2E9Jnt/s640/instant%C3%A1nea32.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;Y la temperatura del chip gráfico&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71O3eo2WvW0by8Itaq4X6Y_91Ds2FcWPIYW5nZHcQYZK1WU4sFECV09_2j5FvKUexwTuW46iO1DKCutoZBcKh4cZePRXbjc3TgYUvJJYkNvZh_kBGxgYf0KS2g4kIBSWyeaFtnYF1dQAX/s1600/instant%C3%A1nea33.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;500&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh71O3eo2WvW0by8Itaq4X6Y_91Ds2FcWPIYW5nZHcQYZK1WU4sFECV09_2j5FvKUexwTuW46iO1DKCutoZBcKh4cZePRXbjc3TgYUvJJYkNvZh_kBGxgYf0KS2g4kIBSWyeaFtnYF1dQAX/s640/instant%C3%A1nea33.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
Después de todo esto parece que nuestro equipo ya se está ganando un sitio en el salón de nuestra casa. En el próximo capítulo contaré como solucionar alguna de las carencias que sufriremos al no estar bajo la ayuda de KDE, por ejemplo, el manejo de dispositivos Bluetooth.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/9117722779680289609/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/9117722779680289609' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/9117722779680289609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/9117722779680289609'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2013/11/instalacion-de-xbmc-sobre-opensuse_29.html' title='Instalación de XBMC sobre OpenSuse: optimización y personalización'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOvnhfhKZL_syvAyM5875iZQ8Mb8vAMKkDNYZZSIsB4aQi7fWkVw88pGEAVvA-t6CCswTPVK3PY_zhZPd4TOUw0MzvYW1ubBdPwIjp_4btCv4v473lqP-kQ31PMqyk-csv8cVHK_AlC6ru/s72-c/instant%C3%A1nea21.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-8644060645742397470</id><published>2013-11-17T10:31:00.000+01:00</published><updated>2013-11-17T10:34:38.570+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenSuse"/><category scheme="http://www.blogger.com/atom/ns#" term="XBMC"/><title type='text'>Instalación de XBMC sobre OpenSuse</title><content type='html'>Como se puede ver por el título del post, he estado pegándome con la instalación de &lt;a href=&quot;http://xbmc.org/&quot; target=&quot;_blank&quot;&gt;XBMC &lt;/a&gt;en un equipo con OpenSuse. No hay ningún misterio en ello, sólo elegir los paquetes a instalar y dejar que Yast haga todo el trabajo. Sin embargo quiero contar la experiencia porque hay unas particularidades que tal vez sean interesantes para otros, de hecho creo que lo haré en más de un artículo porque me parece que en uno sólo quedaría demasiado largo.&lt;br /&gt;
&lt;br /&gt;
Antes de nada quiero decir que tal vez no debas seguir leyendo. Sí, te invito a que pares aquí. Si te gustan las soluciones fáciles te recomiendo que te compres un pincho HDMI Android, una &lt;a href=&quot;https://www.ouya.tv/&quot; target=&quot;_blank&quot;&gt;Ouya &lt;/a&gt;o incluso que cojas un PC viejo o una &lt;a href=&quot;http://www.raspberrypi.org/&quot; target=&quot;_blank&quot;&gt;Raspberry Pi&lt;/a&gt; y le pongas &lt;a href=&quot;http://www.openelec.tv/&quot; target=&quot;_blank&quot;&gt;OpenElec&lt;/a&gt;. Realmente OpenELec es una de mis opciones favoritas por su simplicidad y su optimización. Si sólo quieres un equipo media center conectado a tu tele recomiendo decididamente esta opción.&lt;br /&gt;
&lt;br /&gt;
El problema es que yo quiero pedirle algo más a este equipo, quiero instalarle &lt;a href=&quot;http://owncloud.org/&quot; target=&quot;_blank&quot;&gt;OwnCloud &lt;/a&gt;para tener mi nube personal disponible allí donde esté, quiero administrarlo remotamente, encenderlo y apagarlo a distancia, descargar torrents, etc. Además, aprovechando que el equipo estará en el salón de la casa, le pondré un &lt;a href=&quot;http://fs-uae.net/&quot; target=&quot;_blank&quot;&gt;emulador&lt;/a&gt; de Amiga que, por supuesto, se manejará desde XBMC, Todo esto me hizo descartar la opción de usar cualquier dispositivo basado en Android e hizo que OpenElec no fuese lo más recomendable para mi.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Sobre el hardware&lt;/h2&gt;
&lt;br /&gt;
Por otro lado, habían una serie de factores que condicionaban cómo haría las cosas. En primer lugar quería &lt;a href=&quot;http://deuteria.blogspot.com.es/2010/01/montando-una-placa-zotac-ion-itx-d-e-en.html&quot; target=&quot;_blank&quot;&gt;reciclar un equipo&lt;/a&gt; que ya tenía, utilizando, cómo mínimo, la placa madre con su RAM. En cuando al disco duro hubiese sido muy recomendable usar un SSD pero el hecho de usar el equipo como servidor OwnCloud me hizo decantarme por una unidad convencional de 2,5&quot; para tener más almacenamiento a un precio asequible.&lt;br /&gt;
&lt;br /&gt;
Sin duda el mayor quebradero de cabeza fue la caja. Aclaro que en principio no me interesaba la típica caja HTPC grande, con aspecto de equipo de DVD. Quería algo pequeño que tuviese un aspecto similar a una consola Wii, algo que no cantase mucho cerca del televisor. Así que mi primera opción fue comprar una &lt;a href=&quot;http://www.bittopia.com/b2c/producto/2772/1/morex-t3320-caja-mini-itx-fanless-negra&quot; target=&quot;_blank&quot;&gt;Morex T3320&lt;/a&gt; pero fui victima de mi elección en cuanto al reciclaje. Hoy puedo decir que cuando &lt;a href=&quot;http://deuteria.blogspot.com.es/2010/01/mi-auto-regalo-de-este-ano-zotac-ion-d.html&quot; target=&quot;_blank&quot;&gt;compré la placa&lt;/a&gt;&lt;a href=&quot;http://deuteria.blogspot.com.es/2010/01/mi-auto-regalo-de-este-ano-zotac-ion-d.html&quot; target=&quot;_blank&quot;&gt; Zotac IONITX-D-E&amp;nbsp; &lt;/a&gt;no estuve muy acertado. El error fue que esa era una de las primera placas que incluían un Atom N330 que, si no recuerdo mal, fue el primer Atom con doble núcleo y 64 bits. El caso es que no ofrecía mucho más rendimiento que sus hermanos pequeños y, en cambio, obligaba a hacer uso de un ventilador sobre el disipador de la placa. Pues bien, esto eliminaba la mayoría de las cajas que me gustaban pues con unos 6 o 6,5 cm de altura y espacios tan reducidos no podía incluir el ventilador. Teniendo todo esto en cuenta, al final, me hice con una &lt;a href=&quot;http://inter-tech.de/index.php?option=com_content&amp;amp;view=article&amp;amp;id=702%3Amini-itx-e-i5&amp;amp;catid=57%3Aitx-gehaeuse&amp;amp;Itemid=612&amp;amp;lang=en&quot; target=&quot;_blank&quot;&gt;Intertech Mini ITX E-i5&lt;/a&gt; con mayor altura y cuyo aspecto y acabado (todo aluminio) no estaba mal.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZqELBm02FZGjUPrEEhXCCNAzUrB3TdnbQ6shNNnVz1PLOXMT_4P3XOiqO0hRQB9zQk6vu_EccdByxbPDRoHi6ZKN6pdh-HRLZB8QrxhaSxLOocHxaMEaLLr3XNgJlTcoYZWapkmY7CM89/s1600/1_itx_ei5_vorne_links.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;144&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZqELBm02FZGjUPrEEhXCCNAzUrB3TdnbQ6shNNnVz1PLOXMT_4P3XOiqO0hRQB9zQk6vu_EccdByxbPDRoHi6ZKN6pdh-HRLZB8QrxhaSxLOocHxaMEaLLr3XNgJlTcoYZWapkmY7CM89/s320/1_itx_ei5_vorne_links.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Otra de las compras fueron unos nuevos ventiladores. Ya que no podía librarme de la ventilación, el que venía de serie con la placa me parecía demasiado ruidoso. Tras las típicas búsquedas en foros, decidí comprar dos&amp;nbsp; &lt;a href=&quot;http://www.blacknoise.com/es/products/it/13/Noiseblocker-NB_BlackSilentFan_60mm&quot; target=&quot;_blank&quot;&gt;Blacknoise &lt;/a&gt;uno de 60 mm para la placa y otro de 40 para la caja.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSQq4RrNlwqf4buafHRKr9Ubc3D3JEDtu3gUzjP27oy6qtIPQ9YINY5J2yH1zfXbft71molH6gxHf100jax7GqleyM8B48_tuTKOLb6LQTIqS7sA2Z5ZWBrcqUbrvweMD-p2B7-iqzTJIr/s1600/bsf_xr_back_web.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSQq4RrNlwqf4buafHRKr9Ubc3D3JEDtu3gUzjP27oy6qtIPQ9YINY5J2yH1zfXbft71molH6gxHf100jax7GqleyM8B48_tuTKOLb6LQTIqS7sA2Z5ZWBrcqUbrvweMD-p2B7-iqzTJIr/s320/bsf_xr_back_web.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Resumiendo, los componentes son los siguientes:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Kingston ValueRAM 2GB DDR2 800 PC2-6400 (Reciclado)&lt;/li&gt;
&lt;li&gt;Zotac IONITX-D-E ION mini-ITX Atom N330 WiFi (Reciclado)&lt;/li&gt;
&lt;li&gt;Intertech Mini ITX E-i5 (69,60€)&lt;/li&gt;
&lt;li&gt;Blacnoise BlackSilentFan XR1&amp;nbsp; (5,99€)&lt;/li&gt;
&lt;li&gt;Blacnoise BlackSilentFan&amp;nbsp; XM1 (4,99€)&lt;/li&gt;
&lt;li&gt;Toshiba MQ01ABD050 2.5&quot; 500GB 5400RPM SATA&amp;nbsp; (43,99€)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h2&gt;
Instalando OpenSuse y XBMC&lt;/h2&gt;
Evidentemente, empezaremos por &lt;a href=&quot;http://doc.opensuse.org/documentation/html/openSUSE/opensuse-startup/art.osuse.installquick.html&quot; target=&quot;_blank&quot;&gt;instalar OpenSuse&lt;/a&gt;. No voy a entrar mucho en detalles con esto ya que sólo hay que dejarse llevar por el asistente de instalación y todo es muy sencillo.&lt;br /&gt;
&lt;br /&gt;
Seguiremos los pasos habituales de elección de idioma, zona horaria, etc. Llegado el momento aceptaremos que instale el escritorio KDE, ya que nos dará flexibilidad para instalar y configurar todos los paquetes que deseemos de un modo más agradable.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img height=&quot;300&quot; src=&quot;http://doc.opensuse.org/documentation/html/openSUSE/opensuse-startup/images/i_y2_welcome.png&quot; width=&quot;400&quot; /&gt; &lt;/div&gt;
&lt;br /&gt;
Después de esto, aceptaremos o modificaremos a nuestro antojo las particiones sugeridas, crearemos nuestro usuario y aceptaremos el resumen de la instalación, con lo que comenzará todo el proceso. Pues bien, ahora tenemos unos 30 o 40 minutos para hacer algo realmente maravilloso ¡¡¡como jugar en otro PC con un emulador de Amiga al Project X!!!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMh0TofyNyMW5DzjOKqxqNP1Flr-8pq93lfVQRreo3mZ4N8dIigdn2BMye6s4otJn1mf1EQ6bUBLD6r4v9CR7XPwnG5wMZKUragmpq8UzZ2vnerfmAj5xMyjycLhJspqHU8SPfONjz5jSX/s1600/fs-uae-full-1310191902-02.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;303&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMh0TofyNyMW5DzjOKqxqNP1Flr-8pq93lfVQRreo3mZ4N8dIigdn2BMye6s4otJn1mf1EQ6bUBLD6r4v9CR7XPwnG5wMZKUragmpq8UzZ2vnerfmAj5xMyjycLhJspqHU8SPfONjz5jSX/s400/fs-uae-full-1310191902-02.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Bueno... en realidad lo que hice fue vaciar el lavavajillas y colocar vasos, platos y cubiertos en sus lugares correspondientes :(&lt;br /&gt;
&lt;br /&gt;
En fin, después de este lapso tan enriquecedor, el sistema se reiniciará y vermos por primera vez nuestro escritorio.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj21lHIRmpdDEr87JI8yesDoMuAg3Lua8BIx4EfRTglVOPKK1AGzsyuyH1AmohLY9Iq8gik57AtutC3vt7-LsiJ3P8UTgSf8c1rspOmoc0YOytoZR-BLfs-n4EmjTV1ntha-E91hXX0P8z5/s1600/instant%C3%A1nea1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj21lHIRmpdDEr87JI8yesDoMuAg3Lua8BIx4EfRTglVOPKK1AGzsyuyH1AmohLY9Iq8gik57AtutC3vt7-LsiJ3P8UTgSf8c1rspOmoc0YOytoZR-BLfs-n4EmjTV1ntha-E91hXX0P8z5/s400/instant%C3%A1nea1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt; &lt;/div&gt;
&lt;br /&gt;
Ahora tendremos que configurar la red, así que introduciremos las opciones que necesitemos respecto a DCHP, etc. Si usamos configuración inalámbrica es posible que quiera instalar el paquete iw, simplemente hay que decir que sí.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz4MA2qyBC9FFzgLA-6zE7BOTPnnreVl8yxF605Hs7zWPeD2otE5gjMaUNCI-i8sAulvwGIg-t-IxeFW9O-O2VxQG9uxll3dC9ExIT4bhP6_TYRTRMqhtLCIejVBKxfUT31MjACNuLc6FD/s1600/instant%C3%A1nea4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7r1vtdoae5WJ9yiPsg8IgxI6kuZlg7XJPRx3pUSeWCbGHRonM7RN-bNxXzmEQcdkK8KCHufqyQOMTnOksG3L3TAVWQhqorsaRWsyqDLVRK8AYRDbnj1UTbVzI7fj5CNW9GrfOoiUYTyZu/s1600/instant%C3%A1nea3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7r1vtdoae5WJ9yiPsg8IgxI6kuZlg7XJPRx3pUSeWCbGHRonM7RN-bNxXzmEQcdkK8KCHufqyQOMTnOksG3L3TAVWQhqorsaRWsyqDLVRK8AYRDbnj1UTbVzI7fj5CNW9GrfOoiUYTyZu/s640/instant%C3%A1nea3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdtl2YeyhMbg5i1HuxMQ1yWgc1G_lAKaNlj1cMYCUOiMxztWezbo6AsSMyrUYaFQ18Ic67ieeJGZkxYqm83YhOC2iKFQXRLmgxiln3iWW9wj1uDpyCXXnlbGsfFP0mX0D_p-OjaOBhE4XM/s1600/instant%C3%A1nea11.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
Una vez comprobado que tenemos conectividad y podemos salir al mundo exterior, es un buen momento para actualizar los paquetes instalados. Como se ha usado una imagen de DVD, una gran cantidad de rpms contarán con nuevas versiones con correcciones de fallos etc. Para forzar su renovación en el apartado &lt;i&gt;Maquina&lt;/i&gt; del lanzador KDE elegiremos &lt;i&gt;Añadir / quitar programas&lt;/i&gt;. Una vez cargada la aplicación, iremos al menú &lt;i&gt;Paquete&lt;/i&gt; y en el submenú &lt;i&gt;Todos los paquetes&lt;/i&gt; escogeremos &lt;i&gt;Actualizar si hay una versión disponible&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLBAUdjJizw_1yIxVGjU-UX7ots29yCE5C9-jAEJDUhaVYh8jwS5ifhCeYy-wCHuw4P-HL7bUTxAaGBM2FyI8pVV8yuTSVqR39G74A6Z2zbVImslmem9SDkr_Ay7aRnt0_Ddut6qAgiX_G/s1600/instant%C3%A1nea2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLBAUdjJizw_1yIxVGjU-UX7ots29yCE5C9-jAEJDUhaVYh8jwS5ifhCeYy-wCHuw4P-HL7bUTxAaGBM2FyI8pVV8yuTSVqR39G74A6Z2zbVImslmem9SDkr_Ay7aRnt0_Ddut6qAgiX_G/s640/instant%C3%A1nea2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
En mi caso me avisó de que se instalarían casi 400 paquetes ¡con lo cuál era una gran oportunidad para jugar al Project X!&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS2cFAQIIHcFx5XEXi0ndD5UlZojSoeKd58-fTWTJsk9VyowgJcOODIyoH7msUsjy0zfFoqLYMyeair_RL2GoeC38yRyZFWdFGoiUC66BwydTIV0SkM-WidEj1Efr2xso0uaRBAOi_R4sG/s1600/fs-uae-real-1310191901-01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYM7fjFEKFcFk_g7OQu3oBmMJoKgexnDKloafknGkn850Y9Fjf7AQzUO9tfunbkCmFiME46kZBV16MSkUCrvb1fvZMr9t1oWR0sIKskLRJiAX69JnhV_pDbtYTbWr_tmhWpsaZRZPCqJTA/s1600/fs-uae-real-1310191902-01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYM7fjFEKFcFk_g7OQu3oBmMJoKgexnDKloafknGkn850Y9Fjf7AQzUO9tfunbkCmFiME46kZBV16MSkUCrvb1fvZMr9t1oWR0sIKskLRJiAX69JnhV_pDbtYTbWr_tmhWpsaZRZPCqJTA/s400/fs-uae-real-1310191902-01.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Pero... en realidad me puse a fregar todo aquello que no había cabido en el lavavajillas :(&lt;br /&gt;
&lt;br /&gt;
Ahora añadiremos dos repositorios de paquetes rpm que nos serán muy útiles: el de los drivers de la tarjeta gráfica (Nvidia en mi caso) y el repositorio Packman donde encontraremos el software XBMC además de los codecs de vídeo que necesitaremos. Para hacer esto iremos al lanzador de KDE y en el apartado &lt;i&gt;Máquina&lt;/i&gt; escogeremos &lt;i&gt;Yast&lt;/i&gt;. Tras autenticarnos como root seleccionaremos la aplicación &lt;i&gt;Repositorios de software&lt;/i&gt; y veremos lo siguiente:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7r1vtdoae5WJ9yiPsg8IgxI6kuZlg7XJPRx3pUSeWCbGHRonM7RN-bNxXzmEQcdkK8KCHufqyQOMTnOksG3L3TAVWQhqorsaRWsyqDLVRK8AYRDbnj1UTbVzI7fj5CNW9GrfOoiUYTyZu/s1600/instant%C3%A1nea3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz4MA2qyBC9FFzgLA-6zE7BOTPnnreVl8yxF605Hs7zWPeD2otE5gjMaUNCI-i8sAulvwGIg-t-IxeFW9O-O2VxQG9uxll3dC9ExIT4bhP6_TYRTRMqhtLCIejVBKxfUT31MjACNuLc6FD/s1600/instant%C3%A1nea4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz4MA2qyBC9FFzgLA-6zE7BOTPnnreVl8yxF605Hs7zWPeD2otE5gjMaUNCI-i8sAulvwGIg-t-IxeFW9O-O2VxQG9uxll3dC9ExIT4bhP6_TYRTRMqhtLCIejVBKxfUT31MjACNuLc6FD/s640/instant%C3%A1nea4.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Haremos clic sobre el botón añadir, después en la opción Repositiorios de la comunidad y por último añadiremos los correspondientes a Packman y Nvidia:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIivUKhyByelqYRxKBoqCnVs8GrlU3I9ibNnA-MxE5mndCTvwFFBTEGiMSy3XYD1wM_m0Qxj7MFRmyN5sRcq9fvX0pEmlbp3w4hKpeARnN9IN4BKA0JiI4huHc-ALenblY78SlfcjDsXCj/s1600/instant%C3%A1nea5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIivUKhyByelqYRxKBoqCnVs8GrlU3I9ibNnA-MxE5mndCTvwFFBTEGiMSy3XYD1wM_m0Qxj7MFRmyN5sRcq9fvX0pEmlbp3w4hKpeARnN9IN4BKA0JiI4huHc-ALenblY78SlfcjDsXCj/s640/instant%C3%A1nea5.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
Tras hacer esto estaremos en disposición de empezar a instalar lo que nos sea necesario. Iremos de nuevo al instalador de software y buscaremos los paquetes xbmc y w32codec-all (este último son todos los codecs propietarios que no vienen por defecto en OpenSuse)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4cTUIKyM_4OL79CtCLpCGfEoiZz_mrQUmvkZkq0x-oqts3VlOTj1zp7NQftDQPLcPn4P5LUuQZIbzWkDKJxLXuyi6hpoiNxgCPlB8cXMIRIwGZKQv7eVJVi3fUbecbN_Maodc5qwULNq4/s1600/instant%C3%A1nea9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4cTUIKyM_4OL79CtCLpCGfEoiZz_mrQUmvkZkq0x-oqts3VlOTj1zp7NQftDQPLcPn4P5LUuQZIbzWkDKJxLXuyi6hpoiNxgCPlB8cXMIRIwGZKQv7eVJVi3fUbecbN_Maodc5qwULNq4/s640/instant%C3%A1nea9.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Haremos clic sobre Aceptar y probablemente nos&amp;nbsp; avise de un conflicto respecto a xbmc lo que haremos será de proveedor de la librería afectada:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy9yIeWx2Dh-LukSgCHjWovQD4e3VUoJ_vRsykKqCT5R9wv9V5bOoDkON1_D-diO1wRBxwlbqjm7DMYO6h0AYa164ygbFIq5U8d7pFvjKsCFX2GAK3pShFQXjFnlCcBEIT8YUyNG9ZAk26/s1600/instant%C3%A1nea6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;562&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy9yIeWx2Dh-LukSgCHjWovQD4e3VUoJ_vRsykKqCT5R9wv9V5bOoDkON1_D-diO1wRBxwlbqjm7DMYO6h0AYa164ygbFIq5U8d7pFvjKsCFX2GAK3pShFQXjFnlCcBEIT8YUyNG9ZAk26/s640/instant%C3%A1nea6.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4ztq4Pnn9JCjZD2S5cdpY2ex7TdJaT6vHTdd_jennrpxzXiOwyW1bgQzYxUBam_qnfyCpfaSvJRD1-MvcLh47ZaVi82SJKVQg-74nGLMBPKyh0ci4km_JRBzTArGxC9FRy8f7v3-Itk3U/s1600/instant%C3%A1nea9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
Con ello empezará el proceso, que también incluirá más rpms por cuestiones de dependencias.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Primeros pasos con XBMC&lt;/h2&gt;
&lt;br /&gt;
Ya estamos en disposición de probar XBMC, podremos hacerlo desde el lanzador KDE en &lt;i&gt;Aplicaciones, Multimedia, TV, XBMC&lt;/i&gt;. Si todo va bien se puede aprovechar este primer arranque para establecer el idioma y uso horario. Para ello ir a &lt;i&gt;Ajustes&lt;/i&gt; y después a &lt;i&gt;Apariencia.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggljsmf4IqgyaRRd9lzyJ5EUIRa9erMAuT8TuY6pdRY0zGIh4mqP27ZBUFC7D1wg3HCTJm3xWhVsIS0zYI1R6Ge4o0JeEC6ZlMk_lsjG9lEatpUUoBb231Fyg9r1RNLrItc2f_Qsh-nGBI/s1600/screenshot000.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggljsmf4IqgyaRRd9lzyJ5EUIRa9erMAuT8TuY6pdRY0zGIh4mqP27ZBUFC7D1wg3HCTJm3xWhVsIS0zYI1R6Ge4o0JeEC6ZlMk_lsjG9lEatpUUoBb231Fyg9r1RNLrItc2f_Qsh-nGBI/s640/screenshot000.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Cómo hacer que nuestro ordenador arranque directamente el XBMC &lt;/h4&gt;
Para hacer que nuestro equipo arranque con el gestor de ventanas de XBMC y por tanto que no se cargue KDE, cerraríamos sesión y en la pantalla de login de OpenSuse, haríamos clic en la rueda dentada y escogeríamos el tipo de sesión XBMC. Desde ese momento nuestro ordenador arrancará siempre directamente el XBMC. Mi consejo es dejar esto para más tarde ya que ahora nos será util disponer del escritorio KDE para poner a prueba las cosas antes. Me explico: cuando más adelante queramos disponer de un emulador en XBMC lo más lógico será tenerlo probado todo antes sobre KDE, una vez configurado todo correctamente, será la hora de pegarnos con la configuración del addon correspondiente en XBMC.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj418NNw2ELbM0s17nzTZO40qm6UdMvSfHGt1qvSkwt5P2Jx73vXWg17xhM72UFbWbKVCMuDglP13zpOH6X0vy5kXco7-5ZinMHA1eqdP0fnp7dY1By8vvM-NImdl1Q4OOWqIVeMcaka54T/s1600/login+opensuse.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;285&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj418NNw2ELbM0s17nzTZO40qm6UdMvSfHGt1qvSkwt5P2Jx73vXWg17xhM72UFbWbKVCMuDglP13zpOH6X0vy5kXco7-5ZinMHA1eqdP0fnp7dY1By8vvM-NImdl1Q4OOWqIVeMcaka54T/s400/login+opensuse.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span id=&quot;goog_1253473917&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_1253473918&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para volver a cambiar el tipo de sesión cuando se está en XBMC sólo hay que pulsar la tecla&lt;i&gt; s&lt;/i&gt; del teclado, opción &lt;i&gt;Salir&lt;/i&gt; y estaremos otra vez en la pantalla de login con lo que podremos elegir el tipo sesión KDE.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Ventana o pantalla completa&lt;/h4&gt;
&lt;br /&gt;
De nuevo mi consejo, mientras se esté preparando todo, es trabajar en modo ventana y, como he dicho antes, sobre el escritorio KDE. Este valor se puede cambiar en &lt;i&gt;Ajustes, Sistema, Hardware de vídeo&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8NPP8jnfjZQT__BqlitlNktoadHmxkc1EwmoIvZ70d9-3hVoug7zkKTfMT14iKnQ9pIWPhMD7HXK_NHBUmfqKlji9Iwm81lh-wgMlaYYuvGb0MPu7_Apky4o-3hZYWa08oGa099-bK3fv/s1600/instant%C3%A1nea56.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8NPP8jnfjZQT__BqlitlNktoadHmxkc1EwmoIvZ70d9-3hVoug7zkKTfMT14iKnQ9pIWPhMD7HXK_NHBUmfqKlji9Iwm81lh-wgMlaYYuvGb0MPu7_Apky4o-3hZYWa08oGa099-bK3fv/s640/instant%C3%A1nea56.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4&gt;
Si te conectas a la TV por HDMI y no tienes sonido&lt;/h4&gt;
&lt;br /&gt;
Si vas a usar un cable HDMI entre la tele y tu HTPC, lo normal es que lo probases ahora. Una de las cosas que puede ocurrirte, como a mí, es que no tengas sonido. Si te ocurre esto, comprueba que la salida de audio es la correcta en OpenSuse&lt;br /&gt;
&lt;br /&gt;
Aún así probablemente la cosa siga sin funcionar así que en un terminal ejecuta Alsamix y comprueba si tienes enmudecidos los canales denomindados s-pif, en ese caso actívalos todos. &lt;br /&gt;
&lt;br /&gt;
Ahora ya deberías tener sonido en tu escritorio, pero deberías asegurarte de que en XBMC también, así que debes configurar su salida de audio en &lt;i&gt;Ajustes, Sistema, Salida de Audio&lt;/i&gt;. &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDAqewQMqIpSPpXklrHEnwYlTexJ5HfrhMDzsSUFE64sgkOpcSkHDdpo3eNT20gIDk-jRQNBCTJh8BazBomT1_tFXWF5IO-WannIkokiHjjq5C42DwEdd9gp28BaTir40ynCV1yT3m4iid/s1600/instant%C3%A1nea57.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxURGeMsFiU2Jwtie-mx6Nf-RfWGNWEEWYzmbh2IlWojdN35ez97rPIydfqs6B_8Vg_G_uKlqp3fkFD769cyEqFQy_KFJQsHD89rQ9_AVGmJDPIwG44Pz-rUKJh2SaxxPXvzMI8jU1EqJU/s1600/instant%C3%A1nea57-2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxURGeMsFiU2Jwtie-mx6Nf-RfWGNWEEWYzmbh2IlWojdN35ez97rPIydfqs6B_8Vg_G_uKlqp3fkFD769cyEqFQy_KFJQsHD89rQ9_AVGmJDPIwG44Pz-rUKJh2SaxxPXvzMI8jU1EqJU/s640/instant%C3%A1nea57-2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4&gt;
Si esperas poder manejar XBMC con el mando de tu TV y no te va &lt;/h4&gt;
&lt;br /&gt;
XBMC está preparado para recibir comandos CEC a través del cable HDMI, lo que permite controlarlo con el mando de la TV a la que se conecta. Yo lo comprobé tiempo atrás con mi teléfono Android, un Sony Xperia P con salida micro HDMI en el que tengo instalada la beta de XBMC (de momento no está en Google Play). Por esta razón asumí que mi PC también las recibiría ¡Error! Mi placa Zotac ignora completamente las señales CEC. Si estáis en el mismo caso podéis solucionarlo con el adpatador usb &lt;a href=&quot;http://www.pulse-eight.com/store/products/104-usb-hdmi-cec-adapter.aspx&quot; target=&quot;_blank&quot;&gt;Pulse Eight&lt;/a&gt; (no lo he probado).&lt;br /&gt;
&lt;br /&gt;
En resumen para disponer de CEC tanto la TV, como el PC deben soportarlo. En caso contrario no debemos desesperarnos, podremos usar una app de control remoto en nuestro móvil:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=org.xbmc.android.remote&quot; target=&quot;_blank&quot;&gt;XBMC official remote&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=org.leetzone.android.yatsewidgetfree&quot; target=&quot;_blank&quot;&gt;Yatse XBMC&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;
Hasta aquí, de momento&lt;/h2&gt;
Creo que es un buen punto para dejarlo por ahora. Si todo ha ido bien, tendréis una instalación básica de XBMC con la que podréis empezar a disfrutar de un equipo multimedia en vuestra TV. Más adelante escribiré sobre como optimizar el arranque y como añadir mis addons favoritos (rom collection browser, transmission...). ¡Ah! También pienso contar como incluir Owncloud.</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/8644060645742397470/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/8644060645742397470' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/8644060645742397470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/8644060645742397470'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2013/11/instalacion-de-xbmc-sobre-opensuse.html' title='Instalación de XBMC sobre OpenSuse'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZqELBm02FZGjUPrEEhXCCNAzUrB3TdnbQ6shNNnVz1PLOXMT_4P3XOiqO0hRQB9zQk6vu_EccdByxbPDRoHi6ZKN6pdh-HRLZB8QrxhaSxLOocHxaMEaLLr3XNgJlTcoYZWapkmY7CM89/s72-c/1_itx_ei5_vorne_links.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-5804728220256463145</id><published>2013-10-31T20:31:00.000+01:00</published><updated>2013-10-31T22:49:24.353+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfilebrowser"/><category scheme="http://www.blogger.com/atom/ns#" term="QT"/><category scheme="http://www.blogger.com/atom/ns#" term="qt quick controls"/><category scheme="http://www.blogger.com/atom/ns#" term="qt5"/><title type='text'>Me he equivocado otra vez. Me estoy volviendo loco por hacer una aplicación de escritorio con QtQuick Controls</title><content type='html'>Cuesta admitirlo pero me precipité al querer hacer un navegador de archivos con QtQuick Controls. Hablo de precipitación porque la moraleja para mi es que no están lo suficientemente maduros.&lt;br /&gt;
&lt;br /&gt;
Justo hace un año hice una primera prueba con la beta de Qt 5. En ese momento sí que me di cuenta de que a la cosa le faltaba bastante cocción, lo dejé pronto. Pero con la salida de Qt 5.1 y el &lt;a href=&quot;http://qt-project.org/wiki/New-Features-in-Qt-5.1&quot; target=&quot;_blank&quot;&gt;anuncio&lt;/a&gt; de la primera versión, también estable, de QtQuick Controls, me lancé, a mitades de Agosto, a crear el frontend de &lt;a href=&quot;http://dfilebrowser.deuteros.es/&quot; target=&quot;_blank&quot;&gt;DFileBrowser &lt;/a&gt;en QML. Lo que me encontré fue lo siguiente: &lt;br /&gt;
&lt;h4&gt;
&amp;nbsp;&lt;/h4&gt;
&lt;h4&gt;
Velocidad de desarrollo&lt;/h4&gt;
Pronto tuve la sensación de que todo costaba más tiempo que usando widgets. Crear un ListView para ver los archivos me ha parecido un mundo. Echaba de menos esa capacidad de decir si es multiselección o no, si tiene scrollbar, etc. Todo se lo tiene que guisar uno mismo.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9EifnuNMB_8mSPAixwrfzeNXHKmRnMNQPRDGcsl02eu3E3NRX4FRHKo9W0FKjlPlMUSissix0MivQYHoygef61iNe_vQEHHHG8U_iifvxB7Z6jL4_Ymwu5OXkXMflUlOYGkh1COCiYcw7/s1600/selecting.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;156&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9EifnuNMB_8mSPAixwrfzeNXHKmRnMNQPRDGcsl02eu3E3NRX4FRHKo9W0FKjlPlMUSissix0MivQYHoygef61iNe_vQEHHHG8U_iifvxB7Z6jL4_Ymwu5OXkXMflUlOYGkh1COCiYcw7/s200/selecting.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Otro ejemplo de esto fue el tener que hacer mi propio componente para seleccionar iconos, el&lt;br /&gt;
conocido rectángulo que trazas manteniendo apretado el botón izquierdo del ratón. Además tenía que calcular si los iconos estaban en el interior del rectángulo o dejaban de estarlo y, por supuesto, pintarlos como seleccionados según el caso.&lt;br /&gt;
&lt;br /&gt;
Podría buscar mas casos pero creo que con esto es suficiente para hacerse una idea. &lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Cosas básicas que están pero no funcionan bien.&amp;nbsp;&lt;/h4&gt;
Al salir Qt 5.1.1 me di cuenta que la SplitView fallaba, había dejado de funcionar. Así que metí mi primer &lt;a href=&quot;https://bugreports.qt-project.org/browse/QTBUG-33448&quot; target=&quot;_blank&quot;&gt;bug &lt;/a&gt;en la página habilitada para tal cosa por el proyecto Qt. Lo positivo fue que en unos pocos días estaba corregido y asignado a la próxima versión del SDK (5.1.2)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9EifnuNMB_8mSPAixwrfzeNXHKmRnMNQPRDGcsl02eu3E3NRX4FRHKo9W0FKjlPlMUSissix0MivQYHoygef61iNe_vQEHHHG8U_iifvxB7Z6jL4_Ymwu5OXkXMflUlOYGkh1COCiYcw7/s1600/selecting.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h4&gt;
Cosas que necesitaba y están por llegar.&amp;nbsp;&lt;/h4&gt;
Ahora llegamos a lo último que descubrí, el drag and drop sólo funciona en la propia aplicación. Lo tenía implementado y me había dado cuenta de que sólo podía usarlo entre los dos navegadores que se pueden tener disponibles en DFileBrowser. Pensé que no me funcionaba con otras aplicaciones externas porque no había hecho algo bien, así que me anoté eso como un bug propio y me lo dejé para el final, pero tras un par de pruebas y rebuscar un poco por foros y listas de correo encontré que no era posible comunicarse con otros programas usando esta funcionalidad.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVhNiOGZPHMXX02QWmuZsesylkxzRv1fS3V2oylxWX7XzNo6X53VFbIMZwiR7eN64xcXTvOBrE6q6BH-11BLsZwlFDtxerWl2l6o2KDM1HYQ4LnThb7uL_ly14_GQmFKuQK1S47ULG-3mu/s1600/drag&amp;amp;drop.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVhNiOGZPHMXX02QWmuZsesylkxzRv1fS3V2oylxWX7XzNo6X53VFbIMZwiR7eN64xcXTvOBrE6q6BH-11BLsZwlFDtxerWl2l6o2KDM1HYQ4LnThb7uL_ly14_GQmFKuQK1S47ULG-3mu/s200/drag&amp;amp;drop.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h4&gt;
Moraleja&lt;/h4&gt;
Como he dicho en un principio, pienso que me precipité. Debí darme cuenta de algunas de estas cosas antes o haberme documentado más. También es cierto que es relativamente difícil encontrar que tal cosa está disponible o no cuando das por hecho que así es por analogía con los widgets. En fin, al final el segundo punto y el tercero no dejan de ser anécdotas sabiendo que la versión 5.2 ya &lt;a href=&quot;https://bugreports.qt-project.org/browse/QTBUG-27498&quot; target=&quot;_blank&quot;&gt;incluirá &lt;/a&gt;el drag and drop. Lo que me preocupa realmente es que continúe con la sensación de que todo es mucho más costoso y de que tienes que hacerte cosas que antes las tenías hechas y las podías incluir con una línea de código.</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/5804728220256463145/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/5804728220256463145' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/5804728220256463145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/5804728220256463145'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2013/10/me-he-equivocado-otra-vez-me-estoy.html' title='Me he equivocado otra vez. Me estoy volviendo loco por hacer una aplicación de escritorio con QtQuick Controls'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9EifnuNMB_8mSPAixwrfzeNXHKmRnMNQPRDGcsl02eu3E3NRX4FRHKo9W0FKjlPlMUSissix0MivQYHoygef61iNe_vQEHHHG8U_iifvxB7Z6jL4_Ymwu5OXkXMflUlOYGkh1COCiYcw7/s72-c/selecting.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-7001155111663883944</id><published>2013-09-20T20:47:00.000+02:00</published><updated>2013-09-20T20:47:16.746+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dfilebrowser"/><category scheme="http://www.blogger.com/atom/ns#" term="qt quick controls"/><category scheme="http://www.blogger.com/atom/ns#" term="qt5"/><title type='text'>Portando DFileBrowser al escritorio</title><content type='html'>&lt;span rel=&quot;sioc:has_creator&quot;&gt;&lt;span class=&quot;username&quot;&gt;&lt;/span&gt;&lt;/span&gt;      
      &lt;br /&gt;
&lt;div class=&quot;PostContent&quot;&gt;
&lt;div class=&quot;article&quot;&gt;
&lt;div class=&quot;field field-name-body field-type-text-with-summary field-label-hidden&quot;&gt;
&lt;div class=&quot;field-items&quot;&gt;
&lt;div class=&quot;field-item even&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
Hace tiempo hice un &lt;a class=&quot;&quot; href=&quot;http://dfilebrowser.deuteros.es/node/1&quot; id=&quot;&quot; name=&quot;&quot; target=&quot;_blank&quot;&gt;primer intento&lt;/a&gt;
 de crear una versión de escritorio de DFileBrowser. Por entonces QT5 no había sido lanzado aún y finalmente dejé el desarrollo para esperar a una versión estable de los&amp;nbsp; &lt;a class=&quot;&quot; href=&quot;http://qt-project.org/doc/qt-5.1/qtquickcontrols/qtquickcontrols-index.html&quot; id=&quot;&quot; name=&quot;&quot; target=&quot;_blank&quot;&gt;QT Quick Controls&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ahora estoy dedicando tiempo en tener una versión usable de la aplicación tanto en Linux como en Windows, como se puede ver en la imagen.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo7CEmWvDoBd3IY281AU63dVZcswMSluTV6ztzp9qpAqo2WjZnESKCtc1Vt5gfvt2sZruxTwgkFzMsZ85Y4CQO1GovMs6vzQnHJ-giM_5nwlIU5_n0-jmFkCmlEMzFUUxPWlP9F6OJtdUt/s1600/desktop+++preview.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;369&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo7CEmWvDoBd3IY281AU63dVZcswMSluTV6ztzp9qpAqo2WjZnESKCtc1Vt5gfvt2sZruxTwgkFzMsZ85Y4CQO1GovMs6vzQnHJ-giM_5nwlIU5_n0-jmFkCmlEMzFUUxPWlP9F6OJtdUt/s640/desktop+++preview.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Aún queda bastante por hacer: actualizar las&amp;nbsp;&lt;a class=&quot;&quot; href=&quot;http://dfilebrowser.deuteros.es/node/11&quot; id=&quot;&quot; name=&quot;&quot; target=&quot;_blank&quot;&gt; traducciones&lt;/a&gt;, mejorar el interfaz de usuario, resolver errores... La idea es tener una versión beta en un mes o así.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/7001155111663883944/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/7001155111663883944' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/7001155111663883944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/7001155111663883944'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2013/09/portando-dfilebrowser-al-escritorio.html' title='Portando DFileBrowser al escritorio'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo7CEmWvDoBd3IY281AU63dVZcswMSluTV6ztzp9qpAqo2WjZnESKCtc1Vt5gfvt2sZruxTwgkFzMsZ85Y4CQO1GovMs6vzQnHJ-giM_5nwlIU5_n0-jmFkCmlEMzFUUxPWlP9F6OJtdUt/s72-c/desktop+++preview.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-1509629465139054617</id><published>2013-07-26T20:14:00.000+02:00</published><updated>2013-08-08T13:35:31.267+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mapas"/><category scheme="http://www.blogger.com/atom/ns#" term="programación"/><category scheme="http://www.blogger.com/atom/ns#" term="qml"/><category scheme="http://www.blogger.com/atom/ns#" term="QT"/><category scheme="http://www.blogger.com/atom/ns#" term="qt5"/><category scheme="http://www.blogger.com/atom/ns#" term="qtlocation"/><title type='text'>Creando un componente simple de QML para usar en mapas. Un ejemplo con QT Location en QT 5</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBuCScHurPj0FUhUqZnkcz9cD3Eh1-t_wpQwXRUf2XXk7PRQ-wU4eZpB7GJQjp4sOJhxXor2g84ssytogjPPDpJQFcHTGPN0acxLc-7sGk6etoDbc9XFJAfOkZHOWmve1On9CrpV05uGtb/s1600/map-icons.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBuCScHurPj0FUhUqZnkcz9cD3Eh1-t_wpQwXRUf2XXk7PRQ-wU4eZpB7GJQjp4sOJhxXor2g84ssytogjPPDpJQFcHTGPN0acxLc-7sGk6etoDbc9XFJAfOkZHOWmve1On9CrpV05uGtb/s200/map-icons.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/a&gt;Ayer andaba buscando iconos para usar en una aplicación con mapas y me encontré con un recurso bastante interesante llamado &lt;a href=&quot;http://www.webiconset.com/map-icons/&quot; target=&quot;_blank&quot;&gt;Map Icons Designer&lt;/a&gt;. Como podréis ver tienen una pinta bastante atractiva y, si seguís viendo su página, encontraréis que por un lado se nos proporcionan los pines y por otro los símbolos.&amp;nbsp; La solución, evidentemente, es juntar ambas cosas con algo de coherencia y en el caso que se muestra a continuación se hará mediante un componente QML creado a partir de dos imágenes.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg-KWddMNnuMWULywnnFtPLscadBAu0__Z3OPeQnm0yW2swuyUzk6FA9CJW4GTYXBjSTXGp2POoUP2ePG8Y-soM6Y0vToxQtXKX7iPXWKLkERmnHV3zMAMriDpr8vfrrW3sEXqtoohnlOE/s1600/pin2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg-KWddMNnuMWULywnnFtPLscadBAu0__Z3OPeQnm0yW2swuyUzk6FA9CJW4GTYXBjSTXGp2POoUP2ePG8Y-soM6Y0vToxQtXKX7iPXWKLkERmnHV3zMAMriDpr8vfrrW3sEXqtoohnlOE/s1600/pin2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
Primero un componente QML facilón &lt;/h2&gt;
La cosa es bastante fácil, sólo hay que posicionar el símbolo sobre el marcador y para ello usaremos la propiedad &quot;anchor&quot;: la posición relativa de ambos tendrá el mismo centro horizontal, después alinearemos el borde superior del símbolo al pin pero dándole un margen adecuado.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:cpp;&quot;&gt;anchors.top: parent.top
anchors.topMargin: 10
anchors.horizontalCenter: parent.horizontalCenter&lt;/pre&gt;
&lt;br /&gt;
Por otro lado, aunque vamos a usar sólo uno de los marcadores que se nos proporcionan, los iconos a situar en el interior los deberemos elegir dinámicamente. Esto lo conseguiremos creando una propiedad, usando &quot;property alias&quot;, en la que indicaremos el elemento que queremos.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:cpp;&quot;&gt;property alias symbol:symbol.source&lt;/pre&gt;
&lt;br /&gt;
Además podemos meter todas las imágenes en un archivo .qrc y darles una alias para facilitar el acceso desde la aplicación. En la captura que hay a continuación se puede ver que hay definidos dos prefijos uno para los pines y otro para los símbolos.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_hRBB2ycXkawmG5HUEAR-ZZoPwTMmbtp1zuTAeumaX-MCYxa0aqSU-Cjcs-_SXNiISGL04fR4zRKx73RXftVXpo7nIQZDWY0BWONITwIy5OqpC1G5xJLul8I_mS_JDYDNgr0akCGya8WA/s1600/markers-resources.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_hRBB2ycXkawmG5HUEAR-ZZoPwTMmbtp1zuTAeumaX-MCYxa0aqSU-Cjcs-_SXNiISGL04fR4zRKx73RXftVXpo7nIQZDWY0BWONITwIy5OqpC1G5xJLul8I_mS_JDYDNgr0akCGya8WA/s640/markers-resources.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
De momento, el componente queda tal y como se muestra aquí:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:cpp;&quot;&gt;import QtQuick 2.0

Image {
    property alias symbol:symbol.source
    id: pin
    source: &quot;qrc:/pins/blue&quot;
    Image{
        id: symbol
        anchors.top: parent.top
        anchors.topMargin: 10
        anchors.horizontalCenter: parent.horizontalCenter
    }
}&amp;nbsp;&lt;/pre&gt;
&lt;h2&gt;
Un ejemplo con QT Location&lt;/h2&gt;
En cuanto a su utilización, para obtener algo similar a la imagen que se encuentra más abajo, puede incluirse dentro en un Map del módulo &lt;a href=&quot;http://qt.gitorious.org/qt/qtlocation&quot; target=&quot;_blank&quot;&gt;QT Location&lt;/a&gt;, pintándolo a traves de un MapQuickItem:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:cpp;&quot;&gt;   
Map {
        id: nmap
        center {
            latitude: -27
            longitude: 153
        }

        zoomLevel: 10
        plugin : Plugin {name : &quot;osm&quot;} 
        MapQuickItem {
            coordinate: nmap.center
            anchorPoint: &quot;0,0&quot;
            sourceItem: Marker{symbol:&quot;qrc:/symbols/car&quot;}
        }
}&amp;nbsp;&lt;/pre&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNR830MNzrKPgwddTFwG0d5GWOJFTedjOFigNm79wv9J0jKvNNsp0lePUZyri8mkDMkCB4NoOJ_abmCQi4Dcpt6KqjyFMX_v2Rv7hn5me8qkD9f5CFL9_p_IgywtnlW2Az8If1oU08M3m8/s1600/mapicons.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;288&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNR830MNzrKPgwddTFwG0d5GWOJFTedjOFigNm79wv9J0jKvNNsp0lePUZyri8mkDMkCB4NoOJ_abmCQi4Dcpt6KqjyFMX_v2Rv7hn5me8qkD9f5CFL9_p_IgywtnlW2Az8If1oU08M3m8/s400/mapicons.png&quot; width=&quot;400&quot; /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Pero esto nos llevará a pensar que, puestos a usarlo con &lt;a href=&quot;http://qt.gitorious.org/qt/qtlocation&quot; target=&quot;_blank&quot;&gt;qtLocation&lt;/a&gt;, será mejor si el propio componente es un MapQuickItem, con lo que heredará todas sus propiedades. Además, añadiremos un par de cosas:&amp;nbsp;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Por un lado corregiremos el posicionamiento del elemento. En QML nuestros elementos se posicionan tomando como referencia el vértice superior izquierdo y, como se puede ver, el pin tiene una punta abajo y centrada para indicar el punto exacto en el que se localiza. Esto lo solucionamos indicando lo siguiente:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;brush:cpp;&quot;&gt;  
    anchorPoint.x: pin.width/2
    anchorPoint.y: pin.height
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Además añadiremos un&amp;nbsp; MouseArea para detectar eventos sobre el marcador. En el ejemplo solo se trata el click pero podrían ponerse más&lt;/li&gt;
&lt;/ul&gt;
Por tanto, el componente nos queda así:&lt;br /&gt;
&lt;pre class=&quot;brush:cpp;&quot;&gt;  
import QtQuick 2.0
import QtLocation 5.0

MapQuickItem{
    id: root
    property alias symbol:symbol.source
    signal clicked()

    anchorPoint.x: pin.width/2
    anchorPoint.y: pin.height

    sourceItem: Image {
        id: pin
        source: &quot;qrc:/pins/blue&quot;
        Image{
            id: symbol
            anchors.top: parent.top
            anchors.topMargin: 10
            anchors.horizontalCenter: parent.horizontalCenter
        }
    }
    MouseArea{
        anchors.fill:parent
        onClicked: root.clicked()
    }
}
&lt;/pre&gt;
Y podremos usarlo de la siguiente manera::&lt;br /&gt;
&lt;pre class=&quot;brush:cpp;&quot;&gt;  
import QtQuick 2.0
import QtLocation 5.0

Rectangle{
    width: 480;
    height: 300;

    Map {
        id: nmap
        width: parent.width
        height: parent.height
        anchors.centerIn: parent

        center {latitude: -27;longitude: 153}
        zoomLevel: 10

        gesture.flickDeceleration: 3000
        gesture.enabled: true
        plugin : Plugin { name : &quot;osm&quot;}

        Marker {
            symbol:&quot;qrc:/symbols/car&quot;
            coordinate{
                latitude:-27
                longitude:153
            }
            onClicked: console.log(&quot;clicked!&quot;)
        }

        Marker {
            symbol:&quot;qrc:/symbols/food&quot;
            coordinate{
                latitude:-27.1
                longitude:153.1
            }
        }
    }
}&lt;/pre&gt;
&lt;br /&gt;
&lt;h2&gt;
El proyecto en GitHub&amp;nbsp;&lt;/h2&gt;
&amp;nbsp;Para terminar sólo queda decir que el proyecto está disponible en GitHub, lo tenéis &lt;a href=&quot;https://github.com/deuteros76/qml-location-marker&quot; target=&quot;_blank&quot;&gt;aquí.&lt;/a&gt; Se debe tener en cuenta que hay que descargar a parte los iconos, el autor no permite la redistribución, y que se trata de un proyecto en QT5 por tanto hay&amp;nbsp; que compilar QT Location por nuestra cuenta, ya que es un módulo externo.</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/1509629465139054617/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/1509629465139054617' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/1509629465139054617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/1509629465139054617'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2013/07/creando-un-componente-simple-de-qml.html' title='Creando un componente simple de QML para usar en mapas. Un ejemplo con QT Location en QT 5'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBuCScHurPj0FUhUqZnkcz9cD3Eh1-t_wpQwXRUf2XXk7PRQ-wU4eZpB7GJQjp4sOJhxXor2g84ssytogjPPDpJQFcHTGPN0acxLc-7sGk6etoDbc9XFJAfOkZHOWmve1On9CrpV05uGtb/s72-c/map-icons.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-3537790221474820439</id><published>2013-07-22T22:09:00.000+02:00</published><updated>2013-07-30T20:37:18.279+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programación"/><category scheme="http://www.blogger.com/atom/ns#" term="traducción"/><category scheme="http://www.blogger.com/atom/ns#" term="Transifex"/><title type='text'>Transifex. Haz que la comunidad traduzca tus aplicaciones</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMZsA1GD0S1uRNAWQENJtC7ztLv7tZHPaUtz7z6NdiFJ94DAHbPSRUQcVLwRKrqstVX4Ukbp8xQtLq3ITVG0vatBWEn-I_r9GWmZOKQ6Sg2JiWq9aIsfp2n7-lrh9_5hz32jtBJYsDNMdr/s1600/dashboard.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMZsA1GD0S1uRNAWQENJtC7ztLv7tZHPaUtz7z6NdiFJ94DAHbPSRUQcVLwRKrqstVX4Ukbp8xQtLq3ITVG0vatBWEn-I_r9GWmZOKQ6Sg2JiWq9aIsfp2n7-lrh9_5hz32jtBJYsDNMdr/s200/dashboard.jpg&quot; width=&quot;188&quot; /&gt;&lt;/a&gt;Pongamos que tienes una aplicación y empiezas a 
distribuirla. Seguramente la habrás hecho en inglés para poder llegar a 
más gente. Si además has utilizado algún sistema de traducción, cosa que
 deberías hacer siempre, seguramente habrás metido el español como 
segundo idioma. Así pues, tendrás una aplicación con todo lo necesario 
para incluir todos los lenguajes posibles y habrá llegado&amp;nbsp; el momento de
 pedir ayuda: necesitas traductores.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Transifex es una 
web donde puedes publicar tu aplicación, subiendo un fichero de idioma 
base y dejar a la comunidad que haga el resto. Por supuesto que cuanto 
más útil y más popular sea tu software, más voluntarios se ofrecerán 
para hacer el trabajo. Además, aquellos que se presten no podrán hacer 
la traducción directamente ya que tendrás que aceptar la creación de un 
equipo de traductores de un un lenguaje determinado.&lt;br /&gt;
&lt;br /&gt;
Me explicaré mejor. Digamos que has creado el perfil de tu aplicación y has subido el fichero del idioma en inglés. Después, alguien que habla francés se interesa en la traducción así que desde su perfil, haciendo un clic, crea una solicitud de un nuevo equipo de traducción,&amp;nbsp; el de francés, con lo que llegará una notificación a tu correo. Desde tu perfil podrás aceptar al nuevo equipo y entonces sólo te quedará esperar. Verás el progreso de cada equipo en el panel de control de la aplicación. Finalmente podrás bajarte el fichero de cada nuevo idioma e incluirlo en la nueva versión de tu programa.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;465&quot; src=&quot;data:image/png;base64,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AhSgAAUo4M0CDD5489nnsVOAAhSgAAUoQAEKUIACFKAABTwgwOCDB5C5CwpQgAIUoAAFKEABClCAAhSggDcLMPjgzWefx04BClCAAhSgAAUoQAEKUIACFPCAAIMPHkDmLihAAQpQgAIUoAAFKEABClCAAt4swOCDN599HjsFKEABClCAAhSgAAUoQAEKUMADAgw+eACZu6AABShAAQpQgAIUoAAFKEABCnizAIMP3nz2eewUoAAFKEABClCAAhSgAAUoQAEPCDD44AFk7oICFKAABShAAQpQgAIUoAAFKODNAgw+ePPZ57FTgAIUoAAFKEABClCAAhSgAAU8IMDggweQuQsKUIACFKAABShAAQpQgAIUoIA3CzD44M1nn8dOAQpQgAIUoAAFKEABClCAAhTwgACDDx5A5i4oQAEKUIACFKAABShAAQpQgALeLMDggzeffR47BShAAQpQgAIUoAAFKEABClDAAwIMPngAmbugAAUoQAEKUIACFKAABShAAQp4swCDD9589nnsFKAABShAAQpQgAIUoAAFKEABDwgw+OABZO6CAhSgAAUoQAEKUIACFKAABSjgzQIMPnjz2eexU4ACFKAABShAAQpQgAIUoAAFPCDA4IMHkLkLClCAAhSgAAUoQAEKUIACFKCANwsw+ODNZ5/HTgEKUIACFKAABShAAQpQgAIU8IAAgw8eQOYuKEABClCAAhSgAAUoQAEKUIAC3izA4IM3n30eOwUoQAEKUIACFKAABShAAQpQwAMCDD54AJm7oAAFKEABClCAAhSgAAUoQAEKeLMAgw/efPZ57BSgAAUoQAEKUIACFKAABShAAQ8IMPjgAWTuggIUoAAFKEABClCAAhSgAAUo4M0CDD5489nnsVOAAhSgAAUoQAEKUIACFKAABTwgwOCDB5C5CwpQgAIUoAAFKEABClCAAhSggDcLMPjgzWefx04BClCAAhSgAAUoQAEKUIACFPCAAIMPHkDmLihAAQpQgAIUoAAFKEABClCAAt4swOCDN599HjsFKEABClCAAhSgAAUoQAEKUMADAgw+eACZu6AABShAAQpQgAIUoAAFKEABCnizAIMP3nz2eewUoAAFKEABClCAAhSgAAUoQAEPCDD44AFk7oICFKAABShAAQpQgAIUoAAFKODNAgw+ePPZ57FTgAIUoAAFKEABClCAAhSgAAU8IMDggweQuQsKUIACFKAABShAAQpQgAIUoIA3CzD44M1nn8dOAQpQgAIUoAAFKEABClCAAhTwgACDDx5A5i4oQAEKUIACFKAABShAAQpQgALeLMDggzeffR47BShAAQpQgAIUoAAFKEABClDAAwIMPngAmbugAAUoQAEKUIACFKAABShAAQp4swCDD9589nnsFKAABShAAQpQgAIUoAAFKEABDwgw+OABZO6CAhSgAAUoQAEKUIACFKAABSjgzQIMPnjz2eexU4ACFKAABShAAQpQgAIUoAAFPCDA4IMHkLkLClCAAhSgAAUoQAEKUIACFKCANwvUiuBDTk4OHnroITz66KN49913y52Pu+++2+XzU511Xa7Ui1Y8Fr9j2aYiaU2d/4r18jUFKHBUoCZ+V2uTZ105nrrSztp0bqtqS02Y1kQdVbWzrr3vCRNP7ONEuLv7uI6nfmffsTxl5awNx3Nsnmo/90MBCtScgF/NVVW5pueffx5JSUkIDg5GcXExsrKyEBMTgyuvvBL16tUr2+D333/Hqaeean60PPDAA3jssccqV+jFSzxtUlP7mz59OoYPH47w8HCHZ4/n3yGN29+wPc/2zpW9ZTXdqOO91o4cOWKClgcPHoSvry+KiooQGxuLq6++2vxXyyOPPAL98qNl+fLl6Nmzp/l3UFCQCXzaKy+88AJGjx6NLl26mLfz8vLw6aefYsuWLQgICEBhYSGys7MxceLEsvrs1VNXlrniqMfyxBNPID09HU8++aTdQ1NPdb3vvvvM+w8//DDuuOOOSp8Ba9aswcyZM3H77bfbredYzpndimrxwmO99j3xe1mL2ardtJPN62Q7nmqf0Fq+gb3zc6y/69U9VHv7rvgdq7p11sT6FdvgKY+aaDvroAAFalbArcEHbepNN92E+Pj4slZv3LgR99xzj/kC27BhQ7N8z549GDFiRNk6xxp4sFgsNatTi2o7VpNjPYSa2t+6detM8MFZqanz72wffM++gO15tneu7C2zX9OxLz2eay05Odnc5N55551o06ZNWSO2b9+OBx98EI8//jiio6PLBRhuvfVW8/njrCxduhSBgYFlgYfc3FzcdddduPTSS03w1Fo00JGfn1+uqoULF5ogSEJCgt1dVPW+3Y1qYKGzz0dXHa3N0LoOHz6MuLi4ci1LSUmBWmnwoaqiQZ2///4b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AAEQCGACMD4EcOdANRAAARAAARAAARAAARAAARAAARAIBgIwPgRDL6INIAACIAACIAACIAACIAACIAACIBDABGB8CODOgWogAAIgAAIgAAIgAAIgAAIgAAIgEAwEYHwIhl5EG0AABEAABEAABEAABEAABEAABEAggAnA+BDAnQPVQAAEQAAEQAAEQAAEQAAEQAAEQCAYCMD4EAy9iDaAAAiAAAiAAAiAAAiAAAiAAAiAQAATgPEhgDsHqoEACIAACIAACIAACIAACIAACIBAMBCA8SEYehFtAAEQAAEQAAEQAAEQAAEQAAEQAIEAJgDjQwB3DlQDARAAARAAARAAARAAARAAARAAgWAgAONDMPQi2gACIAACIAACIAACIAACIAACIAACAUwAxocA7hyoBgIgAAIgAAIgAAIgAAIgAAIgAALBQADGh2DoRbQBBEAABEAABEAABEAABEAABEAABAKYAIwPAdw5UA0EQAAEQAAEQAAEQAAEQAAEQAAEgoEAjA/B0ItoAwiAAAiAAAiAAAiAAAiAAAiAAAgEMAEYHwK4c6AaCIAACIAACIAACIAACIAACIAACAQDARgfgqEX0QYQAAEQAAEQAAEQAAEQAAEQAAEQCGACMD4EcOdANRAAARAAARAAARAAARAAARAAARAIBgIwPgRDL6INIAACIAACIAACIAACIAACIAACIBDABGB8CODOgWogAAIgAAIgAAIgAAIgAAIgAAIgEAwEYHwIhl5EG1UWIicAACAASURBVEAABEAABEAABEAABEAABEAABEAggAnA+BDAnQPVQAAEQAAEQAAEQAAEQAAEQAAEQCAYCIT7qxEuF1F+cRkVl1dSbW2dv6qBXBAAARAAARAAARAAARAAARAAARBoMwJhYaGUEBNFKQmxFBLSZmoEfMUhLk7+0DKvqIwqqqophP+r808V/lAbMkEABEAABEAABEAABEAABEAABEDAMYFQtji4+L/oyAhKTYx1XK69ZfTbsgvxeIDhob0NJ7QXBEAABEAABEAABEAABEAABNoXAXnZLnNfmQMjeSbgN+ODLLWAx4Nn8LgCAiAAAiAAAiAAAiAAAiAAAiAQHARk7otwA9Z96Tfjg3W1uAoCIAACIAACIAACIAACIAACIAACINBeCPgt4GR7AYh2ggAIgAAIgAAI+IeAhIw6xDGkCsqqqAbBq/0D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&quot; style=&quot;cursor: move;&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;No voy a entrar mucho en detalles, será mejor que lo descubráis vosotros: podéis trabajar con ficheros .po, .ts, añadir miembros a los equipos de traducción, nombrar coordinadores que revisen las traducciones...&lt;br /&gt;
&lt;br /&gt;
Una cosa más, si os interesa mucho una determinada traducción y no se ha prestado nadie a hacerla, siempre podréis solicitarla mediante el pago por palabra traducida.&lt;br /&gt;
&lt;br /&gt;
Para terminar sólo me resta decir que, en mi caso, con una aplicación open source con una comunidad bastante modesta, ya se han hecho traducciones a seis idiomas. Ahora sólo os queda probar.</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/3537790221474820439/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/3537790221474820439' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3537790221474820439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3537790221474820439'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2013/07/transifex-haz-que-la-comunidad-traduzca.html' title='Transifex. Haz que la comunidad traduzca tus aplicaciones'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMZsA1GD0S1uRNAWQENJtC7ztLv7tZHPaUtz7z6NdiFJ94DAHbPSRUQcVLwRKrqstVX4Ukbp8xQtLq3ITVG0vatBWEn-I_r9GWmZOKQ6Sg2JiWq9aIsfp2n7-lrh9_5hz32jtBJYsDNMdr/s72-c/dashboard.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-4368305878112510162</id><published>2013-07-21T10:34:00.001+02:00</published><updated>2013-07-21T13:55:58.424+02:00</updated><title type='text'>Blog en obras. Volviendo a Blogger</title><content type='html'>Voy a hacer un nuevo intento de retomar el blog. Esta vez abandonando la web en Drupal y volviendo a Blogger. La razón es sencilla, no tengo tiempo para mantener actualizado el sitio, instalar las últimas versiones de los módulos que uso para prevenir fallos de seguridad, etc.&lt;br /&gt;
&lt;br /&gt;
Así que ando copiando poco a poco los artículos que desde finales del 2010 había publicado y, con un poco de suerte, eso se ira mezclando con otros nuevos.</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/4368305878112510162/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/4368305878112510162' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/4368305878112510162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/4368305878112510162'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2013/07/blog-en-obras-volviendo-blogger.html' title='Blog en obras. Volviendo a Blogger'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-6606756455491942395</id><published>2012-12-23T17:10:00.000+01:00</published><updated>2013-07-22T17:23:11.202+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="media maratón"/><category scheme="http://www.blogger.com/atom/ns#" term="running"/><title type='text'>¡Maldito puente!</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivpXI8Hy5lhyphenhyphen_MfIM7Cm_48fee2BFLvaO4DkkTzHnz2F-UQ5VvpUZAUumjuWl_dK1fz9NBsj6y3rA97Vu6I-xiR36sO8SQgnn34l8JA6INkdcyVi-jZU2xwTBARQC1DJSeofiyOYlIbngq/s1600/llegada.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivpXI8Hy5lhyphenhyphen_MfIM7Cm_48fee2BFLvaO4DkkTzHnz2F-UQ5VvpUZAUumjuWl_dK1fz9NBsj6y3rA97Vu6I-xiR36sO8SQgnn34l8JA6INkdcyVi-jZU2xwTBARQC1DJSeofiyOYlIbngq/s200/llegada.jpg&quot; width=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span aria-live=&quot;polite&quot; class=&quot;fbPhotosPhotoCaption&quot; data-ft=&quot;{&amp;quot;type&amp;quot;:45}&quot; id=&quot;fbPhotoSnowliftCaption&quot; tabindex=&quot;0&quot;&gt;Pasamos bajo el arco y miré mi reloj. Habíamos completado la primera vuelta y marcaba 59:59.&lt;/span&gt;&lt;br /&gt;
&lt;span aria-live=&quot;polite&quot; class=&quot;fbPhotosPhotoCaption&quot; data-ft=&quot;{&amp;quot;type&amp;quot;:45}&quot; tabindex=&quot;0&quot;&gt;&lt;br /&gt;
 - Una hora justa – dije- Si mantenemos el ritmo podemos bajar de dos 
horas – David asintió y yo sabía que el hombre de  rojo que se nos había
 pegado los últimos tres kilómetros lo había oído también&lt;br /&gt; Iba a ser difícil pero la cosa pintaba mejor que en la media de Valencia. Al menos a mitad de carrera no hab&lt;span class=&quot;text_exposed_show&quot;&gt;ía
 nada que recuperar, sólo mantener el ritmo y confiar en poder apretar 
un poco al final. Llegamos a la marca del kilómetro once y pulsé el 
botón de vuelta.&lt;br /&gt; - Hemos hecho este kilómetro en 5:29 – La gente 
parecía haberse puesto nerviosa al comenzar la segunda vuelta. David 
contestó que había que mantener pero el de rojo parecía acelerar y el 
otro no quería dejar que se fuera. Supe lo que iba a pasar y continué – 
Yo no voy a poder ir a más de esto, pilla un ritmo cómodo que puedas 
mantener hasta el final - Era su primera media maratón.&lt;br /&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=5704109791193957139&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Comenzaron a escaparse lentamente, metro a metro. Me asustaba la idea de
 que  fuera yo el que se estaba desplomando y no ellos los que se venían
 arriba. Necesitaba confirmarlo en la siguiente marca, pero ¿dónde 
estaba el doce? Ni rastro, o quizá me había despistado y se me había 
pasado. Más tensión, tendría que comprobarlo en el trece. Todo seguía 
bien pero tenía que estar seguro. Allí estaba el panel: 11:07 lo que 
significaba unos 5:33 por kilómetro. Mantenía el ritmo a ocho para el 
final. Se necesita una media de 5:41 para llegar en dos horas a meta en 
una media, así que estaba ganando un colchón de casi medio minuto. Y 
cada vez que le daba al botón rojo la ventaja aumentaba 5:36, 5:34, 
5:34. Mis piernas funcionaban como un reloj a cinco del final. &lt;br /&gt;
&lt;br /&gt;
Ahora tenia pegado a alguien de naranja. La mayor parte de la carrera 
me había sentido liebre de alguien, de David y el de rojo al principio y
 ahora de este. Llegamos un camino de naranjos con ligero desnivel en 
contra. En la primera vuelta habían sido los pasos más lentos pero podía
 controlar la situación. 5:54  en el temido 17, algo peor de lo que 
esperaba, se llevaba una buena parte de mi colchón aunque podía 
encajarlo y me sentía bien. A por el siguiente. &lt;br /&gt;
&lt;br /&gt;
- El de 
naranja parece aguantar a duras penas tal vez lo descuelgue – Pensé, 
pero poco después al llegar a la rotonda que nos encarrilaba hacia la 
estación de metro de Picanya se me puso en paralelo y en seguida se me 
adelantó. No estaba apretando el, era yo el que me venía abajo. Mis 
rodillas habían decidido mandarme señales de alarma y eso se convertía 
en un 5:45 en dieciocho – Puede valerme – A estas alturas las 
conversaciones conmigo mismo empezaban a ser muy frecuentes – Si 
mantengo la velocidad puedo bajar de las 2 horas – Cálculos mentales, 
odiosos cálculos mentales que surgen cuando se acercan el final de una 
carrera. Cálculos que demostraban que lo que decía era cierto. Si no me 
desplomaba llegaría unos segundos antes de completar segunda hora de 
carrera.&lt;br /&gt;
&lt;br /&gt;
Mis rodillas seguían aumentando la sensación del 
dolor, pero intentaba hacer caso omiso y al completar el decimonoveno mi
 cronómetro indicó 5:44, algo que era una noticia medianamente buena 
porque las  matemáticas seguían de mi lado y sin embargo cada vez me 
costaba más. Tenía la sensación de que iba más despacio, no sólo por las
 rodillas sino porque mis pies parecían no levantarse a la misma altura 
del suelo que con anterioridad. Empezaba a sentir rabia, había llevado 
una buena marcha durante toda la carrera  y todo se iba a ir al traste 
al final. Para colmo ya veía el puente ante mí. &lt;br /&gt;
&lt;br /&gt;
5:51 en el 
veinte, eso ya no era una buena noticia y no podía más. La única 
posibilidad era subir a buen ritmo y usar la bajada para ganar tiempo. 
Si conseguía hacer lo primero lo segundo era fácil, sólo consistiría en 
alargar la zancada y dejar trabajar a la gravedad. Empecé el ascenso y 
mis pasos eran demasiado cortos, cada vez más cortos. Otros corredores 
optaron por andar y su velocidad no era mucho menor que la mía. Ese 
maldito puente a 700 metros de meta estaba impartiendo justicia y 
dictaminaba que yo no merecía bajar de dos horas en una media maratón. 
La ascensión se eternizaba aunque iba perdiendo gradiente y mis pasos 
eran muy cortos, seguían siendo muy cortos. Miré el cronómetro, 1h58m y 
tocaba bajar ¡Por Dios que rabia! Aún podría ser. Alargué la zancada, la
 teoría era buena pero los impactos machacaban mis articulaciones, 
ganaba en rapidez pero no lo suficiente. Última rotonda, la que hay a 
poco más de 100 metros de meta, ya veía el arco de meta. Otra mirada al 
crono: 1h59 y algunos segundos que no alcanzaba a ver. Y lo que hacía no
 parecía un sprint. Me saludaron a mi izquierda, me dieron ánimos. A 
penas acerté a ver a Cris, Sergio y Jaime. Sólo 50 metros unos cuantos 
pasos más perro ya estaba furioso. Linea de meta. Detuve mi tiempo y vi 
2:00:16. Maldición, el último kilómetro fue el de peor tiempo de todos. 
¡Maldito puente! No pudo ser.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/6606756455491942395/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/6606756455491942395' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/6606756455491942395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/6606756455491942395'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2012/12/maldito-puente.html' title='¡Maldito puente!'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivpXI8Hy5lhyphenhyphen_MfIM7Cm_48fee2BFLvaO4DkkTzHnz2F-UQ5VvpUZAUumjuWl_dK1fz9NBsj6y3rA97Vu6I-xiR36sO8SQgnn34l8JA6INkdcyVi-jZU2xwTBARQC1DJSeofiyOYlIbngq/s72-c/llegada.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-3388890310281417544</id><published>2011-11-10T18:50:00.000+01:00</published><updated>2013-11-06T13:20:20.867+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="QT"/><title type='text'>Dfilebrowser 1.1 para Plasma Active</title><content type='html'>Nueva versión de Dfilebrowser disponible para Plasma Active. Esta vez
 la compilación corre sobre Open Suse. Las novedades se corresponden con
 mejoras en la usabilidad y la experiencia de usuario al manejar la 
aplicación.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Dfilebrowser 1.1 on Plasma Active &quot; src=&quot;http://deuteros.es/sites/default/files/Dfilebrowser%201.1.png&quot; style=&quot;height: 350px; width: 600px;&quot; title=&quot;Dfilebrowser 1.1 on Plasma Active &quot; /&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;strong&gt;
Dfilebrowser 1.1
&lt;/strong&gt;&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;La vista por defecto para tablets es una lista.
&lt;/li&gt;
&lt;li&gt;Colores alternantes para las filas en las listas de archivos
&lt;/li&gt;
&lt;li&gt;Aumentado el tamaño disponible para la rejilla de iconos del modo de vista &quot;iconview&quot; 
&lt;/li&gt;
&lt;li&gt;Mejoras en el modo de vista de lista con detalles de archivo: mejoras en la distribución de las columnas
&lt;/li&gt;
&lt;li&gt;Bugfix: en Plasma Active sobre Open Suse los archivos no se abrían al hacer &quot;tap`&quot; &lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/3388890310281417544/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/3388890310281417544' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3388890310281417544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3388890310281417544'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2011/11/dfilebrowser-11-para-plasma-active.html' title='Dfilebrowser 1.1 para Plasma Active'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-3911051897532623984</id><published>2011-11-04T16:56:00.000+01:00</published><updated>2013-11-06T13:22:43.584+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="opinion"/><category scheme="http://www.blogger.com/atom/ns#" term="personal"/><title type='text'>La vergonzosa guerra de las patentes</title><content type='html'>&lt;span class=&quot;print-link&quot;&gt;&lt;span class=&quot;print_html&quot;&gt;&lt;/span&gt;&lt;span class=&quot;print_pdf&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Justicia&quot; src=&quot;http://www.deuteros.es/sites/default/files/martillo.png&quot; title=&quot;Justicia&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Desde
 hace algún tiempo, todos los días nos desayunamos con sentencias sobre 
patentes entre las grandes
 compañías de tecnología y, últimamente, se producen especialmente entre
 los fabricantes de teléfonos móviles y tablets (léase Apple, Samsung, 
HTC...) Sin embargo ayer se dio a conocer una noticia bastante positiva 
en forma de &lt;a href=&quot;http://www.nt-k.com/blog/la-justicia-nos-ha-dado-la-razon-ante-apple/&quot; title=&quot;Comunicado nt-k&quot;&gt;sentencia a favor&lt;/a&gt; de una pequeña empresa española que ha conseguido batir ni más ni menos que a Apple en los tribunales.&lt;br /&gt;
&lt;br /&gt;
Es
 un tema para indignarse, todo el mundo peleando y tratando de demostrar
 que patentes ha infringido el otro, bloqueando la venta de dispositivos
 en los mercados de tal o cual país, firmando acuerdos para ceder parte 
de los beneficios de las ventas en concepto de uso de cierta patente...&lt;br /&gt;&lt;br /&gt;Al
 final el perjudicado es el usuario final. Todas estas batallas 
judiciales de coste incalculable deben terminar repercutiendo en el 
precio de lo que compramos ¿no? Es más, &lt;a href=&quot;http://www.terminalesandroid.com/htc-le-da-5-dolares-a-microsoft-por-cada-terminal-android-vendido&quot; target=&quot;_blank&quot; title=&quot;HTC paga a MS por cada Android&quot;&gt;HTC paga 5 dolares a Microsoft&lt;/a&gt; por cada terminal Android que vende. También podríamos hablar de que no se pueda &lt;a href=&quot;http://www.blumex.net/samsung-galaxy-tab-7-7-bloqueada-en-alemania/&quot; target=&quot;_blank&quot; title=&quot;Ventas de Damsung bloqueadas en Alemania&quot;&gt;comprar ciertos cacharros de Samsung en Alemania y Holanda&lt;/a&gt;.
 Pero que nadie cante victoria antes de tiempo, donde las dan las toman y
 Apple se está ganando unos cuantos enemigos que ya están 
contraatacando. &lt;br /&gt;&lt;br /&gt;Si nos situamos como espectadores podemos 
deducir que Apple saca pecho diciendo que han inventado algo que 
tecnológicamente estaba años por delante de sus rivales. Sus demandas se
 basan en la presunta copia de esta tecnología, o sea, se basan en que 
el futuro es suyo gracias a sus ideas avanzadas (y registradas) pero... 
¿que hay del pasado? El pasado reciente es de otros y ahora mismo se 
enfrentan a demandas por el &lt;a href=&quot;http://alt1040.com/2011/09/samsung-apple-francia&quot; target=&quot;_blank&quot; title=&quot;Demadna de Samsung contra Apple&quot;&gt;uso de tecnologías 3G&lt;/a&gt; y &lt;a href=&quot;http://www.bloomberg.com/news/2011-09-07/htc-sues-apple-alleging-infringement-of-four-u-s-patents.html&quot; target=&quot;_blank&quot; title=&quot;HTC demanda a Apple&quot;&gt;otros aspectos&lt;/a&gt; básicos de telefonía móvil. &lt;br /&gt;
Es una guerra sin ningún sentido y las compañías demandantes/demandadas se ven hasta obligadas a &lt;a href=&quot;http://www.elpais.com/articulo/tecnologia/Google/compra/mil/patentes/IBM/defender/Android/elpeputec/20110915elpeputec_1/Tes&quot; target=&quot;_blank&quot; title=&quot;Goggle compra patentes de IBM&quot;&gt;comprar compañías poseedoras de patentes&lt;/a&gt;.
 Quizá sea esto lo más vergonzoso: nada impide a una pequeña compañía 
incapaz de desarrollar una tecnología el poder patentarla. Después sólo 
hay que esperar a que a alguien le interese y compre dicha empresa o que
 algún incauto &quot;infrinja&quot; la patente y haga dinero con ella. Para 
ilustrar este caso basta decir que recientemente Zynga, la creadora de 
la archiconocida FarmVille, &lt;a href=&quot;http://www.elmundo.es/elmundo/2011/08/17/navegante/1313590880.html&quot; target=&quot;_blank&quot; title=&quot;Demanda contra Zynga&quot;&gt;fue demandada&lt;/a&gt; por una desconocida empresa de Texas por el uso de tecnologías de pago en juegos.&lt;br /&gt;
&lt;br /&gt;
Es
 evidente que si parece haber unos ganadores en todo esto, como mínimo 
los bufetes de abogados, al menos siempre cobran por representar a los 
fabricantes. A unos cuantos les conviene que se prolongue esta pelea 
barrio bajera en el tiempo y en el espacio. Lo primero lo tienen 
asegurado debido a la animadversión entre los rivales que hay en el ring
 pero lo segundo no está tan claro. Me explico, si hay un paraíso donde 
hincharse a repartir mamporros legales de lo lindo, ese es EEUU. De 
hecho los interesados en todo esto están intentando replicar este modelo
 en Europa, desean un &lt;a href=&quot;http://hispalinux.es/node/745&quot; target=&quot;_blank&quot; title=&quot;Sobre el tribunal europeo de patentes&quot;&gt;tribunal único europeo&lt;/a&gt;
 que vele por las patentes. De conseguirlo, estas &quot;pequeñas&quot; batallas 
legales que, por ejemplo, prohíben la venta de un producto en un 
determinado país y que se libran por tanto a nivel nacional, tendrían 
ámbito europeo: se bloquearían ventas a nivel comunitario.&lt;br /&gt;
&lt;br /&gt;
Debe 
quedar claro también que esto no repercute simplemente en productos 
tangibles. Estas artimañas también se intentan llevar al mundo del 
software, con diferente éxito según el país. Es bastante probable que al
 instalar un sistema operativo Linux no puedas reproducir ciertos 
formatos de video o audio al no haberse incluido los codecs necesarios. 
Hay otros formatos de carácter libre pero en la práctica no son tan 
extendidos y al final todos necesitamos ir a parar a los habituales. De 
nuevo es sólo un ejemplo, pero esto da a entender la cantidad de tiempo 
que pueden llegar a perder los desarrolladores de&amp;nbsp; software en sortear 
ciertas barreras (con forma de patente) para llevar a término su 
trabajo.&lt;br /&gt;
&lt;br /&gt;
El peligro, al final, es llegar a un estado de 
medievalismo tecnológico en el que estemos estancados debido a las 
dificultades para innovar. ¿Para qué crear algo si después me la van a 
tumbar en un juzgado? Da igual que sea de interés general o sin ánimo de
 lucro, ya que se impediría el lucro de alguien que tiene una patente 
que afecta a una pequeña parte de tu trabajo.&lt;br /&gt;
&lt;br /&gt;
No quedan muchas 
armas para combatir a un rival tan poderoso. Lo primero es intentar 
frenar su expansión, expresándonos en contra del tribunal europeo de 
patentes. En el peor de los casos, una vez lanzado un litigio siempre 
queda el concepto del arte previo que básicamente consiste en demostrar 
que alguien ya había pensado con anterioridad en lo que otro ha 
patentado y, por tanto, es de dominio público. Cuando esto se produce 
tiene su gracia, es algo así como darle una bofetada a un listillo y 
decirle &quot;¿Ves? no eres tan inteligente como creías&quot; Recientemente vimos 
como Samsung utilizaba una &lt;a href=&quot;http://youtu.be/JQ8pQVDyaLo&quot; target=&quot;_blank&quot; title=&quot;¿Un iPad en 2001?&quot;&gt;secuencia de la pelicula 2001&lt;/a&gt; para demostrar que Apple no había sido la creadora del diseño del iPad. &lt;a href=&quot;http://www.groklaw.net/article.php?story=20100513121121635&quot; target=&quot;_blank&quot; title=&quot;Novell/Redhat vs IP Innovation&quot;&gt;Otro ejemplo &lt;/a&gt;de esto ocurrió hace unos pocos años cuando en un juicio entre RedHat/Novell e IP Innovations LLC, se recurrió a un &lt;a href=&quot;http://en.wikipedia.org/wiki/Amiga_1000&quot; title=&quot;Amiga 1000&quot;&gt;Amiga 1000&lt;/a&gt;&amp;nbsp;
 para demostrar que allá por el año 1986 ya había un ordenador capaz de 
manejar diversos escritorios y que además usaba ciertas características 
en ellos que correspondían con otras dos patentes.</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/3911051897532623984/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/3911051897532623984' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3911051897532623984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3911051897532623984'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2011/11/la-vergonzosa-guerra-de-las-patentes.html' title='La vergonzosa guerra de las patentes'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-1492450117924971658</id><published>2011-10-19T18:48:00.000+02:00</published><updated>2013-11-06T13:20:20.863+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="QT"/><title type='text'>Dfilebrowser un navegador de archivos para Plasma Active One</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Dfilebrowser corriendo en Plasma Active One&quot; src=&quot;http://www.deuteros.es/sites/default/files/dfilebrowser-1.png&quot; style=&quot;height: 451px; width: 600px;&quot; title=&quot;Dfilebrowser corriendo en Plasma Active One&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
La
 semana pasada comentaba que echaba en falta un navegador de archivos en
 Plasma Active One. Hoy voy a aportar mi granito de arena para 
solucionarlo, aunque de todos modos sigo pensando que sus creadores&amp;nbsp; no 
tardarán en incorporar un gestor de archivos propio&lt;br /&gt;
&lt;br /&gt;
Resulta que 
cuando empecé a probar Plasma Active me hallaba a su vez creando un 
gestor de archivos para usar embebido en Acid Rain. Por alguna razón, 
decidí desarrollarlo de forma que fuera un componente independiente, así
 que cuando me surgió la necesidad de usarlo como navegador de archivos 
en Plasma Active se encontraba bastante encaminado.&lt;br /&gt;
&lt;br /&gt;


En realidad es bastante elemental y tiene cosas por pulir 
(consideradlo una beta) pero creo que es lo suficientemente útil como 
para que se empiece a usar. La idea es tener todos los botones y las 
opciones de menú del tamaño suficiente como para poder meter el dedo, 
así de simple. A modo de manual rápido:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Haciendo un toque corto con un dedo (tap), abrimos la carpeta o el archivo&lt;/li&gt;
&lt;li&gt;Con un toque largo (long tap o tambien tap and hold) sacamos el menú contextual.&lt;/li&gt;
&lt;li&gt;Podemos cambiar el tipo de vista con el último botón del menú superior.&lt;/li&gt;
&lt;li&gt;En
 caso de usar un teclado, podemos usar las combinaciones de teclas 
habituales. Sí, ya sé que estamos hablando de un tablet pero la 
aplicación se ha pensado para que funcione también en un escritorio 
convencional:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Dfilebrowser corriendo en Windows XP&quot; src=&quot;http://www.deuteros.es/sites/default/files/dfilebrowser-1windows.png&quot; style=&quot;height: 367px; width: 376px;&quot; title=&quot;Dfilebrowser corriendo en Windows XP&quot; /&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
En
 caso de que lo adoptes no olvides establecerlo como herramienta 
preferida para la gestión de archivos (lanzando&amp;nbsp; desde un terminal 
systemsettings o buscándolo en el lanzador de aplicaciones de Plasma 
Active One). Una vez&amp;nbsp; hecho esto, selecciona &quot;Aplicaciones 
predeterminadas&quot; y en la siguiente ventana, a la izquierda, &quot;Gestor de 
archivos&quot;. Sólo os quedará añadir dfilebrowser como aplicación 
preferida.&lt;br /&gt;
&lt;br /&gt;
Dfilebrowser es open source y tiene licencia GPLv3, el código fuente puede encontrarse &lt;a href=&quot;https://projects.developer.nokia.com/dfbrowser/browser&quot; title=&quot;Código fuente de Dfilebrowser&quot;&gt;aquí&lt;/a&gt; y para los que tengan Plasma Active One corriendo sobre Meego 1.2 sólo tenéis que descargaros este &lt;a href=&quot;https://build.pub.meego.com/package/binaries?package=dfb_1_0&amp;amp;project=home%3Adeuteros%3Adfb&amp;amp;repository=meego_1.1_core_handset&quot; title=&quot;Dfilebrowser 1.0 beta&quot;&gt;rpm&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/1492450117924971658/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/1492450117924971658' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/1492450117924971658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/1492450117924971658'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2011/10/dfilebrowser-un-navegador-de-archivos.html' title='Dfilebrowser un navegador de archivos para Plasma Active One'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-7249021690262604518</id><published>2011-10-11T22:35:00.000+02:00</published><updated>2013-11-06T13:23:50.988+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Plasma Active One</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Seleccionando una actividad en Plasma Active One&quot; src=&quot;http://deuteros.es/sites/default/files/plasma%20active.png&quot; style=&quot;height: 370px; width: 650px;&quot; title=&quot;Seleccionando una actividad en Plasma Active One&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Llevaba
 días esperando la aparición de Plasma Active One porque la preview me 
había gustado bastante y por fin he podido probarla.&lt;br /&gt;
&lt;br /&gt;
El entorno me
 parece muy interesante y creo que aporta nuevas ideas al mundo de las 
tablets y además respeta los existentes en KDE. Me refiero a las 
actividades y por supuesto todo lo que rodea al entorno de Plasma 
Active.

Con las actividades tendremos a nuestro alcance varios escritorios en 
los que podremos definir enlaces a aplicaciones, documentos o asignar 
widgets. Lo normal es que lo hagamos de forma temática y tengamos una 
actividad para el trabajo, otra para ocio, etc.

&lt;br /&gt;
Aunque todo es muy prometedor, los desarrolladores tendrán que pulir
 varios aspectos algunos de ellos en el navegador, algo que es una pena 
ya que es la aplicación estrella en este tipo de dispositivos y con el 
que no he conseguido ver paginas con flash e incluso algunas en html no 
se muestran correctamente. También habrá que seguir mejorando el teclado
 virtual y el soporte a lenguajes distintos del inglés. Por ultimo, de 
lo que recuerdo ahora mismo, el arranque me parecio bastante lento.
&lt;br /&gt;&lt;br /&gt;Este es el tercer sistema operativo que pruebo en esta tablet 
Wetab (llamada también ExoPC) El primero, el Wetab OS, es seguramente el
 más estable y el que mejor integra Flash, Java en incluso Android. Una 
pena que el entorno de usuario sea un poco triste, aunque muy funcional,
 muy alemán :D &lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Wetab OS con su Pin Board&quot; src=&quot;http://www.deuteros.es/sites/default/files/z7855019X.jpg&quot; title=&quot;Wetab OS con su Pin Board&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;Hace
 un par de semanas lo intente con Meego 1.2 que si no recuerdo mal era 
una preview y, dadas las circunstancias, no va a pasar de ahí. Era 
bastante bonito pero muy inestable. Tampoco terminó de convencerme el 
entorno y el teclado virtual estaba muy verde. No me queda muy claro si 
tendremos un Meego 1.3, prometido para Octubre pero tal vez sentenciado 
por Tizen.&lt;br /&gt;&lt;br /&gt;En este tercer intento corre un Plasma Active sobre 
Meego (también se puede probar sobre OpenSuse) y sin ser tan estable 
como el Wetab OS, al menos se merece una oportunidad y más porque me 
encanta el concepto de las actividades y su manejo.
&lt;br /&gt;&lt;br /&gt;¡Ah! Por cierto, en Plasma Active One se echa en falta un 
navegador de archivos y aunque supongo que pronto adaptarán Dolphin yo 
ya estoy trabajando en el mío propio, espero poder contaros más en muy 
poco tiempo.  </content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/7249021690262604518/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/7249021690262604518' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/7249021690262604518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/7249021690262604518'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2011/10/plasma-active-one.html' title='Plasma Active One'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-4005301095735859284</id><published>2011-05-17T23:01:00.000+02:00</published><updated>2013-11-06T13:23:50.985+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="opinion"/><category scheme="http://www.blogger.com/atom/ns#" term="personal"/><title type='text'>El futuro de Meego</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Meego Logo&quot; src=&quot;http://deuteros.es/sites/default/files/meego-02.jpg&quot; style=&quot;width: 600px;&quot; title=&quot;Meego Logo&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Con &lt;a href=&quot;https://meego.com/community/blogs/imad/2011/meego-1.2-release&quot; title=&quot;meego 1.2 release&quot;&gt;Meego 1.2&lt;/a&gt;
 recién salido del horno resulta interesante pararse a pensar que le 
depara el futuro a este proyecto, en medio de una de las más 
interesantes guerras tecnológicas que se pueda recordar: la del control 
de los sistemas operativos que, además, tiene como principales batallas,
 en los últimos tiempos, la hegemonía en los móviles y en los tablets.&lt;br /&gt;&lt;br /&gt;Cuando
 en Febrero se anunció a bombo y platillo la alianza entre Nokia y 
Microsoft una ola de pesimismo alcanzó a los que esperaban con 
curiosidad la llegada de&amp;nbsp;algún&amp;nbsp;dispositivo con este sistema. Tal vez era
 una&amp;nbsp;opción&amp;nbsp;mas&amp;nbsp;lógica&amp;nbsp;apostar por Meego para la gama alta y muchos 
acusan a Stephen Elop por esa&amp;nbsp;decisión&amp;nbsp;pero si el estaba&amp;nbsp;en&amp;nbsp;lo mas alto 
de la&amp;nbsp;pirámide&amp;nbsp;para poder decidir eso&amp;nbsp;también&amp;nbsp;pudo ser porque Nokia 
buscaba una&amp;nbsp;aproximación&amp;nbsp;a Microsfot. &lt;br /&gt;
Sea como fuere, resulta que
 estos días me ha dado por probar Meego y eso unido a la información que
 va llegando hace plantear lo siguiente:&lt;br /&gt;
&lt;h2&gt;
¿Que va a hacer Nokia respecto a Meego?&lt;/h2&gt;
Difícil
 de responder. Nokia no ha abandonado la plataforma, prueba de ello es 
que sigue animando a los desarrolladores mediante el&amp;nbsp;envío&amp;nbsp;de 
newsletters . Incluso hay dos concursos de aplicaciones en curso de cara
 al verano con los que colabora indirectamente.. La opción Meego para 
Nokia ha quedado como una posibilidad remota sobre la que se guarda 
silencio pero ya existen diversos rumores sobre planes B y ya veremos 
que pasa si la opción Windows Phone no resulta como se espera.Por otro 
lado estos días se está celebrando en San Francisco una &lt;a href=&quot;http://sf2011.meego.com/&quot; title=&quot;Meego Conference SF 2011&quot;&gt;conferencia&lt;/a&gt; y tanto Intel como Nokia están copatrocinándola. &lt;br /&gt;&lt;br /&gt;Otro factor a tener en&amp;nbsp;cuenta&amp;nbsp;es que las ultimas versiones del SDK de QT
 (perteneciente a Nokia) incluye todo lo&amp;nbsp;necesario&amp;nbsp;para crear 
aplicaciones de Meego.&lt;br /&gt;&lt;h2&gt;
¿Que va a pasar con el proyecto Meego?&lt;/h2&gt;
El
 apoyo a Meego no corre solo a cuenta de Nokia, Intel es el otro gran 
implicado y&amp;nbsp;también&amp;nbsp;ha redoblado su esfuerzo de&amp;nbsp;comunicación&amp;nbsp;en 
newletters desde el&amp;nbsp;día&amp;nbsp;siguiente al anuncio. No hay que olvidar que la 
alianza entre estas dos marcas no fue más que la fusión entre Maemo y 
Moblin. Si en su día Intel avanzaba con Moblin en solitario no va ha 
abandonar Meego aunque su compañero de camino no esté tirando del carro 
como se esperaba.Hay otros implicados como Novell que aporta los servidores repositorios de software y su Build Service. &lt;br /&gt;
&lt;h2&gt;
La batalla de los móviles&lt;/h2&gt;
Lo
 primero que hay que decir es que&amp;nbsp; Meego no sólo corre 
en&amp;nbsp;teléfonos&amp;nbsp;móviles,&amp;nbsp;también&amp;nbsp;en tablets,&amp;nbsp; PCs, 
dispositivos&amp;nbsp;multimedia...&amp;nbsp;
Además, ya existen dispositivos Meego como la tableta Webtab, el 
telefono de Nokia esta a punto de salir y es&amp;nbsp;posible&amp;nbsp;instalarlo en 
nettops y 
notebooks Atom. Hay mas dispositivos en camino, entre lo más 
recientemente anunciado estaría el netbook &lt;a href=&quot;http://www.xataka.com/portatiles/asus-eee-pc-x101-un-netbook-que-apuesta-por-meego&quot; target=&quot;_blank&quot; title=&quot;Asus Eee PC X101&quot;&gt;Asus Eee PC X101&lt;/a&gt;, el tablet &lt;a href=&quot;http://www.muycomputer.com/2011/06/01/computex-2011-acer-iconia-m500-atom-y-meego-en-un-tablet&quot; target=&quot;_blank&quot; title=&quot;Acer Iconia M500&quot;&gt;Acer Iconia M500&lt;/a&gt; y posiblemente pronto se anuncien más dispositivos por parte de LG y otros&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;&lt;img alt=&quot;&quot; src=&quot;http://deuteros.es/sites/default/files/Asus_MeeGo.jpg&quot; style=&quot;height: 450px; width: 600px;&quot; /&gt;&lt;/div&gt;
Sin
 embargo es cierto que el futuro es menos esperanzador. El nicho de 
los&amp;nbsp;móviles&amp;nbsp;se esta poniendo muy caro debido a la apuesta de Nokia pero 
sobre&amp;nbsp;todo&amp;nbsp;por el&amp;nbsp;tirón&amp;nbsp;de iPhone y la inminente&amp;nbsp;supremacía&amp;nbsp;de Android. 
Es muy probable que tenga mas oportinidades en el sector de los tablets 
por la 
inmadurez del mercado y el inicio titubeante de Android. &lt;br /&gt;
&lt;h2&gt;
Ecosistema&lt;/h2&gt;
Meego
 posee todas las infraestructuras necesarias para competir, incluyendo 
el Garage (app store) Algo que me parece bastante importante es que 
tiene una dependencia ligeramente menor a un App Store que otros 
competidores ya que puede instalar aplicaciones Linux recompiladas. 
Se&amp;nbsp;debería&amp;nbsp;luchar por aumentar la comunidad de desarrolladores de 
aplicaciones que es escasa. Meego Garage esta un poco desolado hoy por 
hoy y las aplicaciones son lo que termina atrayendo al publico.&amp;nbsp;
Pese a todo, Meego sigue siendo una&amp;nbsp;opción&amp;nbsp;valida. Tal vez no llegue a
 las masas como se&amp;nbsp;creía&amp;nbsp;hace unos meses pero los usuarios que accedan a
 uno de estos dispositivos no&amp;nbsp;tendrán&amp;nbsp;nada que envidiar al resto, bueno 
tal vez unos cuantos miles de aplicaciones, aunque esto&amp;nbsp;podría&amp;nbsp;quedar 
resuelto con el tiempo.&lt;br /&gt;
&lt;h2&gt;
Pero, ¿que aporta Meego?&lt;/h2&gt;
Meego da 
otra visión ligeramente diferente de lo que debe ser un entorno de 
usuario para un dispositivo de ocio. No deja de tener los mismos 
componentes que Android o iOS pero manejados desde su punto de vista. En
 la versión para notebooks, elementos como Myzone, zonas, aplicaciones, 
miniaplicaciones, etc. nos recordarán al panel principal, gestor de 
procesos, las pantallas con aplicaciones y los widgets de sus rivales. 
Todo igual y a la vez ligeramente distinto&lt;br /&gt;
.&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&amp;nbsp;&lt;img alt=&quot;Meego panels&quot; src=&quot;http://deuteros.es/sites/default/files/meego_panels.jpg&quot; style=&quot;height: 451px; width: 600px;&quot; title=&quot;Meego panels&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
En su versión para tablets encontramos como elemento diferenciador el 
concepto de paneles, que permite un acceso rápido a las funciones más 
utilizadas por el usuario ya sean aplicaciones, elementos favoritos del 
navegador, acceso a redes sociales, etc. Además mantiene la posibilidad 
de mostrar las aplicaciones en una cuadrícula de iconos tal y como 
estamos acostumbrados en los últimos años.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;Aplicaciones en Meego&quot; src=&quot;http://deuteros.es/sites/default/files/Meego_apps.jpg&quot; style=&quot;width: 600px;&quot; title=&quot;Aplicaciones en Meego&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;Este
 precisamente uno de los principalesl factores a tener en cuenta: con 
cada versión de Meego se dispone de la misma para móviles, netbooks / 
tablets, dispositivos para vehículos... Cada una con sus 
particularidades en el entorno de usuario y a la vez con todo el núcleo 
en común. &lt;br /&gt;&lt;h2&gt;
El futuro inmediato&lt;/h2&gt;
Meego debería sobrevivir. 
Sólo el apoyo de Intel debería garantizar esto, pero las cosas siempre 
son más complicadas de lo que parecen en un principio. La perdida de 
interés de Nokia ha hecho que aparezcan otros actores interesados, 
algunos animados por Intel en los últimos meses. Esto nos llevará a ver 
unos cuantos tablets y notebooks Meego de aquí al final del año. A 
partir de aquí mandarán las ventas. Estas marcas que experimentan con la
 introducción de este sistema en alguno de sus dispositivos, son las 
mismas que han probado con anterioridad Ubuntu o Andorid y que nunca han
 conseguido un número estable de ventas con sus experimentos. Sería muy 
agradable poder comprar un notebook o un sobremesa con Meego instalado, y
 por tanto un equipo Linux con garantía de fabricante ya que hoy por hoy
 es bastante difícil.&lt;br /&gt;&lt;br /&gt;Para terminar, existen rumores de una 
posible compra de Nokia por parte de Microsoft creciendo en los últimos 
días. Eso dinamitaría definitivamente el apoyo de una de las partes y 
dejaría al fabricante de procesadores como único pilar del proyecto. 
Ahora bien si, además de la división de telefonía, Microsoft se hiciera 
con la que se responsabiliza del desarrollo de QT, el SDK de este 
sistema estaría en manos de uno de sus rivales y entonces ¿que pasaria 
con Meego?</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/4005301095735859284/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/4005301095735859284' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/4005301095735859284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/4005301095735859284'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2011/05/el-futuro-de-meego.html' title='El futuro de Meego'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-7939770449670980939</id><published>2011-03-05T20:22:00.000+01:00</published><updated>2013-11-06T13:22:43.597+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="opinion"/><category scheme="http://www.blogger.com/atom/ns#" term="personal"/><title type='text'>El videoclub de mi barrio, la ley sinde, el canon, los pirtatas y los ladrones</title><content type='html'>&lt;img align=&quot;left&quot; alt=&quot;&quot; border=&quot;0&quot; height=&quot;162&quot; hspace=&quot;10&quot; src=&quot;http://deuteros.es/images/stories/blog/pirate_icon.gif&quot; vspace=&quot;10&quot; width=&quot;162&quot; /&gt;Mira
 tú por dónde que yo era de los que iban al videoclub y además le 
gustaba. Digo iba porque hace más de un año que cerró el de mi barrio y 
fue entonces cuando empecé a explotar páginas como &lt;a href=&quot;http://www.cinetube.es/&quot;&gt;cinetube&lt;/a&gt;.
 Hasta entonces yo era de los que decía que no le valía la pena dejarse 
el PC encendido toda la noche por unos cuantos torrents, que por dos 
euros y medio tenia dos pelis en el videoclub. Me perdía por sus cuatro 
pasillos extasiado por tanta carátula, sin saber por cuál decidirme y 
maldiciendo a todo vecino que había alquilado cada una de las copias de 
una novedad que me apetecía ver. &lt;br /&gt;
Aprobada la ley Sinde me 
encuentro apurando, tal vez, mis días de descargas. No se sabe muy bien 
hasta que punto conseguirán cerrar estas webs o si sólo conseguirán que 
se hospeden en el extranjero. Lo único claro es que la comisión que 
velará por los derechos de aquellos que nos llaman ladrones desde sus 
residencias de Miami, no tendrá tiempo a formarse antes de verano.&lt;br /&gt;
&lt;br /&gt;
Es
 del género estúpido que los mismos que pretenden que les compremos sus 
productos y nos convirtamos en sus fans nos llamen piratas, ladrones y 
otras lindezas semejantes ¿Podéis imaginar que el kioskero de vuestro 
barrio os insultase y a la vez intentara venderos una revista? Visto de 
otro modo, son ellos los que se apropian de nuestro dinero por cada DVD,
 disco duro, teléfono, etc que compramos ¿Es justo pagar a la SGAE por 
un DVD en el que grabo mis fotos o una distribución Linux? Personalmente
 algunos de ellos han pasado, para mi, de no significar nada o causarme 
una ligera simpatía, a la mas profunda repugnancia. Se llevan mi dinero y
 me llaman ladrón.&lt;br /&gt;
&lt;br /&gt;
Aún así he intentado buscar algún servicio [&lt;a href=&quot;http://digitae.com/&quot;&gt;1&lt;/a&gt;] [&lt;a href=&quot;http://cineclick.com/&quot;&gt;2&lt;/a&gt;] que opere desde la nueva legalidad, algo parecido a &lt;a href=&quot;http://www.netflix.com/&quot;&gt;Netflix&lt;/a&gt;,
 de la que tanto se habla. Ninguno de los servicios que me he encontrado
 me ha merecido la pena. En mi viejo videoclub podía llegar a ver 8 
películas al mes por 10 euros. La mejor tarifa plana que he encontrado 
es de 15 (creo recordar pero ya no la encuentro) y es incluso difícil 
que yo llegue a ver ese número de filmes. De los precios de películas 
sueltas mejor no hablo. Y por cierto, la calidad del streaming deja 
bastante que desear.&lt;br /&gt;
&lt;br /&gt;
El resumen de todo esto viene a ser que nos 
llaman ladrones, piratas, nos ofrecen unos servicios abusivos, se 
protegen con unas leyes que ya veremos para qué sirven y por otro lado 
desean que los idolatremos y que consumamos. Remarco ahora lo de la 
utilidad de la ley, pues sirve igual para cerrar cinetube que para 
cerrar un blog aludiendo al perjuicio de los derechos de autor, sin que 
necesariamente se enlacen películas o música para descargar ¿Alguna vez 
has colgado un vídeo tuyo con una canción de fondo? ¿Has adornado un 
post con una foto o un logotipo que encontraste &quot;googleando&quot;? Pues ya 
sabes: eres carne de cañón para la ley Sinde.&lt;br /&gt;
&lt;br /&gt;
Pese a todo, espero
 que alguno de ellos abra los ojos, que alguien innove con un servicio 
rompedor y que de una vez se proclame lo injusto del canon. Mientras 
tanto seguiré descargando alguna película de vez en cuando y alegrándome
 por haber elegido un servicio de hosting alemán para mi blog y el resto
 de mis webs.</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/7939770449670980939/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/7939770449670980939' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/7939770449670980939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/7939770449670980939'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2011/03/el-videoclub-de-mi-barrio-la-ley-sinde.html' title='El videoclub de mi barrio, la ley sinde, el canon, los pirtatas y los ladrones'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-3338551215004471716</id><published>2011-01-29T20:34:00.000+01:00</published><updated>2013-11-06T13:46:43.976+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="OBS"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenSuse"/><title type='text'>Creando binarios para linux con Open Suse Build Service. II Paquetes rpm</title><content type='html'>Después de ver de un modo general como funciona OBS intentaremos 
mostrar ahora el caso práctico de creación de RPMs para varias 
distribuciones. &lt;br /&gt;
Imaginemos que nuestra aplicación consta de un 
archivo binario y de un .desktop, es un caso sencillo ya que no contamos
 con archivos de traducción. Lo que tenemos que montar es un archivo de 
descripción .spec y un .tar.gz de nuestro código fuente. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Entorno de trabajo: &lt;/h3&gt;
Si
 trabajamos con Subversion, o cualquier otro sistema de control de 
versiones, haremos un &quot;commit&quot; de todo nuestro proyecto antes de 
comenzar con la paquetización. Después de esto exportaremos una copia 
limpia de archivos ocultos a un directorio de trabajo diferente. Sobre 
esta nueva carpeta ya podremos crear nuestro tar.gz.&lt;br /&gt;
Tal como vimos en el &lt;a href=&quot;http://deuteros.es/content/es/component/content/article/1-latest-news/72-creando-binarios-para-linux-con-open-suse-build-service&quot;&gt;capítulo anterior&lt;/a&gt;
 en nuestra cuenta en OBS habremos creado un proyecto, las 
distribuciones para las que se construirá&amp;nbsp; y el paquete correspondiente a
 la versión sobre la que estamos trabajando. Una vez hecho todo esto, 
para añadir nuestro código fuente navegamos hasta el paquete creado y 
seleccionamos la pestaña Sources, donde clicaremos sobre el botón Add 
files.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;217&quot; src=&quot;http://deuteros.es/images/stories/blog/obs1-add%20file.png&quot; width=&quot;717&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Se
 nos despliegará un formulario en el que podemos cargar, en este caso, 
nuestro código. Lo más cómodo es haber nombrado el tar.gz de la mejor 
manera posible, especificando la versión, y ahorrarnos el rellenar el 
campo nombre, de manera que OBS lo haga automáticamente. Más adelante 
podremos subir el .spec del mismo modo.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;281&quot; src=&quot;http://deuteros.es/images/stories/blog/obs2-add%20file%20form.png&quot; width=&quot;724&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;El archivo spec&lt;/b&gt;&lt;/h3&gt;
Ahora
 toca montar el archivo spec con la información adecuada. Tenéis, a 
continuación,&amp;nbsp; todo el archivo apropiado para el proyecto de ejemplo. 
Después desgranaremos lo más importante a destacar:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;%if 0%{?fedora_version}
%define breq qt4-devel
%define reqs qt qt-x11
%define qmake /usr/bin/qmake-qt4
%endif
%if 0%{?mandriva_version}
%define breq libqt4-devel qt4-linguist
%define reqs libqtcore4 libqtgui4
%define qmake /usr/lib/qt4/bin/qmake
%endif
%if 0%{?suse_version}
%define breq libqt4-devel
%define reqs libqt4 libqt4-x11
%define qmake /usr/bin/qmake
%endif
 
Name: RegExpTester
Summary: RegExpTester is an application that lets you test regular expresions
Version: 1.0
Release: 1
License: GPL v3
Group: Productivity/Utility/TextTools
BuildRoot: %{_tmppath}/build-root-%{name}
Source0: /usr/src/packages/SOURCES/RegExpTester-1.0.tar.gz
Packager: Guillermo Amat
Url: &lt;a href=&quot;https://www.deuteros.esvendor/&quot; title=&quot;https://www.deuteros.es
Vendor:&quot;&gt;https://www.deuteros.es
Vendor:&lt;/a&gt; Guillermo Amat
 
BuildRequires: gcc-c++, make, %{breq}
Requires: %{reqs} libc.so.6 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libm.so.6 libpthread.so.0 libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(GLIBCXX_3.4)
%description
RegExpTester is an application that lets you test regular expresions
 
RegExpTester is an application that lets you test regular expresions
 
%prep
rm -rf %{buildroot}
mkdir %{buildroot}
 
%setup -q
 
%build
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/%{name}
mkdir -p %{buildroot}%{_datadir}/applications
%{qmake} %{name}.pro
CFLAGS=&quot;$RPM_OPT_FLAGS&quot; CXXFLAGS=&quot;$RPM_OPT_FLAGS&quot; \
make
 
%install
cp %{name} %{buildroot}%{_bindir}
cp %{name}.png %{buildroot}%{_datadir}/%{name}/
 
cat &amp;gt; $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop &amp;lt;&amp;lt; EOF
[Desktop Entry]
Encoding=UTF-8
Name=%{name}
GenericName=%{name}
GenericName[de]=%{name}
Comment=Synchronize files between computers
Exec=%{_bindir}/regexptester
Icon=%{_datadir}/%{name}/%{name}.png
Terminal=false
Type=Application
StartupNotify=false
Categories=Qt;KDE;Utility;TextEditor;
EOF
 
%clean
rm -rf %{buildroot}
 
%files
%defattr(-,root,root)
%dir %{_datadir}/RegExpTester
%{_datadir}/applications/RegExpTester.desktop
%{_bindir}/RegExpTester
%{_datadir}/%{name}/%{name}.png
 
%changelog

&lt;/pre&gt;
&lt;br /&gt;
Menudo rollo ¿no? Pues vamos a destriparlo paso a paso para que se entienda mejor:&lt;br /&gt;
El
 primer bloque se corresponde con una serie de declaraciones 
condicionales que dependerán de la maquina virtual en la que OBS ejecute
 la construcción del rpm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;
%if 0%{?fedora_version}&lt;br /&gt;%define breq qt4-devel&lt;br /&gt;%define reqs qt qt-x11&lt;br /&gt;%define qmake /usr/bin/qmake-qt4&lt;br /&gt;%endif&lt;br /&gt;%if 0%{?mandriva_version}&lt;br /&gt;%define breq libqt4-devel qt4-linguist&lt;br /&gt;%define reqs libqtcore4 libqtgui4&lt;br /&gt;%define qmake /usr/lib/qt4/bin/qmake&lt;br /&gt;%endif&lt;br /&gt;%if 0%{?suse_version}&lt;br /&gt;%define breq libqt4-devel&lt;br /&gt;%define reqs libqt4 libqt4-x11&lt;br /&gt;%define qmake /usr/bin/qmake&lt;br /&gt;%endif 
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, en los requisitos de construcción (breq) para Mandriva y 
Opensuse se necesitará el paquete libqt4-devel, mientras que el 
equivalente en Fedora recibe el nombre qt4-devel. OBS instalara el 
paquete adecuado en cada máquina virtual gracias a eso. En todo caso 
para cada una de las distribuciones definimos tres variables que 
usaremos mas tarde:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;breq: requisitos para la construcción&lt;/li&gt;
&lt;li&gt;reqs: dependencias para la ejecución de nuestro programa en el PC del usuario que se lo instale&lt;/li&gt;
&lt;li&gt;qmake: ruta al ejecutable qmake &lt;/li&gt;
&lt;/ul&gt;

El  siguiente bloque que nos encontramos es el de la información general de
 nuestra aplicación.&amp;nbsp; Aquí y en todo el fichero spec hay que tener 
cuidado con los saltos de línea y en concreto aquí&amp;nbsp; con no equivocarse 
con el valor del campo source0. Además, parte de esta información será 
mostrada al usuario en el gestor de paquetes de su distribución:&lt;br /&gt;
&lt;pre class=&quot;brush:bash geshifilter-bash&quot; style=&quot;font-family: monospace;&quot;&gt;
Name: RegExpTester
Summary: RegExpTester is an application that lets you test regular expresions
Version: 1.0
Release: 1
License: GPL v3
Group: Productivity/Utility/TextTools
BuildRoot: %{_tmppath}/build-root-%{name}
Source0: /usr/src/packages/SOURCES/RegExpTester-1.0.tar.gz
Packager: Guillermo Amat
Url: &lt;a href=&quot;https://www.deuteros.es&amp;lt;br&amp;gt;vendor/&quot; title=&quot;https://www.deuteros.es&amp;lt;br&amp;gt;Vendor:&quot;&gt;https://www.deuteros.es
Vendor:&lt;/a&gt; Guillermo Amat
BuildRequires: gcc-c++, make, %{breq}
Requires: %{reqs} libc.so.6 libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libm.so.6 libpthread.so.0 libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(GLIBCXX_3.4)
%description
RegExpTester is an application that lets you test regular expresions
 
RegExpTester is an application that lets you test regular expresions &amp;nbsp;&lt;/pre&gt;
&lt;br /&gt;
En el bloque anterior también se aprecia la aparición de las 
variables que hemos definido con anterioridad. Su valor se concatena al 
de los nombres de los paquetes que aparecen definidos. Más claro: 
BuildRequires contiene gcc-c++ y make porque se llaman así en todas las 
distribuciones (menos mal) y el contenido de la variable breq que cambia
 en función de la máquina virtual.&lt;br /&gt;
En description tenemos una 
descripción corta y otra que puede ser más extensa. La linea en blanco 
que separa a ambas es necesaria. &lt;br /&gt;
Vamos con el siguiente trozo. 
Esto ya tiene que ver con la construcción del paquete y en el aparecen 
nuevas variables. La diferencia es que estas no son nuestras, sino 
predefinidas por el sistema: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;buildroot: el directorio donde se construirá el paquete en la MV&lt;/li&gt;
&lt;li&gt;_bindir: el directorio de los ejecutables&lt;/li&gt;
&lt;li&gt;_datadir: directorio de datos&lt;/li&gt;
&lt;li&gt;name: es el nombre que aparece en el campo Name (linea 17 del .spec)&lt;/li&gt;
&lt;/ul&gt;
Así
 pues lo que se hace en este bloque es preparar todos los directorios 
necesarios. Después se ejecuta qmake sobre el archivo .pro cosa que 
creará el Makefile en la MV. La siguiente linea contiene opciones de 
compilación específicas para la creación de rpms que, a su vez, son 
usadas por el comando make.&lt;br /&gt;
Después de ejecutar make se procede 
con la sección install que, en este caso, copia un par de archivos en 
sus lugares correspondientes.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;
%prep&lt;br /&gt;rm -rf %{buildroot}&lt;br /&gt;mkdir %{buildroot}&lt;br /&gt;&lt;br /&gt;%setup -q&lt;br /&gt;&lt;br /&gt;%build&lt;br /&gt;mkdir -p %{buildroot}%{_bindir}&lt;br /&gt;mkdir -p %{buildroot}%{_datadir}/%{name}&lt;br /&gt;mkdir -p %{buildroot}%{_datadir}/applications&lt;br /&gt;%{qmake} %{name}.pro&lt;br /&gt;CFLAGS=&quot;$RPM_OPT_FLAGS&quot; CXXFLAGS=&quot;$RPM_OPT_FLAGS&quot; \&lt;br /&gt;make&lt;br /&gt;&lt;br /&gt;%install&lt;br /&gt;cp %{name} %{buildroot}%{_bindir}&lt;br /&gt;cp %{name}.png %{buildroot}%{_datadir}/%{name}/&lt;br /&gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;En el siguiente bloque se crea el archivo .desktop que hará que 
nuestro programa aparezca en el menú de inicio de KDE. No es necesario 
crearlo así, podríamos haberlo escrito en un editor, empaquetado en el 
tar.gz y por último tratarlo en el .spec de la misma forma que al png. 
En todo caso, se debe saber que durante la construcción se comprobará 
este archivo y que es muy importante que el contenido de Categories siga
 las definiciones del &lt;a href=&quot;http://standards.freedesktop.org/menu-spec/latest/apa.html&quot;&gt;estándar de freedesktop.org&amp;nbsp;&lt;/a&gt;&lt;br /&gt;
&lt;pre class=&quot;brush:bash geshifilter-bash&quot; style=&quot;font-family: monospace;&quot;&gt;cat &amp;gt; $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop &amp;lt;&amp;lt; EOF
[Desktop Entry]
Encoding=UTF-8
Name=%{name}
GenericName=%{name}
GenericName[de]=%{name}
Comment=Synchronize files between computers
Exec=%{_bindir}/regexptester
Icon=%{_datadir}/%{name}/%{name}.png
Terminal=false
Type=Application
StartupNotify=false
Categories=Qt;KDE;Utility;TextEditor;
EOF &lt;/pre&gt;
&lt;br /&gt;
Y para acabar se define el paso de limpieza y se enumeran los archivos 
generados para la creación del paquete. Cualquier inconsistencia entre 
esta lista y lo que se encuentre realmente generará un error, por 
ejemplo: si nuestro tar.gz contiene un segundo png que no hayamos 
nombrado aquí.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:shell&quot;&gt;
%clean&lt;br /&gt;rm -rf %{buildroot}&lt;br /&gt;&lt;br /&gt;%files&lt;br /&gt;%defattr(-,root,root)&lt;br /&gt;%dir %{_datadir}/RegExpTester&lt;br /&gt;%{_datadir}/applications/RegExpTester.desktop&lt;br /&gt;%{_bindir}/RegExpTester&lt;br /&gt;%{_datadir}/%{name}/%{name}.png&lt;br /&gt;&lt;br /&gt;%changelog&lt;br /&gt;
&lt;/pre&gt;
&lt;h3&gt;
&lt;b&gt;El archivo tar.gz &lt;/b&gt;&lt;/h3&gt;
Como se ha dicho antes, lo mejor 
es generar el tar.gz desde una copia limpia de nuestro código fuente. Si
 trabajamos con Subversion haremos un &quot;svn export&quot; y después 
comprimiremos el resultado.&lt;br /&gt;
A parte de eso, habrá que llevar 
cuidado con incluir todo lo necesario y especificar correctamente las 
rutas de todo lo que aparezca en el .spec&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;El resultado&lt;/b&gt;&lt;/h3&gt;
Si
 todo va bien en nuestro panel de resumen del paquete tendremos indicado
 que el proceso ha finalizado con éxito y podremos navegar hasta el 
repositorio de descarga de cada una de las distribuciones.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;235&quot; src=&quot;http://deuteros.es/images/stories/blog/obs%20success.png&quot; width=&quot;639&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;Si por ejemplo pulsamos sobre &lt;a href=&quot;https://build.opensuse.org/package/binaries?package=RegExpTester-1.0&amp;amp;project=home%3Adeuteros76%3ARegExpTester&amp;amp;repository=openSUSE_11.3&quot; target=&quot;_blank&quot;&gt;openSuse_11_3&lt;/a&gt; llegaremos a la página donde tenemos todos sus binarios disponibles:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; class=&quot; selected&quot; height=&quot;273&quot; src=&quot;http://deuteros.es/images/stories/blog/obs%20repo%20opensuse.png&quot; width=&quot;642&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Si
 algo falla, desde la pantalla de resumen veremos que se nos indica un 
error (failed en vez de success) y haciendo clic sobre la palabra failed
 accederemos al log de la máquina virtual donde veremos el error. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;Una imagen vale más que mil palabras&lt;/b&gt;&lt;/h3&gt;
Y un par de enalces y de archivos de ejemplo también, así que allá va: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;El proyecto RegExpTester en OBS [&lt;a href=&quot;https://build.opensuse.org/project/show?project=home%3Adeuteros76%3ARegExpTester&quot; target=&quot;_blank&quot;&gt;ir&lt;/a&gt;]&amp;nbsp;&lt;/li&gt;
&lt;li&gt;El archivo .spc [&lt;a href=&quot;https://api.opensuse.org/public/source/home:deuteros76:RegExpTester/RegExpTester-1.0/RegExpTester-1.0.spec?rev=af7d329509949acfdc3caa140dd1c3cf&amp;amp;&quot;&gt;descargar&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;El archivo tar.gz [&lt;a href=&quot;https://api.opensuse.org/public/source/home:deuteros76:RegExpTester/RegExpTester-1.0/RegExpTester-1.0.tar.gz?rev=af7d329509949acfdc3caa140dd1c3cf&amp;amp;&quot;&gt;descargar&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/3338551215004471716/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/3338551215004471716' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3338551215004471716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/3338551215004471716'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2011/01/creando-binarios-para-linux-con-open.html' title='Creando binarios para linux con Open Suse Build Service. II Paquetes rpm'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-4654375160142468424</id><published>2011-01-20T20:47:00.000+01:00</published><updated>2013-11-06T13:21:24.811+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programación"/><category scheme="http://www.blogger.com/atom/ns#" term="QT"/><title type='text'>Un tutorial rápido de QT: evaluador de expresiones regulares</title><content type='html'>Estaba dándome cabezazos contra la mesa el otro día porque no 
conseguía hacer funcionar una expresión regular en el código de Acid 
Rain sin encontrar la explicación. La situación me llevaba casi a la 
decepción por haber olvidado toda esa teoría cuando se me ocurrió buscar
 alguna web donde probar lo que hacía. Al &lt;a href=&quot;http://www.fileformat.info/tool/regex.htm&quot;&gt;encontrarla &lt;/a&gt;me
 di cuenta de que no era tan mentecato, algo fallaba ya que la expresión
 regular funcionaba. Tan loco me estaba volviendo que decidí hacer una 
aplicación en QT en donde testar de forma rápida las expresiones, ya que
 con la que estaba trabajando realmente me costaba un poco llegar al 
punto donde se evaluaba la expresión.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;239&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/captura%20del%20programa.png&quot; width=&quot;283&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Y
 así fue que me puse a hacer una aplicación muy parecida a la web que he
 comentado antes. En poco más de cinco minutos la tenía hecha y se me 
ocurrió que sería un buen ejemplo para iniciarse en QT. Es tan sólo un 
poco más complicado que un &quot;Hola mundo&quot; y de paso se ve como utilizar 
aspectos esenciales de QT Creator, signals/slots y cómo trabajar con la 
disposición de los elementos en un formulario. ¡Vamos al tema! &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;strong&gt;Creando el proyecto&lt;/strong&gt;&lt;/h3&gt;
&amp;nbsp;Lo primero será crear el proyecto eligiendo &quot;QT C++ Project&quot; y como subopción&amp;nbsp; &quot;QT GUI Application&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;293&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/nuevo%20proyecto.png&quot; width=&quot;342&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;Ahora le damos un nombre apropiado a la aplicación y apretamos sobre &quot;Next&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;248&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/nombre%20proyecto.png&quot; width=&quot;333&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;Como se nos crea un formulario, debemos definir su nombre y el de la clase asociada al mismo&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img align=&quot;&quot; alt=&quot;&quot; border=&quot;0&quot; height=&quot;252&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/definir%20la%20clase%20principal.png&quot; width=&quot;339&quot; /&gt; &lt;/div&gt;
&lt;br /&gt;
En cuanto a la creación del proyecto sólo nos queda aceptar el resumen.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;261&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/resumen.png&quot; width=&quot;351&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;strong&gt;Lo que queremos hacer &lt;/strong&gt;&lt;/h3&gt;
Lo
 que nos interesa es tener un texto sobre el que queremos hacer alguna 
prueba, usando una expresión regular para reemplazar parte del él por 
otro texto determinado. Así pues necesitaremos unos cuantos campos 
etiqueta, tres campos de entrada y uno de salida. &lt;br /&gt;
Los campos de 
de entrada serán: el de la expresión regular, el de la cadena que 
queremos introducir y el del texto inicial sobre el que trabaja. Para 
los dos primeros campos nos bastará con un &quot;line edit&quot; mientras que para
 el texto usaremos un &quot;text edit&quot;. El resultado lo mandaremos a otra 
caja de texto (&quot;text edit&quot;) de salida que tendrá marcada la propiedad 
&quot;read only&quot;. &lt;br /&gt;
En cuanto le demos al botón &quot;Test&quot;&amp;nbsp; se evaluará la 
expresión regular y, para hacerlo mas emocionante y poder probar más 
rápido nuestras expresiones, también se evaluará con cada cambio que 
hagamos en el campo de entrada de la expresión, con lo que veremos los 
resultados al vuelo mientras la escribimos. &lt;br /&gt;
En cuanto a la 
disposición de los elementos, usaremos dos frames para agrupar por un 
lado los campos del formulario y por otro el botón &quot;Test&quot;. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;strong&gt;Insertando los elementos de la ventana&lt;/strong&gt;&lt;/h3&gt;
Lo primero que haremos será insertar los dos frames, arrastrándolos a la ventana.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;361&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/1%20insertar%20los%20marcos.png&quot; width=&quot;378&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Lo
 segundo debe ser elegir la disposición de la ventana (hay que 
asegurarse de que está seleccionada), en este caso le daremos una 
disposición vertical &quot;Layout vertically&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;285&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/2%20marcos%20con%20lay%20out%20vertical.png&quot; width=&quot;465&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Es
 el momento de darle vida a todo esto. En el marco superior dejamos caer
 cuatro campos &quot;label&quot;, los dos &quot;line edit&quot; y los dos &quot;text edit&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;278&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/3%20aadiendo%20elementos%20del%20form.png&quot; width=&quot;517&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Ahora
 hay que seleccionar el marco superior y después pinchar sobre &quot;Lay out 
in a form layout&quot;. Todavía no quedará muy bonito asi que habrá que 
corregir&amp;nbsp; la posición de los elementos. También podemos redimensionar un
 poco el formulario haciendo uso del ratón para que no quede todo tan 
ahogado en cuanto espacio. &lt;br /&gt;
Vamos con el marco inferior: hay que 
añadir un &quot;Push Button&quot;,&amp;nbsp; después seleccionar &quot;layout horizontally&quot; para
 el marco y finalmente añadirle un espaciador horizontal.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;366&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/4%20aadiendo%20el%20botn%20test.png&quot; width=&quot;537&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
El
 siguiente paso es cambiar el texto que muestran las etiquetas y el 
botón y darle un nombre correcto a cada uno de ellos para que sea más 
intuitivo utilizarlos desde el código. Los nombres podrían ser estos 
(según el orden del formualrio):&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
lblRegEx | leRegEx&amp;nbsp; &lt;/div&gt;
&lt;div align=&quot;center&quot;&gt;
lblReplace | leReplace&amp;nbsp; &lt;/div&gt;
&lt;div align=&quot;center&quot;&gt;
lblText | teText&lt;/div&gt;
&lt;div align=&quot;center&quot;&gt;
lblResult | teResult&lt;/div&gt;
&lt;div align=&quot;center&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pbTest &lt;/div&gt;
Aprovecharemos para seleccionar teResult y marcar la propiedad &quot;read only&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;579&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/5%20read%20only%20de%20teresult.png&quot; width=&quot;645&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;strong&gt;Jugando con los slots &lt;/strong&gt;&lt;/h3&gt;
No
 voy a entrar mucho en esto, tan solo una breve explicación. En QT la 
comunicación entre objetos se hace mediante signals&amp;nbsp; y slots. Por un 
lado hay determinados eventos de los objetos que lanzan señales (al 
hacer clic sobre un botón, al cambiar el texto en un campo de texto, 
etc) Por otro lado los objetos también tienen asociadas una serie de 
funciones llamadas slots cuya finalidad es ser receptoras de señales de 
otros objetos ( por ejemplo setText(QString) en un campo text edit). 
Uniendo ambas cosas podemos hacer que al hacer clic sobre un boton 
&quot;clear&quot; se borre todo el contenido de una caja de texto.&lt;br /&gt;
Volvamos a
 lo nuestro. Seleccionando el botón &quot;Test&quot;, apretamos el botón derecho 
de nuestro ratón para obtener el menú contextual y buscamos la opción 
&quot;Go to slot...&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;503&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/6%20go%20to%20slot.png&quot; width=&quot;585&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Se
 nos abrirá una ventana en la que elegiremos la señal clciked() y se nos
 creará automáticamente la cabecera y el cuerpo vacío de un slot llamado
 &quot;on_pbTest_clicked&quot;. Internamente ya se ha relacionado la señal 
&quot;clicked&quot; con el nuevo slot, así que sólo tendremos que añadir el código
 que queramos al mismo (cosa que haremos luego) y este se ejecutará al 
pinchar el botón en nuestra aplicación.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;169&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/7%20elegir%20el%20eslot.png&quot; width=&quot;433&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
Lo
 anterior sirve cuando es un objeto&amp;nbsp; llamándose a si mismo, pero ¿cómo 
hacemos algo similar entre dos objetos distintos? Pues ahora lo vemos, 
recordemos antes que queríamos evaluar la expresión al vuelo mientras la
 escribíamos así que vamos a relacionar la señal &quot;textChanged&quot; del campo
 leRegExp con la ranura &quot;clicked&quot; del botón pbTest. Para ello nos vamos 
al modo de edición &quot;edit signals/slots&quot; mediante f4 o haciendo uso del 
botón de la parte superior de QT Creator. Una vez cambiado el modo, 
arrastramos el ratón desde el campo de entrada hasta el botón y se nos 
abrirá una nueva ventana de selección. En la izquierda escogemos la 
señal &quot;textChanged&quot; y en la derecha el slot &quot;click&quot;, aceptamos y los 
tendremos ya relacionados. Esto quiere decir que cuando haya cualquier 
cambio en la expresión regular será a todos los efectos, como si 
pulsásemos el botón &quot;Test&quot; con lo que se irá evaluando al vuelo.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;508&quot; src=&quot;http://deuteros.es/images/stories/blog/tutorial_qt_regexp/8%20edicion%20de%20slots.png&quot; width=&quot;678&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;strong&gt;Un poquito de código&lt;/strong&gt; &lt;/h3&gt;
Bueno,
 ya tenemos todo relacionado pero esto todavía no hace nade de nada. 
Vamos a insertar el código, para ello abrimos el archivo 
&quot;regextextwindow.cpp&quot; y buscamos la función que QT Creator nos ha 
insertado. Bastará con dejarla así:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: olive;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;RegExTestWindow&lt;span style=&quot;color: black;&quot;&gt;::&lt;/span&gt;on_pbTest_clicked&lt;span style=&quot;color: black;&quot;&gt;()&lt;/span&gt; &lt;br /&gt;
&lt;pre style=&quot;margin: 0px; text-indent: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;{&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin: 0px; text-indent: 0px;&quot;&gt;&lt;span style=&quot;color: silver;&quot;&gt; &lt;/span&gt;ui&lt;span style=&quot;color: black;&quot;&gt;-&amp;gt;&lt;/span&gt;teResult&lt;span style=&quot;color: black;&quot;&gt;-&amp;gt;&lt;/span&gt;setText&lt;span style=&quot;color: black;&quot;&gt;(&lt;/span&gt;ui&lt;span style=&quot;color: black;&quot;&gt;-&amp;gt;&lt;/span&gt;teText&lt;span style=&quot;color: black;&quot;&gt;-&amp;gt;&lt;/span&gt;toPlainText&lt;span style=&quot;color: black;&quot;&gt;().&lt;/span&gt;replace&lt;span style=&quot;color: black;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: purple;&quot;&gt;QRegExp&lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;(&lt;/span&gt;ui&lt;span style=&quot;color: black;&quot;&gt;-&amp;gt;&lt;/span&gt;leRegExp&lt;span style=&quot;color: black;&quot;&gt;-&amp;gt;&lt;/span&gt;text&lt;span style=&quot;color: black;&quot;&gt;()),&lt;/span&gt;ui&lt;span style=&quot;color: black;&quot;&gt;-&amp;gt;&lt;/span&gt;leReplace&lt;span style=&quot;color: black;&quot;&gt;-&amp;gt;&lt;/span&gt;text&lt;span style=&quot;color: black;&quot;&gt;()));&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;margin: 0px; text-indent: 0px;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
Lo
 que significa que asigne como texto del campo &quot;teResult&quot; lo obtenido al
 reemplazar en el texto de prueba que hemos dejado en &quot;teText&quot; todo lo 
que encaje con la expresión regular contenida en &quot;leRegExp&quot;. Todo lo que
 encaje con la expresión se sustituye por el valor de &quot;leReplace&quot;&lt;br /&gt;
&lt;strong&gt;¡Ya está! &lt;/strong&gt;&lt;br /&gt;
Pues
 si todo ha ido bien&amp;nbsp; le damos al botón de ejecución y se nos lanzará la
 apliación. Sólo nos queda desengrasar nuestros conocimientos en 
expresiones regulares :) &lt;span style=&quot;text-decoration: line-through;&quot;&gt;Cuando tenga un rato colgaré&lt;/span&gt; el &lt;a href=&quot;http://www.deuteros.es/sites/default/files/regexptester-1.0.tar.gz&quot; title=&quot;Código fuente del tutorial &quot;&gt;código fuente&lt;/a&gt; y la aplicación en esta web para los más perezosos.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;strong&gt;Sobre mi estupidez &lt;/strong&gt;&lt;/h3&gt;
Tal
 vez os hayáis quedado pensando en lo que contaba al principio del post.
 Resulta que cuando probé la expresión en la aplicación test la cosa 
funcionaba. Así que tenía lo siguiente: funcionaba en la web, funcionaba
 en el testador y fallaba en mi código. Cuando pasan cosas así siempre 
piensas lo mismo &quot;tiene que ser una estupidez como un piano&quot; 
Efectivamente así era, no se me había pasado por la cabeza el escapar el
 carácter de escape, que perogrullada más infernal. &lt;br /&gt;
Una expresión valida como \s\d+/\d+\s escrita en código es \\s\\d+/\\d+\\s &lt;br /&gt;
Perder
 tanto tiempo con una tontería semejante suele llevarme, cuando 
encuentro la solución, al segundo pensamiento típico: &quot;que empanado que 
estoy&quot;&amp;nbsp; </content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/4654375160142468424/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/4654375160142468424' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/4654375160142468424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/4654375160142468424'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2011/01/un-tutorial-rapido-de-qt-evaluador-de.html' title='Un tutorial rápido de QT: evaluador de expresiones regulares'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-7744921400985929775</id><published>2010-12-28T00:22:00.000+01:00</published><updated>2013-11-06T13:22:43.592+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="opinion"/><category scheme="http://www.blogger.com/atom/ns#" term="personal"/><title type='text'>Reflexiones y cambios en mi vida</title><content type='html'>&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
Con la llegada del fin de año he hecho 
las típicas reflexiones transcendentales llegando a unas conclusiones 
sobre lo que debo cambiar en mi vida.&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
Lo
 primero de todo es que, finalmente, creo que Linux no va a terminar de 
despegar nunca. Es una pena pero mi empecinamiento en usarlo como 
Sistema Operativo de todos los cacharros de mi casa no me lleva a ningún
 sitio.&lt;/div&gt;
Últimamente estoy un poco harto de dedicarle tiempo a Acid
 Rain. Me he dado cuenta de que no disfruto cuando lo programo, creo que
 ya no me gusta programar o tal vez lo que no me gusta es todo lo que 
rodea a programar con QT. &lt;br /&gt;
Por otro lado, me cuesta reconocer un 
punto de vista en el que he estado equivocado siempre: los derechos de 
autor son inalienables y no deberíamos ir descargando por ahí 
alegremente torrents de ningún tipo. Somos delincuentes; el emule y 
bitTorrent son armas del diablo. Deberían bloquear todas las 
comunicaciones P2P pues siempre son indicativas de un delito.&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
Como
 consecuencia de los primeros párrafos, voy a instalar Windows 7 en 
todos mis ordenadores, previo pago de las pertinentes licencias, claro, y
 a tirar a la basura mi Nokia N97 para comprarme un terminal con Windows
 Phone.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
Voy a dedicar ese tiempo 
libre en el que me gusta programar al desarrollo de plugins de Internet 
Explorer en lenguaje .Net, que es una tecnología que te cagas de una 
gran empresa: Microsoft, para la que espero trabajar algún día y así 
poder conocer, con un poco de suerte, a Steve Ballmer o al mismísimo 
Gates, mis dos grandes ídolos en el ámbito de mi mundo profesional.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
Además
 voy a recopilar todos los Cds y DVDs en los que tengo música y 
películas grabadas, menos mal que en el fondo no son muchos, y acudiré 
con ellos a la humilde central de la SGAE para que me hagan un desglose 
de lo que les tengo que pagar. Estoy preparando un artículo que 
publicaré en mi blog próximamente, el cual es una disculpa pública al 
rey del pollo frito y a tan emblemática institución defensora de los 
derechos de autor. Sabed que espero que se crujan en los tribunales a 
todos esos desalmados que hacen obras teatrales benéficas sin rendirles 
cuentas, así como a ese infame ayuntamiento, cuyo nombre no quiero 
recordar, de unos pocos habitantes que debe más de 3000 € por 
representaciones musicales. No me importa que sea más de su presupuesto 
anual: a la cárcel su alcalde y que conviertan esa población en una gran
 pira para ejemplificar con el castigo.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
Esto
 es más personal, hace meses que no me siento atraído por ninguna mujer,
 simplemente no me fijo en ellas aunque espero que se me pase. De todos 
modos, creo que los fines de semana me voy a prohibir programar, pasaré 
noches de marcha en el Venial y dejaré el ciclismo de montaña para 
apuntarme a algún gimansio. Peregrinaré todos los años al menos una vez 
al barrio de Chueca en Madrid.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
Alonso
 es un moñas y el Valencia CF un equipo de gallinas con sangre de 
horchata. Lewis Hamilton es lo mejor que le ha pasado a la Fórmula 1 en 
los últimos años y ardo en deseos de que mi nuevo equipo, el Real 
Madrid, monte una escudería con Lewis como piloto número 1 de unos 
bellos bólidos blancos. Reconocedlo Cristiano es un crack y Mourinho una
 gran persona.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0cm;&quot;&gt;
En fin, espero que como mucho no os hayáis creído más allá del segundo párrafo. ¡Feliz día de los inocentes!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/7744921400985929775/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/7744921400985929775' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/7744921400985929775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/7744921400985929775'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2012/12/reflexiones-y-cambios-en-mi-vida.html' title='Reflexiones y cambios en mi vida'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-6431274293954616922</id><published>2010-12-16T22:12:00.000+01:00</published><updated>2013-07-23T14:12:58.148+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Acid Rain"/><title type='text'>Despidiéndome de Kfilebox</title><content type='html'>&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Hola a todos mis escasos lectores&amp;nbsp;&lt;a href=&quot;http://susegallery.com/a/8Xskew/acid-rain-server&quot; style=&quot;color: #d74800;&quot;&gt;&lt;img align=&quot;left&quot; alt=&quot;&quot; border=&quot;0&quot; height=&quot;222&quot; src=&quot;http://deuteros.es/images/stories/suse%20gallery.jpg&quot; style=&quot;border: 0px; margin: 10px;&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;:p&amp;nbsp; La semana pasada no conté gran cosa sobre mis andanzas porque simplemente no hubo mucho que contar, no avancé nada con Acid Rain. ¡Ah! Sí, publiqué la primera versión de las&amp;nbsp;&lt;a href=&quot;http://susegallery.com/a/8Xskew/acid-rain-server&quot; style=&quot;color: #d74800; text-decoration: none;&quot;&gt;distribución Linux&lt;/a&gt;&amp;nbsp;que creo que sólo se ha bajado un pavo con el mismo nombre y apellidos que yo.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Por contra, como resulta que lo prometido es deuda, estuve dedicando un poco de tiempo de mis vacaciones de la semana pasada a cumplir con mi promesa preparando una ultima versión de Kfilebox.&lt;br /&gt;
No es gran cosa, unos cuantos iconos nuevos con la posibilidad de poder elegir los que prefieras, vamos un &quot;copy - paste&quot; de la misma característica que ya existía en Acid Rain.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
La verdad es que ha valido la pena pegarse con Kfilebox, si no hubiese sido por ella ni de coña me habría metido en este otro lío. En fin, han sido muchos los usuarios que han dado su opinión, informado de errores, pedido nuevas características, otros han traducido la aplicación a su idioma desinteresadamente e incluso en las últimas semanas he recibido material gráfico.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Volviendo a la nube ácida, lo que puedo decir es que me estoy pegando ya con el empaquetado de los instalables Windows y Linux. Creo que ya he comentado en alguna ocasión que crear rpms y debs es un maldito infierno que suele llevar algo de tiempo. También tengo hecha una primera traducción al español que aún tengo que probar y me parece que ya dije que el asistente de la primera configuración estaba listo. Por último he decido distribuir la beta con los bugs que conozco sin resolver, porque quiero lanzarlo ya y porque así de paso tendré una forma de saber hasta que punto aquellos que lo prueben me están sirviendo de beta testers. O sea, que si nadie me dice &quot;oye tío cuando hago clic sobre el condensador de fluzo me pasa esta cosa tan chunga&quot; no podré estar seguro de que la aplicación esta bien testada.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Por cierto que ya hay página en&lt;a href=&quot;http://www.facebook.com/pages/Acid-Rain/153568694689829&quot; style=&quot;color: #d74800; text-decoration: none;&quot;&gt;&amp;nbsp;Facebook sobre Acid Rain&lt;/a&gt;, el que quiera ya puede hacerse fan :)&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/6431274293954616922/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/6431274293954616922' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/6431274293954616922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/6431274293954616922'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2010/12/despidiendome-de-kfilebox.html' title='Despidiéndome de Kfilebox'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-6598632149871532563</id><published>2010-12-10T22:06:00.000+01:00</published><updated>2013-07-23T14:07:14.205+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MTB"/><title type='text'>Tierra roja</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://deuteros.es/images/stories/blog/barro.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://deuteros.es/images/stories/blog/barro.jpg&quot; width=&quot;175&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Hoy, dos años después, he vuelto a llenarme del rojo barro de La Calderona. Ha sido un día de perros, la humedad de la niebla me empapaba poco a poco y se hacia más densa conforme ascendía hasta el punto de&amp;nbsp; que, a unos cuatro km de la cima de Rebalsadores, empezaron a caer gotas de agua del centro exacto de la visera de mi casco, mientras, por las mangas de mi chaqueta se deslizaba el agua hacia mis guantes convirtiéndolos en esponjas. El ambiente parecía el propio de la lluvia pero no caía nada.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Todo daba igual. No había nadie a la vista, sólo yo en medio de una pista de tierra rojiza por caminos que no recordaba siguiendo mi GPS. Niebla, niebla y cada vez más niebla. Nunca me había resultado tan inútil cargar con una cámara de fotos,no habría ocasión para utilizarla.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Llegué a la mitad de la ruta y un desvío me introdujo en caminos desconocidos que se prolongarían catorce km más sin que yo supiera que mi navegador se iba a agotar un poco más tarde.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Me gusta la sensación de estar moderadamente perdido, me ha ocurrido alguna vez rodeado de campos de naranjos entre Almenara y Vall d&#39;Uxo. Perdido pero con la tranquilidad de estar orientado, algo que no hubiese tenido en las pistas forestales próximas a Olocau. Afortunadamente unos veinte minutos antes de que eso ocurriera topé con tres ciclistas que me invitaron a acompañarlos. Son los únicos a los que he visto hoy, tal vez los únicos que estaban por allí en un día tan feo como este. Hay innumerables sendas y opciones a tomar por aquellos parajes pero la suerte, o mi buen karma, ha hecho que Dani, Jose y Juan llevasen la misma ruta de vuelta en el mismo momento.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Al final la adrenalina queda liberada en el descenso, en forma de una larga curva en la que te vas yendo al exterior poco a poco, o clavando los frenos porque simplemente te estás saliendo recto dos giros mas tarde. Es excitante, adictivo: notas como la horquilla se hunde, la rueda trasera culea a un lado y a otro&amp;nbsp; pero no estás en el suelo, detenido casi por completo, cercano al borde exterior de la herradura que forma el camino, giras el manillar para orientarlo de nuevo, no piensas en ello, pedaleas y te sumerges en la inmensidad de la pista roja.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/6598632149871532563/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/6598632149871532563' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/6598632149871532563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/6598632149871532563'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2010/12/tierra-roja.html' title='Tierra roja'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5704109791193957139.post-8333056153070803584</id><published>2010-12-02T20:00:00.000+01:00</published><updated>2013-07-23T14:04:12.569+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Acid Rain"/><title type='text'>Quemando CDs</title><content type='html'>&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://deuteros.es/images/stories/blog/256px-cd_autolev_crop.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://deuteros.es/images/stories/blog/256px-cd_autolev_crop.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Pues sí, como resulta que me he centrado un poco más en avanzar la distribución Linux resulta que de vez en cuando me toca quemar algún CD. Hago todas las pruebas que puedo con máquinas virtuales pero, cuando la cosa llega a un punto que me gusta, resulta que lo quemo para pasarlo a un viejo PC que uso como servidor de pruebas de Acid Rain Server.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Y eso me lleva a la razón de maldecir a la SGAE porque, aunque no estoy pirateando música ni nada por el estilo, resulta que en el ámbito legal de los derechos de autor (léase autor musical) todos somos culpables aunque demostremos lo contrario. No importa que grabe una distribución Linux, tengo que pagar el canon en cada prueba que hago. Para mitigar esto un poco compré CDs regrabables, con el triste resultado de que, a partir de la segunda utilización, el lector de mi servidor no los reconoce. No me ha quedado más remedio que volver a los tradicionales CDs por más que se me revuelvan las tripas.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Dicho esto, me alegra mucho contar que la primera versión de la distribución ya está lista. Una vez instalada, lo que se tiene es un servidor web accesible por SSL (con certificados autogenerados) y por supuesto y simultáneamente hace de servidor mercurial. En la práctica esto se traduce en que podemos poner la ruta de ese servidor en cualquiera de nuestros otros PCs que corran el cliente de Acid Rain y además de usarlo como distribuidor centralizado podemos navegar por una web que contiene nuestros archivos.Todo ello protegido por un usuario y clave predefinido y la encriptación SSL de todo lo que transfiramos.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Por otro lado el wizard que se encarga de la primera configuración de Acid Rain también está casi listo, es capaz de instalar Mercurial si es necesario y lo estoy probando estos días.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
Se acerca el día de tener la beta privada lista, terror me da, pero parece que va a ser pronto. De todos modos voy a aprovechar mis vacaciones de la semana que viene para finiquitar la ultima versión de&amp;nbsp;&lt;a href=&quot;http://kdropbox.deuteros.es/&quot; style=&quot;color: #d74800; text-decoration: none;&quot;&gt;Kfilebox&amp;nbsp;&lt;/a&gt;tal y como&amp;nbsp;&lt;a href=&quot;http://kdropbox.deuteros.es/index.php?option=com_content&amp;amp;view=article&amp;amp;id=60:some-news&amp;amp;catid=1:latest-news&quot; style=&quot;color: #d74800; text-decoration: none;&quot;&gt;prometí&amp;nbsp;&lt;/a&gt;a sus usuarios.&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; line-height: 16px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Para finalizar os dejo un vídeo en el que se fuerza un conflicto entre archivos durante la sincronización. Los dos PCs que intervienen son reales (mi sobremesa y mi portátil) sólo que uno de ellos está manejado remotamente.&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
E&lt;span class=&quot;long_text&quot;&gt;l portátil está continuamente sincronizando de modo que el cambio que se hace en el archivo se sube inmediatamente.&amp;nbsp;En el PC de escritorio con OpenSuse, la sincronización se detiene (haciendo clic en &quot;Stop the Rain&quot;), entonces se hace un cambio el mismo archivo y la sincronización se reanuda (&quot;Start the Rain&quot;).&amp;nbsp;Como la máquina de escritorio está tratando de subir un archivo modificado de forma remota, se produce un conflicto y Acid Rain muestra una solicitud al usuario con dos opciones para solucionarlo.Elegimos mantener el archivo local (el del PC de escritorio) así que finalmente los cambios que se cargan y se sincronizan con la computadora portátil.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;span class=&quot;long_text&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #323232; font-family: Arial, Helvetica, &#39;Bitstream Vera Sans&#39;, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span class=&quot;long_text&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;http://www.youtube.com/embed/aFDy7kO7VzA?feature=player_embedded&quot; width=&quot;640&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://deuteria.blogspot.com/feeds/8333056153070803584/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5704109791193957139/8333056153070803584' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/8333056153070803584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5704109791193957139/posts/default/8333056153070803584'/><link rel='alternate' type='text/html' href='http://deuteria.blogspot.com/2010/12/quemando-cds.html' title='Quemando CDs'/><author><name>deuteros</name><uri>http://www.blogger.com/profile/11515950173587269203</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/aFDy7kO7VzA/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>