<?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>Blog InterGraphicDESIGNS &#187; php</title>
	<atom:link href="http://www.intergraphicdesigns.com/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.intergraphicdesigns.com/blog</link>
	<description>Blog InterGraphicDESIGNS</description>
	<lastBuildDate>Mon, 30 Jan 2012 02:16:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Buenas prácticas para mantener odenado nuestro código PHP</title>
		<link>http://www.intergraphicdesigns.com/blog/2011/06/10/buenas-practicas-para-mantener-odenado-nuestro-codigo-php/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2011/06/10/buenas-practicas-para-mantener-odenado-nuestro-codigo-php/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 14:24:50 +0000</pubDate>
		<dc:creator>ssanchez</dc:creator>
				<category><![CDATA[PHP y MySQL]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[Doxygen]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[drupalcamp]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/?p=913</guid>
		<description><![CDATA[(*) Basado en la charla &#8220;Buenas Prácticas de Programación en Drupal&#8221;, por Fernando P. García. Drupal es un Administrador de Contenido de Software Libre. En su desarrollo y mantenimiento participan diseñadores, programadores y colaboradores en general, de todas partes del mundo. Para poder lograr que todos los aportes se den en forma ordenada y minimizar [...]]]></description>
			<content:encoded><![CDATA[<p>(*) Basado en la charla &#8220;Buenas Prácticas de Programación en Drupal&#8221;, por Fernando P. García.</p>
<p>Drupal es un Administrador de Contenido de Software Libre. En su desarrollo y mantenimiento participan diseñadores, programadores y colaboradores en general, de todas partes del mundo. Para poder lograr que todos los aportes se den en forma ordenada y minimizar los problemas cuando alguien debe tomar el proyecto de otro para corregirlo o mejorarlo, se ha definido ciertas buenas prácticas, que toda la comunidad de Drupal sigue con el fin de facilitar las cosas. Estas incluyen obviamente la forma en que se programa en PHP (el lenguaje sobre el cual está construido Drupal), pero también cómo se debe utilizar otras herramientas como jQuery, Bases de Datos, estilos (CSS), control de versiones, documentación, etc.</p>
<p>En este caso vamos a enfocarnos en algunas buenas prácticas que utiliza la comunidad de Drupal para programar en PHP, y que pueden resultar útiles para equipos de programación en general, que tengan que estar desarrollando, compartiendo, depurando y probando código entre ellos.</p>
<h2>Comentarios</h2>
<p>Una buena práctica es seguir el estándar de Doxygen para los comentarios.</p>
<p>Doxygen -acrónimo de dox(document) gen(generator)- es un generador de documentación para código fuente. En PHP, como en otros lenguajes de programación, los comentarios se ingresan dentro de las combinaciones de caracteres /* (para abrir el comentario) y */ (para cerrarlo) cuando el comentario abarca más de una línea, o bien con // para indicar que en el salto de línea termina el comentario.</p>
<p>No hay ninguna definición dentro de la sintaxis original de PHP que indique lo que el programador puede agregar dentro de un comentario, sin embargo al adherirse a los parámetros que define Doxygen, es posible utilizar luego toda la información que se ha añadido en estos comentarios como base para generar la documentación del programa que se está desarrollando.</p>
<p>Aún si no se va a utilizar Doxygen para generar una base de documentación, seguir las pautas que sugiere permite que los programadores mantengan consistencia en la manera que agregan comentarios a sus programas.</p>
<p>A continuación dos ejemplos de comentarios del código de Drupal, que muestran el uso de Doxigen:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// $Id: index.php,v 1.94 2007/12/26 08:46:48 dries Exp $</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * @file
 * The PHP page that serves all page requests on a Drupal installation.
 *
 * The routines here dispatch control to the appropriate handler, which then
 * prints the appropriate page.
 *
 * All Drupal code is released under the GNU General Public License.
 * See COPYRIGHT.txt and LICENSE.txt.
 */</span></pre></div></div>

<p>Para más detalles sobre Doxygen y se puede visitar el sitio web del autor, Dimitri van Heesch: <a href="http://www.stack.nl/~dimitri/doxygen/">http://www.stack.nl/~dimitri/doxygen/</a></p>
<h2>Indentación</h2>
<p>Casi todos los programadores entienden la importancia de indentar el código, y lo aplican relativamente bien. Sin embargo en Drupal se ha generalizado el uso de dos espacios como norma para las indentaciones. No se utiliza el Tabulador, pues la longitud de las tabulaciones puede diferir de editor en editor, y esto puede provocar que el código se vea desordenado.</p>
<p>Este es un ejemplo de código indentado a dos espacios:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> drupal_init_path<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'q'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'q'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> drupal_get_normal_path<span style="color: #009900;">&#40;</span><span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'q'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'q'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> drupal_get_normal_path<span style="color: #009900;">&#40;</span>variable_get<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'site_frontpage'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'node'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Separación</h2>
<p>Se siguen ciertas pautas para separar los diferentes elementos en una línea de código; por ejemplo, dejando espacios antes y después de los operadores (&#8221; = &#8220;, &#8221; != &#8220;, &#8221; &amp;&amp; &#8220;, &#8221; =&gt; &#8220;, &#8221; : &#8220;, etc), o luego de la coma (&#8220;, &#8220;) cuando se listan parámetros; e igualmente, luego de usar estructuras de control como if, else, foreach, switch, etc., y antes de abrir una llave de agrupación (&#8221; {&#8220;). A veces se acostumbra hacer una separación por medio de líneas vacías entre la declaración de la función y sus variables, el cuerpo, y el retorno.</p>
<p>Este es un ejemplo donde se puede ver el uso de espacios para mantener el orden:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> image_get_toolkit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  static <span style="color: #000088;">$toolkit</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$toolkit</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$toolkit</span> <span style="color: #339933;">=</span> variable_get<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'image_toolkit'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'gd'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$toolkit_file</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'./includes/image.'</span><span style="color: #339933;">.</span> <span style="color: #000088;">$toolkit</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">'.inc'</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$toolkit</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$toolkit_file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #b1b100;">include_once</span> <span style="color: #000088;">$toolkit_file</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>image_gd_check_settings<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$toolkit</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$toolkit</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Agrupación</h2>
<p>El uso de llaves es obligatorio para agrupar secciones de código que se ejecutan dentro de una estructura de control. La llave se abre en la misma línea donde se declara la condición, y se cierra luego de la última línea de código de ese bloque lógico. Aunque no es necesario utilizarlas en casos que incluyen únicamente una línea, se recomienda mantener la norma pues esta práctica produce código mucho más ordenado y fácil de leer.</p>
<p>Por ejemplo, la siguiente función</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> db_field_names<span style="color: #009900;">&#40;</span><span style="color: #000088;">$fields</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$ret</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fields</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$field</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$field</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$ret</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$field</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$ret</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$field</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$ret</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>podría escribirse como</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> db_field_names<span style="color: #009900;">&#40;</span><span style="color: #000088;">$fields</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$ret</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$fields</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$field</span><span style="color: #009900;">&#41;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$field</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$ret</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$field</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">else</span> <span style="color: #000088;">$ret</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$field</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$ret</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>sin embargo, aunque la sintaxis es correcta, y se ejecuta exactamente igual que en la forma de arriba, se complica su interpretación. Si se piensa en intentar depurar archivos de cientos de líneas escritas sin agrupar unidades lógicas, el trabajo se vuelve mucho más complicado.</p>
<p>En resumen, la aplicación de estas sencillas reglas puede ayudar a que los equipos de programación tengan una mejor comunicación entre ellos, disminuye el tiempo de adaptación cuando se debe tomar el código de otros, agiliza los procesos de depuración, estandariza nuestros esquemas mentales y le añade profesionalismo al trabajo final.</p>
<p>Para más información sobre este tema, se recomienda consultar la documentación oficial de Drupal (<a href="http://drupal.org/coding-standards">http://drupal.org/coding-standards</a>), la guía de buenas prácticas de PHP (<a href="http://www.odi.ch/prog/design/php/guide.php">http://www.odi.ch/prog/design/php/guide.php</a>) y el siguiente artículo en Nettuts+: <a href="http://net.tutsplus.com/tutorials/php/30-php-best-practices-for-beginners/">http://net.tutsplus.com/tutorials/php/30-php-best-practices-for-beginners/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2011/06/10/buenas-practicas-para-mantener-odenado-nuestro-codigo-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un vistazo a las fortalezas y crecimiento de Drupal</title>
		<link>http://www.intergraphicdesigns.com/blog/2011/06/07/fortalezas-e-introduccion-a-drupal/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2011/06/07/fortalezas-e-introduccion-a-drupal/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 05:23:51 +0000</pubDate>
		<dc:creator>igdonline</dc:creator>
				<category><![CDATA[Eventos Costa Rica]]></category>
		<category><![CDATA[InterGraphicDESIGNS - Últimas Noticias]]></category>
		<category><![CDATA[PHP y MySQL]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[drupalcamp]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/?p=899</guid>
		<description><![CDATA[El pasado 2 de junio se realizó el Drupal Camp Centroamericano en nuestro país, evento comunitario que se centra en la capacitación y discusión acerca del sistema de gestión de contenidos Drupal. Dado que en los últimos años este CMS ha alcanzado gran popularidad, dedicamos este espacio para dar una breve introducción al mismo, esto [...]]]></description>
			<content:encoded><![CDATA[<p>El pasado 2 de junio se realizó el <a href="http://drupal-centroamerica.org" target="_blank"><strong>Drupal Camp Centroamericano</strong></a> en nuestro país, evento comunitario que se centra en la capacitación y discusión acerca del sistema de gestión de contenidos <a href="http://www.drupal.org" target="_blank"><strong>Drupal</strong></a>.</p>
<p>Dado que en los últimos años este CMS ha alcanzado gran popularidad, dedicamos este espacio para dar una breve introducción al mismo, esto con el fin de dar una rápida orientación a nuestros clientes y amigos que están empezando a escuchar buenos comentarios sobre Drupal.</p>
<p><strong>Drupal</strong> es un sistema de gestión de contenidos modular, gratuito y de código abierto (open source), que permite construir todo tipo de páginas web adaptándose a las necesidades particulares de cada caso.</p>
<p>Entre sus fortalezas podemos citar:</p>
<ul>
<li> Control sobre la creación, edición, borrado y publicación de contenidos.</li>
<li> Categorización y organización del contenidos (taxonomías)</li>
<li> Seguridad, gestión de usuarios, roles, privacidad, y control del acceso.</li>
<li> Presentación de contenido en diversos formatos.</li>
<li> Sistema ampliable y extensible. (<a href="http://drupal.org/project/Modules" target="_blank">Módulos</a>)</li>
<li> Sistema de plantillas (<a href="http://drupal.org/project/Themes" target="_blank">Temas</a>) separado de la lógica.</li>
<li> Herramientas de cacheo a varios niveles</li>
<li> Posee un <a href="http://api.drupal.org" target="_blank">API</a> para desarrolladores</li>
</ul>
<p>Se dice que Drupal es Software Libre porque esta publicado bajo la licencia GNU/GPL 2, lo cual permite su libre descarga, modificación y reutilización. Además todos los módulos y temas que se incluyen en la descarga inicial como en las descargas desde el repositorio oficial tienen licencia GPL.</p>
<p>En el siguiente gráfico podemos observar el crecimiento que ha experimentado Drupal contra otros administradores de contenido en los últimos años. El gráfico ilustra el crecimiento de plazas disponibles para programadores con conocimientos en este CMS según el sitio web indeed.com</p>
<div style="width: 540px;"><a title="Drupal, Joomla, WordPress Job Trends" href="http://www.indeed.com/jobtrends?q=Drupal%2C+Joomla%2C+Wordpress&amp;relative=1&amp;relative=1"><br />
<img src="http://www.indeed.com/trendgraph/jobgraph.png?q=Drupal%2C+Joomla%2C+Wordpress&amp;relative=1" border="0" alt="Drupal, Joomla, WordPress Job Trends graph" width="540" height="300" /><br />
</a></div>
<p>Queremos complementar este rápido vistazo inicial con el siguiente video introductorio:</p>
<p><object width="540" height="337"><param name="movie" value="http://www.youtube.com/v/rF1X12PE6PY?version=3&amp;hl=es_ES&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/rF1X12PE6PY?version=3&amp;hl=es_ES&amp;rel=0" type="application/x-shockwave-flash" width="540" height="337" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Para InterGraphicDESIGNS fue un gusto participar en el Drupal Camp Centroamérica y en definitiva recomendamos a todos los desarrolladores interesados en el tema el participar de las próximas ediciones de este importante evento.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2011/06/07/fortalezas-e-introduccion-a-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP ingresa al Top 3 de lenguajes más populares</title>
		<link>http://www.intergraphicdesigns.com/blog/2009/09/24/php-ingresa-al-top-3-de-lenguajes-mas-populares/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2009/09/24/php-ingresa-al-top-3-de-lenguajes-mas-populares/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 00:53:17 +0000</pubDate>
		<dc:creator>igdonline</dc:creator>
				<category><![CDATA[PHP y MySQL]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/?p=312</guid>
		<description><![CDATA[PHP ingresó por primera vez al Top 3 de lenguajes de programación más populares según el ranking TIOBE.]]></description>
			<content:encoded><![CDATA[<div id="attachment_314" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.intergraphicdesigns.com/blog/wp-content/uploads/2009/09/elephpants.jpg"><img class="size-full wp-image-314" title="PHP ingresa al Top3 de lenguajes más populares" src="http://www.intergraphicdesigns.com/blog/wp-content/uploads/2009/09/elephpants.jpg" alt="http://www.flickr.com/photos/dragonbe/3411273755/in/pool-elephpants" width="500" height="375" /></a><p class="wp-caption-text">http://www.flickr.com/photos/dragonbe/3411273755/in/pool-elephpants</p></div>
<p>PHP ingresó por primera vez al Top 3 de lenguajes de programación más populares según el <a title="TIOBE ranking" href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" target="_blank">ranking TIOBE</a>. Este ranking mensual estudia cuáles lenguajes de programación cuentan con más desarrolladores capacitados, índice de popularidad, cursos impartidos y revendedores.</p>
<p>Según en ranking de setiembre 2009, los 5 lenguajes de programación más utilizados son: Java, C, PHP, C++ y (Visual) Basic. En el mundo del desarrollo web, otras posiciones interesantes son Perl (6ta posición), JavaScript (9na posición) y Ruby (10ma posición).</p>
<p>En el caso de PHP es la primera vez que ingresa al listado de los 3 lenguajes más utilizados y se posicionó detrás de Java y C. Para obtener estos datos el índice tomó en cuenta herramientas como Google, Wikipedia, Yahoo!, YouTube y MSN.</p>
<p>Es importante aclarar que el índice no es cualitativo, es decir, no pretende dictar cuáles son los mejores 3 lenguajes de programación, pero ciertamente es un indicador del uso, la difusión y el crecimiento de la comunidad de desarrolladores en los diferentes lenguajes.</p>
<p>Para la comunidad de PHP es una excelente noticia al saber que cada vez se cuentan con más expertos en el tema, lo cual desde luego genera mejores productos, más código libre, mejor documentación, más cursos impartidos y en general una plataforma de desarrollo y conocimiento más sólida para todos.</p>
<p>Para entender más sobre el ranking TIOBE puede visitar <a title="Ranking TIOBE" href="http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm" target="_blank">la definción del ranking TIOBE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2009/09/24/php-ingresa-al-top-3-de-lenguajes-mas-populares/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Opciones para crear gráficas web</title>
		<link>http://www.intergraphicdesigns.com/blog/2009/08/21/opciones-para-crear-graficas-web/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2009/08/21/opciones-para-crear-graficas-web/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 16:19:50 +0000</pubDate>
		<dc:creator>igdonline</dc:creator>
				<category><![CDATA[HTML, XHTML, CSS, Javascript y AJAX]]></category>
		<category><![CDATA[InterGraphicDESIGNS - Últimas Noticias]]></category>
		<category><![CDATA[PHP y MySQL]]></category>
		<category><![CDATA[charting]]></category>
		<category><![CDATA[charts]]></category>
		<category><![CDATA[Google Chart]]></category>
		<category><![CDATA[Open Flash Chart]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web charting]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/?p=267</guid>
		<description><![CDATA[Anteriormente vimos Open Flash Chart trabajando y lo sencillo que es de utilizar. Además de OFC tenemos otras opciones también importantes: Google nos brinda el &#8220;API de Google Chart que permite generar gráficos de forma dinámica&#8221;. Se utiliza llamando a la url de la API de la siguiente forma: http://chart.apis.google.com/chart?cht=p3&#38;chd=t:60,40&#38;chs=250&#215;100&#38;chl=Hello&#124;World Este link devolverá una imagen [...]]]></description>
			<content:encoded><![CDATA[<p>Anteriormente vimos Open Flash Chart trabajando y lo sencillo que es de utilizar. Además de OFC tenemos otras opciones también importantes:</p>
<p>Google nos brinda el &#8220;API de Google Chart que permite generar gráficos de forma dinámica&#8221;.</p>
<p>Se utiliza llamando a la url de la API de la siguiente forma:</p>
<p><a href="http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=250x100&amp;chl=Hello|World">http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=250&#215;100&amp;chl=Hello|World</a></p>
<p>Este link devolverá una imagen con el gráfico.</p>
<p>Donde:</p>
<ul>
<li><code>http://chart.apis.google.com/chart?</code> es la ubicación del API de Chart.</li>
<li><code>&amp;</code> separa los parámetros.</li>
<li><code>chs=250x100</code> es el tamaño del gráfico en píxeles.</li>
<li><code>chd=t:60,40</code> son los datos del gráfico.</li>
<li><code>cht=p3</code> es el tipo de gráfico.</li>
<li><code>chl=Hello|World</code> es la etiqueta del gráfico.</li>
</ul>
<p>Te dejamos <a href="http://code.google.com/intl/es/apis/chart/">la guia del desarrollador de la API</a> de Google Chart. Además si deseas una visualización mas personalizada (no solo para gráficos, puedes encontrar para tablas de resultados también) con varios ejemplos te recomendamos  <a href="http://code.google.com/intl/es/apis/visualization/documentation/gadgetgallery.html">Google Visualization API</a></p>
<p style="text-align: center;"><img class="size-full wp-image-273 aligncenter" title="graf" src="http://www.intergraphicdesigns.com/blog/wp-content/uploads/2009/08/graf.jpg" alt="graf" width="485" height="264" /></p>
<p>Si lo que buscas es algo en PHP, la librería de <a href="http://pchart.sourceforge.net/demo.php">pChart</a> te puede dar la solución para la personalización  de gráficas.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-277" title="graf4" src="http://www.intergraphicdesigns.com/blog/wp-content/uploads/2009/08/graf4.jpg" alt="graf4" width="476" height="296" /></p>
<p><span id="more-267"></span><br />
Este sería el código (bastante amigable):</p>
<p>&lt;?php<br />
// Standard inclusions<br />
include(&#8220;pChart/pData.class&#8221;);<br />
include(&#8220;pChart/pChart.class&#8221;);</p>
<p>// Dataset definition<br />
$DataSet = new pData;<br />
$DataSet-&gt;ImportFromCSV(&#8220;Sample/bulkdata.csv&#8221;,&#8221;,&#8221;,array(1,2,3),FALSE,0);<br />
$DataSet-&gt;AddAllSeries();<br />
$DataSet-&gt;SetAbsciseLabelSerie();<br />
$DataSet-&gt;SetSerieName(&#8220;January&#8221;,&#8221;Serie1&#8243;);<br />
$DataSet-&gt;SetSerieName(&#8220;February&#8221;,&#8221;Serie2&#8243;);<br />
$DataSet-&gt;SetSerieName(&#8220;March&#8221;,&#8221;Serie3&#8243;);<br />
$DataSet-&gt;SetYAxisName(&#8220;Average age&#8221;);<br />
$DataSet-&gt;SetYAxisUnit(&#8220;µs&#8221;);</p>
<p>// Initialise the graph<br />
$Test = new pChart(700,230);<br />
$Test-&gt;setFontProperties(&#8220;Fonts/tahoma.ttf&#8221;,8);<br />
$Test-&gt;setGraphArea(70,30,680,200);<br />
$Test-&gt;drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);<br />
$Test-&gt;drawRoundedRectangle(5,5,695,225,5,230,230,230);<br />
$Test-&gt;drawGraphArea(255,255,255,TRUE);<br />
$Test-&gt;drawScale($DataSet-&gt;GetData(),$DataSet-&gt;GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2);<br />
$Test-&gt;drawGrid(4,TRUE,230,230,230,50);</p>
<p>// Draw the 0 line<br />
$Test-&gt;setFontProperties(&#8220;Fonts/tahoma.ttf&#8221;,6);<br />
$Test-&gt;drawTreshold(0,143,55,72,TRUE,TRUE);</p>
<p>// Draw the line graph<br />
$Test-&gt;drawLineGraph($DataSet-&gt;GetData(),$DataSet-&gt;GetDataDescription());<br />
$Test-&gt;drawPlotGraph($DataSet-&gt;GetData(),$DataSet-&gt;GetDataDescription(),3,2,255,255,255);</p>
<p>// Finish the graph<br />
$Test-&gt;setFontProperties(&#8220;Fonts/tahoma.ttf&#8221;,8);<br />
$Test-&gt;drawLegend(75,35,$DataSet-&gt;GetDataDescription(),255,255,255);<br />
$Test-&gt;setFontProperties(&#8220;Fonts/tahoma.ttf&#8221;,10);<br />
$Test-&gt;drawTitle(60,22,&#8221;example 1&#8243;,50,50,50,585);<br />
$Test-&gt;Render(&#8220;example1.png&#8221;);<br />
?&gt;</p>
<p>Este es el resultado:</p>
<p style="text-align: center;"><img class="size-full wp-image-276 aligncenter" title="graf3" src="http://www.intergraphicdesigns.com/blog/wp-content/uploads/2009/08/graf3.jpg" alt="graf3" width="546" height="176" /></p>
<p style="text-align: left;">Que opción es la mejor, es una cuestión de gusto y personalización. Pero con estas opciones es muy fácíl que hayas encontrado alguna que te pueda dar esa gráfica que buscas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2009/08/21/opciones-para-crear-graficas-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guía para comprimir archivos CSS con PHP?</title>
		<link>http://www.intergraphicdesigns.com/blog/2009/01/15/guia-para-comprimir-archivos-css-con-php/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2009/01/15/guia-para-comprimir-archivos-css-con-php/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 19:39:00 +0000</pubDate>
		<dc:creator>igdonline</dc:creator>
				<category><![CDATA[PHP y MySQL]]></category>
		<category><![CDATA[paul stamatiou]]></category>
		<category><![CDATA[perishable press]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[reinhold weber]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/general/guia-para-comprimir-archivos-css-con-php/</guid>
		<description><![CDATA[Traducción del artículo en inglés tomado de: http://www.catswhocode.com/blog/3-ways-to-compress-css-files-using-php Cuando usted se encuentra desarrollando un diseño sofisticado, los archivos CSS rápidamente pueden volverse grandes y requerir de tiempo para cargar. En este artículo se han recopilado 3 formas interesantes para comprimir archivos CSS utilizando PHP. El método de Paul Stamatiou Para que usted pueda aplicar este [...]]]></description>
			<content:encoded><![CDATA[<p>Traducción del artículo en inglés tomado de: <a href="http://www.catswhocode.com/blog/3-ways-to-compress-css-files-using-php">http://www.catswhocode.com/blog/3-ways-to-compress-css-files-using-php</a></p>
<p>Cuando usted se encuentra desarrollando un diseño sofisticado, los archivos CSS rápidamente pueden volverse grandes y requerir de tiempo para cargar. En este artículo se han recopilado 3 formas interesantes para comprimir archivos CSS utilizando PHP.</p>
<p><span style="font-weight: bold;">El método de Paul Stamatiou</span></p>
<p>Para que usted pueda aplicar este método, primero debe renombrar todos sus archivos .css a .css.php</p>
<p>Además, asegúrese de importar los archivos en su html utilizando su nuevo nombre:<br />
<code><br />
<span style="font-family: courier new;"> </span><br />
</code></p>
<p>Cuando usted haya renombrado sus archivos css, edítelos y agregue la siguiente porción de código al inicio del archivo:</p>
<p>Seguidamente, agregue la siguiente línea al final del archivo y guárdelo:</p>
<p><code></p>
<p></code></p>
<p>Eso es todo. Este método es útil y eficiente.</p>
<p><span style="font-weight: bold;">El método Perishable Press</span></p>
<p>Básicamente, este método funciona igual que el de Paul Stamatiou, al renombrar sus archivos .css en .css.php (o solamente .php) y agregando esta pequeña porción de código al inicio de su archivo CSS:</p>
<p><code><br />
</code></p>
<p><span style="font-family: courier new;"> ob_start (&#8220;ob_gzhandler&#8221;);</span></p>
<p><span style="font-family: courier new;"> header (&#8220;content-type: text/css; charset: UTF-8&#8243;);</span></p>
<p><span style="font-family: courier new;"> header (&#8220;cache-control: must-revalidate&#8221;);</span></p>
<p><span style="font-family: courier new;"> $offset = 60 * 60;</span></p>
<p><span style="font-family: courier new;"> $expire = &#8220;expires: &#8221; . gmdate (&#8220;D, d M Y H:i:s&#8221;, time() + $offset) . &#8221; GMT&#8221;;</span></p>
<p><span style="font-family: courier new;"> header ($expire);</span></p>
<p><span style="font-family: courier new;">?&gt;</span></p>
<p>Este método se recomienda más que el descrito por Paul Stamatiou debido a que usted no tendrá que editar tanto el inicio como el final del archivo CSS.</p>
<p><span style="font-weight: bold;">El método Reinhold Weber</span></p>
<p>Este método fue creado por el desarrollador alemán Reinhold Weber. Lo mínimo que se puede decir es que es el mejor de los 3 métodos de este artículo.</p>
<p><code></p>
<p>header('Content-type: text/css');</code></p>
<p>ob_start(&#8220;compress&#8221;);</p>
<p>function compress($buffer) {</p>
<p>/* remove comments */</p>
<p>$buffer = preg_replace(&#8216;!/*[^*]**+([^/][^*]**+)*/!&#8217;, &#8221;, $buffer);</p>
<p>/* remove tabs, spaces, newlines, etc. */</p>
<p>$buffer = str_replace(array(&#8220;rn&#8221;, &#8220;r&#8221;, &#8220;n&#8221;, &#8220;t&#8221;, &#8216;  &#8216;, &#8216;    &#8216;, &#8216;    &#8216;), &#8221;, $buffer);</p>
<p>return $buffer;</p>
<p>}</p>
<p>/* your css files */</p>
<p>include(&#8216;master.css&#8217;);</p>
<p>include(&#8216;typography.css&#8217;);</p>
<p>include(&#8216;grid.css&#8217;);</p>
<p>include(&#8216;print.css&#8217;);</p>
<p>include(&#8216;handheld.css&#8217;);</p>
<p>ob_end_flush();</p>
<p>?&gt;</p>
<p>¿Por qué este método es el mejor? Porque es el único de los 3 métodos que no requiere renombrar sus archivos .css a .php ni modificarlos. Muy factible de utilizar en un sitio en producción. Adicionalmente, la expresión utilizada para comprimir los comentarios del archivo CSS es también muy buena.</p>
<p><span style="font-weight: bold;">Observaciones de InterGraphicDESIGNS:</span></p>
<p>A pesar del aprovechamiento que se le puede dar a estos métodos, tenemos que tomar en cuenta que los archivos css se comprimen cada vez que la página es cargada (con excepción de las páginas que habiliten algún caché), lo que podría provocar procesamiento extra del CPU en un sitio con mucho tráfico.</p>
<p>Algo que puede resultar de utilidad es elaborar un script en PHP que, usando cualquiera de estos 3 métodos, genere los archivos finales CSS comprimidos y éstos sean leídos directamente por las páginas para evitar que el servidor esté comprimiendo los archivos CSS cada vez que se cargan dichas páginas. Con esto conseguiríamos también “ofuscar” de alguna manera nuestros CSS haciendo un tanto difícil para el usuario en Internet leer los mismos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2009/01/15/guia-para-comprimir-archivos-css-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips para evaluar velocidad de scripts de PHP</title>
		<link>http://www.intergraphicdesigns.com/blog/2008/11/20/tips-para-evaluar-velocidad-de-scripts-de-php/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2008/11/20/tips-para-evaluar-velocidad-de-scripts-de-php/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 15:00:00 +0000</pubDate>
		<dc:creator>igdonline</dc:creator>
				<category><![CDATA[PHP y MySQL]]></category>
		<category><![CDATA[benchmarking]]></category>
		<category><![CDATA[microtime]]></category>
		<category><![CDATA[optimización]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rendimiento]]></category>
		<category><![CDATA[velocidad]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/general/tips-para-evaluar-velocidad-de-scripts-de-php/</guid>
		<description><![CDATA[No todos los scripts PHP son igual de rápidos aunque funcionalmente logren el mismo objetivo, el sitio web &#8220;The PHP Benchmark&#8221; es una iniciativa que pretende evaluar diferentes prácticas de programación en PHP y demostrar cuántos milisegundos toma realizar la misma acción pero ejecutando funciones diferentes. El proyecto es encabezado por Chris Vincent, y utiliza [...]]]></description>
			<content:encoded><![CDATA[<p>No todos los scripts PHP son igual de rápidos aunque funcionalmente logren el mismo objetivo, el sitio web &#8220;<a href="http://www.phpbench.com/">The PHP Benchmark</a>&#8221; es una iniciativa que pretende evaluar diferentes prácticas de programación en PHP y demostrar cuántos milisegundos toma realizar la misma acción pero ejecutando funciones diferentes.</p>
<p>El proyecto es encabezado por Chris Vincent, y utiliza la <a href="http://cr.php.net/microtime">función microtime() de PHP</a> para publicar este tipo de resultados.</p>
<p><span style="font-style: italic;">Algunos ejemplos interesantes:</span></p>
<p><span style="font-weight: bold;">Utilizar for ($i=0; $i<$size; $i++)" en vez de utilizar "for ($i=0; $i<sizeof></p>
<p></sizeof></span><span><sizeof>Pues el cálculo de la función sizeOf o count toma mucho tiempo de ejecución.</p>
<p><span style="font-style: italic;">Resultados:</span></p>
<p>Precalculando el tamaño del array: 132 milisegundos.<br />Calculando el tamaño del array en cada iteración: <span>57296 milsegundos</span></sizeof></span><span style="font-weight: bold;"><sizeof></p>
<p><span style="font-weight: bold;">Resultados interesantes con la función echo():</span></p>
<p></sizeof></span><span><sizeof>echo &#8216;aaaaaaaaaaaaaaaaaaaaaaaaaaaa&#8217;: 139 milisegundos.<br />echo &#8216;aaaaaaa&#8217;,'aaaaaaa&#8217;,'aaaaaaa&#8217;,'aaaaaaa&#8217;: 278 milisegundos.</sizeof></span><span style="font-weight: bold;"><sizeof></p>
<p><span style="font-weight: bold;">Utilizar foreach en vez de utilizar while:</span></p>
<p></sizeof></span><span><sizeof>foreach($aHash as $val); 14 milisegundos.</p>
<p>while(list($key) = each($aHash)) $tmp[] = $aHash[$key]; 98 milisegundos.</p>
<p>Le invitamos a leer más conclusiones en el sitio web y hacer sus propias estimaciones utilizando la función microtime() en sus propias aplicaciones.</sizeof></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2008/11/20/tips-para-evaluar-velocidad-de-scripts-de-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lanzamiento de php 5.3 alfa 1</title>
		<link>http://www.intergraphicdesigns.com/blog/2008/08/01/lanzamiento-de-php-53-alfa-1/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2008/08/01/lanzamiento-de-php-53-alfa-1/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 18:51:00 +0000</pubDate>
		<dc:creator>igdonline</dc:creator>
				<category><![CDATA[PHP y MySQL]]></category>
		<category><![CDATA[fileinfo]]></category>
		<category><![CDATA[intl]]></category>
		<category><![CDATA[phar]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sqllite]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/general/lanzamiento-de-php-53-alfa-1/</guid>
		<description><![CDATA[El equipo de php ha anunciado en su sitio web el lanzamiento de la nueva versión alpha de php la cual no se recomienda para utilizar en producción, sólo a manera de revisión y experimentación.Los cambios más importantes incluyen funciones lambda y closure, recolector cíclico de basura, adición de las extensiones intl, phar, fileinfo, sqlite3 [...]]]></description>
			<content:encoded><![CDATA[<p>El equipo de php ha anunciado en su <a href="http://www.php.net/index.php#id2008-08-01-1">sitio web </a>el lanzamiento de la nueva versión alpha de php la cual no se recomienda para utilizar en producción, sólo a manera de revisión y experimentación.<br />Los cambios más importantes incluyen <a href="http://wiki.php.net/rfc/closures">funciones lambda y closure</a>, recolector cíclico de basura, adición de las extensiones <a href="http://php.net/book.intl">intl</a>, <a href="http://php.net/book.phar">phar</a>, <a href="http://php.net/book.fileinfo">fileinfo</a>, <a href="http://php.net/book.sqlite3">sqlite3 </a>entre otros.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2008/08/01/lanzamiento-de-php-53-alfa-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Editores de código fuente</title>
		<link>http://www.intergraphicdesigns.com/blog/2008/08/01/editores-de-codigo-fuente/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2008/08/01/editores-de-codigo-fuente/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 15:07:00 +0000</pubDate>
		<dc:creator>igdonline</dc:creator>
				<category><![CDATA[HTML, XHTML, CSS, Javascript y AJAX]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[editores]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/general/editores-de-codigo-fuente/</guid>
		<description><![CDATA[Smashing Magazine analiza un conjunto de editores de código del mercado para el desarrollo. Un En Intergraphic Designs la experiencia indica que no existe un editor que lo haga todo bien, por ejemplo, dreamweaver puede ser uno de los mejores editores para trasladar del diseño al html, pero se queda corto con respecto a la [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.smashingmagazine.com">Smashing Magazine </a>analiza un conjunto de editores de código del mercado para el desarrollo. Un En Intergraphic Designs la experiencia indica que no existe un editor que lo haga todo bien, por ejemplo, <a href="http://www.adobe.com/products/dreamweaver/">dreamweaver </a>puede ser uno de los mejores editores para trasladar del diseño al html, pero se queda corto con respecto a la programacion, en comparacion contra un <a href="http://www.mpsoftware.dk/phpdesigner.php">phpDesigner </a>o un <a href="http://www.nusphere.com/">NuSphere</a></p>
<p>Ver artículo <a href="http://www.smashingmagazine.com/2008/05/07/35-useful-source-code-editors-reviewed/">aquí</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2008/08/01/editores-de-codigo-fuente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TurboDbAdmin, administre sus BD via web, con este módulo Ajax</title>
		<link>http://www.intergraphicdesigns.com/blog/2008/07/09/turbodbadmin-administre-sus-bd-via-web-con-este-modulo-ajax/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2008/07/09/turbodbadmin-administre-sus-bd-via-web-con-este-modulo-ajax/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 14:47:00 +0000</pubDate>
		<dc:creator>igdonline</dc:creator>
				<category><![CDATA[HTML, XHTML, CSS, Javascript y AJAX]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[turbodbadmin]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/general/turbodbadmin-administre-sus-bd-via-web-con-este-modulo-ajax/</guid>
		<description><![CDATA[TurboDbAdmin es una excelente forma de administrar sus bases de datos de una forma rápida vía web, las ventajas sobre otras conocidas aplicaciones de este tipo, como phpMyAdmin, es el no tener que usar botones &#8220;Submit&#8221; ni refrescamientos de página, al tener todo al estilo Ajax es mucho más rápido hacer ediciones, insertar filas, ejecutar [...]]]></description>
			<content:encoded><![CDATA[<p>TurboDbAdmin es una excelente forma de administrar sus bases de datos de una forma rápida vía web, las ventajas sobre otras conocidas aplicaciones de este tipo, como phpMyAdmin, es el no tener que usar botones &#8220;Submit&#8221; ni refrescamientos de página, al tener todo al estilo Ajax es mucho más rápido hacer ediciones, insertar filas, ejecutar consultas SQL, etc; como si estuviéramos en una aplicación de escritorio.</p>
<p>Requiere PHP 4.3 o superior y MySQL 3 o superior.</p>
<p>Ha superado las pruebas de testing en Firefox y en IE 6.0 o superior.</p>
<p>El producto aún tiene en desarrollo varias tareas esenciales en la administración de bases de datos, por lo que la recomendación iría en tener esta herramienta como apoyo a otros editores de BD.</p>
<p>Ir al sitio oficial de <a href="http://www.turboajax.com/products/turbodbadmin/">TurboDbAdmin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2008/07/09/turbodbadmin-administre-sus-bd-via-web-con-este-modulo-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Es posible encriptar CSS, Javascript, HTML o PHP?</title>
		<link>http://www.intergraphicdesigns.com/blog/2008/06/16/es-posible-encriptar-css-javascript-html-o-php/</link>
		<comments>http://www.intergraphicdesigns.com/blog/2008/06/16/es-posible-encriptar-css-javascript-html-o-php/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 04:26:00 +0000</pubDate>
		<dc:creator>igdonline</dc:creator>
				<category><![CDATA[HTML, XHTML, CSS, Javascript y AJAX]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.intergraphicdesigns.com/blog/general/es-posible-encriptar-css-javascript-html-o-php/</guid>
		<description><![CDATA[Pues primero hay que tener claro qué es lo que se ejecuta en el servidor y luego qué es lo que se ejecuta en el cliente: Servidor: PHP: la programación conocida como &#8220;del lado del servidor&#8221;. Cliente: CSS. Javascript HTML Primero que todo ninguno de los códigos anteriores se puede encriptar porque si fuera así [...]]]></description>
			<content:encoded><![CDATA[<p>Pues primero hay que tener claro qué es lo que se ejecuta en el servidor y luego qué es lo que se ejecuta en el cliente:</p>
<p>Servidor:
<ul>
<li><span class="blsp-spelling-error" id="SPELLING_ERROR_0">PHP</span>: la programación conocida como &#8220;del lado del servidor&#8221;.</li>
</ul>
<p>Cliente:
<ul>
<li><span class="blsp-spelling-error" id="SPELLING_ERROR_1">CSS</span>.</li>
<li>Javascript</li>
<li>HTML</li>
</ul>
<p>Primero que todo ninguno de los códigos anteriores se puede <span class="blsp-spelling-error" id="SPELLING_ERROR_2">encriptar</span> porque si fuera así se <span class="blsp-spelling-error" id="SPELLING_ERROR_3">irrespetaría</span> la sintaxis del lenguaje y el código pierde su valor y deja de ser funcional.</p>
<p>Por otro lado, en el caso de los <span class="blsp-spelling-error" id="SPELLING_ERROR_4">CSS</span>, HTML y Javascript que se ejecutan en el navegador, sólo en el último caso se puede aplicar un <span class="blsp-spelling-error" id="SPELLING_ERROR_5">obfuscador</span>, el cual no <span class="blsp-spelling-error" id="SPELLING_ERROR_6">encripta</span> propiamente el código sino que lo reemplaza por otro que puede ser interpretado (se respeta la sintaxis de javascript) pero que no es leíble <span class="blsp-spelling-error" id="SPELLING_ERROR_7">fácilmente</span> por un humano. Sin embargo, todo lo que se ejecuta en el cliente se almacena de manera local (en caché) por lo que los archivos siempre son descargadas y si alguien se propone adueñarse de un código, técnicamente no hay nada que le impida hacerlo; pero se pueden usar ciertas técnicas (como el <span class="blsp-spelling-error" id="SPELLING_ERROR_8">obfuscamiento</span>) para que dicha tarea sea más difícil.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intergraphicdesigns.com/blog/2008/06/16/es-posible-encriptar-css-javascript-html-o-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

