<?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>Cybernetik Design &#187; optimizacion</title>
	<atom:link href="http://www.cybernetikdesign.com/tag/optimizacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cybernetikdesign.com</link>
	<description>Proyectos personales, videojuegos, programación, diseño, y alguna que otra curiosidad</description>
	<lastBuildDate>Sun, 06 Sep 2009 10:25:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Es importante optimizar</title>
		<link>http://www.cybernetikdesign.com/2008/02/14/es-importante-optimizar/</link>
		<comments>http://www.cybernetikdesign.com/2008/02/14/es-importante-optimizar/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 19:12:37 +0000</pubDate>
		<dc:creator>Lord Cyberon</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[optimizacion]]></category>

		<guid isPermaLink="false">http://www.cybernetikdesign.com/2008/02/14/es-importante-optimizar/</guid>
		<description><![CDATA[Eso es lo que me he tenido que decir ya un par de veces en el último mes en el trabajo. Resulta que he estado encargado del editor visual de código del proyecto (del que ya hablé antes) y la verdad es que me ha servido para aprender bastante de optimización. El control de edición [...]]]></description>
			<content:encoded><![CDATA[<p>Eso es lo que me he tenido que decir ya un par de veces en el último mes en el trabajo. Resulta que he estado encargado del editor visual de código del proyecto (del que ya hablé antes) y la verdad es que me ha servido para aprender bastante de optimización. El control de edición ha sido creado desde un control de .Net básico (UserControl), y ha sido creado para soportar sintaxis coloreada e intellisense (esa ventanita tan molona que nos da sugerencias de qué poner) . El control ha funcionado perfectamente hasta que hemos llegado a empezar a probar en serio y empezamos a meterles archivos de uns 500 líneas. A partir de ahí ya se ralentizaba el editor. Al final tuve que modificar la rutina de cálculo de líneas a dibujar y dividirla en dos: Una para las líneas en pantalla (que necesita partir cadenas y hacer <em>chorrocientas</em> comprobaciones para saber qué color poner, aparte de meter tabulaciones en el código y medir longitud de cadenas) y otra para las que no se ven, que simplemente se limita a poner tabulaciones al principio y medir la longitud de la cadena, con el consiguiente ahorro de cálculo.</p>
<p>A las dos semanas un nuevo problema: Con archivos de 1800 líneas vuelve a ir lento. Toca optimizar otra vez. Esta vez el problema no fue del editor en sí, sino de una estructura de árbol auxiliar que se actualiza cada vez que se modifica la estructura del documento (teniendo en cuenta que el árbol contaba con unos 900 nodos, tardaba unos tres segundos en actualizarse), por lo que me las tuve que apañar y hacer que solamente actualizase los nodos que se habían modificado en vez de reescribir todo el árbol, con lo que en vez de redibujar 900 cadenas de texto solo dibujaba un par de ellas a pesar de tener que recorrerse casi todo el árbol.</p>
<p><strong>Conclusión:</strong> Al principio cuando programas código lo haces de la manera que te parece más adecuada, pero no sabes hasta qué punto te va a llegar a funcionar como tú deseas. No piensas que tal vez la manera que tienes de hacer una búsqueda o de calcular un parámetro se puede hacer tal vez con uno poco más de código, pero que a la hora de ejecutarse reporta una gran velocidad de ejecución cuando se trata de datos grandes -puede que sea un pelín más costoso con pocos, pero lo importante viene en lo &#8220;gordo&#8221;-. Por lo que me he dado cuenta que es bueno hacer pruebas &#8220;bestias&#8221; sobre nuestro código para comprobar que soportará casos extremos aunque sean muy pero que muy raros.</p>
<hr />En otro orden de cosas. He estado leyendo las noticias sobre <em>Google Android</em> del <em>Mobile World Congress</em>; y la verdad es que me he echado para atrás en mi proyecto para el concurso. Primero, porque no me fío de que hayan aplazado el concurso un mes y medio, segundo, porque quiero hacer otras cosas más importantes para mí ( ¡Armors, Armors!&#8230;.. ¡Rotor-O-scope, Rotor-O-scope!) , tercero, ya han dicho más o menos qué tipo de terminales van a llevar el sistema, y mi proyecto está orientado a GPS y a personas bastante jóvenes que es bastante probable que no se vayan a hacer con un terminal de tercera generación, y cuarto, que ha decepcionado bastante a la gente que lo ha estado probando.Así que me quito un peso de encima y veo más cerca el día de ponerme otra vez con mis juegos, que es lo que me gusta (todavía estoy con el proyecto web-cómic-friki, pero ya le falta menos).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cybernetikdesign.com/2008/02/14/es-importante-optimizar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
