<?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>Indalcasa &#187; PHP</title>
	<atom:link href="http://www.indalcasa.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.indalcasa.com</link>
	<description>Un blog de tecnologia</description>
	<lastBuildDate>Tue, 03 Jan 2012 15:14:37 +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>Publicada la versión 0.2 de puntoengine</title>
		<link>http://www.indalcasa.com/programacion/php/publicada-la-version-0-2-de-puntoengine/</link>
		<comments>http://www.indalcasa.com/programacion/php/publicada-la-version-0-2-de-puntoengine/#comments</comments>
		<pubDate>Sun, 03 Oct 2010 13:02:38 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[proyectos]]></category>
		<category><![CDATA[puntoengine]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=656</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/php/publicada-la-version-0-2-de-puntoengine/' addthis:title='Publicada la versión 0.2 de puntoengine ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>He publicado la nueva versión de Punto Engine PHP, o PEP en su versión 0.2. Esta versión trae importantes mejoras con respecto a la versión anterior, ya que administra mucho mejor el sistema de templates para poder hacer páginas dinámicas mucho mas fácil y rápido. Entre las mejoras cabe destacar: Añadido un archivo de changelog [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/php/publicada-la-version-0-2-de-puntoengine/' addthis:title='Publicada la versión 0.2 de puntoengine ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/php/publicada-la-version-0-2-de-puntoengine/' addthis:title='Publicada la versión 0.2 de puntoengine ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>He publicado la nueva versión de <strong>Punto Engine PHP</strong>, o <strong>PEP</strong> en su <strong>versión 0.2</strong>. Esta versión trae importantes mejoras con respecto a la versión anterior, ya que administra mucho mejor el <strong>sistema de templates</strong> para poder hacer <strong>páginas dinámicas</strong> mucho mas fácil y rápido. Entre las mejoras cabe destacar:</p>
<ul>
<li>Añadido un archivo de <strong>changelog</strong> para poder ver las modificaciones.</li>
<li>Ahora el <strong>Kernel</strong> permite recuperar la ruta virtual (la que accede desde el navegador) aparte de la ya implementada ruta física.</li>
<li>Los <strong>Servlet</strong> tienen ahora un atributo de url para poder realizar controles si fuera necesario.</li>
<li>En el web.xml se puede configurar el modo debug para poder tener una traza mas detalla del error que se produjo.</li>
<li>En el <strong>Servlet</strong> se ha añadido un atributo debug para en caso de desarrollo, poder realizar trazas si se desea.</li>
<li>El metodo <strong>SendRedirect</strong> para redireccionar la pagina hacia otra, ahora tiene una funcionalidad como <strong>.Net</strong> donde si añadimos la clave "~/" al principio de la url, esta sera sustituida por la url del proyecto.</li>
<li>Ahora los <strong>Servlets</strong> pueden tener una <strong>MasterPage</strong> para tener un template base desde el que cargar el contenido.</li>
<li>En los <strong>templates</strong>, si ponemos la clave "~/" en un enlace, css o similar, sustituira esta por la ruta del proyecto.</li>
<li>Se han cambiado los mensajes que aun aparecian en los errores de "IDCS Server" por <strong>"Punto Engine Server"</strong>.</li>
<li>Se ha cambiado el HomeController por TestController y se han añadido diferentes funcionalidades de <strong>MasterPage</strong> y diferentes ejemplos a mostrar para ver su funcionamiento.</li>
<li>Se ha corregido un error que provocaba que cuando se lanzaba una excepción no fatal, se seguian mostrando otros errores encadenados.</li>
<li>Se ha borrado temporalmente el acceso mediante web.xml al PepAdmin ya que es aun no es funcional.</li>
</ul>
<p>Las mejoras de esta versión son bastante importantes y permiten un desarrollo mas fluido de las páginas. Para quien quiera descargarlo puede hacerlo entrando en la web del <a href="puntoengine.googlecode.com">proyecto puntoengine</a>.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/php/publicada-la-version-0-2-de-puntoengine/' addthis:title='Publicada la versión 0.2 de puntoengine ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/php/publicada-la-version-0-2-de-puntoengine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Publicada la version 0.1.1 de puntoengine</title>
		<link>http://www.indalcasa.com/programacion/php/publicada-la-version-0-1-1-de-puntoengine/</link>
		<comments>http://www.indalcasa.com/programacion/php/publicada-la-version-0-1-1-de-puntoengine/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 14:43:48 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[El blog]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[proyectos]]></category>
		<category><![CDATA[puntoengine]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=649</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/php/publicada-la-version-0-1-1-de-puntoengine/' addthis:title='Publicada la version 0.1.1 de puntoengine ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>Ayer publiqué la versión 0.1.1 de puntoengine. Puntoengine o Punto Engine PHP acortado PEP, es un framework en fase alfa para PHP del tipo MVC o Modelo Vista Controlador. Este framework basa su funcionalidad en una mezcla de diferentes frameworks web como son ASP.Net, Java Servlets y PHP en un antiguo framework propio llamado RLM [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/php/publicada-la-version-0-1-1-de-puntoengine/' addthis:title='Publicada la version 0.1.1 de puntoengine ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/php/publicada-la-version-0-1-1-de-puntoengine/' addthis:title='Publicada la version 0.1.1 de puntoengine ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>Ayer publiqué la <strong>versión 0.1.1 de puntoengine</strong>. <strong>Puntoengine</strong> o <strong>Punto Engine PHP</strong> acortado <strong>PEP</strong>, es un <strong>framework</strong> en fase alfa para <strong>PHP</strong> del tipo <strong>MVC</strong> o <strong>Modelo Vista Controlador</strong>. Este <strong>framework</strong> basa su funcionalidad en una mezcla de diferentes <strong>frameworks web</strong> como son <strong>ASP.Net</strong>, <strong>Java Servlets</strong> y <strong>PHP</strong> en un antiguo <strong>framework</strong> propio llamado <strong>RLM Engine</strong>. Actualmente, pese a estar en una <strong>fase de desarrollo</strong> muy verde, pero ya es completamente operativo y se pueden <strong>construir webs</strong> con un <strong>sistema de Servlets</strong> como se haría una <strong>web en Java</strong>. La <strong>versión 0.1.1 en su revisión 7 de puntoengine</strong> se trata de la <strong>versión</strong> ya publicada <strong>0.1.1 de puntoengine</strong> pero con la <strong>documentación completa del código</strong>, lo que facilita a quien quiera <strong>ver y estudiar el código</strong> y su funcionamiento, que sea mas fácil de seguir. Para la <strong>versión 0.2 de puntoengine</strong> se espera la <strong>creación de un administrador</strong>, actualmente en <strong>fase de desarrollo</strong> para poder gestionar entre otras cosas los <strong>Servlets instalados</strong> y la preparación para <strong>futuros plugins</strong> como puede ser el <strong>sistema de CMS</strong>.</p>
<p>Este es un <strong>proyecto a largo plazo </strong>y muy ambicioso que espero llegue lejos y pueda utilizarlo para <strong>construir diversas webs</strong> que tengo en mente. Según un <strong>calculo</strong> realizado siguiendo el <strong>sistema COCOMO</strong>, actualmente el <strong>proyecto</strong> con casi 1500 lineas de código, tendría un coste privado de unos 6.000€. Para el que quiera echar un vistazo e incluso <strong>colaborar con el desarrollo, documentación o aportando incidencias</strong>, puede hacerlo en la <a href="http://code.google.com/p/puntoengine/"><strong>web del proyecto puntoengine</strong></a>.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/php/publicada-la-version-0-1-1-de-puntoengine/' addthis:title='Publicada la version 0.1.1 de puntoengine ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/php/publicada-la-version-0-1-1-de-puntoengine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mi maquina &#8211; Ubuntu Desktop 10.04</title>
		<link>http://www.indalcasa.com/linux/mi-maquina-ubuntu-desktop-10-04/</link>
		<comments>http://www.indalcasa.com/linux/mi-maquina-ubuntu-desktop-10-04/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 00:00:37 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Otras cosas]]></category>
		<category><![CDATA[Trabajo]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=295</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/linux/mi-maquina-ubuntu-desktop-10-04/' addthis:title='Mi maquina &#8211; Ubuntu Desktop 10.04 ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>Estoy preparandome para mi nueva etapa de programador freelance y aparte de las ganas, se necesita un buen equipo con el que poder trabajar. Tengo varias opciones, pero me he decantado por instalar un Ubuntu en el pc. Por que un Ubuntu? sencillo, Ubuntu es una distribución libre de Linux, algunos dicen que es el el Windows [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/linux/mi-maquina-ubuntu-desktop-10-04/' addthis:title='Mi maquina &#8211; Ubuntu Desktop 10.04 ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/linux/mi-maquina-ubuntu-desktop-10-04/' addthis:title='Mi maquina &#8211; Ubuntu Desktop 10.04 ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>Estoy preparandome para mi nueva etapa de programador freelance y aparte de las ganas, se necesita un buen equipo con el que poder trabajar. Tengo varias opciones, pero me he decantado por instalar un <strong>Ubuntu</strong> en el pc. Por que un <strong>Ubuntu</strong>? sencillo, <strong>Ubuntu es una distribución libre de Linux</strong>, algunos dicen que es el el <strong>Windows de Linux</strong>. La realidad es que <strong>Ubuntu</strong> es, creo yo, es la distribución mas utilizada de Linux, esta basada en Debian y tiene una alta cantidad de paquetes de aplicaciones, de drivers, documentación, soporte, etc. aparte de todo esto, me permite trabajar con infinidad de tecnologías, que en principio son comunes, por ejemplo puedo trabajar con .net, php y java, que vienen siendo las mas utilizadas.</p>
<p>Para poder trabajar en el <strong>desarrollo web</strong> son necesarios 4 programas esenciales:</p>
<ul>
<li><strong>Monodevelop</strong>: <strong>ide</strong> de desarrollo para <strong>.net</strong> en general, tanto de aplicaciones de escritorio con <strong>gtksharp</strong>, como de <strong>asp.net</strong></li>
<li><strong>Chrome</strong>: navegador rápido, seguro y el inspector me gusta mas (que no digo que sea mejor) que el <strong>firebug de firefox</strong></li>
<li><strong>Firework</strong>: programa de <strong>edición gráfica vectorial</strong>, ideal para dar esos arreglillos a la web con 4 imágenes rápidas</li>
<li><strong>Netbeans</strong>: por ser el ultimo no es el menos importante. Este ide es muy potente y permite trabajar con proyectos en <strong>c</strong>, <strong>c++</strong>, <strong>java</strong>, <strong>php</strong>, <strong>python</strong>, <strong>ruby</strong>, cosa me deja casi todo cubierto menos <strong>.net</strong> que lo cubre <strong>monodevelop</strong></li>
</ul>
<p>Con esto se puede trabajar perfectamente para realizar casi cualquier web en casi cualquier lenguaje y situación y realizar algún apaño rápido. Ademas de esto, le sumamos a <strong>Ubuntu</strong> configurado con <strong>Compiz</strong>, con los <strong>4 escritorios en cubo</strong>, con buenísimos efectos 3d y <strong>cairo-dock</strong> para que funcione de manera similar a mac, tenemos un gran equipo de trabajo, liviano pero bonito, potente y gratuito y lo mejor de todo, compatible con tecnologías de <strong>Windows</strong> y <strong>Mac</strong>.</p>
<p>Os dejo unas capturas de pantalla de como se ve, aunque no han salido muy bien.</p>
<p><a href="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo.png"><img class="size-medium wp-image-298 alignleft" title="Cairo-Dock" src="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-300x225.png" alt="" width="270" height="203" /></a><a href="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-3.png"><img class="size-medium wp-image-301 alignright" title="Monodevelop" src="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-3-300x225.png" alt="" width="270" height="203" /></a><a href="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-2.png"><img class="size-medium wp-image-300 alignleft" title="Netbeans" src="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-2-300x225.png" alt="" width="270" height="203" /></a><a href="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-1.png"><img class="size-medium wp-image-299 alignright" title="Fireworks" src="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-1-300x225.png" alt="" width="270" height="203" /></a><a href="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-4.png"><img class="size-medium wp-image-306 alignleft" title="Cubo" src="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-4-300x225.png" alt="" width="270" height="203" /></a><a href="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-5.png"><img class="size-medium wp-image-307 alignright" title="Cubo con video" src="http://www.indalcasa.com/wp-content/uploads/2010/07/Pantallazo-5-300x225.png" alt="" width="270" height="203" /></a></p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/linux/mi-maquina-ubuntu-desktop-10-04/' addthis:title='Mi maquina &#8211; Ubuntu Desktop 10.04 ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/linux/mi-maquina-ubuntu-desktop-10-04/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mac Os X con PHP y Apache</title>
		<link>http://www.indalcasa.com/programacion/mac-os-x-con-php-y-apache/</link>
		<comments>http://www.indalcasa.com/programacion/mac-os-x-con-php-y-apache/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 11:07:39 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac OS]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[MacBook]]></category>
		<category><![CDATA[MacBookPro]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=162</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/mac-os-x-con-php-y-apache/' addthis:title='Mac Os X con PHP y Apache ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>Como buen desarrollador web y acostumbrándome poco a poco al uso de Mac OS X, me he decidido a ponerme de lleno con el juego web que estoy desarrollando. Para hacer esto tengo que instalar o debería de instalar primero un IDE para el desarrollo, luego Apache y PHP, la base de datos no porque [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/mac-os-x-con-php-y-apache/' addthis:title='Mac Os X con PHP y Apache ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/mac-os-x-con-php-y-apache/' addthis:title='Mac Os X con PHP y Apache ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>Como buen desarrollador web y acostumbrándome poco a poco al uso de <strong>Mac OS X</strong>, me he decidido a ponerme de lleno con el juego web que estoy desarrollando. Para hacer esto tengo que instalar o debería de instalar primero un <strong>IDE para el desarrollo</strong>, luego <strong>Apache</strong> y <strong>PHP</strong>, la base de datos no porque utilizo la de mi hosting y así evitar ciertos pasos que de momento y dado que esta en una fase alfa, me lo puedo ahorrar.</p>
<p>Como <strong>IDE</strong> necesito uno que tenga <strong>Intellisense</strong> (que autocomplete código) que funcione bien y reconozca todo, tanto variables y funciones, como clases, herencias, métodos estáticos, declaración de tipo de objeto por parámetro a un método, etc. por esto solo conocía 2, el <strong>Zend Studio</strong> que esta muy bien pero también es de pago y no barato precisamente y un poco lento, pero con mi ordenador no creo que hubiera problemas. El otro <strong>IDE es el Eclipse</strong> que aunque me suele consumir unos 400MB de RAM al tener 4GB no habría problema y es bastante completo y rápido, además de completar con muchos plugins que tiene el <strong>Eclipse</strong>. Por ultimo y de casualidad he descubierto que han terminado el <strong>plugin de NetBeans</strong> para usarlo como <strong>IDE de PHP</strong> y la verdad es que para mi gusto es el mejor, ya que es muy rápido, consume muy poco, tiene implementado todo lo que necesito en un bloque muy solido (no como <strong>Eclipse</strong> que tiene plugins que no terminan de encajar entre ellos) y lo mejor de todo, que para mi gusto y como <strong>IDE</strong>, me gusta mucho el <strong>NetBeans</strong> y su sistema de organización. Así que por esto me he quedado con <strong>NetBeans como IDE de PHP</strong>.</p>
<p>Una vez esta el <strong>IDE</strong> instalado, necesito el <strong>motor PHP</strong> y el <strong>servidor web Apache</strong>. Buscando en el disco duro encuentro que hay referencias a <strong>Apache</strong> y en la conflagración de sistema, hay un método de compartir que se llama <strong>"Compartir web"</strong>, que de arrancarlo lo que hacemos es poner en marcha el servicio de <strong>Apache2</strong>. Ahora nos toca <strong>PHP</strong>, que para mi sorpresa también tiene viene <strong>instalado en Mac Os X por defecto</strong>, lo único que tenemos que hacer es descomentar la linea en la que <strong>carga el modulo de PHP</strong> y reiniciar <strong>Apache</strong> y ya tenemos todo listo y configurado para trabajar.</p>
<p>La verdad es una sorpresa encontrarme con <strong>Java</strong> y <strong>PHP</strong> y <strong>Apache</strong> ya instalado, algo que nos ahorra mucho tiempo a la hora de instalar todo lo necesario para trabajar</p>
<p>Por ultimo comentar que lamentablemente <strong>MySQL</strong> si deberemos de instalarla, aunque es mas sencillo que instalar que en <strong>Windows</strong> por lo que tardaremos lo que tardaremos en bajar el archivo de <strong>MySQL</strong>, hacer doble click y ejecutar los 2 o 3 archivos que lleva en su interior.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/mac-os-x-con-php-y-apache/' addthis:title='Mac Os X con PHP y Apache ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/mac-os-x-con-php-y-apache/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Controlar errores no controlados con C#</title>
		<link>http://www.indalcasa.com/programacion/dotnet-csharp/controlar-errores-no-controlados-con-c/</link>
		<comments>http://www.indalcasa.com/programacion/dotnet-csharp/controlar-errores-no-controlados-con-c/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 17:58:12 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[.Net (C#)]]></category>
		<category><![CDATA[Mono (C#)]]></category>
		<category><![CDATA[Aplicación]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[catch]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Exception]]></category>
		<category><![CDATA[Handler]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ThreadException]]></category>
		<category><![CDATA[try]]></category>
		<category><![CDATA[try catch]]></category>

		<guid isPermaLink="false">http://84.20.10.74/~indalcas/?p=20</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/dotnet-csharp/controlar-errores-no-controlados-con-c/' addthis:title='Controlar errores no controlados con C# ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>Algo que me gusta de PHP es su control de errores, ya que a pesar de no tener un tipo de error común, sino que tenemos que luchar contra errores y excepciones, dispone de dos funciones para controlaras como set_error_handler y set_exception_handler. Cuando desarrollo aplicaciones en C# echaba de menos estos algún método similar para [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/dotnet-csharp/controlar-errores-no-controlados-con-c/' addthis:title='Controlar errores no controlados con C# ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/dotnet-csharp/controlar-errores-no-controlados-con-c/' addthis:title='Controlar errores no controlados con C# ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>Algo que me gusta de <strong>PHP</strong> es su control de errores, ya que a pesar de no tener un tipo de error común, sino que tenemos que luchar contra errores y excepciones, dispone de dos funciones para controlaras como <strong>set_error_handler</strong> y <strong>set_exception_handler</strong>.</p>
<p>Cuando desarrollo aplicaciones en <strong>C#</strong> echaba de menos estos algún método similar para capturar excepciones, probé varias cosas lógicas, entre ellas antes de hacer nuestro <strong>Application.Run</strong>, englobarlo todo dentro de un <strong>try</strong> y <strong>catch</strong> al siguiente estilo:</p>
<blockquote>
<pre class="csharp"><span style="color: #0600FF;">try</span> <span style="color: #000000;">&#123;</span>
  Application.<span style="color: #0000FF;">Run</span><span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Formulario<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span> <span style="color: #0600FF;">catch</span> <span style="color: #000000;">&#123;</span>
  Application.<span style="color: #0000FF;">Run</span><span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Formulario<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre>
</blockquote>
<p>Esto controlaba cualquier excepción, pero me cerraba la aplicación, una opción era volver a hacer un Application.run en el catch. Si fuera una calculadora hubiera valido, pero cuando se trata de una aplicación grande, no es una solución. Tampoco podemos dejarla al aire, puesto que cuando se lance una excepción, se cerrará la aplicación.</p>
<p>Buscando, buscando, encontré un evento llamado <strong>Application.ThreadException</strong>, que controlara todas aquellas excepciones que se produzcan dentro de <strong>Application.Run</strong>. Controlando este evento, no tendremos que catchear todo nuestro código, sino que definiremos una ventanita que recogerá la excepción y avisara al usuario de que se ha producido un error. Dentro de esta ventana, dependiendo de cuanto queramos trabajárnosla, podremos dar opción al usuario para enviar la traza de la excepción para que el equipo de desarrolladores, pueda reparar el error para futuras versiones o actualizaciones y así poco a poco, generar una aplicación grande desde el principio y robusta poco a poco si se van controlando aquellos errores que no son los más comunes.</p>
<p>A continuación os dejo el código de como controlar cualquier excepción desde el principio.</p>
<blockquote>
<pre class="csharp"><span style="color: #0600FF;">using</span> <span style="color: #000000;">System</span>
<span style="color: #0600FF;">using</span> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Windows</span>.<span style="color: #0000FF;">Forms</span>;
<span style="color: #0600FF;">using</span> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Threading</span>;namespace myespacio <span style="color: #000000;">&#123;</span>
&nbsp;
  <span style="color: #0600FF;">internal</span> <span style="color: #0600FF;">sealed</span> <span style="color: #FF0000;">class</span> MiPrograma <span style="color: #000000;">&#123;</span>
&nbsp;
    <span style="color: #000000;">&#91;</span>STAThread<span style="color: #000000;">&#93;</span>
    <span style="color: #0600FF;">private</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> args<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
      Application.<span style="color: #0000FF;">ThreadException</span> +=
      <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> ThreadExceptionEventHandler
        <span style="color: #000000;">&#40;</span>MiPrograma.<span style="color: #0000FF;">excepcion</span><span style="color: #000000;">&#41;</span>;
&nbsp;
      Application.<span style="color: #0000FF;">Run</span><span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Formulario<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> excepcion<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">object</span> sender,
          ThreadExceptionEventArgs excepcion<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
      MessageBox.<span style="color: #0000FF;">Show</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Se ha producido un error&quot;</span><span style="color: #000000;">&#41;</span>;
    <span style="color: #000000;">&#125;</span>
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre>
</blockquote>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/dotnet-csharp/controlar-errores-no-controlados-con-c/' addthis:title='Controlar errores no controlados con C# ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/dotnet-csharp/controlar-errores-no-controlados-con-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diferencias entre preg_match y ereg</title>
		<link>http://www.indalcasa.com/programacion/php/diferencias-entre-preg_match-y-ereg/</link>
		<comments>http://www.indalcasa.com/programacion/php/diferencias-entre-preg_match-y-ereg/#comments</comments>
		<pubDate>Sun, 09 Sep 2007 17:58:30 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ereg]]></category>
		<category><![CDATA[evaluar texto]]></category>
		<category><![CDATA[expresiones regulares]]></category>
		<category><![CDATA[patrón]]></category>
		<category><![CDATA[patrones]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[preg_match]]></category>

		<guid isPermaLink="false">http://84.20.10.74/~indalcas/?p=12</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/php/diferencias-entre-preg_match-y-ereg/' addthis:title='Diferencias entre preg_match y ereg ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div>Voy a explicar la diferencia entre estas dos funciones propias de php para evaluar y extraer información sobre cadenas mediante el uso de expresiones regulares o patrones. Aparentemente estas 2 funciones son aparentemente iguales. Las diferencias entre ellas son mínimas, como por ejemplo que en preg_match es obligatorio establecer unas barras que delimitan el patrón, [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/php/diferencias-entre-preg_match-y-ereg/' addthis:title='Diferencias entre preg_match y ereg ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style" addthis:url='http://www.indalcasa.com/programacion/php/diferencias-entre-preg_match-y-ereg/' addthis:title='Diferencias entre preg_match y ereg ' ><a class="addthis_button_google_plusone" g:plusone:size="medium" ></a><a class="addthis_counter addthis_pill_style"></a></div><p>Voy a explicar la diferencia entre estas dos funciones propias de <strong>php</strong> para evaluar y extraer información sobre cadenas mediante el uso de expresiones regulares o patrones.</p>
<p>Aparentemente estas 2 funciones son aparentemente iguales. Las diferencias entre ellas son mínimas, como por ejemplo que en <strong>preg_match</strong> es obligatorio establecer unas barras que delimitan el patrón, o que esta función devuelve un entero (<strong>int</strong>) de 0-n, en función de las coincidencias encontradas, mientras que <strong>ereg</strong> devuelve un booleano en función de si ha encontrado o no coincidencias.</p>
<p>Entonces. ¿Dónde radica la diferencia entre <strong>preg_match</strong> y <strong>ereg</strong>? Pues la principal diferencia ya que ambos también devuelven un <strong>array</strong> con las coincidencias por referencia, es la potencia. La función <strong>preg_match</strong> es muy potente y muy útil al igual que ereg, generalmente se suelen utilizar preg_match para extraer información de un texto y la función <strong>ereg</strong> para evaluar si un texto cumple un patrón o no, como es el caso de un email <em>[a-zA-Z0-9]{1,}@[a-zA-Z0-9]{1,}\.[a-zA-Z]{2,3}</em>. El problema viene cuando realizamos un patrón relativamente complejo sobre un texto extenso, es ahí cuando vemos la verdadera diferencia de potencia entre <strong>preg_match</strong> y <strong>ereg</strong>, ya que el <strong>preg_match</strong> podría llegar a tardar 60 segundos en analizarlo (hablo por propia experiencia) mientras que el mismo patrón evaluado con <strong>ereg</strong>, tardaría unos 5 o 6 segundos.</p>
<p>En conclusión podríamos decir que <strong>preg_match</strong> es una función ideal para analizar y realizar patrones sobre textos relativamente pequeños, tal como el contenido de una pagina web por ejemplo, y <strong>ereg</strong> es para evaluar patrones rápidos como palabras o emails y cuando el patrón a evaluar es muy muy grande.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.indalcasa.com/programacion/php/diferencias-entre-preg_match-y-ereg/' addthis:title='Diferencias entre preg_match y ereg ' ><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a><a class="addthis_button_compact"></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/php/diferencias-entre-preg_match-y-ereg/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

