<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
	<channel>
		<title>peivem.com</title>
		<link>http://www.peivem.com/</link>
		<pubDate>Fri, 13 Nov 2009 00:40:49 -0300</pubDate>
		<description>desarrollo multimedia</description>
		<generator>http://www.peivem.com/</generator>
		<language>es-CL</language>

		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/peivem" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title><![CDATA[Animación en flash con la clase tween]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/WBQ5MU-Lhjw/</link>
		<comments>http://www.peivem.com/?post=126#comentarios</comments>
		<pubDate>Wed, 28 Oct 2009 10:47:31 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Multimedia]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=126</guid>
		<description><![CDATA[<p>Como lo comentaba <a href="http://www.peivem.com/?post=83">en este otro artículo</a>,
en flash es posible crear tus propias funciones que te faciliten la
realización de animaciones (simples) de algunos objetos. De esta
manera, podemos hacer un efecto de <em>fade</em> o de <em>slide</em> a cualquier objeto según las acciones que haga el usuario.</p>
<p>Esta función para animar es mucho más óptima y es bastante simple de implementar.</p>]]></description>
		<content:encoded><![CDATA[<p>Como lo comentaba <a href="http://www.peivem.com/?post=83">en este otro artículo</a>, en flash es posible crear tus propias funciones que te faciliten la realización de animaciones (simples) de algunos objetos. De esta manera, podemos hacer un efecto de <em>fade</em> o de <em>slide</em> a cualquier objeto según las acciones que haga el usuario.</p>
<p>El problema con las funciones anteriores es que, si bien funcionan perfecto, están programadas para realizarse <em>onEnterFrame</em>, y por lo tanto, el objeto al que necesitamos aplicarle la función, debe estar consultando cada frame si es que la ejecuta o no. Mientras sea un archivo pequeño, todo funciona de maravillas, pero si trabajamos con 30 <em>movieclips</em> al mismo tiempo y si algunos de ellos contienen imágenes, tenemos que pensar que vamos a estar haciendo consultas 30 veces en cada fotograma (entre 15 y 30 veces por segundo), y eso a la larga revienta cualquier computador.</p>
<p>Entonces: la solución, es utilizar la clase tween para animar, la cual es una clase que viene "pre-programada" en flash y que nosotros debemos importarla para poder utilizarla. Esto quiere decir que la clase "está ahí, en alguna parte de flash, pero no se carga a menos que se lo solicitemos".</p>
<p>Para utilizarla debemos llamarla (antes del momento en que la vayamos a utilizar) con la siguiente línea:</p>
<pre>import mx.transitions.Tween;</pre>
<p>De esta manera, le decimos a flash que importe esta clase y la mantenga en memoria para utilizarla.</p>
<p>Ahora el tema es "como la utilizamos". Para generar una animación, basta con crear una nueva instancia de la clase, entregándole los siguientes parámetros:</p>
<pre>new Tween(objeto, propiedad_a_modificar, tipo_de_animacion, valor_inicial, valor_final, tiempo, utilizar_segundos);</pre>
<p>Esto quiere decir que si necesitamos hacer desaparecer un objeto que está en <em>_root</em> y tiene como nombre de instancia "mi_mc", debemos hacerlo de la siguiente manera:</p>
<pre>new Tween(_root.mi_mc, "_alpha", mx.transitions.easing.Strong.easeOut, 100, 0, 1, true);</pre>
<p>Así el objeto _root.mi_mc animará su propiedad _alpha con el tipo de animación "strong" y con easing al final de la animación, desde 100 a 0 en un segundo.</p>
<p>Lo bueno de utilizar esta función es que podemos animar cualquier propiedad de cualquier objeto, o incluso podemos hacer funciones adicionales que ejecuten varias tareas a la vez. Lo otro bueno es que no tendremos que llamarla <em>onEnterFrame</em>, sino que podremos llamarla cada vez que necesitemos y que con un solo llamado se ejecuta la animación completa, independiente de los fotogramas que estemos utilizando, pues está basada en el tiempo. Así nuestra película no le pedirá muchos recursos al computador y se verá todo mucho más fluido.</p>
<p>Acá hay un ejemplo de una función para hacer un <em>fadeIn</em> a cualquier objeto:</p>
<pre>function fadeIn(obj){<br />    new Tween(obj, "_alpha", mx.transitions.easing.Strong.easeOut, obj._alpha, 100, 1, true);<br />}</pre>
<p>Como verán esta función reemplaza a la que mencionaba en el post anterior y ocupa menos recursos también.</p>
<p><a href="http://www.peivem.com/uploads/tween/ejemplo_tween.zip">Descargar el archivo de ejemplo</a></p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=126</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=126</feedburner:origLink></item>
		<item>
		<title><![CDATA[Optimización 3D]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/GbPaIzv8CwE/</link>
		<comments>http://www.peivem.com/?post=125#comentarios</comments>
		<pubDate>Mon, 19 Oct 2009 13:58:16 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[3D]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=125</guid>
		<description><![CDATA[<p><img src="http://www.peivem.com/uploads/optimizacion3d/resumen.jpg" alt="" width="198" height="149" /></p>
<p>Este post es para comentarles que en <a href="http://www.geekbox.cl/" target="_blank">GEEKBOX</a> hemos lanzado este
nuevo sitio que pretende ser un gran aporte a la comunidad 3D de habla
hispana: <a href="http://www.optimizacion3d.info" target="_blank">http://www.optimizacion3d.info</a>.</p>
<p>El objetivo principal del sitio es poder dar a conocer el
trabajo que realizamos en nuestra tesis y poder ir publicando
constantemente noticias acerca del mundo 3D y de como poder optimizar
nuestros trabajos.</p>
<p>Espero que este sitio sea un gran aporte y que cooperen con todo el contenido que puedan para que generemos algo en grande.</p>]]></description>
		<content:encoded><![CDATA[<p><img src="http://www.peivem.com/uploads/optimizacion3d/portada-libro.jpg" alt="" width="678" height="510" /></p>
<p>Este post es para comentarles que en <a href="http://www.geekbox.cl/" target="_blank">GEEKBOX</a> hemos lanzado este nuevo sitio que pretende ser un gran aporte a la comunidad 3D de habla hispana: <a href="http://www.optimizacion3d.info" target="_blank">http://www.optimizacion3d.info</a>.</p>
<p>El objetivo principal del sitio es poder dar a conocer el trabajo que realizamos en nuestra tesis y poder ir publicando constantemente noticias acerca del mundo 3D y de como poder optimizar nuestros trabajos.</p>
<p>Espero que este sitio sea un gran aporte y que cooperen con todo el contenido que puedan para que generemos algo en grande.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=125</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=125</feedburner:origLink></item>
		<item>
		<title><![CDATA[¿A quiénes seguir en twitter?]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/baClirJdXYU/</link>
		<comments>http://www.peivem.com/?post=124#comentarios</comments>
		<pubDate>Fri, 16 Oct 2009 10:54:35 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=124</guid>
		<description><![CDATA[<p>Muchas personas se crean una cuenta en <a href="http://twitter.com" target="_blank">twitter</a>, sin embargo una vez dentro no saben que hacer con la cuenta ni a quienes seguir.</p>
<p>Acá les dejo algunas ideas y personajes que podrían seguir en twitter, que a mi juicio pueden ser interesantes para algunos.</p>]]></description>
		<content:encoded><![CDATA[<p>Muchas personas se crean una cuenta en <a href="http://twitter.com" target="_blank">twitter</a>, sin embargo una vez dentro no saben que hacer con la cuenta ni a quienes seguir.</p>
<p>Acá les dejo algunas ideas y personajes que podrían seguir en twitter, que a mi juicio pueden ser interesantes para algunos.</p>
<h3>Lo básico</h3>
<p>Obviamente, a los primeros que hay que seguir es a todos nuestros amigos, familiares, conocidos, colegas, etc. Para eso basta con ir a la pestaña "find people" y utilizar los datos de nuestra cuenta de correo para que twitter encuentre (via email) a todos los que tenemos en nuestra lista.</p>
<p>Personajes por categorías</p>
<p>Si bien twitter nos recomienda algunos personajes que seguir, generalmente son personas que no nos interesan, sobre todo a los de habla hispana.</p>
<p>Como yo soy de Chile, algunos ejemplos que daré acá son para chilenos, sin embargo son extrapolables a los demás países. Basta con buscar (nuevamente en la pestaña "find people") y podrán encontrar a través del buscador.</p>
<p>Acá les dejo algunas cuentas que pueden ser interesantes:</p>
<p><strong>Multimedia</strong></p>
<ul>
<li><a href="http://twitter.com/peivem" target="_blank">@peivem</a> (yo, por supuesto)</li>
<li><a href="http://twitter.com/optimizacion3D" target="_blank">@optimizacion3D</a></li>
<li><a href="http://twitter.com/aNieto2k" target="_blank">@Anieto2K</a> (el famoso blogero español)</li>
<li><a href="http://twitter.com/mootools" target="_blank">@mootools</a></li>
<li><a href="http://twitter.com/wwwhatsnew" target="_blank">@wwwhatsnew</a> (del famoso blog español)</li>
<li><a href="http://twitter.com/wordpress" target="_blank">@wordpress</a></li>
<li><a href="http://twitter.com/fayerwayer" target="_blank">@fayerwayer</a> (el famoso blog de tecnología)<br /></li>
</ul>
<p><strong>Servicios</strong></p>
<ul>
<li><a href="http://twitter.com/sismos_chile" target="_blank">@sismos_chile</a></li>
<li><a href="http://twitter.com/meteo_stgo" target="_blank">@meteo_stgo</a> (meteorología de Santiago de Chile)<br /></li>
<li><a href="http://twitter.com/sismocr" target="_blank">@sismocr</a> (sismos en costa rica)</li>
<li><a href="http://twitter.com/InfoSismos" target="_blank">@InfoSismos</a> (sismos y alertas volcánicas en el mundo)</li>
<li><a href="http://twitter.com/EmergencyTweets" target="_blank">@EmergencyTweets</a> (similar al anterior pero en inglés)</li>
<li><a href="http://twitter.com/redforense" target="_blank">@redforense</a> (la comunidad forense de <a href="http://twitter.com/GEEKBOX" target="_blank">@geekbox</a> - mi empresa)</li>
<li><a href="http://twitter.com/comolohago" target="_blank">@comolohago</a> (twitter de este excelente blog)<br /></li>
</ul>
<p><strong>Fútbol</strong></p>
<ul>
<li><a href="http://twitter.com/la_roja" target="_blank">@la_roja</a> (selección chilena)</li>
<li><a href="http://twitter.com/Mexico_Futbol" target="_blank">@Mexico_Futbol</a> (selección mexicana)</li>
</ul>
<p><strong>Ocio y divertidos<br /></strong></p>
<ul>
<li><a href="http://twitter.com/weoncagao" target="_blank">@weoncagao</a> (el personaje más "ahorrativo" que concerán)</li>
<li><a href="http://twitter.com/que_prefieres" target="_blank">@que_prefieres</a> (las típicas preguntas idiotas)</li>
<li><a href="http://twitter.com/desmotivador" target="_blank">@desmotivador</a> (frases muy alentadoras)</li>
<li><a href="http://twitter.com/Dios" target="_blank">@Dios</a> (el famoso personaje omnipresente)</li>
<li><a href="http://twitter.com/cosas_que_odio" target="_blank">@cosas_que_odio</a></li>
<li><a href="http://twitter.com/proverbia" target="_blank">@proverbia</a> (proverbios varios)<br /></li>
</ul>
<p><strong>Músicos y bandas</strong></p>
<ul>
<li><a href="http://twitter.com/cerati" target="_blank">@cerati</a></li>
<li><a href="http://twitter.com/bjork" target="_blank">@bjork</a></li>
<li><a href="http://twitter.com/deftonesband" target="_blank">@deftonesband</a></li>
<li><a href="http://twitter.com/Silverchair" target="_blank">@Silverchair</a></li>
</ul>
<p><strong>y más...<br /> </strong></p>
<ul>
<li><a href="http://twitter.com/barak_obama">@barak_obama</a> (aunque no twittea)</li>
<li><a href="http://twitter.com/DisneyPixar" target="_blank">@DisneyPixar</a></li>
<li><a href="http://twitter.com/lost" target="_blank">@lost</a> (la famosa serie de TV)</li>
<li><a href="http://twitter.com/Carabineros" target="_blank">@Carabineros</a> (Carabineros de Chile)</li>
<li><a href="http://twitter.com/tuiters" target="_blank">@tuiters</a> (agrupación de twitters chilenos)<br /> </li>
</ul>
<p>La lista puede ser interminable: canales de televisión, diarios, revistas, personajes famosos, políticos. Obviamente acá hay algunos de ellos. Realmente la mayoría son las cuentas que yo sigo que creo que valen la pena o simplemente las publico por si a alguien le interesa conocer más cuentas en este <a href="http://www.protuiter.com/2009/08/follow-friday-%C2%BFque-es-y-como-se-usa/" target="_blank">#followfriday</a></p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=124</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=124</feedburner:origLink></item>
		<item>
		<title><![CDATA[Listado de etiquetas y sus descripciones]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/samBqD7MP3c/</link>
		<comments>http://www.peivem.com/?post=123#comentarios</comments>
		<pubDate>Fri, 09 Oct 2009 12:34:55 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=123</guid>
		<description><![CDATA[<p>Al momento de hacer una página web, siempre deberemos considerar una
serie de etiquetas y, por supuesto, usarlas de la manera correcta, en
el momento correcto. Para eso, acá les dejo un listado con todas las
etiquetas que debemos usar y para que sirve cada una.</p>]]></description>
		<content:encoded><![CDATA[<p>Al momento de hacer una página web, siempre deberemos considerar una serie de etiquetas y, por supuesto, usarlas de la manera correcta, en el momento correcto. Para eso, acá les dejo un listado con todas las etiquetas que debemos usar y para que sirve cada una.</p>
<p>San google apreciará mucho que utilicemos correctamente cada una de estas etiquetas y probablemente nos servirá bastante a la hora de posicionarnos.</p>
<p>Como siempre lo he dicho: si vamos a poner un título, no hay que utilizar <em>p class="titulo"</em>, sino que utilizar la etiqueta H1.</p>
<p><strong>a</strong>: Origen o destino de un hiperenlace (puede ser link o ancla)<br /><strong>address</strong>: Información de contacto<br /><strong>area</strong>: Área para un mapa de imagen<br /><strong>b</strong>: Estilo de texto en negrita (bold)<br /><strong>big</strong>: Estilo de texto de tamaño grande<br /><strong>blockquote</strong>: Mención o cita extensa<br /><strong>body</strong>: Contenido del documento<br /><strong>br</strong>: Salto de línea<br /><strong>button</strong>: botón<br /><strong>caption</strong>: título de la tabla<br /><strong>cite</strong>: Referencia a la fuente de la cita<br /><strong>dd</strong>: Definición de la descripción asociada al término dt<br /><strong>dfn</strong>: Definición de un término<br /><strong>div</strong>: Contenedor genérico de bloque para especificar el lenguaje o el estilo<br /><strong>dl</strong>: Lista de definiciónes compuesta por dt y dd<br /><strong>dt</strong>: Término de definición<br /><strong>em</strong>: Para enfatrizar algún texto. Por defecto se muestra con cursiva (emphasis)<br /><strong>fieldset</strong>: Agrupación de elementos de un formulario por temática<br /><strong>form</strong>: formulario<br /><strong>frameset</strong>: División de la ventana en un conjunto de marcos<br /><strong>frame</strong>: Marco o sub-ventana<br /><strong>h1</strong>: Encabezado de primer nivel. El de mayor relevancia<br /><strong>h2</strong>: Encabezado de segundo nivel. Debe existir previamente un h1<br /><strong>h3</strong>: Encabezado de tercer nivel. Debe existir previamente un h2<br /><strong>h4</strong>: Encabezado de segundo nivel. Debe existir previamente un h3<br /><strong>h5</strong>: Encabezado de segundo nivel. Debe existir previamente un h4<br /><strong>h6</strong>: Encabezado de segundo nivel. Debe existir previamente un h5<br /><strong>head</strong>: Cabecera. Información sobre el documento<br /><strong>hr</strong>: Separador horizontal<br /><strong>html</strong>: Elemento raíz de un documento<br /><strong>i</strong>: Estilo de texto en cursiva (italic)<br /><strong>img</strong>: Imagen incrustada en el documento<br /><strong>input</strong>: Elemento de un formulario que se utiliza para recibir datos<br /><strong>label</strong>: Etiqueta asociada a un input<br /><strong>legend</strong>: Leyenda (titulo) del fieldset<br /><strong>li</strong>: Elemento que compone una lista ordenada o desordenada<br /><strong>map</strong>: Mapa de imagen (define zonas clickeables)<br /><strong>meta</strong>: Meta-información genérica<br /><strong>noframes</strong>: Contenedor alternativo para agentes que no soportan marcos<br /><strong>ol</strong>: Lista ordenada (con números o letras) compuesta por elementos li<br /><strong>option</strong>: Opción de un select que puede ser seleccionada<br /><strong>p</strong>: Párrafo<br /><strong>pre</strong>: Texto con formato predefinido (para mostrar código)<br /><strong>script</strong>: Sentencias escritas en lenguajes de script<br /><strong>select</strong>: Input en formato listado de opciones (combobox)<br /><strong>small</strong>: Estilo de texto de tamaño pequeño<br /><strong>span</strong>: Contenedor genérico en línea. Similar al DIV pero no se muestra como bloque<br /><strong>strong</strong>: Énfasis fuerte. Se usa para destacar un texto (generalmente en reemplazo de la etiqueta <em>b</em><br /><strong>style</strong>: Información sobre el estilo del documento<br /><strong>sub</strong>: Subíndice<br /><strong>sup</strong>: Superíndice<br /><strong>table</strong>: Tabla<br /><strong>tbody</strong>: Cuerpo de la tabla, donde se encuentran los datos<br /><strong>td</strong>: Celda de datos<br /><strong>textarea</strong>: Campo de texto de varias líneas<br /><strong>tfoot</strong>: Pie de la tabla. Contiene filas de celdas<br /><strong>th</strong>: Celda que contiene información de cabecera<br /><strong>thead</strong>: Cabecera que contiene filas informativas<br /><strong>title</strong>: Título de la página<br /><strong>tr</strong>: Fila compuesta por celdas de datos o de cabecera<br /><strong>tt</strong>: Estilo de texto de teletipo o caracteres con separación uniforme<br /><strong>ul</strong>: Lista desordenada compuesta por elementos li</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=123</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=123</feedburner:origLink></item>
		<item>
		<title><![CDATA[¿Cuánto cobrar por un desarrollo web?]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/9dHQHrfg_ZU/</link>
		<comments>http://www.peivem.com/?post=121#comentarios</comments>
		<pubDate>Tue, 06 Oct 2009 15:40:28 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=121</guid>
		<description><![CDATA[<p>¿Quieres ser freelancer?. Entonces esto te puede interesar.</p>
<p>Más que "¿cuánto cobrar?" creo que la pregunta sería "¿cómo
cobrar?", porque el costo de cada desarrollo varía mucho según una
serie de factores, por lo tanto dar un valor específico a cada tarea es
un poco azaroso.</p>
<p>Pero la gran duda de todo este asunto está en "como llegar a esos
valores", y para conseguirlo tendremos que tener en cuenta varios
factores...</p>]]></description>
		<content:encoded><![CDATA[<p>¿Quieres ser freelancer?. Entonces esto te puede interesar.</p>
<p>Más que "¿cuánto cobrar?" creo que la pregunta sería "¿cómo cobrar?", porque el costo de cada desarrollo varía mucho según una serie de factores, por lo tanto dar un valor específico a cada tarea es un poco azaroso.</p>
<p>Como un claro ejemplo de esto, pueden ver <a href="http://www.miguelvagalume.com/?page_id=655" target="_blank">esta página</a>, donde el autor muestra una tabla con los valores mínimos fijos para algunos diseños en particular.</p>
<p>Pero la gran duda de todo este asunto está en "como llegar a esos valores", y para conseguirlo tendremos que tener en cuenta varios factores:</p>
<h3>El valor hora/hombre</h3>
<p>Cada uno de nosotros tiene un valor por su trabajo. Probablemente no sepamos cuanto es, y la idea es que aprendamos a definirlo.</p>
<p>La manera más simple de definir este valor/hora es pensando <strong>¿cuanto quiero ganar al mes?</strong>. A partir de ese valor podemos deducir un valor hora razonable.</p>
<p>Para este ejemplo, supongamos que yo soy un diseñador gráfico con 5 años de experiencia. Digamos que en el mercado, alguien como yo gana actualmente $600.000. Si un mes tiene aproximadamente 22 días laborales, y cada día tiene 8 horas de trabajo, mi valor hora debería ser:</p>
<pre>$600.000 / 22 / 8 = $3.410</pre>
<p>Es decir que mi valor hora debería ser de $3.410. ¿Así de fácil?... pues no.</p>
<p>Veamos otro factor a considerar.</p>
<h3>Las horas trabajadas al mes versus las que podría trabajar</h3>
<p>Obviamente, por mucho que queramos, no vamos a poder trabajar TODAS las horas que tenemos consideradas en el mes, probablemente porque tendremos otras cosas que hacer o porque no tendremos, al menos en un principio, tanto trabajo. Por lo mismo, vamos a tener que prever que de las 176 horas que consideramos trabajar en un mes, probablemente trabajemos cerca de 120. Talvez más, talvez menos.</p>
<p>Con respecto a este factor tendremos que tomar una desición: lo consideramos como una pérdida asumida (y ganamos menos hasta que nos afirmemos con la cantidad de trabajo) o lo cobramos como un factor adicional en nuestro valor/hora. Si lo queremos cobrar, tendremos que subir el valor de nuestro trabajo. Digamos a $5.000 / hora ($600.000 / 120 horas).</p>
<h3>Costos adicionales</h3>
<p>A menos que trabajemos colgados de la corriente y del internet, es obvio que de alguna manera vamos a tener que pagar esos gastos. Por lo tanto, tendremos que asumir ese gasto también en nuestra fórmula, que hasta este minuto se resumiría en lo siguiente:</p>
<pre>Sueldo deseado / horas trabajadas + (costos adicionales)= valor hora</pre>
<p>El tema es que: ¿que tantas cosas debo considerar en como costos adicionales?. Pues varias, por ejemplo:</p>
<ul>
<li>Luz</li>
<li>Internet</li>
<li>Agua</li>
<li>Teléfono<br /></li>
<li>Depreciación del computador</li>
<li>Costos de seguro social, ahorro previsional, etc.</li>
<li>Arriendo de oficina o del lugar donde esté trabajando (incluyendo gastos comunes)</li>
<li>Insumos (tinta de impresora, cd, lápices, hojas para imprimir, cuadernos, etc.)</li>
<li>Gastos de aseo<br /></li>
</ul>
<p>Puede sonar a que estamos considerando demasiadas cosas, pero si alguna de estas (todas) se aplican, deberán considerarlas como un valor adicional. Podrían no hacerlo en un principio, pero a la larga, de una u otra manera, terminarán considerándolo.</p>
<p>Con respecto a la depreciación del computador (que es el caso más extraño de los que hay arriba), hay que considerar que un computador va quedando obsoleto con el tiempo, y después de algunos meses o años, será necesario mejorar la tarjeta de video, la ram o lo que sea necesario según el trabajo que hagamos. Por lo tanto, para no llevarnos la sorpresa de tener que gastar de nuestra ganancia (los $600.000 iniciales) en eso, debemos considerarlo.</p>
<p>Para hacer esta sumatoria de "costos adicionales" debemos, de alguna manera, pensar en cuanto será lo que gastaremos en cada uno de los items (probablemente mensual o anualmente) y luego dividirlo en los meses y/u horas que correspondan para obtener nuestro "valor hora", igual como lo hicimos con nuestro sueldo deseado. Luego sumamos todos esos valores y tendremos nuestro "costo adicional".</p>
<p>Y ahora si que llegamos al final: es hora de sumar. Supongamos que mi costo adicional por hora es de $1.800. Con esto, nuestro valor hora sería de <strong>$6.800</strong>, por lo cual TEÓRICAMENTE, al mes estaríamos ganando $1.196.800 ($6.800 x 176 horas mensuales).</p>
<p><strong>¡¡¡WOOOOW!!!</strong></p>
<p>Que número!...se ve hermoso!...pero no se emocionen mucho, porque ahora vienen dos factores adicionales que no debemos olvidar!</p>
<h3>Factores adicionales</h3>
<p>El primero está en su capacidad de poder "autoadministrar" su dinero, pues si no pueden guardar el dinero que sea necesario para pagar los gastos fijos que tengan, terminarán consumidos por su propia ambición.</p>
<p>El segundo factor está en que el cliente acepte nuestro valor/hora. Pues claro, que pensaban, ¿que todo era color de rosas?. JA!. Lo que pasa es que ahora entran en juego varias cosas que determinan el éxito que tengamos:</p>
<ul>
<li>¿Qué tan bien hacemos nuestro trabajo con respecto a las demás personas del rubro que cobran menos?</li>
<li>¿Somos capaces de negociar y de convencer a algún cliente de que nuestro trabajo vale lo que pedimos? ¿o tendremos que conformarnos con lo que nos quieran pagar?</li>
<li>¿Tenemos contactos, o sabemos donde ofrecer nuestro trabajo, o "vamos a ver que pasa"?<br /></li>
<li>¿Tenemos el valor y la voluntad de "luchar" por nuestro elaborado valor/hora?</li>
</ul>
<p>Por supuesto que estos factores no son desicivos a la hora de definir nuestro valor/hora, pero si serán importantísimos cuando comencemos a ofrecer nuestro trabajo a ese precio. Será difícil, pero debemos estar seguros de que lo valemos.</p>
<p><strong>Y ahora si es posible llegar a preguntarse:</strong></p>
<h3>¿Como cobrar?</h3>
<p>Fácil:</p>
<ol>
<li>Le preguntamos al cliente que es lo que necesita</li>
<li>Hacemos un estimado de las horas que demorará cada tarea</li>
<li>Preparamos el presupuesto, considerando las horas a trabajar y nuestro valor hora</li>
</ol>
<p>De esta manera, nuestro presupuesto dirá cuanto deberíamos cobrar por nuestro trabajo. Luego viene el juego del regate y el descuento, pero eso ya es harina de otro costal.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=121</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=121</feedburner:origLink></item>
		<item>
		<title><![CDATA[Mi música]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/WDz2WhENGKI/</link>
		<comments>http://www.peivem.com/?post=122#comentarios</comments>
		<pubDate>Mon, 05 Oct 2009 01:15:27 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Multimedia]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=122</guid>
		<description><![CDATA[<p><img src="http://www.peivem.com/uploads/musica.peivem.com/resumen.jpg" alt="" width="198" height="121" /></p>
<p>Mientras preparo mi próximo post, los invito a conocer el blog que tengo para poder mostrar la música que hago (que hacía): <a href="http://musica.peivem.com" target="_blank">http://musica.peivem.com</a>.</p>
<p>Espero poder retomar la música pronto, pero la he tenido que dejar de lado para poder hacer otro tipo de proyectos en mi vida, como lo son mi familia y <a href="http://www.geekbox.cl" target="_blank">GEEKBOX</a>.</p>
<p>Espero sus comentarios!.</p>]]></description>
		<content:encoded><![CDATA[<p> </p>
<p><img src="http://www.peivem.com/uploads/musica.peivem.com/detalle.jpg" alt="" width="678" height="416" /></p>
<p>Mientras preparo mi próximo post, los invito a conocer el blog que tengo para poder mostrar la música que hago (que hacía): <a href="http://musica.peivem.com" target="_blank">http://musica.peivem.com</a>.</p>
<p>Espero poder retomar la música pronto, pero la he tenido que
dejar de lado para poder hacer otro tipo de proyectos en mi vida, como
lo son mi familia y <a href="http://www.geekbox.cl" target="_blank">GEEKBOX</a>.</p>
<p>Espero sus comentarios!.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=122</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=122</feedburner:origLink></item>
		<item>
		<title><![CDATA[Checklist para un buen desarrollo Web]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/6JgHKD6v9r0/</link>
		<comments>http://www.peivem.com/?post=120#comentarios</comments>
		<pubDate>Wed, 16 Sep 2009 09:57:26 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=120</guid>
		<description><![CDATA[<p>Si ya hablé de <a href="http://www.peivem.com/?post=110">pautas para diseño Web</a>, esta vez le toca al desarrollo (maqueteo).</p>
<p>Al momento de maquetear un sitio Web es necesario fijarse en varios
aspectos, que no siempre son atendidos por los desarrolladores. Algunas
veces por descuido, otras por no saber.</p>
<p>Acá les dejo este checklist que puede servir de ayudamemoria para
los que maquetean. La idea no es hacer una buena maqueta, sino una
profesional.</p>]]></description>
		<content:encoded><![CDATA[<p>Si ya hablé de <a href="http://www.peivem.com/?post=110">pautas para diseño Web</a>, esta vez le toca al desarrollo (maqueteo).</p>
<p>Al momento de maquetear un sitio Web es necesario fijarse en varios aspectos, que no siempre son atendidos por los desarrolladores. Algunas veces por descuido, otras por no saber.</p>
<p>Acá les dejo este checklist que puede servir de ayudamemoria para los que maquetean. La idea no es hacer una buena maqueta, sino una profesional:</p>
<h3>Código HTML</h3>
<p>El código <a href="http://www.peivem.com/?post=119">debe ser limpio y claro</a>. Debe estar hecho con DIVs y no tablas. La idea es que se usen las etiquetas correctas en los lugares correctos: si vamos a poner un título que no sea <em>div class="'titulo"</em>, sino que sea un H1, H2 o H3 (dependiendo de su importancia); si ponemos un <em>input</em> en un formulario, el texto asociado debe ir dentro de una etiqueta <em>LABEL</em> y debe tener el atributo <em>FOR</em> indicando al <em>ID</em> del <em>input</em>; etc.</p>
<p>Además de todo esto, el código debe ser <a href="http://validator.w3.org/" target="_blank">validado por la w3c</a>.</p>
<h3>CSS</h3>
<p>Los estilos CSS deben estar correctamente ordenados (ordénenlos como quieran, ¡pero ordénenlos!). Deben fijarse en que no hayan atributos innecesarios ni duplicados, ni estilos que no se estén usando. Por supuesto que deben estar bien tabulados y deben ser lo más compacto posible (para ahorrar espacio).</p>
<p>También deben estar <a href="http://jigsaw.w3.org/css-validator/" target="_blank">validados por la w3c</a>.</p>
<h3>Codificación</h3>
<p>Este tema es probablemente de los más complejos y desconocidos. En realidad no es tan complejo si se explica claramente, pero siempre cuesta entenderlo. Asique para ahorrarme palabras les dejo <a href="http://www.vda2.com/tecnologia/codificacion_de_caracteres" target="_blank">esta excelente explicación</a>. En resumen, la idea es siempre utilizar UTF-8 como codificación ya que es más universal, y de esa manera se asegurarán que al momento de integrar la maqueta con algún lenguaje de programación (php, asp, etc.) todo va a funcionar perfecto. Sino, mejor ni les digo el problemita que van a tener con las "ñ", los acentos y algunos otros caracteres.</p>
<h3>Tamaño de texto y deformidades</h3>
<p>Generalemente, la maqueta se debe hacer respecto a algún diseño (probablemente un PSD). Lo que digo con respecto al tamaño del texto es que deben asegurarse que los tamaños de texto que aparezcan el los PSD deben ser <strong>EXACTAMENTE IGUALES</strong> al que se ven en sus maquetas (de hecho la maqueta debe ser <strong>EXCATAMENTE </strong>igual que el diseño: esa es la idea de un buen maqueteo, sino ¿para qué entregar un diseño?).</p>
<p>Si se fijan también, los navegadores (no todos) hacen crecer el texto de la página al girar la rueda del mouse presionando la tecla CTRL. En esos casos, debemos asegurarnos que los textos que vayan creciendo no se salgan de sus espacios y que no se monten sobre otros textos. Generalemente este problema surge cuando se dan alturas fijas a los DIVs, y la solución se consigue utilizando <a href="http://www.peivem.com/?post=35">algunos trucos que ya he mencionado</a> (Divs expandibles).</p>
<h3>Png's transparentes en IE6</h3>
<p>El típico problema, que aunque todos los desarrolladores estemos en contra, vamos a tener que solucionar hasta que este famoso navegador (y no por ser bueno) esté fuera del mercado.</p>
<p>Debemos cerciorarnos de que las transparencias <a href="http://www.peivem.com/?post=104">se vean bien en IE6</a>.</p>
<h3>Correcta visión en todos los navegadores</h3>
<p>Antes de comenzar el desarrollo (o durante) debemos tener claro para que navegadores debemos maquetear. Idealmente es para todos, pero por lo menos hay que regirse por los 4 más populares: Firefox, Internet Explorer (6,7 y 8), Safari y Chrome.</p>
<p>Como lo he mencionado varias veces, el objetivo es que se vea <strong>EXACTAMENTE IGUAL</strong> en todos los navegadores, incluyendo espacios separaciones, fondos, transparencias, tamaños, etc. Se puede, incluso sin usar los típicos hacks de CSS que andan dando vueltas por internet.</p>
<h3>Tabulación y eliminación de espacios</h3>
<p>Una vez que nuestra maqueta está terminada, tenemos que mirar su código.</p>
<p>Debemos fijarnos que esté correctamente tabulada (con tabs y no con espacios) y que no tenga saltos de linea adicionales. Por ejemplo, si utilizamos Dreamweaver, debemos cerciorarnos que en OPCIONES / FORMATO DE CODIGO esté marcado "indentar con 1 tab". Si no lo hacemos así, tendremos miles de caracteres adicionales que pueden hacer incluso que una página pese un 25% o 30% adicional (y cuando hablamos de sitios con muchas visitas eso cuenta).</p>
<h3>Limpieza de CSS y JS</h3>
<p>Lo mismo que comenté antes de los CSS. Debemos realizar una limpieza final a los CSS y JS que hayamos utilizado para que no sobre nada y para que estén correctamente ordenados.</p>
<h3>Ortografía</h3>
<p>Cae de maduro, pero no para todos. Hay que fijarse en que la ortografía de nuestra maqueta o desarrollo sea correcta. He visto sitios por ahí que llegan a ser vergonzosos, y eso dice mucho de una empresa o persona.</p>
<h3>JS y CSS de la cabecera</h3>
<p>Debemos fijarnos que los CSS y JS que forman parte de nuestro desarrollo estén incluídos dentro de la etiqueta HEAD. La única excepción que podríamos hacer es en los casos de JS o CSS adicionales, como por ejemplo, los de Google Analytics, que idealmente deberían ir al final (para permitir que la página se cargue primero).</p>
<p>Debemos fijarnos también que no hayan funciones o estilos escritos en el código HTML (<a href="http://www.peivem.com/?post=119">¿por qué?</a>).</p>
<h3>Links, hover y visted</h3>
<p>Otro detallito más que muchas veces pasa desapercibido. Debemos fijarnos que <strong>no existan links rotos</strong> y también que pasa con nuestros links al momento de ser visitados. Los colores de los :visited y :hover deben estar definidos en nuestros estilos CSS.</p>
<h3>Navegación</h3>
<p>Una vez que está todo listo, es hora de navegar nuestro sitio, y probar que todo esté en orden. Es mejor que nos demos cuenta de cualquier detalle antes de lanzar un sitio a que se den cuenta nuestros visitantes de los errores.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=120</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=120</feedburner:origLink></item>
		<item>
		<title><![CDATA[Correcta utilización de código y estilos]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/ajzY-BLYNsE/</link>
		<comments>http://www.peivem.com/?post=119#comentarios</comments>
		<pubDate>Mon, 17 Aug 2009 17:02:36 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=119</guid>
		<description><![CDATA[<p>Para clarificar los conceptos, acá les dejo una breve reseña de lo
escencial que hay que tener en mente a la hora de desarrollar un sitio
utilizando (X)HTML y CSS: cual es la función de cada uno de los elementos y que cosas hay que tener en consideración a la hora de armar el código y definir estilos, id's y clases.</p>]]></description>
		<content:encoded><![CDATA[<p>Para clarificar los conceptos, acá les dejo una breve reseña de lo
escencial que hay que tener en mente a la hora de desarrollar un sitio
utilizando (X)HTML y CSS: cual es la función de cada uno de los elementos y que cosas hay que tener en consideración a la hora de armar el código y definir estilos, id's y clases.</p>
<h3>HTML</h3>
<p>El objetivo de un archivo HTML es contener solamente la información semántica, especificando el tipo de contenidos entre etiquetas. Su función es ver los objetos de manera estructurada, pero sin definir sus propiedades. Se ve que hay un párrafo, pero no se sabe sus características.</p>
<p>En estricto rigor, un texto que corresponda a un párrafo, debería ir entre las etiquetas <em>P</em> (paragraph); un texto destacado, debería ir entre <em>EM</em> (emphasis), etc. Lo ideal es que al ver el código fuente, no se vean las características o propiedades de los objetos, sino que sólo el contenido de manera estructurada.</p>
<p>El archivo CSS es el que define la apariencia de la página, especificando los estilos de cada uno de los componentes de la estructura HTML. Por ejemplo, es el que define de qué color van a ser los párrafos, cuanto ancho tendrá una columna, etc.</p>
<p>La utilización de ambos documentos en conjunto, generan una página Web completa que es vista correctamente en cualquier navegador.<br />El objetivo que debemos tener como empresa al realizar cualquier sitio es velar por mantener estos conceptos, evitando definir estilos y propiedades directamente en el código HTML, lo cual nos ayudará a todos a una comprensión mucho más fácil de los documentos.</p>
<h3>CSS</h3>
<p>La función del documento CSS es contener todas las propiedades de cada elemento HTML. Por esto, hay que tener en mente nunca escribir las especificaciones de estilo directamente en el código, sino que crear CLASES o ID&rsquo;s.</p>
<p>Para aclarar los términos, el código HTML es un lenguaje compuesto por  etiquetas, las cuales definen el tipo de objeto que encierran. Por ejemplo:</p>
<pre><p>párrafo</p><br /><div>división</div><br /><em>enfatizado</em></pre>
<p>Estas etiquetas son llamadas en CSS directamente por su nombre:</p>
<pre>p{<br />    acá van las propiedades para todos los elementos p de la página…<br />}<br />body{<br />    acá van las propiedades del body…<br />}</pre>
<p>Cada elemento (definido a través de las etiquetas), puede tener un ID, que sirva para identificarlo del resto de los elementos y para llamarlo vía javascript. Este ID debe ser único en toda la página, y generalmente se le asigna ID a los objetos importantes y únicos, como al footer, al cuerpo, o la cabecera. Por CSS, los elementos que poseen ID, deben ser llamados anteponiéndole el signo #:</p>
<pre>#cuerpo{<br />    acá van las propiedades del elemento "cuerpo"…<br />}</pre>
<p>Adicionalmente, e independiente de si posee ID o no, cada elemento puede tener una o más clases (<em>class</em>) separadas por espacios. Las clases definen un tipo de objeto, por lo que pueden ser aplicadas a cualquier elemento de la página. Para definir propiedades de una clase en CSS, se antepone un punto:</p>
<pre>.elemento_de_menu{<br />    acá van las propiedades para los elementos que sean<br />    de clase "elemento_de_menu"<br />}</pre>
<p>Las definiciones de CSS funcionan por jerarquía, por lo que si un elemento tiene un ID aplicado (para este ejemplo, será el id "btn_finalizar"), se accede al elemento de la siguiente manera:</p>
<pre>p#btn_finalizar{<br />    acá van las propiedades del elemento p que tiene el id "btn_finalizar"<br />}</pre>
<p>Si el elemento p, con el id "btn_finalizar" se encuentra dentro de un div, se accede a él anteponiendo |div + espacio|, de la siguiente manera:</p>
<pre>div p#btn_finalizar{<br />acá van las propiedades del elemento p que tiene el id "btn_finalizar"<br />}</pre>
<p>En este caso, la separación a través de un espacio define que el objeto se encuentra &ldquo;dentro&rdquo;. Si no se utiliza un espacio, significa que es el mismo elemento el que posee el ID. Para el caso de las clases, la jerarquía se utiliza define de la misma manera.</p>
<p>En el caso de las clases, es posible utilizar varias clases en un mismo elemento, separándolas con espacios. Por ejemplo:</p>
<pre><p class="elemento_de_menu destacado"></pre>
<p>Para definir los términos que se utilizarán, los componentes de una definición de CSS son:</p>
<pre>body{<br />    width: 600px;<br />}</pre>
<blockquote>
<p>Selector: body<br />Propiedad: width<br />Valor: 600<br />Unidad: px</p>
</blockquote>
<h3>Definición de nombres de IDs y clases</h3>
<p>Por definición, las clases definen un tipo de objeto, por lo que se debe considerar no darles nombres de propiedades, como "texto_rojo", sino que intentar utilizar "alerta", o "texto_destacado". De esta manera, los nombres de estas clases serán claros y podrán ser utilizados en más de un tipo de elemento.</p>
<p>Para las clases y IDs, es muy importante evitar el uso de números en los nombres, como "tabla2", "banner1", etc., pues si dentro de un código hay 12 DIVs, no es posible distinguir con un número de cual estamos hablando.</p>
<p>Como recomendación (para unificar la forma de trabajo), los nombres de las clases se deberían ser creados utilizando guión bajo para separar las palabras: nombre_de_la_clase.</p>
<p>Para mantener una lógica de creación de nombres, todas las clases y IDs deberían ser creadas en un mismo idioma. Esto tiene como fin evitar tener nombres como "texto_bold" y "text_negrita". De esta manera, todos los desarrolladores podrán intuir como se llaman las clases.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=119</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=119</feedburner:origLink></item>
		<item>
		<title><![CDATA[Evitar spam ocultando emails con javascript]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/89CgcdEP58w/</link>
		<comments>http://www.peivem.com/?post=118#comentarios</comments>
		<pubDate>Sat, 15 Aug 2009 23:30:06 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=118</guid>
		<description><![CDATA[<p>El gran problema que se presenta al escribir un email en nuestros
sitios Web (y que muchos no saben) es que corremos el riesgo de
comenzar a recibir spam en muy poco tiempo.</p>
<p>Esto sucede porque
todas las páginas en Internet están siempre siendo visitadas por los
llamados "robots", que muchas veces son programas maliciosos que se
dedican a buscar cualquier palabra que pueda parecer un email para
almacenarlo en una base de dato y luego mandarles spam.</p>
<p>Con
este simple truco hecho en javascript podremos evitar que los robots
detecten nuestros correos, pues no estarán escritos en formato de
correo para ellos, pero si para nuestros visitantes "humanos".</p>]]></description>
		<content:encoded><![CDATA[<p>El gran problema que se presenta al escribir un email en nuestros sitios Web (y que muchos no saben) es que corremos el riesgo de comenzar a recibir spam en muy poco tiempo.</p>
<p>Esto sucede porque todas las páginas en Internet están siempre siendo visitadas por los llamados "robots", que muchas veces son programas maliciosos que se dedican a buscar cualquier palabra que pueda parecer un email para almacenarlo en una base de dato y luego mandarles spam.</p>
<p>Con este simple truco hecho en javascript podremos evitar que los robots detecten nuestros correos, pues no estarán escritos en formato de correo para ellos, pero si para nuestros visitantes "humanos".</p>
<p>Lo que tenemos que hacer es escribir nuestro correo de la siguiente manera:</p>
<pre>micorreo<span id="reemplazar">(arroba)</span>misitio.com</pre>
<p>Si se fijan, la @ está representada por la palabra "(arroba)", la cual está dentro de un <em>span</em> que tiene el <em>ID</em> "<em>reemplazar</em>". De esta manera:</p>
<ul>
<li>Los robots que visiten la página (al ver sólo el código) verán toda esa línea, y por lo tanto, es muy difícil que lo consideren como una dirección de correo válida.</li>
<li>Los humanos (al no ver el código) verán <em>micorreo(arroba)misitio.com</em>, que para una persona común y corriente es completamente entendible.</li>
</ul>
<p>El truco ahora está en aplicar la siguiente función de javascript.</p>
<pre>var reemplazable=document.getElementById('reemplazar');<br />reemplazables[i].innerHTML="@";<br /></pre>
<p>La funcion toma el span que tiene el ID <em>reemplazar</em> y reemplaza su contenido (<em>innerHTML</em>) por una arroba. Y <em>voila</em>!, simple y eficiente. Ahora los visitantes (que tengan javascript habilitado porsupuesto) verán el email como cualquier email, e incluso lo podrán copiar/pegar.</p>
<p>¿Y si no tengo javascript habilitado?, se preguntarán muchos. A esta altura todos los navegadores modernos (e incluso IE6, jaja) tienen soporte para javascript, y es muy raro que una persona navegue sin javascript habilitado.</p>
<p>A los que probablemente si les afecte es a los que navegan desde un teléfono móvil, pero de todas formas, ellos y esos extrañísimos casos que navegan sin javascript habilitado, verán <em>micorreo(arroba)misitio.com</em>, lo cual no debería ser un problema.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=118</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=118</feedburner:origLink></item>
		<item>
		<title><![CDATA[Como ocultar sitios mientras se desarrollan]]></title>
		<link>http://feedproxy.google.com/~r/peivem/~3/eTeSm2lfFcI/</link>
		<comments>http://www.peivem.com/?post=117#comentarios</comments>
		<pubDate>Wed, 12 Aug 2009 09:55:06 -0300</pubDate>
		<dc:creator>peivem</dc:creator>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://www.peivem.com/?post=117</guid>
		<description><![CDATA[<p>Al momento de querer publicar un sitio que hemos estado preparando
por meses, generalmente queremos que sea una gran sorpresa para los
demás, y por lo mismo, intentamos mantenerlo oculto hasta el momento
del lanzamiento oficial.</p>
<p>Acá veremos algunas formas de tener los
sitios en el servidor y URL final y que sólo podamos verlo nosotros
para desarrollar lo que falte y configurar los últimos detalles antes
de hacerlo público.</p>]]></description>
		<content:encoded><![CDATA[<p>Al momento de querer publicar un sitio que hemos estado preparando por meses, generalmente queremos que sea una gran sorpresa para los demás, y por lo mismo, intentamos mantenerlo oculto hasta el momento del lanzamiento oficial.</p>
<p>Acá veremos algunas formas de tener los sitios en el servidor y URL final y que sólo podamos verlo nosotros para desarrollar lo que falte y configurar los últimos detalles antes de hacerlo público.</p>
<h3>Redireccionar por IP</h3>
<p>Una de las maneras más simples es redireccionar a todos los otros visitantes a alguna dirección específica mientras se desarrolla el sitio. Para esto, utilizaremos nuestra IP, para que el sitio nos reconozca y a los demás usuarios los envíe a la dirección especificada.</p>
<blockquote>
<p>La dirección IP es el número único que asigna la red a cada conexión de internet.</p>
<p>Para reconocer una IP, hay que fijarse en su formato: xxx.xxx.xxx.xxx (por ejemplo, 200.20.50.125).</p>
<p>Para saber tu IP puedes utilizar <a href="http://ip.interchile.com/" target="_blank">una de las tantas herramientas que hay en internet</a>.</p>
</blockquote>
<p>Para utilizar este sistema, es necesario escribir este código en la primera línea de la página principal:</p>
<pre><?php if($_SERVER['REMOTE_ADDR']!="xxx.xxx.xxx.xxx"){<br />    header("Location: http://www.sitio-alternativo.com/");<br />} ?></pre>
<p>El código utilizado dice básicamente lo siguiente: <em>si(la IP del visitante es distinta a "xxx.xxx.xxx.xxx") entonces { llévalo a http://www.sitio-alternativo.com/ }</em>.</p>
<p>Por supuesto que en esta línea hay que cambiar <em>xxx.xxx.xxx.xxx</em> por tu IP y <em>http://www.sitio-alternativo.com/</em> por el sitio al que quieres que sean reenviados.</p>
<p>Como el código utilizado es PHP debemos tener claro que el archivo debe ser algo así como <em>index.php</em> (.html no servirá) y que el servidor debe soportar PHP.</p>
<p>Otra alternativa es que, en vez de que redirija a algúna otra URL, muestre una trozo de código HTML, que puede ser un mensaje o una página completa:</p>
<pre><?php if($_SERVER['REMOTE_ADDR']!="xxx.xxx.xxx.xxx"){<br />    include("aviso.html");<br />    exit();<br />} ?></pre>
<p>De esta manera, si no es la IP especificada, le mostrará el contenido del archivo <em>aviso.html</em> (que debe estar en el mismo servidor). El <em>exit()</em> que viene al final de esa línea es para que no se haga nada más que mostrar el archivo <em>aviso.html</em>.</p>
<p>Hay que tener cuidado porque como el número es asignado por conexión y no por computador, si tienes una conexión compartida (por ejemplo en tu oficina o casa), todos los demás usuarios de esa misma conexión podrán ver tu sitio.</p>
<h3>.htaccess</h3>
<p>Esta es otra manera de conseguir lo mismo: utilizar el archivo <em>.htaccess</em> que está en la raíz del servidor (si no está en tu servidor lo puedes crear).<br />Para poder realizar la redirección con este archivo es necesario utilizar el siguiente código:</p>
<pre>ErrorDocument 403 http://www.sitio-alternativo.com/<br />Order deny,allow<br />Deny from all<br />Allow from xxx.xxx.xxx.xxx</pre>
<p>De esta manera, le diremos al servidor que solo le muestre a la página a los visitantes de la IP <em>xxx.xxx.xxx.xxx</em> y al resto que los reenvíe a la URL especificada.</p>
<h3>Nombre de usuario y contraseña</h3>
<p>Este sistema requiere de dos archivos: <em>.htaccess</em> y <em>.htpasswd</em> (ambos en la raíz de nuestro sitio). Si queremos utilizar este sistema necesitaremos de mucha más paciencia (a menos que ya tengamos experiencia), pues es un poco más complejo.</p>
<p>Mi idea no es generar un post enorme, y creo que con las dos opciones anteriores basta y sobra. Sin embargo, para los que quieran averiguar como hacerlo, <a href="http://www.cristalab.com/tutoriales/proteger-carpetas-con-.htaccess-y-.htpasswd-c213l/" target="_blank">acá les dejo un buen tutorial</a>.</p>
<p>Otro dato que se debe tener en cuenta en que muchas veces los servidores (a través del panel de control), permiten automatizar la tarea de crear estos dos archivos. Basta con configurar unas cuantas cosas y listo, asique les recomiendo que partan por ahí primero.</p>]]></content:encoded>
		<wfw:commentRss>http://www.peivem.com/?feed=rss2&amp;post=117</wfw:commentRss>
		<feedburner:origLink>http://www.peivem.com/?post=117</feedburner:origLink></item>

	</channel>
</rss>
