<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>It should work... &#187; Opinión</title>
	<atom:link href="http://vierito.es/wordpress/category/opinion/feed/" rel="self" type="application/rss+xml" />
	<link>http://vierito.es/wordpress</link>
	<description>Cuando cualquier trasto es útil</description>
	<lastBuildDate>Tue, 15 May 2012 16:44:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Resolución de conflictos, es decir, cómo no perder nunca al 3 en raya</title>
		<link>http://vierito.es/wordpress/2010/02/04/resolucion-de-conflictos-es-decir-como-no-perder-nunca-al-3-en-raya/</link>
		<comments>http://vierito.es/wordpress/2010/02/04/resolucion-de-conflictos-es-decir-como-no-perder-nunca-al-3-en-raya/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 20:31:19 +0000</pubDate>
		<dc:creator>vierito5</dc:creator>
				<category><![CDATA[Opinión]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[tic tac toe]]></category>
		<category><![CDATA[tres en raya]]></category>

		<guid isPermaLink="false">http://vierito.es/wordpress/?p=749</guid>
		<description><![CDATA[A menudo, ya sea con amigos o no, nos encontramos con situaciones en las que no hay vuelta atrás, uno opina una cosa, otro otra, y eso no va a cambiar. Pero queda algo, el orgullo, en el fondo tu sabes que tienes razón y quieres dejarlo patente. Veamos las opciones: Llegar a las manos: [...]]]></description>
			<content:encoded><![CDATA[<p>A menudo, ya sea con amigos o no, nos encontramos con situaciones en las que no hay vuelta atrás, uno opina una cosa, otro otra, y eso no va a cambiar. Pero queda algo, el orgullo, en el fondo tu sabes que tienes razón y quieres dejarlo patente. Veamos las opciones:</p>
<ul>
<li>Llegar a las manos: Darse leches está mal visto. Meterse mano también.</li>
<li>Jugárselo a piedra, papel o tijera: si es el otro es japonés estás perdido, vas a perder sí o sí, ellos nacieron con un don para ello. Si no es japonés nada te asegura que vayas a ganar, así que nada, mala opción.</li>
<li>Jugárselo al tres-en-raya. Esta es la buena.</li>
</ul>
<p>El tres en raya es un juego sencillo, cuando la gente se pone a jugar se cree que es un juego tonto (que lo es!) y que más o menos, sin considerar empates, el 50% de las partidas las ganarán y el resto las perderán pero no es tan tan sencillo. Así que le sueltas: &#8220;Pues ya está! Nos lo jugamos al tres en raya. El primero en ganar será el que tenga la razón, ¿es justo no?&#8221; Suelen aceptar.</p>
<p>Vamos a asumir que el juego es empezando con un tablero vacío, que empiezas donde quieras y que cuando ya has puesto las piezas posibles y no ha ganado nadie comienza una partida nueva desde cero.</p>
<p>También vamos a asumir que tú no estás en la parra y que sólo vas a perder si te provocan una situación en la que el contrincante te puede hacer tres en raya de dos maneras simultáneas y no es que se te ha <em>escapado</em> la línea ¬¬. Tú eres cruz, tu víctima será cara.</p>
<h3>Cómo no perder</h3>
<p>Se supone que el que empieza lleva la voz cantante. Tu contrincante puede empezar en el centro, en una esquina o en un lado. Lo decisivo son las 2 primeras posiciones.</p>
<p>Si él empieza en el centro, ve siempre a la esquina. En caso de que luego su ficha se ponga en línea tu ve de nuevo a una esquina.</p>
<p style="text-align: center;"><a href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3ZpZXJpdG8uZXMvd29yZHByZXNzL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEwLzAyL25vcGVyZGVyX2NlbnRyby5wbmc="><img class="size-medium wp-image-755   aligncenter" title="noperder_centro" src="http://vierito.es/wordpress/wp-content/uploads/2010/02/noperder_centro-480x256.png" alt="no perder al tres en raya cuando el otro empieza en el centro" width="480" height="256" /></a></p>
<p>Si empieza en una esquina nosotros cogemos el centro.  En caso de que él vuelva a colocar su ficha en línea entonces nosotros nos vamos a una posición que no sea esquina.</p>
<p style="text-align: center;"><a href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3ZpZXJpdG8uZXMvd29yZHByZXNzL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEwLzAyL25vcGVyZGVyX2VzcXVpbmEucG5n"><img class="size-medium wp-image-756  aligncenter" title="noperder_esquina" src="http://vierito.es/wordpress/wp-content/uploads/2010/02/noperder_esquina-480x278.png" alt="noperder_esquina" width="480" height="278" /></a></p>
<p>Si empieza en un lado cogemos el centro de nuevo. En caso de que él coga un lado contiguo debemos colocar nuestra ficha en la esquina común.</p>
<p style="text-align: center;"><a href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3ZpZXJpdG8uZXMvd29yZHByZXNzL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEwLzAyL25vcGVyZGVyX2xhZG8ucG5n"><img class="size-medium wp-image-757  aligncenter" title="noperder_lado" src="http://vierito.es/wordpress/wp-content/uploads/2010/02/noperder_lado-480x254.png" alt="noperder_lado" width="480" height="254" /></a></p>
<p>Ahora ya lo tenemos neutralizado.</p>
<h3>Cómo intentar ganar</h3>
<p>Intentar ganar viene a ser lo mismo pero al revés, con alguna variación más porque él no tiene por qué hacer de su primer movimiento los que yo he hecho antes.  Sólo tienes que esperar a que lleve 3 o 4 partidas y que ponga donde no toca en su segundo movimiento.</p>
<p>Aplicado al primer caso, si empiezas en el centro y él no pone en una esquina está muerto, en el caso de que lo haga tu colocas tu ficha haciendo línea. Ahora si él no se posiciona en una de las dos esquina restantes habrá perdido también.</p>
<p>Si tu contrincante se sabe esto, simplemente jugar será un while(true) hasta que uno de los dos se harte, y entonces, por supuesto, tiene razón el otro <img src='http://vierito.es/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>P.S. Aprovecho este post para anunciar que TuXeD se ha comprado un dominio nuevo y pasa de <a title=\"/var/log/TuXeD\" href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3R1eGVkLnNlcnZlYmxvZy5uZXQ=">/var/log/TuXeD</a> a <a title=\"Limited Entropy Dot Com - TuXeD\" href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5saW1pdGVkLWVudHJvcHkuY29t">Limited Entropy Dot Com</a>. ¡Ya estás actualizando tus feeds y bookmarks!<br/><br/><i>&#8211;<br/>Fuente original en <a href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3ZpZXJpdG8uZXMvd29yZHByZXNz">http://vierito.es/wordpress</a></i><br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">None Found
</ul>
<p><!-- Similar Posts took 3.313 ms --></p>
 <img src="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=749" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://vierito.es/wordpress/2010/02/04/resolucion-de-conflictos-es-decir-como-no-perder-nunca-al-3-en-raya/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Cuestión de optimización</title>
		<link>http://vierito.es/wordpress/2009/08/10/cuestion-de-optimizacion/</link>
		<comments>http://vierito.es/wordpress/2009/08/10/cuestion-de-optimizacion/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 19:37:54 +0000</pubDate>
		<dc:creator>vierito5</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[Opinión]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[cat]]></category>
		<category><![CDATA[eficiencia]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[Matlab]]></category>
		<category><![CDATA[optimización]]></category>

		<guid isPermaLink="false">http://vierito.es/wordpress/?p=255</guid>
		<description><![CDATA[Y es que se ha perdido el romanticismo&#8230; xD A día de hoy contamos con ordenadores chorrecientas veces más rápidos que hace pocos años y cuando se programa haces pruebas con sistemas de 3GHz, varios MB de cache y 2GB de RAM mínimo y todo tira para adelante. Bueno, todo tira hasta cierto punto, tus [...]]]></description>
			<content:encoded><![CDATA[<p>Y es que se ha perdido el romanticismo&#8230; xD</p>
<p>A día de hoy contamos con ordenadores chorrecientas veces más rápidos que hace pocos años y cuando se programa haces pruebas con sistemas de 3GHz, varios MB de cache y 2GB de RAM mínimo y todo tira para adelante. Bueno, todo tira hasta cierto punto, tus programas luego se van a estar ejecutando juntos con otras decenas de programas o simplemente se van a estar ejecutando constantemente y vas a perder un gran porcentaje de la capacidad de proceso de cómo lo podrías estar haciendo.</p>
<p>Bueno, y es normal, cosas de la comodidad, <strong>yo el primero</strong>. Ahora te quedas tranquilo con que funcione, en los 80 tenía que funcionar y caber en 64kB de RAM. No digo que se programe peor (seguramente sí xD) pero ya no nos fijamos en muchos detalles que antes eran totalmente necesarios (la de trucos que usaba la gente para poder aprovechar el 100% del hardware del Commodore64) y ahora desperdiciamos por todos lados y al final <strong>sí que pasa factura</strong>. La gente que programe sistemas embebidos lo tiene muy claro aunque casi se va a acabar el asunto también ahí porque ya los procesadores de los móviles/PDAs/cosas_pequeñas tirán mucho.</p>
<p><span id="more-255"></span></p>
<p>Me he encontrado con programas que están al 100% de CPU en idle, con programas que daban su salida en unos 12~15 minutos cuando otro para el mismo propósito lo hacía en aproximadamente 1 segundo (no daré nombres xD), programas en los que notas el &#8216;refresco&#8217; de los elementos cuando lo usas cuando te sobra CPU para hacerlo bien, etc. Hay que intentar evitar marañas de bucles for anidados!</p>
<p>Al final todo pasa por conocer muy bien el lenguaje que usas, haber pasado horas y horas, pensar las cosas antes de hacerlas, incluso un poquito de sentido común, cosa que creo que es difícil de abstraer a veces cuando se programa.</p>
<p>Por ejemplo, en matlab es muy importante reservar el espacio para las variables antes y crear los vectores del tamaño que van a ser al final de las operaciones porque si aumentamos el tamaño de un vector[n], internamente lo que siempre hace es crear un nuevo vector[n+1] y copiar los datos del antiguo.</p>
<p>Hace unos meses me comentó un amigo que en el trabajo tenían un método númerico que disminuyó su tiempo de ejecución en más de un 20% (siendo su tiempo varias horas) al sustituir un resultado de una operación que siempre era el mismo por el valor guardado en una variable! Es de cajón pero hay que caer.</p>
<p>Y ahora vienen algunos ejemplos, por no meterme en un lenguaje tipo C en el que hay muchas posibilidades de hacer las cosas y hay que currarse más los ejemplo iré a algo más sencillo como es hacer scripts cerdos para administrar un máquinas o similares.</p>
<p>Un ejemplo sería un uso poco adecuado de las órdenes <em>cat, grep, ls, awk</em> y similares. Cuando manipulamos algo pequeño no pasa nada pero cuando se trata de varios ficheros logs y son decenas de MB pues la cosa empieza a tomar importancia.</p>
<p>Respecto a <em>grep</em> cuando una persona empieza y se plantea buscar una cadena lo primero que piensa es &#8216;muestro el archivo y luego saco las líneas coincidentes&#8217;:</p>
<p><code># cat tinyproxy.log | grep remote<br />
real    0m55.071s<br />
user    0m24.477s<br />
sys     0m0.727s</code></p>
<p>Luego descubres que en realidad lo puedes hacer &#8216;todo en uno&#8217; y es bastantes más rápido:</p>
<p><code># grep remote tinyproxy.log<br />
real    0m36.024s<br />
user    0m22.550s<br />
sys     0m0.527s</code></p>
<p>Luego, sin querer, entras en el man y te das cuenta de que existen varios tipos: <em>grep</em>, <em>egrep</em> (similar pero no idéntico a grep -E ) y  <em>fgrep</em> (idéntico a grep -F). Así que pruebas:</p>
<p><code># egrep remote tinyproxy.log<br />
real    0m55.122s<br />
user    0m25.029s<br />
sys     0m0.659s</code></p>
<p>Joder, vuelve a ser lento a pesar de no hacer un cat. ¿Por qué? Porque es una función más compleja.</p>
<ul>
<li>grep: soporta expresiones regulares básicas.</li>
<li>fgrep: no soporta expresiones regulares =&gt; el más rápido.</li>
<li>egrep: soporta expresiones regulares avanzadas =&gt; el más lento.</li>
</ul>
<p>Para los curiosos, el nombre grep viene de g/re/p y significa lo que hace tal cual, buscar una expresión regular y hacer print de las coincidencias. En realidad a una escala grande ni siquiera deberíamos usar <em>grep</em> sino <em>sed</em> que es más rápido.</p>
<p>Lo mucha gente desconoce es que hay otra manera de evitar el <em>cat </em>de antes y ganar tiempo, y es que en realidad las concatenaciones siempre están ahí&#8230; así que lo podríamos hacer del siguiente modo:</p>
<p><code># &lt;tinyproxy.log grep remote<br />
real    0m43.931s<br />
user    0m22.338s<br />
sys     0m0.578s</code></p>
<p>Del mismo modo estos conceptos se puede usar en otras órdenes</p>
<p><code># cat tinyproxy.log | wc -l<br />
104265</code></p>
<p>real    0m0.088s<br />
user    0m0.021s<br />
sys     0m0.053s</p>
<p><code># wc -l tinyproxy.log<br />
104265 tinyproxy.log</code></p>
<p>real    0m0.021s<br />
user    0m0.013s<br />
sys     0m0.006s</p>
<p>Y del mismo modo:</p>
<p><code># cat tinyproxy.log | tail -n 200<br />
real    0m0.121s<br />
user    0m0.026s<br />
sys     0m0.056s</code></p>
<p><code># tail -n 200 tinyproxy.log<br />
real    0m0.010s<br />
user    0m0.000s<br />
sys     0m0.003s</code></p>
<p>Cambiando de tercio también solemos usar <em>echo</em> más veces de las que toca. Por ejemplo si tenemos :</p>
<p><code>var="valor_o_resultado_de_una_evaluacion"<br />
command -options `echo $var`</code></p>
<p>en la mayoría de los casos podremos sustituirlo por:</p>
<p><code>var="valor_o_resultado_de_una_evaluacion"<br />
command -options $var</code></p>
<p>Y así mil chorradas. Por cierto, el que sólo se conozca la opción de awk para coger columnas le recomiendo que se mire manules que termina siendo muy útil.</p>
<p>Creo que este post lleva más de 6 meses en drafts y no he añadido nada (de hecho  tampoco tengo ganas), así que aunque es un tema que da mucho de sí ha quedado bastante descafeinado técnicamente, pero ajo y agua!<br/><br/><i>&#8211;<br/>Fuente original en <a href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3ZpZXJpdG8uZXMvd29yZHByZXNz">http://vierito.es/wordpress</a></i><br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3ZpZXJpdG8uZXMvd29yZHByZXNzLzIwMDkvMTEvMjUvZGVzY29kaWZpY2FyLXRvbm9zLWR0bWYtdXNhbmRvLW1hdGxhYi8=" rel=\"bookmark\" title=\"November 25, 2009\">Descodificar tonos DTMF usando Matlab</a></li>
<li><a href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3ZpZXJpdG8uZXMvd29yZHByZXNzLzIwMDkvMDkvMjUvcG9ydC1rbm9ja2luZy15LWNyeXB0LXBvcnQta25vY2tpbmcv" rel=\"bookmark\" title=\"September 25, 2009\">Port-Knocking y Crypt-Port-Knocking</a></li>
<li><a href="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3ZpZXJpdG8uZXMvd29yZHByZXNzLzIwMDgvMTEvMjEvcGFyYS1sb3MtYW1hbnRlcy1kZS14a2NkLWxsZWdhLw==" rel=\"bookmark\" title=\"November 21, 2008\">Para los amantes de XKCD llega&#8230;</a></li>
</ul>
<p><!-- Similar Posts took 8.402 ms --></p>
 <img src="http://vierito.es/wordpress/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=255" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://vierito.es/wordpress/2009/08/10/cuestion-de-optimizacion/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

