<?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>Novacreations &#187; Programación</title>
	<atom:link href="http://www.novacreations.net/category/articulos/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.novacreations.net</link>
	<description>Desarollando Software</description>
	<lastBuildDate>Wed, 03 Mar 2010 17:52:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Aprendiendo de la historia del código</title>
		<link>http://www.novacreations.net/585-aprendiendo-de-la-historia-del-codigo/</link>
		<comments>http://www.novacreations.net/585-aprendiendo-de-la-historia-del-codigo/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 15:20:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA["Andreas Zeller"]]></category>
		<category><![CDATA["google tech talks"]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Delta]]></category>
		<category><![CDATA[falla]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[Talks]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/?p=585</guid>
		<description><![CDATA[Andreas Zeller se ha dedicado al estudio y análisis del código de los sistemas. A través de su historia es capas de responde la pregunta: ¿Por qué mi código Falla? En esta presentación de Google Tech Talks nos muestra como es posible identificar de forma automática el origen de los Bugs, en donde están y [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-586" title="software_bug" src="http://www.novacreations.net/wp-content/uploads/2009/11/software_bug-300x199.jpg" alt="software_bug" width="300" height="199" />Andreas Zeller se ha dedicado al estudio y análisis del código de los sistemas. A través de su historia es capas de responde la pregunta: ¿Por qué mi código Falla? En esta presentación de Google Tech Talks nos muestra como es posible identificar de forma automática el origen de los Bugs, en donde están y también predecir en donde encontraremos los próximos Bugs.</p>
<p>Muy interesante y recomendable para quienes batallamos día a día arreglando líneas de código.</p>
<p><strong>Learning from Code History</strong><br />
<a href="http://www.youtube.com/watch?v=SzRqd4YeLlM">http://www.youtube.com/watch?v=SzRqd4YeLlM</a></p>
<p>Otros recursos:</p>
<p><a href="http://en.wikipedia.org/wiki/Delta_Debugging">Delta Debugging</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/585-aprendiendo-de-la-historia-del-codigo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursos sobre Expresiones Regulares</title>
		<link>http://www.novacreations.net/543-recursos-sobre-expresiones-regulares/</link>
		<comments>http://www.novacreations.net/543-recursos-sobre-expresiones-regulares/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 15:00:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Expresiones regulares]]></category>
		<category><![CDATA[REGEX]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/?p=543</guid>
		<description><![CDATA[Recursos de interes sobre expresiones regulares para aquellos que empiezan a aprender y los que las usamos en nuestra labor diaria. Artículos, guías y herramientas.  ]]></description>
			<content:encoded><![CDATA[<p>Ya les he compartido recursos sobre expresiones regulares con anterioridad en Novacreations.</p>
<p>8 Expresiones Regulares que Debes Conocer<br />
<a href="http://www.novacreations.net/491-8-expresiones-regulares-que-debes-conocer/">http://www.novacreations.net/491-8-expresiones-regulares-que-debes-conocer/</a></p>
<p>Expresiones Regulares<br />
<a href="http://www.novacreations.net/351-expresiones-regulares/">http://www.novacreations.net/351-expresiones-regulares/</a></p>
<p>Les comparto otros recursos de interés para aquellos que empiezan a aprender y los que las usamos en nuestra labor diaria.</p>
<p>Para conocer el mundo de las expresiones regulares, entender su estructura básica y para que nos sirven.</p>
<ul>
<li>The absolute bare minimum every programmer should know about regular expressions<br />
<a href="http://immike.net/blog/2007/04/06/the-absolute-bare-minimum-every-programmer-should-know-about-regular-expressions/" target="_blank">http://immike.net/blog/2007/04/06/the-absolute-bare-minimum-every-programmer-should-know-about-regular-expressions/</a></li>
<li>Demystifying Regular Expressions<br />
<a href="http://www.linuxforums.org/articles/demystifying-regular-expressions_105.html" target="_blank">http://www.linuxforums.org/articles/demystifying-regular-expressions_105.html</a></li>
<li>Using Regular Expressions with PHP<br />
<a href="http://www.webcheatsheet.com/php/regular_expressions.php" target="_blank">http://www.webcheatsheet.com/php/regular_expressions.php}</a></li>
<li>You Don’t Know Anything About Regular Expressions: A Complete Guide<br />
<a href="http://net.tutsplus.com/tutorials/javascript-ajax/you-dont-know-anything-about-regular-expressions" target="_blank">http://net.tutsplus.com/tutorials/javascript-ajax/you-dont-know-anything-about-regular-expressions</a></li>
</ul>
<p>Guías y referencias para cuando estamos trabajando con las expresiones.</p>
<ul>
<li>Regular Expressions Cheat Sheet (V2)<br />
<a href="http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/" target="_blank">http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/</a></li>
<li>Regular Expressions<br />
<a href="http://www.visibone.com/regular-expressions/" target="_blank">http://www.visibone.com/regular-expressions/</a></li>
<li>Flex 3 Regular Expression Explorer<br />
<a href="http://ryanswanson.com/regexp/#start" target="_blank">http://ryanswanson.com/regexp/#start</a></li>
<li>Regular Expressions &#8211; User guide<br />
<a href="http://www.zytrax.com/tech/web/regex.htm" target="_blank">http://www.zytrax.com/tech/web/regex.htm</a></li>
<li>Crucial Concepts Behind Advanced Regular Expressions<br />
<a href="http://www.smashingmagazine.com/2009/05/06/introduction-to-advanced-regular-expressions/" target="_blank">http://www.smashingmagazine.com/2009/05/06/introduction-to-advanced-regular-expressions/</a></li>
</ul>
<p>Algunas herramientas para crear y probar expresiones regulares</p>
<ul>
<li> RegexPal 0.1.4 — a JavaScript regular expression tester<br />
<a href="http://regexpal.com/" target="_blank">http://regexpal.com/</a></li>
<li>RegexBuddy – excelente herramienta para crear, probar y evaluar regex.<br />
<a href="http://www.regexbuddy.com/" target="_blank">http://www.regexbuddy.com/</a></li>
<li>The Regex Coach<br />
<a href="http://www.weitz.de/regex-coach/" target="_blank">http://www.weitz.de/regex-coach/</a></li>
<li>Regular Expression Online Tester<br />
<a href="http://www.quanetic.com/Regex" target="_blank">http://www.quanetic.com/Regex</a></li>
</ul>
<p>¿Conocen algún otro buen recurso?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/543-recursos-sobre-expresiones-regulares/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>30 Mejores Prácticas en PHP para Principiantes</title>
		<link>http://www.novacreations.net/498-30-mejores-practicas-en-php-para-principiantes/</link>
		<comments>http://www.novacreations.net/498-30-mejores-practicas-en-php-para-principiantes/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 16:46:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[principiante]]></category>
		<category><![CDATA[programador]]></category>
		<category><![CDATA[Sql]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/?p=498</guid>
		<description><![CDATA[Al empezar a programar en PHP es necesario aprender conceptos y prácticas que dan mayor calidad, funcionalidad y solides a nuestras aplicaciones. Una vez que conocemos como usar el código es importante instruirse en como darle vida al mismo.
En el articulo Mas de 30 mejores prácticas en PHP para principiantes de Glen Stansberry nos ilustra [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-500 alignright" title="php-logo-e1" src="http://www.novacreations.net/wp-content/uploads/2009/08/php-logo-e1.jpg" alt="php-logo-e1" width="150" height="97" />Al empezar a programar en PHP es necesario aprender conceptos y prácticas que dan mayor calidad, funcionalidad y solides a nuestras aplicaciones. Una vez que conocemos como usar el código es importante instruirse en como darle vida al mismo.</p>
<p>En el articulo <strong>Mas de 30 mejores prácticas en PHP para principiantes</strong> de Glen Stansberry nos ilustra con recomendaciones que debe tomar en cuenta todo principiante.</p>
<p>Algunas de ellas son:</p>
<ul>
<li>Conoce el <a href="http://www.php.net/manual/en/" target="_blank">manual</a>. Sin duda una de las mejores herramientas para programar en PHP ya que es muy completo, concreto y lleno de recomendaciones.</li>
<li>Usa un IDE. Considero importante aprender a programar en un editor de texto. Pero al empezar a trabajar ya en forma vas a necesitar un IDE que te de mayor potencia a tu trabajo. Empezar a probarlos y encontrar uno que se ajuste a tu estilo es fundamental.</li>
<li>Aprende la técnica &#8220;<a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself" target="_blank">No te repitas a ti mismo</a>&#8220;. Evita redundacia, copiar y pegar código y otras malas prácticas.</li>
<li>Usa capas para diferenciar funcionalidad, de datos de presentación</li>
<li>Usa siempre &lt;?php  ?&gt;. Recuerdo que el que existan atajos no significa que sea bueno o debas utilizarlos.</li>
<li>Comenta tu código y lo mas importante aprende a comentar</li>
<li>Nunca confíes en tus usuarios y protege tu código de inyección SQL</li>
<li>Pregunta y aprende a preguntar. Por ejemplo en el <a href="http://php.novacreations.net/">Foro de PHP</a></li>
</ul>
<p><strong>30+ PHP Best Practices for Beginners</strong><br />
<a href="http://net.tutsplus.com/tutorials/php/30-php-best-practices-for-beginners/" target="_blank">http://net.tutsplus.com/tutorials/php/30-php-best-practices-for-beginners/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/498-30-mejores-practicas-en-php-para-principiantes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>8 Expresiones Regulares que Debes Conocer</title>
		<link>http://www.novacreations.net/491-8-expresiones-regulares-que-debes-conocer/</link>
		<comments>http://www.novacreations.net/491-8-expresiones-regulares-que-debes-conocer/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 19:41:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Busquedas]]></category>
		<category><![CDATA[Expresiones regulares]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[patrones]]></category>
		<category><![CDATA[REGEX]]></category>
		<category><![CDATA[Regular expressions]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/?p=491</guid>
		<description><![CDATA[Las expresiones regulares es una herramienta flexible y poderosa para encontrar patrones de caracteres en textos.
El articulo &#8220;8 Expresiones Regulares que debes conocer&#8221; es una excelente referencia para empezar ya que nos muestra  el patrón, descripción y ejemplo de lo que hacen cada una de estas regex. Lo mejor es que viene acompañado de [...]]]></description>
			<content:encoded><![CDATA[<p>Las<a href="http://www.novacreations.net/351-expresiones-regulares/"> expresiones regulares </a>es una herramienta flexible y poderosa para encontrar patrones de caracteres en textos.</p>
<p>El articulo &#8220;8 Expresiones Regulares que debes conocer&#8221; es una excelente referencia para empezar ya que nos muestra  el patrón, descripción y ejemplo de lo que hacen cada una de estas regex. Lo mejor es que viene acompañado de una sencilla guía visual que nos explican como están conformadas estas expresiones.</p>
<ul>
<li>Usuario</li>
<li>Contraseña</li>
<li>Correo</li>
<li>Valor hexadecimal</li>
<li>Slug</li>
<li>URL</li>
<li>IP</li>
<li>Tag HTML</li>
</ul>
<p>8 Regular Expressions You Should Know<br />
<a href="http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/" target="_blank">http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/</a></p>
<p style="text-align: center;"><img class="size-full wp-image-494 aligncenter" title="username1" src="http://www.novacreations.net/wp-content/uploads/2009/08/username1.jpg" alt="username1" width="500" height="308" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/491-8-expresiones-regulares-que-debes-conocer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql: Modificador ROLLUP para consultas agregadas</title>
		<link>http://www.novacreations.net/406-mysql-modificador-rollup-para-consultas-agregadas/</link>
		<comments>http://www.novacreations.net/406-mysql-modificador-rollup-para-consultas-agregadas/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 00:32:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Base de Datos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[bd]]></category>
		<category><![CDATA[groupby]]></category>
		<category><![CDATA[rollup]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/406-mysql-modificador-rollup-para-consultas-agregadas/</guid>
		<description><![CDATA[MySQL cuenta con un modificador para las consultas agregadas (Group by) que nos puede resultar muy útil en la generación de nuestros reportes. El modificador ROLLUP añade algunas filas adicionales a los resultados generados. Estas filas representan operaciones de agregación de mayor nivel, es decir que nos permite agregar los resultados ya agregados.
Por ejemplo, digamos [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.novacreations.net/wp-content/uploads/2008/10/mysql-167x86.png" alt="Mysql" align="right" />MySQL cuenta con un modificador para las consultas agregadas (Group by) que nos puede resultar muy útil en la generación de nuestros reportes. El modificador <strong>ROLLUP </strong>añade algunas filas adicionales a los resultados generados. Estas filas representan operaciones de agregación de mayor nivel, es decir que nos permite agregar los resultados ya agregados.</p>
<p>Por ejemplo, digamos que tenemos una tabla con la siguiente estructura:</p>
<p><img src="http://www.novacreations.net/wp-content/uploads/2009/03/tabla1.png" alt="tabla1.png" /></p>
<p>Si ejecutamos un Query agregado, por ejemplo<br />
<code>select categoria, sum(ventas) from tabla Group by categoria</code></p>
<p>Nos arroja el siguiente resultado que es la suma de todas las ventas por categoría de producto.</p>
<p><img src="http://www.novacreations.net/wp-content/uploads/2009/03/tabla2a.png" alt="tabla2a.png" /></p>
<p>Al añadir el <strong>ROLLUP </strong>MySQL agrega una fila con la sumatoria total de todas las categorías.</p>
<p><code>select categoria, sum(ventas) from tabla Group by categoria with rollup</code></p>
<p><img src="http://www.novacreations.net/wp-content/uploads/2009/03/tabla2.png" alt="tabla2.png" /></p>
<p>Al añadir mas columnas al group by y  cuando existe un cambio de valor, la consulta  regresa una fila adicional con los valores agregados. Por ejemplo en nuestra consulta anterior podemos solicitar que nos regrese el valor de la sumatoria por país.</p>
<p><code>select pais,categoria, sum(ventas) from tabla Group by pais,categoria</code></p>
<p><img src="http://www.novacreations.net/wp-content/uploads/2009/03/tabla3.png" alt="tabla3.png" /><br />
Esta función resulta muy útil al momento de efectuar reportes o al ser incorporada en Procesamiento Analítico de datos.<br />
Revisa la documentación para conocer mas detalles y ejemplos de esta función.</p>
<p><a href="http://dev.mysql.com/doc/refman/5.0/es/group-by-modifiers.html" target="_blank">http://dev.mysql.com/doc/refman/5.0/es/group-by-modifiers.html </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/406-mysql-modificador-rollup-para-consultas-agregadas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql: Manipulando información con insert select y str_to_date</title>
		<link>http://www.novacreations.net/399-mysql-manipulando-informacion-con-insert-select-y-str_to_date/</link>
		<comments>http://www.novacreations.net/399-mysql-manipulando-informacion-con-insert-select-y-str_to_date/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 16:53:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Base de Datos]]></category>
		<category><![CDATA[bd]]></category>
		<category><![CDATA[date_format]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[str_to_date]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/399-mysql-manipulando-informacion-con-insert-select-y-str_to_date/</guid>
		<description><![CDATA[Hace un tiempo comente sobre las funciones en MySQL que nos pueden ser extremadamente útiles pero al desconocerlas nos obligan a reinventar la rueda por lo que es importante siempre darle una leída a todas las posibilidades que nos ofrece una plataforma.Trabajando en un código desarrollado de forma externa me encontré con unas funciones que [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo comente sobre las<a href="http://www.novacreations.net/370-mysql-agrupando-resultados-agregados/"> funciones en MySQL</a> que nos pueden ser extremadamente útiles pero al desconocerlas nos obligan a reinventar la rueda por lo que es importante siempre darle una leída a todas las posibilidades que nos ofrece una plataforma.Trabajando en un código desarrollado de forma externa me encontré con unas funciones que cargaban información a una base de datos que tardaban años. Después de ajustar el código logre bajar la velocidad de carga de 5 minutos a 3 segundos.</p>
<p>Fueron dos los puntos que me ayudaron mucho a completar mi objetivo. Esto lo logre retirando la lógica del lado de mi script colocándolo con funciones muy sencillas en la base de datos.</p>
<p>El algoritmo original era el siguiente:</p>
<ul>
<li>Obtenemos el archivo de texto con toda la información y la subimos a la base de datos en una tabla temporal</li>
<li>Con un Query obtenemos las filas que deseamos, iteramos con un ciclo for por cada una de ellas.
<ul>
<li>Modificamos los datos y creamos un insert o update por cada fila con los datos formateados a la base de datos</li>
</ul>
</li>
<li>Se repite dos o tres veces para obtener diferentes tipos de información.</li>
</ul>
<p>Esto es lento debido a que tenemos que traer y enviar constantemente información de la base de datos a la aplicación. Podemos ahorrarnos este viaje utilizando el <a href="http://dev.mysql.com/doc/refman/5.0/en/insert-select.html" target="_blank">Insert Select de MySQL.</a></p>
<p>Por ejemplo si tenemos dos tablas: Tabla1(campo1,campo2)  y Tabla2(campo3)<br />
Usamos la función para insertar en la tabla2 los resultados que obtenemos de un Query.</p>
<p>Podríamos crear un Query para insertar en tabla2 los datos concatenados de tabla1 con alguna condición:</p>
<p><code>Insert into Tabla2 (campo3) select&nbsp;&nbsp;concat(campo1,campo2) from Tabla1 where campo1 like ‘a%&#039;</code></p>
<p>Nos da mucha flexibilidad ya que podemos crear un query utilizando todas las funciones de manipulación de texto por lo que podemos evitarnos muchas idas y vueltas a la base de datos.</p>
<p>En otro de los múltiples ciclos de esta aplicación el desarrollador obtenía todas las filas de la base de datos, modificaba en php el campo de fecha para respetar el formato de MySQL y volvía a subir los datos. Convertía por ejemplo la fecha 03-Feb-09 a 2009-02-03</p>
<p>¡Tenemos que conocer las funciones que nos ayudan a evitar tanta vuelta!</p>
<p>De un script de cerca de 150 líneas obtenemos un query de una sola línea.</p>
<p><code>update tabla&nbsp;&nbsp;set campo_fecha = str_to_date(campo_fecha,&#039;%d-%b-%Y&#039;);</code></p>
<p>En este Query utilizamos la<a href="http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date" target="_blank"> función str_to_date</a> para convertir un texto a una fecha. Como segundo parámetro le enviamos el formato en el que se encuentra nuestro texto.</p>
<p>También es bueno checar la función <a href="http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format" target="_blank">date_format</a> ya que nos permite darle un formato a una fecha almacenada en MySQL, evitando tener que volver a dar un formato en nuestra interfaz.</p>
<p>Recordemos siempre que en lo que son excelentes las bases de datos no es solamente en almacenar información, también nos ayudan a manipular información de una forma muy eficiente.  Explotemos todas esas posibilidades que nos ofrecen.</p>
<p>Funciones de fecha:</p>
<p><a href="http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format" target="_blank">http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html </a></p>
<p>Funciones de texto o stings</p>
<p><a href="http://dev.mysql.com/doc/refman/5.1/en/string-functions.html" target="_blank">http://dev.mysql.com/doc/refman/5.1/en/string-functions.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/399-mysql-manipulando-informacion-con-insert-select-y-str_to_date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript: Las buenas partes</title>
		<link>http://www.novacreations.net/395-javascript-las-buenas-partes/</link>
		<comments>http://www.novacreations.net/395-javascript-las-buenas-partes/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 17:26:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Douglas Crockford]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/395-javascript-las-buenas-partes/</guid>
		<description><![CDATA[Douglas Crockford es una autoridad en Javascript, el lenguaje de programación menos entendido en el mundo como el lo llama. El lenguaje que por asares del destino se convirtió en el mas usado del mundo debido a que este es el lenguaje de los navegadores de la web y la web es el contenedor principal [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Douglas_Crockford" target="_blank">Douglas Crockford</a> es una autoridad en Javascript, el lenguaje de programación menos entendido en el mundo como el lo llama. El lenguaje que por asares del destino se convirtió en el mas usado del mundo debido a que este es el lenguaje de los navegadores de la web y la web es el contenedor principal para todas las nuevas aplicaciones.<br />
Ofreció en Google una platica muy interesante titulada <a href="http://www.youtube.com/watch?v=hQVTIJBZook" target="_blank">JavaScript: The Good Parts</a> en donde además de platicarnos de algunos los errores de este lenguaje nos comento los puntos realmente buenos que hacen de JavaScript un lenguaje excepcional.</p>
<p>Un punto muy interesante que comenta es el hecho de que los que programan en javascript realmente nunca aprenden el lenguaje, simplemente empiezan a programar debido a que les es familiar sin siquiera molestarse en realmente conocer sobre lo que están trabajando. Esto es lo que nos lleva a mal uso, errores y malas prácticas.</p>
<p align="left">Si trabajas con programas Web, JavaScript y Ajax es realmente recomendable ver esta plática.</p>
<p>JavaScript: The Good Parts<br />
<a href="http://www.youtube.com/watch?v=hQVTIJBZook" target="_blank">http://www.youtube.com/watch?v=hQVTIJBZook </a><br />
Adicionalmente les invito a leer dos de sus escritos:</p>
<ul>
<li><a href="http://javascript.crockford.com/javascript.html" target="_blank">JavaScript, el lenguaje de programación mas mal entendido del mundo</a></li>
<li><a href="http://javascript.crockford.com/popular.html" target="_blank">El lenguaje de programación mas mal entendido del mundo se ha convertido en el lenguaje de programación mas popular. </a></li>
</ul>
<p>Y darle un vistazo a su página Web.</p>
<p><a href="http://www.crockford.com/" target="_blank">http://www.crockford.com/ </a></p>
<p>Es autor del libro <a href="http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=rsl_mainw_dpl?ie=UTF8&amp;m=ATVPDKIKX0DER" target="_blank">JavaScript: The Good Parts </a>al cual también tendremos que darle un vistazo.</p>
<p style="text-align: center"><img src="http://www.novacreations.net/wp-content/uploads/2009/03/javascript_the_good_parts.jpg" alt="javascript_the_good_parts.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/395-javascript-las-buenas-partes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Los 25 errores de programación mas peligrosos</title>
		<link>http://www.novacreations.net/394-394/</link>
		<comments>http://www.novacreations.net/394-394/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 18:22:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[vulnerabilidades]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/394-394/</guid>
		<description><![CDATA[
CWE/SANS nos ofrece la lista de los 25 errores de programación mas  peligrosos que pueden provocar serias vulnerabilidades en nuestro software. Ocurren frecuentemente, se encuentran fácilmente y se pueden explotar sin problemas.Estas vulnerabilidades pueden provocar acceso a nuestros sistemas, robo de información o baja en el servicio.
El objetivo es educar a los programadores a [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.novacreations.net/wp-content/uploads/2009/02/cwebanner.jpg" alt="cwebanner.jpg" align="right" border="0" vspace="5" hspace="5" /></p>
<p>CWE/SANS nos ofrece la lista de los 25 errores de programación mas  peligrosos que pueden provocar serias vulnerabilidades en nuestro software. Ocurren frecuentemente, se encuentran fácilmente y se pueden explotar sin problemas.Estas vulnerabilidades pueden provocar acceso a nuestros sistemas, robo de información o baja en el servicio.<br />
El objetivo es educar a los programadores a eliminar estos errores comunes para ofrecer software con mayor calidad y seguridad. Les recomiendo leerlo a detalle y tenerlo como referencia.</p>
<p><a href="http://cwe.mitre.org/top25/" target="_blank">http://cwe.mitre.org/top25/</a></p>
<p><a href="http://cwe.mitre.org/top25/" target="_blank"></a><br />
Cada uno de los puntos cuenta con información muy detallada incluyendo descripción detallada, parámetros, ejemplos, mitigadores y mucha otra información. Esto nos permite no solamente conocer a detalle la vulnerabilidad sino que nos permite justificar su importancia e impacto.</p>
<p><strong>Interacción insegura entre componentes.</strong></p>
<blockquote><p>1.	Validación incorrecta de datos.<br />
2.	Manejo incorrecto de la salida de datos.<br />
3.	Falla de mantener la estructura de un Query SQL (Sql Injection).<br />
4.	Falla al preservar la estructura de la página web (XSS)<br />
5.	Falla en mantener la estructura de los comandos del Sistema Operativo<br />
6.	Transmisión de información en texto entre componentes en la red.<br />
7.	Manipulación de la identidad del usuario, Cross-Site Request Forgery (CSRF)<br />
8.	Manipulación de un proceso para afectar los demás procesos corriendo.<br />
9.	Filtrar información en mensajes de error.</p></blockquote>
<p><strong>Administración de recursos riesgosa.</strong></p>
<blockquote><p>10.	Errores de sobrecarga del buffer de la memoria.<br />
11.	Manipulación de información sobre el estado de una sesión<br />
12.	Control externo en el nombre de archivos o dirección.<br />
13.	Manipulación del Path<br />
14.	Fallas de control al momento de generar código<br />
15.	Descarga de código sin comprobación de integridad<br />
16.	Manejo incorrecto de liberación de recursos<br />
17.	Inicialización incorrecta de datos<br />
18.	Cálculos incorrectos</p></blockquote>
<p><strong>Fallas en las defensas existentes</strong></p>
<blockquote><p>19.	Falla en la Autorización<br />
20.	Usar un algoritmo de encriptación con fallas o débil.<br />
21.	Contraseñas "Hard-Codeadas"<br />
22.	Asignación insegura de permisos para el acceso de recursos críticos<br />
23.	Uso de valores aleatorios insuficientes<br />
24.	Ejecución con privilegios insuficientes<br />
25.	Comprobar la seguridad solamente en el cliente.</p></blockquote>
<p>Al finalizar denle una checada a la página del CWE (Common Weakness Enumeration) ya que contiene muchos recursos útiles sobre vulnerabilidades.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/394-394/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enviando formas mediante ligas</title>
		<link>http://www.novacreations.net/379-enviando-formas-mediante-ligas/</link>
		<comments>http://www.novacreations.net/379-enviando-formas-mediante-ligas/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 22:43:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[post]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/379-enviando-formas-mediante-ligas/</guid>
		<description><![CDATA[Recientemente en el foro preguntaron sobre como enviar información almacenada en una forma utilizando una liga lo cual puede ser bastante útil cuando queremos crear mayor interacción o personalización de nuestras formas o darle funcionalidades más interesantes a nuestra página.
Esto es muy sencillo utilizando un poco de javascript.
Tenemos que crear la forma en donde contendremos [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente en el <a href="http://php.novacreations.net/viewtopic.php?p=2691">foro </a>preguntaron sobre como enviar información almacenada en una forma utilizando una liga lo cual puede ser bastante útil cuando queremos crear mayor interacción o personalización de nuestras formas o darle funcionalidades más interesantes a nuestra página.</p>
<p>Esto es muy sencillo utilizando un poco de javascript.</p>
<p>Tenemos que crear la forma en donde contendremos los campos que utilizaremos. El código que va a enviar la forma en la liga lo colocaremos en la acción <a href="http://www.w3schools.com/jsref/jsref_onClick.asp" target="_blank">onclick </a>de la misma.</p>
<p>Es importante colocar el código return false; ya que si no lo tiene después de intentar enviar la forma el navegador se dirigirá a la liga lo que puede generar resultados no esperados.</p>
<p>Nuestra página forma.html quedaría de la siguiente forma:</p>
<p><font color="#008080">&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;form method="POST" action="prueba.php?valor3=a" name="forma01"&gt;<br />
&lt;a href="#"  onclick="document.forma01.submit();return false;"&gt;Liga 1 &lt;/a&gt;<br />
&lt;input type="hidden" name='valor1' value="1" /&gt;<br />
&lt;input type="text" name='valor2' value="Gato"  /&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</font></p>
<p style="text-align: center"><img src="http://www.novacreations.net/wp-content/uploads/2009/02/imagen1.png" alt="imagen1.png" border="1" vspace="5" hspace="5" /></p>
<p>En nuestra página prueba.php la cual estamos diseccionando en nuestra forma podemos recibir los valores que enviamos por la URL y por la forma:</p>
<p>prueba.php<br />
<font color="#008080">&lt;?php<br />
if($_POST){ //Si le dimos clic a la liga<br />
print_r($_POST); //variables enviadas en la forma<br />
}<br />
print_r($_GET); //valiables enviadas en la liga </font></p>
<p><font color="#008080">?&gt;</font></p>
<p>Al dar clic en nuestra liga la página prueba.php nos mostrará toda la información que enviamos:</p>
<p style="text-align: center"><img src="http://www.novacreations.net/wp-content/uploads/2009/02/imagen2.png" alt="imagen2.png" /></p>
<p>Si quisiéramos enviar todos los datos por la URL simplemente tendríamos que cambiar el método en la forma:</p>
<p align="left"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="ProgId" content="Word.Document" /><meta name="Generator" content="Microsoft Word 11" /><meta name="Originator" content="Microsoft Word 11" /></p>
<link href="file:///C:%5CDOCUME%7E1%5CSOPORTE%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" /><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>  </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">  </w:LatentStyles> </xml><![endif]--><br />
<style> <!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 90.0pt 72.0pt 90.0pt; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --> </style>
<p><!--[if gte mso 10]></p>
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} </style>
<p> <![endif]--></p>
<p class="MsoNormal"><font color="#008080">&lt;form method="GET"</font></p>
<p>Por lo que al enviar nuestra forma en la URL veremos únicamente la información de la forma en la liga:</p>
<p style="text-align: center"><img src="http://www.novacreations.net/wp-content/uploads/2009/02/imagen3.png" alt="imagen3.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/379-enviando-formas-mediante-ligas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mysql: Analizando y Optimizando las  propiedades de las columnas</title>
		<link>http://www.novacreations.net/375-mysql-analizando-y-optimizando-las-propiedades-de-las-columnas/</link>
		<comments>http://www.novacreations.net/375-mysql-analizando-y-optimizando-las-propiedades-de-las-columnas/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 16:00:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ANALYSE]]></category>
		<category><![CDATA[optimización]]></category>
		<category><![CDATA[procedure]]></category>
		<category><![CDATA[query]]></category>

		<guid isPermaLink="false">http://www.novacreations.net/375-mysql-analizando-y-optimizando-las-propiedades-de-las-columnas/</guid>
		<description><![CDATA[El éxito de una base de datos óptima en cuanto a espacio y procesamiento implica una correcta configuración y selección del tipo de dato que utilizan nuestras columnas. Por ejemplo si estamos almacenando la edad y utilizamos una columna de tipo int estamos desperdiciando 3 bytes que en un dato puede no parecer mucho, pero al momento de manejar millones de registros con miles de operaciones puede afectar de forma determinante el rendimiento de nuestra base de datos.]]></description>
			<content:encoded><![CDATA[<p>El éxito de una base de datos óptima en cuanto a espacio y procesamiento implica una correcta configuración y selección del tipo de dato que utilizan nuestras columnas. Por ejemplo si estamos almacenando la edad y utilizamos una columna de tipo int estamos desperdiciando 3 bytes que en un dato puede no parecer mucho, pero al momento de manejar millones de registros con miles de operaciones puede afectar de forma determinante el rendimiento de nuestra base de datos.</p>
<p>Es necesario conocer la forma en que MySQL almacena los datos para poder efectuar elecciones correctas acompañado de un estudio sobre el tipo de datos y entradas que nuestros usuarios estarán efectuando. Una vez sobre la marcha tenemos una herramienta integrada en MySQL muy útil que efectúa un análisis sobre nuestras columnas y nos ofrece una recomendación sobre el tipo de dato óptimo.</p>
<p>Esta es procedimiento que se llama <a href="http://dev.mysql.com/doc/refman/5.0/en/procedure-analyse.html" target="_blank">ANALYSE</a>() y lo podemos ejecutar de la siguiente forma:</p>
<p><code>select * from tabla PROCEDURE ANALYSE()</code></p>
<p style="text-align: center"><a href="http://www.novacreations.net/wp-content/uploads/2009/01/analyse.png" target="_blank"><img src="http://www.novacreations.net/wp-content/uploads/2009/01/analyse2.png" alt="analyse2.png" /></a></p>
<p>Nos arroja datos interesantes de nuestros datos como los valores y tamaños mínimos y máximos y al final vemos el tipo de dato recomendado. Es importante recordar que es solamente una recomendación y que antes de cambiar los tipos de datos de nuestras columnas tenemos que considerar otras variables como el crecimiento esperado de los datos y posibles nuevos requerimientos. Esta es solo una herramienta que nos permite encontrar errores y puntos de optimización en nuestros esquemas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novacreations.net/375-mysql-analizando-y-optimizando-las-propiedades-de-las-columnas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

