<?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>Ajaxman &#187; Software</title>
	<atom:link href="http://www.ajaxman.net/category/software/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ajaxman.net</link>
	<description>Servicios Web, Desarrollo de aplicaciones, tutoriales sobre software</description>
	<lastBuildDate>Sun, 01 Apr 2012 06:18:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[Kohana - PHP] 12 consejos útiles para desarrollar con kohana PHP</title>
		<link>http://www.ajaxman.net/kohana-php-12-consejos-utiles-para-desarrollar-con-kohana-php.html</link>
		<comments>http://www.ajaxman.net/kohana-php-12-consejos-utiles-para-desarrollar-con-kohana-php.html#comments</comments>
		<pubDate>Tue, 10 May 2011 21:47:06 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Kohana]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Kohana 3]]></category>
		<category><![CDATA[Kohana Framework]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=2094</guid>
		<description><![CDATA[<p>Pues hoy les voy a mostrar, algunos consejos sobre el Framework kohana PHP, que les servirán mucho al momento de iniciarse en con este software, quizá algunos lo usen de otro modo y sea mejor, pero yo voy a poner como lo he usado y como me ha resultado de utilidad, así que si hay algo que no les funcione con kohana quizá deberían a darle un vistazo a este POST, aquí vienen:</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Pues hoy les voy a mostrar, algunos consejos sobre el Framework kohana PHP, que les servirán mucho al momento de iniciarse en con este software, quizá algunos lo usen de otro modo y sea mejor, pero yo voy a poner como lo he usado y como me ha resultado de utilidad, así que si hay algo que no les funcione con kohana quizá deberían a darle un vistazo a este POST, aquí vienen:</p>
<h2><strong>1.- Kohana PHP</strong></h2>
<p>Es un framework escrito en PHP para acelerar el desarrollo de aplicaciones web, originalmente basado en CodeIgniter pero reescrito desde cero.</p>
<h2><strong>2.- Las ventajas de kohana PHP</strong></h2>
<p>Bueno son muchas, aquí pondré algunas</p>
<ul>
<li>Extremadamente ligero</li>
<li> PHP 5 Estricto</li>
<li> OOP</li>
<li> Arquitectura HMVC</li>
<li> Curva de aprendizaje fácil, pero extensa</li>
<li> Se puede usar con Doctrine ORM, Smarty, Twig y hasta con tus propias clases sin problemas.</li>
<li> IDE &#8211; Trabaja muy bien con Netbeans.</li>
</ul>
<h2><strong>3.- Las versiones de Kohana PHP</strong></h2>
<p>Kohana surgió como un fork de Codeigniter(CI) tratando de mejorarlo, y la versión 2.x es basado en CI y actualmente hay soporte para la misma y es manejada por Jeremy Bush( aka zombor).</p>
<p>Sin embargo la versión que uso y recomiendo en las 3.x, mas específicamente la 3.1.3.1, la cual también es estable, la recomiendo por que esta reescrita desde cero pensando en puro PHP5 Y OOP, , es mas fácil de usar, y con muchas mejoras a nivel código, de la versión 3.0 y 3.1.1, hubo cambios algo fuertes y puede que tu código no funcione bien.</p>
<p>En resumen usa la versión 3.1.3.1 y evitate problemas.</p>
<h2><strong>4.-Instalando Kohana PHP</strong></h2>
<p>Tengo aquí un post que menciona como instalar Kohana PHP, que no es mas que descomprimir, ver si tenemos todos los requisitos y ya.</p>
<p>Además de eso recomiendo que su servidor tenga soporte para .htaccess y el modulo ModRewrite instalado y en ese archivo comenta esta linea, ya que puede generarte problemas con la ubicación de tu kohana</p>
<p></p><pre class="crayon-plain-tag"># Installation directory
#RewriteBase /</pre><p></p>
<h2><strong>5.-  Configura tus rutas dentro del bootstrap</strong></h2>
<p>Configura tus rutas dentro del archivo Bootstrap, por default viene configurada una ruta que se llama default la cual apunta al controlador welcome, elimina ese archivo y configura tus rutas o ponlo para que apunte al controlador por default de tu proyecto<br />
<span id="more-2094"></span></p>
<p></p><pre class="crayon-plain-tag">//reescribir estas lineas de acuerdo a tu proyecto
Route::set('default', '(&amp;lt;controller&amp;gt;(/&amp;lt;action&amp;gt;(/&amp;lt;id&amp;gt;)))')
-&gt;defaults(array(
 'controller' =&gt; 'welcome',
 'action'&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 'index',
));</pre><p></p>
<h2><strong>6.- Elimina tu archivo de instalación</strong></h2>
<p>Cuando se instala kohana siempre trae un archivo que se llama install.php, el cual se encarga de verificar y mostrar que tengas todos los requisitos para usar kohana, después de que verifiques que todo esta ok, debes borrarlo ya que contiene información sensible que puede ser accesible muy fácilmente.</p>
<h2><strong>7.- Cada cosa en su lugar</strong></h2>
<p>Si bien cuando uno empieza a probar kohana sin leer mucho, hay cosas que podemos hacer pero que no están bien como poner consultas en los controladores, o en las vistas, hay que organizar todo, es mucho mejor.</p>
<p>Estas son las reglas</p>
<ul>
<li>Ruteos en el Bootstrap</li>
<li>Capa de lógica en el Controlador</li>
<li>Capa de persistencia de datos en los modelos</li>
<li>Capa de presentación en las vistas</li>
</ul>
<h2><strong>8.- Configura tu init del bootstrap</strong></h2>
<p>Configura en tu bootstrap tu url_base que es donde esta la dirección de tu sitio, es decir si tu sitio es http://www.ajaxman.net y ahí estas usando kohana en tu bootstrap debe de estar así</p>
<p>Y de preferencia usa urls amigables solo indicando, index_file como FALSE.</p>
<p></p><pre class="crayon-plain-tag">Kohana::init(array(
 'base_url'&nbsp;&nbsp; =&gt; 'http://www.ajaxman.net/',
 'index_file' =&gt; FALSE
));</pre><p></p>
<h2><strong>9.- Usa un IDE</strong></h2>
<p>Para desarrollar con kohana, sirve hasta el bloc de notas (o el vi), pero a veces no es lo mejor, yo recomiendo que usen un IDE (Entorno de Desarrollo Integrado) como Eclipse, Zend Studio, Netbeans, Aptana,etc.</p>
<p>Yo uso Netbeans y trabaja de maravilla, reconoce todos los métodos y clases de kohana, además de que Netbeans te sirve para programar en Java, C, C++, Python entre otros y es Open Source</p>
<h2><strong>10.- La configuración de tu aplicaciones</strong></h2>
<p>Todos los módulos y algunas clases de kohana viene con una carpeta config y dentro de estas aparece un archivo con el nombre de la clase, estos archivos, contienen la configuración de cada clase que necesita configuración.</p>
<p>Para tenerlos mas claros estos se encuentran dentro de:</p>
<ul>
<li>*configuraciones del sistema
<ul>
<li> System
<ul>
<li>config</li>
</ul>
</li>
</ul>
</li>
<li>*configuraciones de los módulos
<ul>
<li>Modules
<ul>
<li>nombre_del_modulo
<ul>
<li> config</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Y si bien se puede configurar desde ahí, no es recomendable, entonces lo que hay que hacer es que cada vez que necesites usar algo lo debes de configurar, para hacerlo solo debes de copiar estos archivos dentro de la ruta de aplicación esto es.</p>
<ul>
<li>*configuraciones de tu aplicación
<ul>
<li>application
<ul>
<li>config</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Y ahí configurarlos así tienes todo dentro de tu aplicación.</p>
<h2><strong>11.- Cambia tus permisos en tus archivos de logs</strong></h2>
<p>Cuando uno empieza a programar en kohana a veces veremos errores del tipo:</p>
<p><strong>ErrorException [ 2 ]: file_put_contents(/home/tuwebsite/public_html/application/logs/2011/05/10.php) function.file-put-contents]: failed to open stream: Permission denied ~ SYSPATH/classes/kohana/log/file.php [ 82 ]</strong></p>
<p>Esto sucede por que que no tienes permisos para escribir en el archivo 10.php lo que hay que hacer aparte de cambiar los permisos de application/logs y todos sus directorios también hay que crear un archivo en blanco con el nombre del día que nos este mostrando en este caso es el 10.php, y darle permisos 777, para que escriba los logs, en este caso el error es por que no existe mi controlador.</p>
<p>Entonces mas que nada hay que tener dicho archivo y permisos de escritura para que guarde ahí el error.</p>
<p>Si no quieren usar este archivo hay que comentar la siguiente linea en el bootstrap</p>
<p></p><pre class="crayon-plain-tag">/**
 * Attach the file write to logging. Multiple writers are supported.
 */
Kohana::$log-&gt;attach(new Log_File(APPPATH.'logs')); //Comentar esta linea</pre><p></p>
<h2><strong>12.- Quita el user_guide</strong></h2>
<p>Por último otra recomendación útil es quitar el modulo user_guide ya que no sirve de mucho mostrar esta información al usuario y puede ser un agujero de seguridad.</p>
<p>Solo hay que borrarlo dentro de la carpeta modules.</p>
<p>Con estos 12 tips espero que les sea más fácil de usar kohana además de que ojala y sirva de base para que migren de otros frameworks, si tienen algún duda pues me avisan en lo comentarios, ha también se viene el congreso de PHP, pronto mas detalles.</p>
<p>Kohana FrameWork:<a href="http://kohanaframework.org/"> Kohana: The Swift PHP Framework</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/kohana-php-12-consejos-utiles-para-desarrollar-con-kohana-php.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[Kohana - PHP] Lanzamiento de Kohana 3.1 &quot;Merle&quot; y como hacer el upgrade</title>
		<link>http://www.ajaxman.net/kohana-php-lanzamiento-de-kohana-3-1-merle-y-como-hacer-el-upgrade.html</link>
		<comments>http://www.ajaxman.net/kohana-php-lanzamiento-de-kohana-3-1-merle-y-como-hacer-el-upgrade.html#comments</comments>
		<pubDate>Fri, 11 Feb 2011 05:07:42 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Kohana]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Kohana 3]]></category>
		<category><![CDATA[Kohana 3.1]]></category>
		<category><![CDATA[Kohana Framework]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=2062</guid>
		<description><![CDATA[<p>Pues apenas me vengo enterando de que los desarrolladores de Kohana han liberado el día 7 de Febrero la versión 3.1 del Framework Kohana llamada &#8220;merle&#8220;. Pues obviamente hay muchos que queremos tener nuestro Framework actualizado, entonces pues me dispuse a migrar un website de la versión 3.0.9 a la 3.0.x. Las instrucciones de migrar [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Pues apenas me vengo enterando de que los desarrolladores de <strong>Kohana</strong> han liberado el día 7 de Febrero la versión 3.1 del <strong>Framework Kohana</strong> llamada &#8220;<strong>merle</strong>&#8220;.</p>
<p>Pues obviamente hay muchos que queremos tener nuestro Framework actualizado, entonces pues me dispuse a migrar un website de la versión 3.0.9 a la 3.0.x.</p>
<p>Las instrucciones de migrar son fáciles, regularmente se basa en reemplazar el directorio system de nuestra aplicación, pero esta nueva versión incorpora muchos cambios los cuales, hacen la migración un poco mas complicada.</p>
<p>El mismo sitio de kohana nos avisa de los siguientes cambios:</p>
<p></p><pre class="crayon-plain-tag">//Versi&oacute;n 3.0.x

$this-&gt;request-&gt;response = 'foo';

//Versi&oacute;n 3.1
$this-&gt;response-&gt;body('foo');


//Cambios en la clase Request de propiedades a m&eacute;todos

//Versi&oacute;n 3.0.x&nbsp; ===&gt;&nbsp;&nbsp; &nbsp;Versi&oacute;n 3.1
Request::$controller ==&gt; Request::controller()
Request::$action ==&gt; Request::action()
Request::$directory ==&gt; Request::directory()
Request::$uri ==&gt; Request::uri()</pre><p></p>
<p>Todos lo puntos son marcados aquí<br />
<a href="http://kohanaframework.org/3.1/guide/kohana/upgrading">http://kohanaframework.org/3.1/guide/kohana/upgrading</a>.</p>
<p>Ahora bien, a mi los que mas me interesaron, son importantes y no vienen aqui son los siguientes.</p>
<p>Request</p>
<p></p><pre class="crayon-plain-tag">//Versi&oacute;n 3.0.x

Request::instance();</pre><p></p>
<p>El método estático anterior nos devolvía el singleton de nuestra solicitud con dicho método estático podiamos obtener parámetros y una de las cosas para lo que yo la utilizaba era para la creación de mi Breadcrumb.</p>
<p></p><pre class="crayon-plain-tag">//Version 3.1

Request::current();

//o

Request::initial();</pre><p></p>
<p>Aquí como vemos tenemos dos opciones, y se elimino instance, las dos son iguales salvo por un detalle, si usamos <strong>HMVC</strong>, initial contendrá la información de la petición inicial, es decir si desde un controlador estamos invocando a un <strong>Request::factory()</strong>, ese sera <strong>inital</strong> y el <strong>factory</strong> invocado sera <strong>current</strong> cuando estemos programando dentro del <strong>factory</strong>.<br />
<span id="more-2062"></span><br />
Importante, lo anterior hay que tenerlo muy en cuenta ya que algunos módulos pueden usar dicho método estático, entonces, hay que buscar alguna actualización del mismo (me paso con el modulo de paginación)</p>
<p><strong>Bootstrap</strong></p>
<p>Pues creo que hay que destacar que reescribieron bastante de este archivo, por ello hay que reemplazar el que tenemos, obviamente guardando una copia del actual, ya que recordemos que en el <strong>bootstrap</strong> se guardan las rutas, módulos y muchas configuraciones de Kohana.</p>
<p><strong>Desaparece el método ->render() de la vistas</strong></p>
<p>También es fundamental remarcar este cambio, en versiones anteriores se usaba <strong>View::factory($vista)->render(); </strong>el cual ya no existe por ello si lo tienen así, quítenle ese método a sus vistas o sea quedaria <strong>View::factory($vista);</strong> (Nota puede afectar a sus módulos, de nuevo me paso con el modulo de paginación).</p>
<p><strong>Security::xss_clean </strong></p>
<p>También desaparece, podemos usar <strong>HTML::chars().</strong></p>
<p>Para generar mi breadcrumb yo lo hacia con una código el cual extraía un array de la url, el cual ya no funciona, ahora hay que tomar la url y volverla array con explode como dice el siguiente código</p>
<p></p><pre class="crayon-plain-tag">//versi&oacute;n 3.0.x&nbsp; $segments es un array con las partes que forman la url

$segments = Request::instance()-&gt;param();


//Versi&oacute;n 3.1&nbsp; Ahora tenemos que tomarla de un string el cual cambio la forma de extraerlo ya que las nuevas clases est&aacute;n mas completas&nbsp; y convertirla a array
$segments = Request::$current-&gt;param();
$segments = explode('/',$segments['uri']);</pre><p></p>
<p>Bueno pues como verán los cambios si son fuertes, y también ya no viene el modulo de paginación( ahora hay que bajarlo),inclusive el <strong>index.php</strong> cambia, como vemos el equipo de kohana realizo bastantes cambios, los cuales al principio pueden darnos algún dolor de cabeza, pero es mejor migrar de una vez ya que ya están trabajando en la versión 3.2(la cual saldría en 6 meses aproximadamente) y hasta la 3.3.</p>
<p>Hasta aquí llegamos, con este post, en entregas posteriores tratare de cubrir los temas pendientes de <strong>kohana framework</strong></p>
<p>Anuncio del lanzamiento: <a href="http://forum.kohanaframework.org/discussion/8024/kohana-v3.1.0-released">http://forum.kohanaframework.org/discussion/8024/kohana-v3.1.0-released</a></p>
<p>Manual de Kohana 3.1.x :<a href="http://kohanaframework.org/3.1/guide/"> http://kohanaframework.org/3.1/guide/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/kohana-php-lanzamiento-de-kohana-3-1-merle-y-como-hacer-el-upgrade.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>[Programación] Ingeniería del Software</title>
		<link>http://www.ajaxman.net/programacion-ingenieria-del-software.html</link>
		<comments>http://www.ajaxman.net/programacion-ingenieria-del-software.html#comments</comments>
		<pubDate>Mon, 22 Nov 2010 03:07:27 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Ingeniería del Software]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=2043</guid>
		<description><![CDATA[<p>Pues ya casi no tengo tiempo de escribir, tengo un par de posts en el tintero que no he podido terminar de escribir, es que últimamente ando estudiando bastante por que quiero saber mas jaja, pero bueno el propósito de este post no es quejarme si no platicarles de esto que hace poco me intereso. [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p><!-- p { margin-bottom: 0.21cm; } -->Pues ya casi no tengo tiempo de escribir, tengo un par de posts en el tintero que no he podido terminar de escribir, es que últimamente ando estudiando bastante por que quiero saber mas jaja, pero bueno el propósito de este post no es quejarme si no platicarles de esto que hace poco me intereso.</p>
<p>Resulta que via Twitter, me entere sobre una forma de programar mediante pruebas unitarias en PHP mediante <strong>PHPUnit</strong>, tenia rato que quería saber como hacer eso y creo que si le estoy entendiendo bien, de ahi aprendí que esto se llama <strong>TDD(Test-Driven Development) </strong>y bueno esto estará en otro post, la cuestión es que me intereso bastante, al final llegue hasta el tema de la ingeniería del software.</p>
<p>Si bien yo no soy ingeniero (Soy Técnico Profesional), me gusta bastante este tema, resulta que para ser un buen programador es muy bueno aprender a implementar la ingeniería del software en el desarrollo del mismo, para nuestro beneficio.</p>
<p>Si bien no es una técnica tipo AJAX o similar, es algo muy importante a considerar ya que aplicando esto no solo te dedicas a programar-codear un script, si no desarrollas una aplicación completa mediante ciertos pasos bien definidos.</p>
<p>Etapas del proceso de la implementación de la Ingeniería del Software.</p>
<ul>
<li>Análisis de requerimientos</li>
<li>Especificación</li>
<li>Arquitectura del Software</li>
<li>Programación</li>
<li>Prueba</li>
<li>Documentación</li>
<li>Mantenimiento</li>
</ul>
<p>Además de lo anterior también hay varios modelos ó paradigmas para implementar dicha Ingeniería del Software, algunos de los mas usados son los siguientes.<span id="more-2043"></span></p>
<ul>
<li>Modelo en cascada o Clásico (modelo tradicional)</li>
<li>Modelo de prototipos</li>
<li>Modelo en espiral (modelo evolutivo)</li>
<li>Desarrollo por etapas</li>
<li>Desarrollo iterativo y creciente o Iterativo e Incremental</li>
<li>RAD (Rapid Application Development)</li>
<li>Desarrollo concurrente</li>
<li>Proceso Unificado</li>
<li>RUP (Proceso Unificado de Rational)</li>
</ul>
<p>Claro dirán y todo esto para me sirve, pues para que programes mucho mejor, ya que usando todo esto, como mencione anteriormente no solo escribirás código, si no lo que haces serán soluciones completas, documentadas y seguras, además de que podrás usar los patrones de diseño para optimizar tu código, y bueno muchas cosas de este tipo.</p>
<p>Como verán no soy un experto en esto de la Ingeniería del Software, pero el propósito de este post era darles un preámbulo sobre este tema el cual como mencione se me hace muy interesante y creo que al implementarlo cuando usamos PHP podrá beneficiarnos a nosotros como programadores, a los clientes y a los jefes, bueno en general a todos, como dije antes tiene muchas ventajas.</p>
<p>Espero pronto sacar algún otro post sobre PHP y TDD</p>
<p>Mas información sobre esto en la Wikipedia | <a href="http://es.wikipedia.org/wiki/Ingenier%C3%ADa_del_software">Ingeniería de software</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/programacion-ingenieria-del-software.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Manual-PHP] Creando un proyecto MVC con Framework Kohana PHP  parte I</title>
		<link>http://www.ajaxman.net/manual-php-creando-un-proyecto-mvc-con-framework-kohana-php-parte-i.html</link>
		<comments>http://www.ajaxman.net/manual-php-creando-un-proyecto-mvc-con-framework-kohana-php-parte-i.html#comments</comments>
		<pubDate>Tue, 22 Jun 2010 22:14:46 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[Manuales]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Kohana 3]]></category>
		<category><![CDATA[KohanaPHP]]></category>
		<category><![CDATA[Manual]]></category>
		<category><![CDATA[Php5]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=1959</guid>
		<description><![CDATA[<p>Hagamos un ejemplo muy bien explicado sobre cómo usar el Framework Kohana PHP con MVC usando ORM entre otras cosas, para que vean para que sirve y todo lo que pueden hacer con el Ya sabemos cómo instalarlo ahora procedamos a trabajar. Como ejemplo haremos una aplicación que liste productos, maneje altas y bajas de [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Hagamos un ejemplo muy bien explicado sobre cómo usar el Framework Kohana PHP con MVC usando ORM entre otras cosas, para que vean para que sirve y todo lo que pueden hacer con el</p>
<p>Ya sabemos cómo instalarlo ahora procedamos a trabajar.</p>
<p>Como ejemplo haremos una aplicación que liste productos, maneje altas y bajas de una tienda con un Front-End y un Back-End.</p>
<p>Para empezar necesitamos lo siguiente</p>
<p>*Requisitos</p>
<ul>
<li><strong>Apache (ModRewrite instalado)</strong></li>
<li><strong> PHP 5.2</strong></li>
<li><strong> MySQL</strong></li>
<li><strong> Kohana 3 Framework</strong></li>
</ul>
<p>*Opcionales</p>
<ul>
<li><strong>SQlFront</strong></li>
<li><strong> Phpmyadmin</strong></li>
<li><strong> Editor de código como Webuilder (Luego veremos cómo hacer casi lo mismo con Netbeans un IDE completo)</strong></li>
</ul>
<p>Haremos una nueva instalación de Kohana, en nuestra PC que será nuestro servidor (localhost) copiamos el contenido del framework a una carpeta que se llame tienda (en mi caso <strong>E:/www/tienda/</strong>)</p>
<p><strong>Y acceso a mi website escribiendo http://localhost/tienda/  y ahí veremos nuestro install ahora navegamos hasta  E:/www/tienda/ y ahí estará ese archivo, lo borramos (si todo salió ok, si no corregir y verificar hasta que todo este en verde)</strong></p>
<p>Esta vez vamos empezar por los datos para que al final hagamos el website.<br />
Necesitamos una tabla de productos usaremos el siguiente SQL con los datos básicos de cada producto.</p>
<p>Como regla general hay que tener en cuenta que la base de datos debe de tener las siguientes características:</p>
<ul>
<li><strong>Nombre de la tabla en Plural (&#8220;productos&#8221;)</strong></li>
<li><strong> Nombre de los campos en Singular (&#8220;descripción&#8221;)</strong></li>
<li><strong> La clave principal se llamara id, en minúsculas (Se puede poner otra cosa pero habría que editar nuestra clase que manejara esa tabla por ello lo dejaremos como id)</strong></li>
</ul>
<p></p><pre class="crayon-plain-tag">CREATE TABLE &lt;code&gt;productos&lt;/code&gt; (
 &lt;code&gt;id&lt;/code&gt; int(11) NOT NULL AUTO_INCREMENT,
 &lt;code&gt;nombre&lt;/code&gt; varchar(255) DEFAULT NULL,
 &lt;code&gt;descripcion&lt;/code&gt; text,
 &lt;code&gt;activo&lt;/code&gt; int(1) DEFAULT '1',
 PRIMARY KEY (&lt;code&gt;id&lt;/code&gt;)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;</pre><p></p>
<p>Agregamos el siguiente contenido</p><pre class="crayon-plain-tag">INSERT INTO &lt;code&gt;productos&lt;/code&gt; VALUES (1,'Agua Debian','Agua Embotellada 1 Lts Marca Debian',1);
INSERT INTO &lt;code&gt;productos&lt;/code&gt; VALUES (2,'Refresco Php','Refresco 2 Lts Marca Php Sabor Uva',1);
INSERT INTO &lt;code&gt;productos&lt;/code&gt; VALUES (3,'Paleta Ubuntu','Paleta Ubuntu sabor Cafe 1pza',1);</pre><p></p>
<p>Ahora editaremos nuestro bootstrap   (<strong>E:/www/tienda/application/bootstrap.php</strong>)<br />
Buscaremos el configuración del init y escribiremos los siguiente</p>
<p></p><pre class="crayon-plain-tag">&amp;lt;?php
//...
//...
Kohana::init(array(
 'base_url'&nbsp;&nbsp; =&gt; 'http://localhost/tienda/',//Aqui le decimos cual ser&aacute; la url del proyecto
 'index_file' =&gt; FALSE, //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Le indicamos que usara urls amigables (sin .php)
));
...
...
//Buscaremos el Route en el mismo script y lo editaremos
..
...
Route::set('default', '(&amp;lt;controller&amp;gt;(/&amp;lt;action&amp;gt;(/&amp;lt;id&amp;gt;)))')
 -&gt;defaults(array(
 'controller' =&gt; 'tienda',&nbsp; //Nombre del controlador por default
 'action'&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 'index',&nbsp;&nbsp; //Acci&oacute;n por default (lo dejamos en index)
 ));</pre><p></p>
<p>Lo guardamos (:wq XD ) y vamos a ver que en la raíz del proyecto hay una archivo llamado example.htaccess lo renombramos a .htaccess que será el que manejara las urls amigables para no tener el tienda/index.php/controlador ser tienda/controlador.</p>
<p>Les recomiendo comentar la siguiente línea para no tener problemas en las direcciones</p><pre class="crayon-plain-tag"># Installation directory
#RewriteBase /kohana/ pueden poner /tienda y va a funcionar pero es mejor quitarla
# ya que con ello evitaremos problemas cuando estemos cambiando de un servidor local
# a un servidor de producci&oacute;n</pre><p></p>
<p>Lo guardamos (:wq XD )  Y ahora vayamos a crear nuestro controlador.</p>
<p>Entramos a E:/www/tienda/application/classes/controller y creamos tienda.php<br />
Y creamos nuestro controlador</p>
<p></p><pre class="crayon-plain-tag">&amp;lt;?php defined('SYSPATH') or die('No direct script access.');

class Controller_Tienda extends Controller {
/**
 * Controller_Tienda Es el controlador por default recuerden el bootstrap
 * todos los controladores llevan esta sintaxis, Controller_&amp;lt;Nombre_del_controlador&amp;gt;
 *
 *&nbsp; action_index() Es la acci&oacute;n por default (ejemplo http://localhost/tienda/accion)
 *&nbsp; si no se especifica en la url (ejemplo http://localhost/tienda/accion, se usara
 *&nbsp; index por default y la sintaxis es action_&amp;lt;nombre_de_la_accion&amp;gt;
 */
 public function action_index()
 {
 echo &amp;quot;Programando ....&amp;quot;;
 }

} // End Tienda</pre><p></p>
<p>Lo guardamos (:wq XD ) y naveguemos a http://localhost/tienda/ veremos que dirá &#8220;Programando &#8230;.&#8221;, si no vemos eso es que algo hicimos mal y hay que volver a ver en donde nos fallo</p>
<p>Ahora bien, procederemos a conectar la base de datos, para ello vamos a editar el archivo de configuración de la base de datos E:/www/tienda/modules/database/config/database.php</p>
<p>Y agregaremos la conexión mysql, pueden usar PDO(pero prefiero hacerlo como ejemplo de forma tradicional)</p><pre class="crayon-plain-tag">&amp;lt;?php defined('SYSPATH') or die('No direct access allowed.');

return array
(
 'default' =&gt; array
 (
 'type'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 'mysql',
 'connection' =&gt; array(
 /**
 * The following options are available for MySQL:
 *
 * string&nbsp;&nbsp; hostname
 * string&nbsp;&nbsp; username
 * string&nbsp;&nbsp; password
 * boolean&nbsp; persistent
 * string&nbsp;&nbsp; database
 *
 * Ports and sockets may be appended to the hostname.
 */
 'hostname'&nbsp;&nbsp; =&gt; 'localhost',&nbsp; ////Usa los datos de tu conexi&oacute;n MYSQL
 'username'&nbsp;&nbsp; =&gt; &amp;quot;root&amp;quot;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ////Usa los datos de tu conexi&oacute;n MYSQL
 'password'&nbsp;&nbsp; =&gt; &amp;quot;localhost&amp;quot;,&nbsp; ////Usa los datos de tu conexi&oacute;n MYSQL
 'persistent' =&gt; FALSE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ////Opcional
 'database'&nbsp;&nbsp; =&gt; 'kh_tienda',&nbsp; ////Usa los datos de tu conexi&oacute;n MYSQL
 ),
 'table_prefix' =&gt; '',
 'charset'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 'utf8',
 'caching'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; FALSE,
 'profiling'&nbsp;&nbsp;&nbsp; =&gt; TRUE,
 ),
 //Aqu&iacute; contin&uacute;a con el PDO, ese de momento no hay que tocarlo
 //..
 //....
 //......
)</pre><p></p>
<p>Ahora que ya lo tenemos vamos a decirle a kohana que agregue los módulos de base de datos y orm, necesarios para que funcione nuestro ejemplo, para ello hay que editar otra vez nuestro archivo bootstrap ya descomentar los módulos de manera que quede así.</p>
<p><span id="more-1959"></span></p><pre class="crayon-plain-tag">&amp;lt;?php
//..
//....
/**
 * Enable modules. Modules are referenced by a relative or absolute path.
 */
Kohana::modules(array(
 // 'auth'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; MODPATH.'auth',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Basic authentication
 //'cache'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; MODPATH.'cache',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Caching with multiple backends
 // 'codebench'&nbsp; =&gt; MODPATH.'codebench',&nbsp; // Benchmarking tool
 'database'&nbsp;&nbsp; =&gt; MODPATH.'database',&nbsp;&nbsp; // Database access
 // 'image'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; MODPATH.'image',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Image manipulation
 'orm'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; MODPATH.'orm',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Object Relationship Mapping
 // 'pagination' =&gt; MODPATH.'pagination', // Paging of results
 // 'userguide'&nbsp; =&gt; MODPATH.'userguide',&nbsp; // User guide and API documentation
 ));</pre><p></p>
<p>Lo guardamos y ahora hay que agregar el Modelo ORM que manejara la base de datos, para ello hay que crear un archivo llamado con el mismo nombre de nuestra tabla,</p>
<p>En E:/www/tienda/application/classes/model hay que agregar el modelo productos.php si no existe esta carpeta model hay que crearla.</p>
<p>En el modelo agregaremos el siguiente contenido</p>
<p></p><pre class="crayon-plain-tag">&amp;lt;?php defined('SYSPATH') or die('No direct script access.');
/**
 * Description of Model_Productos
 *
 * @author Javier
 */
 //// Importante el nombre de nuestra&nbsp; clase debe de llevar la siguiente sintaxis
 ////&nbsp; Model_&amp;lt;Nombre_de_la_tabla&amp;gt;

class Model_Productos extends ORM {

 protected $_table_names_plural = false;
 /// Ojo con esto este campo es true por default pero hace que Kohana maneje a su gusto
 /// Los nombres de la tablas agreg&aacute;ndole &amp;quot;s&amp;quot; o &amp;quot;es&amp;quot; a las mismas
 /// Es decir trata de pluralizar el nombre autom&aacute;ticamente, puede que sea muy &uacute;til
 /// Pero en lo personal no me gusta prefiero yo usar lo nombres a mi gusto
 /// Por ello con esta indicaci&oacute;n le decimos a kohana:
 /// &amp;quot;Deja el nombre de la tabla como se llama la clase y no le hagas cambios&amp;quot;


}</pre><p></p>
<p>Y bien ya casi terminamos, ahora hagamos una prueba para ver si todo ha salido bien.</p>
<p>Vayamos a nuestro controlador y agreguemos el siguiente código</p>
<p></p><pre class="crayon-plain-tag">&amp;lt;?php
 //..
 //.....
 public function action_index()
 {
 //echo &amp;quot;Programando ....&amp;quot;;
 $productos = ORM::factory('productos')-&gt;find_all();
 foreach($productos as $producto)
 {
 echo &amp;quot;[[Producto=&amp;quot;.$producto-&gt;descripcion.&amp;quot;]]&amp;quot;;
 }

 }</pre><p></p>
<p>Ojo no es MVC todavía pero es para pruebas, expliquemos el código:<br />
Para hacer una consulta al ORM, usaremos el siguiente código (se puede de varias formas, esta es la mas fácil)<br />
<strong>$productos = ORM::factory(&#8216;&lt;Nombre_del_Modelo&gt;&#8217;)->otros_metodos()</strong><br />
Donde</p>
<ul>
<li><strong>$productos: es la variable donde se almacenara nuestro contenido de la consulta</strong></li>
<li><strong> ORM::factory(): Es el método estático para usar el ORM y el parámetro será el nombre del modelo</strong></li>
<li><strong> otros_metodos: Es donde le podemos agregar métodos where, join, order_by, find,find_all, etc., digamos como una especie de parámetros del query, algo importante a destacar es</strong>
<ul>
<li><strong> si usamos ->find() Kohana hará automáticamente un limit 1</strong></li>
<li><strong> Si usamos ->find_all() Kohana traerá todos los resultados</strong></li>
</ul>
</li>
<li><strong> Hay muchos parámetros poco a poco los iremos viendo.</strong></li>
</ul>
<p>Por último con el foreach recorremos nuestro objeto y mostramos sus propiedades las cuales son las mismas que los campos de la tabla y listo.</p>
<p>Guardamos nuestro controlador y al entrar a <strong>http://localhost/tienda/,</strong> nos debe aparecer algo como lo siguiente:</p>
<p><strong>[[Producto=Agua Embotellada 1 Lts Marca Debian]][[Producto=Refresco 2 Lts Marca Php Sabor Uva]][[Producto=Paleta Ubuntu sabor Cafe 1pza]]</strong></p>
<p>Con eso terminamos la parte 1, Como verán siento que fue bastante rápido, que quizá se me hayan quedado cosas, sin escribir, si notan algún error, o algo no funciona pueden comentarlo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/manual-php-creando-un-proyecto-mvc-con-framework-kohana-php-parte-i.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>[Evento] Konference (Kohana Conference) en Londres el 15 de Mayo 2010</title>
		<link>http://www.ajaxman.net/evento-konference-kohana-conference-en-londres-el-15-de-mayo-2010.html</link>
		<comments>http://www.ajaxman.net/evento-konference-kohana-conference-en-londres-el-15-de-mayo-2010.html#comments</comments>
		<pubDate>Sat, 01 May 2010 04:58:05 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Kohana]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Ko3]]></category>
		<category><![CDATA[Kohana 3]]></category>
		<category><![CDATA[Konference]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=1896</guid>
		<description><![CDATA[<p>Ahora si a lo windows Woow. Hasta hoy apenas me vengo enterando de esto, les platico rápidamente. El 15 de Mayo de este año (2010), se llevara a cabo en Londres, una conferencia de desarrolladores del Framework Kohana: KOnference &#8211; The London Kohana Conference 2010. La verdad estoy con unas tremendas ganas de ir sin [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Ahora si a lo windows Woow.</p>
<p>Hasta hoy apenas me vengo enterando de esto, les platico rápidamente.</p>
<p>El 15 de Mayo de este año (2010), se llevara a cabo en Londres, una conferencia de desarrolladores del Framework Kohana:<br />
<strong>KOnference &#8211; The London Kohana Conference 2010.</strong></p>
<p>La verdad estoy con unas tremendas ganas de ir sin embargo dudo mucho que pueda, por que no creo que en la chamba me paguen la ida y pues ahorita no hay mucho presupuesto.</p>
<p><a href="http://www.meetup.com/london-kohana/calendar/12925064/"><img class="aligncenter size-full wp-image-1895" title="Kohana Konference" src="http://www.ajaxman.net/wp-content/uploads/2010/04/highres_14691577.jpeg.png" alt="Kohana Konference" width="660" height="225" /></a></p>
<p>Me puse ha investigar y aquí les dejo la agenda, la cual se ve va a estar bien interesante.</p>
<ul>
<li><strong>Inicio || Duración || Sesión</strong></li>
<li>10:30  || 25&#8243;  || Registration</li>
<li>10:55  || 5&#8243;   || Welcome</li>
<li>11:00  || 55&#8243;  || Building Swiftly with Kohana 3 &#8211; KO3</li>
<li>11:55  || 40&#8243;  || Designing for Scalability with HMVC &#8211; KO3</li>
<li>12:35  || 15&#8243;  || Break</li>
<li>12:50  || 35&#8243;  || Migrating existing codebases to Kohana &#8211; KO2</li>
<li>13:25  || 30&#8243;  || Advanced ORM &#8211; theory and practice &#8211; KO3</li>
<li>13:55  || 30&#8243;  || Lunch</li>
<li>14:25  || 30&#8243;  || Discovery Session</li>
<li>14:55  || 20&#8243;  || Rapid site prototyping &#8211; KO2</li>
<li>15:15  || 30&#8243;  || Templating with Twig &#8211; KO3</li>
<li>15:45  || 30&#8243;  || Break</li>
<li>16:15  || 25&#8243;  || An introduction to using Gearman with Kohana &#8211; KO2</li>
<li>16:40  || 20&#8243;  || Deploying Kohana on a large scale application &#8211; KO2</li>
<li>17:00  || 10&#8243;  || Mukuru.com &#8211; Kohana meets E-Commerce</li>
<li>17:10  || N/A- || Beers &amp; dinner</li>
</ul>
<p>Como ven habra platicas tanto de Ko3 como de Ko2, el unico pero que veo es que sera hasta Londres y pues es algo complicado ir.</p>
<p>Ojala y leyeran este post y pronto hagan una aunque sea en EUA.</p>
<p>Al parecer el costo sera de 15 GBP (Libras) (unos $300 MXN),  el pago se realiza mediante Paypal y el registro sera a las 10:30 (Hora Local), recomiendan llegar a tiempo ya que como ellos dicen hay mucho que ver y el tiempo esta contado.</p>
<p>Pues ojala y eventos como este le den mas presencia a este increible framework y lo ayuden a crecer, por que se lo merece.</p>
<p>Mas info en los siguientes Links:<br />
<a href="www.meetup.com/london-kohana" target="_blank">KOnference &#8211; The London Kohana Conference 2010</a></p>
<p><a href="http://www.meetup.com/london-kohana/calendar/12925064/" target="_blank">KOnference &#8211; The London Kohana Conference 2010 Calendar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/evento-konference-kohana-conference-en-londres-el-15-de-mayo-2010.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Php: Kohana 3]El framework Kohana 3 y el MVC</title>
		<link>http://www.ajaxman.net/php-kohana-3el-framework-kohana-3-y-el-mvc.html</link>
		<comments>http://www.ajaxman.net/php-kohana-3el-framework-kohana-3-y-el-mvc.html#comments</comments>
		<pubDate>Thu, 15 Apr 2010 00:27:11 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Manuales]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Ko3]]></category>
		<category><![CDATA[Kohana 3]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=1865</guid>
		<description><![CDATA[<p>Bien después del error que se presento en el penultimo post, y ya resuelto seguimos posteando &#8220;ahora si que voy tendido&#8221;. Yo supongo que ya leyeron el post anterior sobre instalación de Kohana 3, si no este es el link [Framework Kohana 3] Instalando y configurando Kohana 3 #Ko3 Bien teniendo eso, hoy haremos un pequeño [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Bien después del error que se presento en el penultimo post, y ya resuelto seguimos posteando &#8220;ahora si que voy tendido&#8221;.</p>
<p>Yo supongo que ya leyeron el post anterior sobre instalación de Kohana 3, si no este es el link <a href="http://www.ajaxman.net/1854/framework-kohana-3-instalando-y-configurando-kohana-3-ko3/" target="_blank">[Framework Kohana 3] Instalando y configurando Kohana 3 #Ko3</a></p>
<p>Bien teniendo eso, hoy haremos un pequeño ejemplo de MVC, recordemos que el paradigma MVC (Modelo, Vista, Controlador) nos permite desarrollar mejor, mas rápido, organizar nuestro proyecto y hacerlo abstracto.</p>
<p>Lo anterior es porque nos permite programar de la siguiente manera:</p>
<ul>
<li><strong>Modelo</strong>: Capa de datos, la cual se encarga de la petición de datos</li>
<li><strong>Vista</strong>: capa de presentación, es la que se encarga de mostrar el resultado al cliente</li>
<li><strong>Controlador</strong>: capa de negociación, esta se encarga de organizar al información, en otras palabras identifica que es lo que necesitas, pide los datos al modelo y los presenta en la vista.</li>
</ul>
<p>Bien ahora veamos cómo trabaja Kohana 3 con esto</p>
<p>Como podemos ver Kohana consta de 3 carpetas:</p>
<ul>
<li><strong>Application</strong>: es donde estará nuestra aplicación donde tendremos nuestras carpetas de MVC, digamos que es lo publico</li>
<li><strong>Modules</strong>: es donde residen los módulos que le podemos agregar a Kohana por ejemplo la conexion a la base de datos, el ORM(luego hablaremos de este),autenticación etc.</li>
<li><strong>System</strong>: pues como su nombre lo indica es donde está el core del Kohana 3 o el núcleo, este pues casi no hay que tocarlo en la mayoría de proyectos de hecho casi nunca se toca o no debería tocarse.</li>
</ul>
<p>Ahora lo que nos interesa en este caso es la carpeta Application, al abrimos y veremos las siguiente carpetas:</p>
<p><span id="more-1865"></span></p>
<ul>
<li><strong>Cache</strong>: es donde se guardara el cache interno, este se activa muy fácil pero no esta tan eficiente como un verdadero cache.</li>
<li><strong>Clases</strong>: es donde estarán nuestros controladores (C de MVC) y nuestros modelos aquí veremos que hay una carpeta llamada <strong>controller</strong>, ahí hay que crear una carpeta que se llame <strong>model </strong>que servirá para nuestros modelos, y también podemos crear una carpeta <strong>helper </strong>que nos servirá para poner ahí nuestros helpers cuando los creemos.</li>
<li><strong>Config</strong>: esta carpeta no le he tocado, pero por lo que he visto son como configuraciones especiales del website, yo recomiendo no poner nada ahí, hasta ver bien su uso.</li>
<li><strong>Logs</strong>: como su nombre lo indica aquí se guardan logs de los errores de nuestro código.</li>
<li><strong>views</strong>:  si bien esta carpeta regularmente no existe, pero hay que crearla por que es donde estarán nuestras vistas(la capa de presentación) de nuestro proyecto.</li>
</ul>
<p>También veremos que dentro de la carpeta principal <strong>Application </strong>hay un archivo <strong>bootstrap.php</strong> el cual es digamos que como un config y un router a la vez, ya que es donde configuraremos algunas cosas y enrutaremos mediante expresiones regulares(<strong>se parece al settings.py de Django</strong>) a los controladores que deseemos.</p>
<p>A continuación describiré cada una de las partes que conforman el <strong>bootstrap.php</strong></p>
<ul>
<li><strong>date_default_timezone_set(&#8216;America/Chicago&#8217;); </strong>define la zona donde se está ejecutando nuestros script yo le pongo <strong>America/Mexico_city</strong></li>
<li><strong>setlocale(LC_ALL, &#8216;en_US.utf-8&#8242;); </strong>Configuración de la codificación, recomiendo usar UTF-8</li>
<li><strong>spl_autoload_register(array(&#8216;Kohana&#8217;, &#8216;auto_load&#8217;));</strong> Esto es un poco complicado de explicar en un par de líneas(luego me extenderé), pero diremos que con esto se esta cargando Kohana.</li>
<li><strong>ini_set(&#8216;unserialize_callback_func&#8217;, &#8216;spl_autoload_call&#8217;); </strong> Lo mismo que el de arriba, es para que inicialice el autoloader para serializar.</li>
<li><strong>Kohana::init(array(&#8216;base_url&#8217; => &#8216;/kohana/&#8217;));</strong> es donde configuraremos el mod_rewrite (en php, también hay que agregar el htacces), la url de base, el cache interno entre otras.</li>
<li><strong>Kohana::$log->attach(new Kohana_Log_File(APPPATH.&#8217;logs&#8217;));</strong> pues indica donde guardara los logs</li>
<li><strong>Kohana::$config->attach(new Kohana_Config_File);</strong> Configuración de Kohana</li>
<li><strong>Kohana::modules(array( &#8230; )) </strong>Aquí es donde cargaremos los módulos como el ORM y la base de datos, también podemos agregar algunos otros.</li>
<li><strong>Route::set(&#8216;default&#8217;, &#8216;((&lt;controller&gt;/(/&lt;action&gt;)))&#8217;) ->defaults(array( &#8217;controller&#8217; =>  &#8217;welcome&#8217;,'action&#8217;     => &#8216;index&#8217;,));</strong> Este por el momento diremos que nos indica a que controlador ira por default en este caso se llama welcome, y método index, luego veremos cómo configurarlo bien.</li>
<li>e<strong>cho Request::instance()->execute() ->send_headers() ->response</strong>; Esto hasta ahorita no lo he tocado pero es para que se ejecute el sistema.</li>
</ul>
<p>Bien creo que por hoy es suficiente, si queremos empezar a probar les recomiendo que pongan controladores copiando el código del controlador welcome.</p>
<p>Perdonen que este todo amontonado pero no hay mucho tiempo para formatear bien el texto, esto es solo para que se den una idea, lo mejor el abrir el <strong>bootstrap.php</strong> y ver el contenido.</p>
<p>El capitulo que sigue veremos un ejemplo de un MVC con ORM (haber si me alcanza el tiempo si no por separado).</p>
<p>Saludos y buen codding&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/php-kohana-3el-framework-kohana-3-y-el-mvc.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>[Certificación PHP5] Analizando la sintaxis de un script Php</title>
		<link>http://www.ajaxman.net/certificacion-php5-analizando-la-sintaxis-de-un-script-php.html</link>
		<comments>http://www.ajaxman.net/certificacion-php5-analizando-la-sintaxis-de-un-script-php.html#comments</comments>
		<pubDate>Wed, 24 Feb 2010 05:54:16 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Certificación]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[PHP 5 Certificación]]></category>
		<category><![CDATA[Php5]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=1843</guid>
		<description><![CDATA[<p>Esta es la segunda entrega de estos manuales, como verán pues ya estoy mas constante y créanme que aunque quisiera postear diario no se puede. Y últimamente he estado un poco atareado con aprender mas php y entender por fin Python, pero bueno al tema. Bien tenemos que un script Php, es aquel que cuando [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<div id="attachment_1845" class="wp-caption alignleft" style="width: 160px"><img class="size-thumbnail wp-image-1845 " src="http://www.ajaxman.net/wp-content/uploads/2010/02/zce-150x150.gif" alt="PHP 5 Certificación" width="150" height="150" /><p class="wp-caption-text">PHP 5 Certificación</p></div>
<p>Esta es la segunda entrega de estos manuales, como verán pues ya estoy mas constante y créanme que aunque quisiera postear diario no se puede.</p>
<p>Y últimamente he estado un poco atareado con aprender mas php y entender por fin Python, pero bueno al tema.</p>
<p>Bien tenemos que un script Php, es aquel que cuando se ejecuta en un servidor (Esto es opcional) nos devuelve algo, veamos el siguiente script y posteriormente veremos cada una de sus partes, si estas aprendiendo apenas Php, no te preocupes de no entender nada, es solo un código de muestra el cual solo nos va a servir para ver cada una de las partes que integran un script básico.</p>
<p></p><pre class="crayon-plain-tag">$castVariable = 1;

// Comentario de una sola linea

# Otro tipo de comentario de una sola linea

/*
 Comentario
  multilinea

 */

/**
 * Comentario de documentacion PHPDoc
 *
 * En el cual podemos hacer mas cosas con @ param
 *
 * @method getUSers
 */

{

 f();
}

echo &amp;quot;Hola mundo&amp;quot;;</pre><p></p>
<p>Bien un poco grande el código pero creo que nos servirá de ejemplo, así que vayamos línea a línea identificando cada uno de los componentes de php</p>
<p><strong>Linea 1</strong>: Declaración de una variable, esto es opcional ya que en Php, podemos usar cualquier variable cuando queramos, aunque el declarar un variable nos permite tener un código mejor organizado</p>
<p><strong>Linea 3</strong>: Básicamente es un comentario, el cual no se lo leerá Php y solo sirve para que lo veamos nosotros como desarrolladores Ojo el comentario termina con el salto de línea</p>
<p><strong>Linea 5</strong>: Lo mismo que el punto anterior salvo que en vez de Doble diagonal se usa el símbolo de numero o gato #</p>
<p><strong>Lineas 7 a 11</strong>: Este es un comentario que como su nombre lo indica es multilínea inicia con /* y termina con */ y no con salto de línea como los anteriores</p>
<p><strong>Linea 13 a 19</strong>: Este comentario es para generar documentación PHPDoc desde un comentario, la cual requiere cierta sintaxis, PhpDoc lo veremos mas adelante.</p>
<p><strong>Linea 21 a 24</strong>: inicio de un bloque Php el cual inicia con llave { y termina en llave }se usa para agrupar codigo php el cual puede derivar de una condición o  de una función.</p>
<p>Y la ultima Línea es donde se usa el constructor &#8220;echo&#8221;,este constructor permite mostrar un texto en pantalla, posteriormente veremos mas constructores.</p>
<p>Si ven esto no es gran cosa para aprender, pero es conveniente ir identificando cada uno de los elementos del lenguaje para que no se nos pase nada durante el examen de certificación.</p>
<p>Saludos</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/certificacion-php5-analizando-la-sintaxis-de-un-script-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Aplicaciones Web] Sketchpad, el paint desarrollado en HTML5</title>
		<link>http://www.ajaxman.net/aplicaciones-web-sketchpad-el-paint-desarrollado-en-html5.html</link>
		<comments>http://www.ajaxman.net/aplicaciones-web-sketchpad-el-paint-desarrollado-en-html5.html#comments</comments>
		<pubDate>Wed, 10 Feb 2010 16:11:56 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Sketchpad]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=1819</guid>
		<description><![CDATA[<p>Si bien el HTML apenas esta llegando, ya podemos empezar a disfrutar de sus increibles características. Y que mejor forma que hacerlo con el Sketchpad, un &#8220;paint&#8221; online el cual esta desarrollando usando las características del HTML5 y Javascript (Claro). Es muy potente y no traba la maquina, cualquiera que lo viera diría que es [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Si bien el HTML apenas esta llegando, ya podemos empezar a disfrutar de sus increibles características.</p>
<p>Y que mejor forma que hacerlo con el Sketchpad, un &#8220;paint&#8221; online el cual esta desarrollando usando las características del HTML5 y Javascript (Claro).</p>
<div id="attachment_1820" class="wp-caption aligncenter" style="width: 624px"><a href="http://www.ajaxman.net/wp-content/uploads/2010/02/Sketchpad-Online-Paint-Drawing.png"><img class="size-full wp-image-1820 " title="Sketchpad Online Paint Drawing" src="http://www.ajaxman.net/wp-content/uploads/2010/02/Sketchpad-Online-Paint-Drawing.png" alt="Sketchpad Online Paint Drawing" width="614" height="384" /></a><p class="wp-caption-text">Sketchpad Online Paint Drawing</p></div>
<p>Es muy potente y no traba la maquina, cualquiera que lo viera diría que es Flash, pero no es así, creo que sus días de Flash/Flex (solo en aplicaciones Web &#8211; no banners) están contados, ya que esta tecnología es mejor, tanto por velocidad, por que será un estándar (escuchaste Microsoft no salgas con tus pen&#8230; &#8220;otros Estándares&#8221;) y no necesitas instalar ningún plugin ni nada, salvo que tengas activado Javascript y que tu navegador lo soporte, cosa que en este año(2010), ya es muy prehistórico hablar de navegadores sin soporte de Javascript.</p>
<p>Link de SketchPad | <a href="http://mugtug.com/sketchpad/" target="_blank">http://mugtug.com/sketchpad/</a><br />
Vía | <a href="http://www.anieto2k.com/2010/02/10/sketchpad-paint-online-con-tecnologia-html5/">Sketchpad, paint online con tecnología HTML5</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/aplicaciones-web-sketchpad-el-paint-desarrollado-en-html5.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Programación] El top de los lenguajes mas utilizados</title>
		<link>http://www.ajaxman.net/programacion-el-top-de-los-lenguajes-mas-utilizados.html</link>
		<comments>http://www.ajaxman.net/programacion-el-top-de-los-lenguajes-mas-utilizados.html#comments</comments>
		<pubDate>Thu, 16 Jul 2009 22:10:00 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Lenguajes de Programación]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=1623</guid>
		<description><![CDATA[<p>Como fiel defensor de Php, me da mucho gusto que en el top de los lenguajes mas utilizados realizado por TIOBE Programming Community, nuestro querido lenguaje esté en el lugar numero 4(comparado con el 5 que tenia el año pasado). Algo que podemos destacar (lo comentan en barrapunto)es que Java ha tenido un fuerte descenso, [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Como fiel defensor de Php, me da mucho gusto que en el top de los lenguajes mas utilizados realizado por TIOBE Programming Community, nuestro querido lenguaje esté en  el lugar numero 4(comparado con el 5 que tenia el año pasado).</p>
<p>Algo que podemos destacar (lo comentan en barrapunto)es que Java ha tenido un fuerte descenso, y C sigue creciendo, también otro que esta cayendo muy fuerte es Perl, claro que hay muchos cambios mas, miren la tabla.</p>
<style type="text/css">
table.top_lang {
	border-width: thin thin thin thin;
	border-spacing: 1px;
	border-style: outset outset outset outset;
	border-color: gray gray gray gray;
	border-collapse: collapse;
	background-color: white;
}
table.top_lang th {
	border-width: 1px 1px 1px 1px;
	padding: 1px 1px 1px 1px;
	border-style: inset inset inset inset;
	border-color: gray gray gray gray;
	background-color: white;
	-moz-border-radius: 0px 0px 0px 0px;
}
table..top_lang td {
	border-width: 1px 1px 1px 1px;
	padding: 1px 1px 1px 1px;
	border-style: inset inset inset inset;
	border-color: gray gray gray gray;
	background-color: white;
	-moz-border-radius: 0px 0px 0px 0px;
}
</style>
<table border="1" align="center" id="Table2" bordercolorlight="#c0c0c0" bordercolordark="#003366"  class="top_lang">
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col />
<col align="center"/>
<col align="center"/>
<col align="center"/>
        </colgroup>
<tbody>
<tr>
<th align="center" nowrap="">Position<br />Jul 2009</th>
<th align="center" nowrap="">Position<br />Jul 2008</th>
<th align="center" nowrap="">Delta in Position</th>
<th align="center" nowrap="">Programming Language</th>
<th align="center" nowrap="">Ratings<br />Jul 2009</th>
<th align="center" nowrap="">Delta <br />Jul 2008</th>
<th align="center" nowrap="">Status</th>
</tr>
<tr height="25">
<td align="center">1</td>
<td align="center">1</td>
<td align="center"><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/same.gif"/></td>
<td><a href="/content/paperinfo/tpci/Java.html">Java</a></td>
<td align="center">20.452%</td>
<td align="center">-0.89%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">2</td>
<td align="center">2</td>
<td align="center"><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/same.gif"/></td>
<td><a href="/content/paperinfo/tpci/C.html">C</a></td>
<td align="center">17.319%</td>
<td align="center">+1.37%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">3</td>
<td align="center">3</td>
<td align="center"><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/same.gif"/></td>
<td><a href="/content/paperinfo/tpci/C__.html">C++</a></td>
<td align="center">10.419%</td>
<td align="center">-0.27%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">4</td>
<td align="center">5</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/>  </td>
<td><a href="/content/paperinfo/tpci/PHP.html">PHP</a></td>
<td align="center">9.269%</td>
<td align="center">-0.26%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">5</td>
<td align="center">4</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/>        </td>
<td><a href="/content/paperinfo/tpci/(Visual)_Basic.html">(Visual) Basic</a></td>
<td align="center">7.789%</td>
<td align="center">-2.66%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">6</td>
<td align="center">8</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/>    </td>
<td><a href="/content/paperinfo/tpci/C_.html">C#</a></td>
<td align="center">4.540%</td>
<td align="center">+0.54%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">7</td>
<td align="center">7</td>
<td align="center"><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/same.gif"/></td>
<td><a href="/content/paperinfo/tpci/Python.html">Python</a></td>
<td align="center">4.435%</td>
<td align="center">-0.54%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">8</td>
<td align="center">6</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/>        </td>
<td><a href="/content/paperinfo/tpci/Perl.html">Perl</a></td>
<td align="center">4.200%</td>
<td align="center">-0.93%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">9</td>
<td align="center">9</td>
<td align="center"><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/same.gif"/></td>
<td><a href="/content/paperinfo/tpci/JavaScript.html">JavaScript</a></td>
<td align="center">3.513%</td>
<td align="center">+0.76%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">10</td>
<td align="center">10</td>
<td align="center"><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/same.gif"/></td>
<td><a href="/content/paperinfo/tpci/Ruby.html">Ruby</a></td>
<td align="center">2.567%</td>
<td align="center">-0.17%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">11</td>
<td align="center">11</td>
<td align="center"><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/same.gif"/></td>
<td><a href="/content/paperinfo/tpci/Delphi.html">Delphi</a></td>
<td align="center">1.998%</td>
<td align="center">-0.01%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">12</td>
<td align="center">13</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/>  </td>
<td><a href="/content/paperinfo/tpci/PL_SQL.html">PL/SQL</a></td>
<td align="center">0.891%</td>
<td align="center">+0.16%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">13</td>
<td align="center">14</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/>  </td>
<td><a href="/content/paperinfo/tpci/SAS.html">SAS</a></td>
<td align="center">0.794%</td>
<td align="center">+0.17%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">14</td>
<td align="center">24</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/>    </td>
<td><a href="/content/paperinfo/tpci/RPG_(OS_400).html">RPG (OS/400)</a></td>
<td align="center">0.740%</td>
<td align="center">+0.41%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">15</td>
<td align="center">16</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/>  </td>
<td><a href="/content/paperinfo/tpci/Pascal.html">Pascal</a></td>
<td align="center">0.707%</td>
<td align="center">+0.27%</td>
<td align="left">  A</td>
</tr>
<tr height="25">
<td align="center">16</td>
<td align="center">26</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/>    </td>
<td><a href="/content/paperinfo/tpci/ABAP.html">ABAP</a></td>
<td align="center">0.703%</td>
<td align="center">+0.44%</td>
<td align="left">  A-</td>
</tr>
<tr height="25">
<td align="center">17</td>
<td align="center">20</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/>      </td>
<td><a href="/content/paperinfo/tpci/Lisp_Scheme.html">Lisp/Scheme</a></td>
<td align="center">0.607%</td>
<td align="center">+0.22%</td>
<td align="left">  B</td>
</tr>
<tr height="25">
<td align="center">18</td>
<td align="center">12</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/>        </td>
<td><a href="/content/paperinfo/tpci/D.html">D</a></td>
<td align="center">0.593%</td>
<td align="center">-0.63%</td>
<td align="left">  B</td>
</tr>
<tr height="25">
<td align="center">19</td>
<td align="center">18</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/down.gif"/>        </td>
<td><a href="/content/paperinfo/tpci/Lua.html">Lua</a></td>
<td align="center">0.531%</td>
<td align="center">+0.12%</td>
<td align="left">  B</td>
</tr>
<tr height="25">
<td align="center">20</td>
<td align="center">27</td>
<td align="center">
<img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/><img border="0" src="http://www.ajaxman.net/wp-content/uploads/2009/07/up.gif"/>      </td>
<td><a href="/content/paperinfo/tpci/MATLAB.html">MATLAB</a></td>
<td align="center">0.512%</td>
<td align="center">+0.26%</td>
<td align="left">  B</td>
</tr>
</tbody>
</table>
<p>Si bien este esto es algo basado en cálculos, y no es 100% exacto podemos ir viendo la tendencia en cuanto a el uso de lenguajes programación se refiere.</p>
<p>Y para terminar la pregunta del millón ¿Por que Php sigue siendo tan mal pagado (sobre todo en México)?<br />
La respuesta podría ser, por que es fácil, pero la duda surge por lo siguiente:</p>
<p>Si necesitas una web que para un portal , que tenga usuarios, panel de control, si contratas a alguien que lo haga en Java le pagarías lo triple que si lo hace con Php, ¿por qué? si se obtiene lo mismo!.</p>
<p>¿Ustedes que opinan? por que sucede esto.</p>
<p>Me entere por Barrapunto:  <a href="http://barrapunto.com/articles/09/07/14/1534252.shtml" target="_blank">Top 20 de lenguajes de programación actualizado a Julio de 2009 </a><br />
El original esta aquí con mas datos (en ingles):  <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html" target="_blank">TIOBE Programming Community Index for July 2009</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/programacion-el-top-de-los-lenguajes-mas-utilizados.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Noticias] Songbird 1.1 ha sido Lanzado</title>
		<link>http://www.ajaxman.net/noticias-songbird-11-ha-sido-lanzado.html</link>
		<comments>http://www.ajaxman.net/noticias-songbird-11-ha-sido-lanzado.html#comments</comments>
		<pubDate>Thu, 12 Mar 2009 23:12:09 +0000</pubDate>
		<dc:creator>ajaxman</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Songbird]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Lanzamiento]]></category>
		<category><![CDATA[Songbird 1.1]]></category>

		<guid isPermaLink="false">http://www.ajaxman.net/?p=1483</guid>
		<description><![CDATA[<p>Pues si, resulta que acabo de recibir un mail donde me avisan que la nueva el reproductor de audio Songbird a lanzado su versión 1.1. De echo he seguido muy cerca el desarrollo de este software ya que se me hace una propuesta muy interesante en este mundo donde la mayoría usa iTunes. Como es [...]</p>
 ]]></description>
			<content:encoded><![CDATA[<p>Pues si, resulta que acabo de recibir un mail donde me avisan que la nueva el reproductor de audio <strong>Songbird</strong> a lanzado su versión 1.1.</p>
<p>De echo he seguido muy cerca el desarrollo de este software ya que se me hace una propuesta muy interesante en este mundo donde la mayoría usa <strong>iTunes</strong>.</p>
<div id="attachment_1484" class="wp-caption aligncenter" style="width: 219px"><img class="size-full wp-image-1484" title="Songbird 1.1" src="http://www.ajaxman.net/wp-content/uploads/2009/03/tightening-screwdriver-standing.png" alt="Songbird 1.1" width="209" height="262" /><p class="wp-caption-text">Songbird 1.1</p></div>
<p>Como es de esperarse nos ofrece nuevas y mejores funcionalidades, entre las que destacan.</p>
<ul>
<li>Obtención de álbumes en demanda.
<ul>
<li>Esta opción si no me equivoco permite descargar imágenes de los albums, los cuales serán desde <strong>Last.fm</strong>, pero se pueden incorporar otras fuentes mediante <strong>addons</strong>.</li>
</ul>
</li>
<li>Ver carpetas
<ul>
<li>Con esta opción podemos ver nuestras carpetas de forma de jerarquía y esta vista esta sincronizada con la biblioteca de <strong>Songbird</strong>.</li>
</ul>
</li>
<li>Mejor clasificación
<ul>
<li>Ahora <strong>Songbird</strong> posee, soporte para <strong>Unicode</strong>, ademas de que organiza mejor las pistas, mediante el manejo y el uso de artículos, en el titulo.</li>
</ul>
</li>
<li>y otros como</li>
<li>Replay gain support (normalization)</li>
<li>MTP Device Support</li>
<li>7digital MP3 Store (Beta).</li>
</ul>
<p>La lista como vemos es extensa, pero creo que lo mas importante, es que sigue la evolución de dicho software y creo que depende de nostros darle propaganda para que se fortalezca cada día mas.</p>
<p>En hora buena por Songbird y su equipo.</p>
<p>Mas información en | <a href="http://getsongbird.com/" target="_blank">Songbird</a><br />
Descarga en <strong>tar.gz</strong> para Linux | <a href="http://download.songbirdnest.com/installer/linux/i686/Songbird_1.1.1-1018_linux-i686.tar.gz" target="_blank">Descargar  Songbird</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajaxman.net/noticias-songbird-11-ha-sido-lanzado.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.ajaxman.net @ 2012-05-21 20:56:12 -->
