<?xml version="1.0" encoding="UTF-8"?>
<?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:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Gustavo Villavizar</title>
	
	<link>http://villavizar.com</link>
	<description>Life of a Webmaster</description>
	<lastBuildDate>Fri, 02 Jul 2010 12:23:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/gvillavizar" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="gvillavizar" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Open Source en RD</title>
		<link>http://villavizar.com/programacion/open-source-en-rd/</link>
		<comments>http://villavizar.com/programacion/open-source-en-rd/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 12:23:38 +0000</pubDate>
		<dc:creator>Gustavo Villavizar</dc:creator>
				<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://villavizar.com/?p=284</guid>
		<description><![CDATA[Hará cuesión de más de un año vengo observando (quizá no con el detalle que quisiera) la industria de software de RD buscando un tema en específico, Open Source, y para mi sorpresa me encontré con que somos un país que consume el OS en demasía pero que sin embargo no producimos nada OS. En [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fvillavizar.com%2Fprogramacion%2Fopen-source-en-rd%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fvillavizar.com%2Fprogramacion%2Fopen-source-en-rd%2F&amp;source=gvillavizar&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Hará cuesión de más de un año vengo observando (quizá no con el detalle que quisiera) la industria de software de RD buscando un tema en específico, Open Source, y para mi sorpresa me encontré con que somos un país que consume el OS en demasía pero que sin embargo no producimos nada OS.</p>
<p>En cierto modo es comprensible, siendo un país pobre, enfocamos todo lo que hacemos al lucro personal. Pero aún así, sorprende encontrar que el porcentaje de OS producido y consumido en RD está por debajo del 2% (y sinceramente creo que soy conservador).</p>
<p>No tenemos la voluntad, ni la disposición para crear y dar seguimiento a ningún tipo de software OS, lo cual es una lástima pues de allí han salido ideas estupendas.</p>
<p>Hablamos y nos regocijamos en el Open Source, nus lucramos enormemente del mismo, pero no tenemos la iniciativa para iniciar un proyecto con el fin de regresar un poco de lo que el OS nos ha brindado.</p>
<p>Ultimamente puede parecer que sólo critico a RD en mis posts, pero precisamente porque amo este país es que entiendo que debo hablar sobre lo que está mal pero que nadie habla.</p>
<p>Me gustaría conocer algunos proyectos Open Source nacidos en RD, si alguien tiene alguno para compartirlo, pueden dejarlo en los comentarios.</p>
<img src="http://villavizar.com/?ak_action=api_record_view&id=284&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://villavizar.com/programacion/open-source-en-rd/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>So you still don’t believe in Social Media?</title>
		<link>http://villavizar.com/general/so-you-still-dont-believe-in-social-media/</link>
		<comments>http://villavizar.com/general/so-you-still-dont-believe-in-social-media/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 14:29:21 +0000</pubDate>
		<dc:creator>Gustavo Villavizar</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://villavizar.com/?p=301</guid>
		<description><![CDATA[&#8220;The question is not if we have to do Social Media or not, the real question is how will we use it.&#8221; Social Media is no longer optional&#8230;]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fvillavizar.com%2Fgeneral%2Fso-you-still-dont-believe-in-social-media%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fvillavizar.com%2Fgeneral%2Fso-you-still-dont-believe-in-social-media%2F&amp;source=gvillavizar&amp;style=normal&amp;service=bit.ly&amp;hashtags=social+media,video" height="61" width="50" /><br />
			</a>
		</div>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/lFZ0z5Fm-Ng&#038;hl=en_US&#038;fs=1&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lFZ0z5Fm-Ng&#038;hl=en_US&#038;fs=1&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>&#8220;The question is not if we have to do Social Media or not, the real question is how will we use it.&#8221;</p>
<p>Social Media is no longer optional&#8230;</p>
<img src="http://villavizar.com/?ak_action=api_record_view&id=301&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://villavizar.com/general/so-you-still-dont-believe-in-social-media/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sobre la industria de software/desarrollo en dominicana (Parte 1)</title>
		<link>http://villavizar.com/general/sobre-la-industria-de-softwaredesarrollo-en-dominicana-parte-1/</link>
		<comments>http://villavizar.com/general/sobre-la-industria-de-softwaredesarrollo-en-dominicana-parte-1/#comments</comments>
		<pubDate>Fri, 07 May 2010 08:30:42 +0000</pubDate>
		<dc:creator>Gustavo Villavizar</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://villavizar.com/?p=265</guid>
		<description><![CDATA[Hay un hashtag que se usa mucho en Twitter y es #apoyololocal. Desafortunadamente lo que se usa mucho es el hashtag, pero el acto en sí de apoyar lo local no es usado a nivel nacional, y es una verdadera pena. Considero que nosotros mismos deberíamos apoyar más nuestras propuestas, y quiero aclarar que me refiero a [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fvillavizar.com%2Fgeneral%2Fsobre-la-industria-de-softwaredesarrollo-en-dominicana-parte-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fvillavizar.com%2Fgeneral%2Fsobre-la-industria-de-softwaredesarrollo-en-dominicana-parte-1%2F&amp;source=gvillavizar&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<div id="attachment_277" class="wp-caption alignleft" style="width: 210px"><a rel="attachment wp-att-277" href="http://villavizar.com/general/sobre-la-industria-de-softwaredesarrollo-en-dominicana-parte-1/attachment/industria-de-software/"><img class="size-full wp-image-277 " title="industria-de-software" src="http://villavizar.com/wp-content/uploads/2010/05/industria-de-software.jpg" alt="Desarrollo de software" width="200" height="200" /></a><p class="wp-caption-text">Desarrollo de software</p></div>
<p>Hay un hashtag que se usa mucho en <a href="http://villavizar.com/tag/twitter/" target="_self">Twitter</a> y es <a href="http://search.twitter.com/search?q=%23apoyololocal" target="_self">#apoyololocal</a>. Desafortunadamente lo que se usa mucho es el hashtag, pero el acto en sí de apoyar lo local no es usado a nivel nacional, y es una verdadera pena.</p>
<p>Considero que nosotros mismos deberíamos apoyar más nuestras propuestas, y quiero aclarar que me refiero a las propuestas originales, no a cualquier <a title="copia barata e ilegal de facebook" href="http://dominicanface.com" target="_blank">copia barata</a> que no aporte nada más que el nombre dominicano, porque entonces no tiene sentido. En el país existen, y siguen surgiendo cada vez más, propuestas bastante interesantes para consumo local, algunas sumamente originales, otras no tanto pero que no por ello pierden utilidad, y más aun cuando van dirigidas puntualmente a las necesidades dominicanas (como en el caso de <a href="http://cashflow.com.do">cashflow.com.do</a>).</p>
<p>Claro, para comenzar a apoyar lo local es necesario tomar en cuenta algunas notas que hay que superar.</p>
<p><span id="more-265"></span></p>
<h2><strong>Primero, los precios</strong></h2>
<p>Tomemos como ejemplo Cashflow.com.do, cuyos precios van desde los $20 dólares hasta los $100 dólares mensuales, cada plan con diversos beneficios que justifican su precio. No hay plan gratis ni de muestra (lo cual es sumamente importante para conseguir el enganche al uso del servicio) pero fuera de eso los precios están relativamente justos. Digo relativamente porque en internet podemos encontrar servicios similares con un cobro menor, ahora bien, el servicio merece la pena la prueba.</p>
<p>Es difícil dar precios para este tipo de servicios, tenemos como mucho 2 o 3 millones de internautas a nivel nacional, de los cuales la mayoría son internautas con un poder de adquisición cerca de 0, es decir, que no tienen capacidad de compra en internet. Es decir que como desarrolladores locales tenemos muy poco público, si queremos vivir de las aplicaciones que hacemos, tenemos que poner un precio que por lo menos nos permita cubrir los gastos que nos genera el servicio, de lo contrario el proyecto no podrá auto sostenerse.</p>
<p>Un cliente quiere adquirir dicho servicio y debe pagar (20*36.5)*1.16 = $846.8 pesos dominicanos. Mensualmente, pues por el servicio local debemos pagar 16% de ITBIS mientras que si contratamos el servicio en el extranjero nos ahorramos ese 16% de impuestos. Esto es contraproducente para el servicio y la gente detrás del mismo.</p>
<p>El mismo tema del cobro es una limitante muy grande, si queremos aceptar pagos en línea (para de cierta manera automatizar más el proceso) debemos usar una opción como paypal que nos cobra un fee en dólares por cada transacción. Si usamos una solución local (CardNet o VisaNet) primero que todo es un dolor de cabeza y una pérdida muy grande de tiempo y dinero conseguir el permiso para realizar las transacciones, luego de obtener el permiso hay que contratar una entidad que actúe como gestor de pago, y recordemos que mientras más personas haya en el medio, menor es el ingreso final para el servicio. Teniendo en cuenta que el cliente que decide pagar $720 pesos por nuestro servicio al final está pagando $846.8, pero de esos $846.8 estamos pagando $146.8 de impuestos al estado, luego nos quedan $720 de los cuales pagamos 5% por transacción a la entidad &#8220;reguladora&#8221; y tenemos que pagar $36 pesos a dicha entidad (aparte de la inversión que tenemos que hacer para conseguir el permiso) más un fee que se lleva el gestor de pagos que, siendo considerados sea un 2%, tenemos $14.4 pesos por transacción. Finalmente de eso nos quedan $846.6-146.6-36-14.4=$680.4.</p>
<p>El problema no es avaricia por parte de los creadores del servicio, los altos precios son debido a que una empresa no tiene otra alternativa si quiere hacer su producto rentable.</p>
<h3><strong>¿Solución</strong><strong> a</strong><strong> éste problema?</strong></h3>
<p>En mi opinión esto se soluciona con la liberación de impuestos de las empresas que utilicen servicios locales y con la creación de un impuesto a aquellas empresas que hagan lo contrario. De este modo estarían casi forzando al apoyo local. Para esto es necesario una especie de registro mercantil u oficina que se encargue de listar las opciones locales que existen y que al mismo tiempo sirva de directorio para las empresas que tengan determinada necesidad para consultar quién puede brindarles ese servicio. Ej: Una empresa necesita una opción de contabilidad online y primero confirma las opciones disponibles en dicha entidad, en caso contrario se le permite contratar un servicio extranjero.</p>
<p>Si queremos aumentar el desarrollo del país debemos de proveer de las condiciones para que el dinero del mismo se quede aquí, y no se vaya a la cuenta de banco de ninguna empresa extranjera.</p>
<h2><strong>Segundo, la calidad</strong></h2>
<p>Otro motivo por el cual no es posible apoyar lo local como se debería es debido a que muchas de las opciones que encontramos en el exterior poseen mayor calidad de servicio que las opciones locales, esto no se debe a mayor inteligencia o capacidad, sino a una mala asesoría por parte de los mismos desarrolladores. La misma entidad que regula el uso de los servicios criollos debe también velar porque las opciones disponibles en el mercado tengan cierto nivel de calidad y seguridad.</p>
<p>Algo muy común y cierto (<a href="http://villavizar.com/wp-admin/williamsmendez.com/mi-frustracion-software-libre-en-la-universidad/" target="_blank">y de lo cual habla Williams Mendez en su blog</a>) es el hecho de que las mismas universidades e institutos técnicos del país no enseñan otra cosa que no sea software propietario, específicamente de Microsoft. No estoy en contra de Microsoft, el problema es que los desarrolladores y profesionales que crecen así, crecen en algo que llamo un efecto burbuja. Se encierran dentro de una burbuja donde los productos de Microsoft son la única alternativa a sus problemas, que no solo no conocen que hay otras opciones con mucho menor costo y con mucha mayor calidad, sino que <strong>no están abiertos a conocerlas</strong>, porque Microsoft es todo lo que necesitan.</p>
<p>Si quieren un ejemplo de esto fíjense en la página de la <a href="http://www.dgii.gov.do" target="_blank">DGII</a>, es sumamente atractiva en cuanto a diseño, se mantiene al día, la actualizan constantemente, contiene muchas opciones para facilitarnos la vida, sin embargo solo es funcional cuando se accede desde Internet Explorer. Recientemente entre con <strong>Google Chrome</strong> (que es el navegador que estoy usando últimamente debido a sus tantas ventajas) y enviando un formulario, un simple formulario, mi navegador llego al límite de consumir 948MB de memoria. Obviamente el formulario nunca se envió y tuve que entrar con Explorer para poder enviarlo. El problema es que en mi laptop, en Linux, no tengo Explorer. Todas las compañías de software del país se especializan en Windows, esto no está mal porque se encargan del mayor share de mercado actualmente, pero ninguna ha siquiera considerado hacer una aplicación que pueda correr en Linux o en Mac OS X.</p>
<p>Cuando hablo de calidad me refiero a usabilidad, a accesibilidad, a ese toque que diferencia a los productos extranjeros (en un mercado mucho más exigente) de los locales.</p>
<p>Así como digo una cosa digo otra, si una persona desea lanzar un servicio local y recibir apoyo primero debe garantizar que dicho servicio sea una competencia viable para muchos que hay por ahí, de lo contrario no vale la pena apoyar un proyecto solo porque sea dominicano.</p>
<h2><strong>Tercero, las cuñas</strong></h2>
<p>Seamos sinceros, una compañía de desarrollo puede ser muy buena y si no encuentra un cliente grande que le pague bien por lo que hace nunca se dará a conocer, del mismo modo una compañía puede ser muy mala y si tiene un primo, amigo, allegado, interesado en la entidad que contrata entonces tiene el proyecto asegurado. ¿Las licitaciones publicas? <em>Si claro, pide 5 propuestas y no te preocupes que el negocio lo tienes seguro, pero sácame lo mío.</em></p>
<p>No tengo solución a esto, estamos hablando directamente de la ética profesional y la moral de las personas y, en primer lugar no soy quien para darle clases de moral a nadie, y en segundo lugar eso no lo podré cambiar por muchas líneas que escriba en este blog. De las cuñas nadie nos salva, lo único que podemos hacer es tratar de conseguirnos las nuestras.</p>
<h2><strong>Cuarto, regulación del mercado</strong></h2>
<p>En este país cada cual cobra lo que quiere por el servicio que ofrece, no hay límites, tenemos personas que cobran millones de pesos por hacer algo simple y otras que deben cobrar chelitos por hacer cosas complejas.</p>
<p>La misma entidad menciono en puntos anteriores, debe regular los precios de un servicio, porque de lo contrario tendremos un mercado en el que el que quiera ser competitivo morirá de hambre. Hay precios que son altos y justificados, un profesional pasa años quemándose las pestañas para poder realizar algún trabajo, es injusto que luego que se especializa en algo tenga que hacer uno cada dos semanas para poder comer o de lo contrario muere de hambre.</p>
<p>Cuando digo regulación de precios no me refiero a reducción, me refiero a justificación de los mismos. Una compañía no puede cobrar lo mismo cuando baja un template de internet que ya tienen otros 1,200 clientes a cuando sienta a uno o mas diseñadores a pensar, idealizar y conceptualizar una solución de diseño que justifique beneficios para un cliente mas allá de que &#8220;se ve bonito&#8221;, pero al final la compañía que cobra $20 mil por una página web cuyo diseño, programación, funcionalidad y contenido provienen de un producto enlatado, lo que hace es perjudicar a otra que cobra $42 mil y que ofrece la promesa de desarrollar todo a la medida de las necesidades del cliente que lo contrata.</p>
<p>Ya con esto termino la parte 1 de este tema. Hay mucha tela de donde cortar pero primero quiero conocer las opiniones de los lectores sobre el mismo.</p>
<img src="http://villavizar.com/?ak_action=api_record_view&id=265&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://villavizar.com/general/sobre-la-industria-de-softwaredesarrollo-en-dominicana-parte-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Importante: Alarmante caso en la vía pública</title>
		<link>http://villavizar.com/general/importante-alarmante-caso-en-la-via-publica/</link>
		<comments>http://villavizar.com/general/importante-alarmante-caso-en-la-via-publica/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 13:19:55 +0000</pubDate>
		<dc:creator>Gustavo Villavizar</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://villavizar.com/?p=252</guid>
		<description><![CDATA[Éste es un Buzz que publicó mi amigo Camilo Sánchez, y que publico porque entiendo que es un tema que TODOS deben saber y para ayudar a difundirlo. Cito textualmente el Buzz: -*SRES NO VAYAN AL PARQUE DEL ESTE A HACER EJERCICIOS, NI ACTIVIDADES DE NINGUNA CLASE!! AHI ESTAN VIOLANDO GENTE!!** La verdad es que [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fvillavizar.com%2Fgeneral%2Fimportante-alarmante-caso-en-la-via-publica%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fvillavizar.com%2Fgeneral%2Fimportante-alarmante-caso-en-la-via-publica%2F&amp;source=gvillavizar&amp;style=normal&amp;service=bit.ly" height="61" width="50" /><br />
			</a>
		</div>
<p>Éste es un Buzz que publicó mi amigo <strong>Camilo Sánchez</strong>, y que publico porque entiendo que es un tema que TODOS deben saber y para ayudar a difundirlo.</p>
<p>Cito textualmente el Buzz:</p>
<blockquote><p>-<strong>*SRES NO VAYAN AL PARQUE DEL ESTE A HACER EJERCICIOS, NI ACTIVIDADES DE NINGUNA CLASE!! AHI ESTAN VIOLANDO GENTE!!**</strong></p>
<p>La verdad es que normalmente no escribo mucho en internet, por falta de tiempo, pero no me puedo quedar con esta.<br />
Bueno lo cierto es que alli hay una trampa fabricada por puras ratas. Ayer, fui como normalmente he estado yendo desde hace mucho tiempo todos los domingos en la mañana a ejercitarme, disfrutar del sol y de una caminata . Siempre habia ido tranquilo al parque porque pensé que era un lugar mas o menos seguro, ahi dentro hay un destacamento mixto (policia y militar) y además de que está custodiado por &#8220;militares&#8221; ellos se &#8220;mantinen&#8221; dándole la vuelta en un motor &#8220;velando&#8221; para que la gente que va ahi a jugar futbol, tennis, a montar bicicleta, a dar una caminata, o a disfrutar de un picnic familiar, lo haga en &#8220;paz y seguro&#8221;.</p>
<p>Ayer era un dia muy bonito, fui con mi novia como cada domingo, ya le habiamos dado 2 vueltas, y cuando ibamos finalizando la tercera, lo que parecia un dia normal se convirtio en una especie de pesadilla surreal. De una de las casetas abandonadas que hay ahi, desvencijadas a PROPOSITO para estas actividades, sale un tipo armado y nos dice que &#8220;cuidao si se mandan, entren pa&#8217;lla&#8221; lo que pense fue, bueno, le damos todo lo que tenemos<br />
tranquilamente y el pana sale corriendo, lo siguiente que sucedio fue que nos metio en un cuarto (donde ya tenia preparado todo el escenario para cometer el crimen) nos tira a los dos al suelo, a mi boca abajo, ordena a mi novia a quitarme los tennis, a quitarle los cordones, a amarrarme los pies y las manos, a lo cual el procede a asegurar bien los nudos, me revisa completo y me quita todo lo que tengo a la vez que nos sugestiona psicologicamente y nos pregunta cosas como donde vivimos, si andamos acompañados, donde esta parqueado el carro, todo, le dije que el carro estaba parqueado en la entrada<br />
frente al &#8220;destacamento&#8221;.</p>
<p>A todo esto, el tipo estaba de lo mas tranquilo, estaba haciendo todo con toda la calma, le advertimos que los militares patrullan el area con frecuencia a lo que respondio &#8220;a mi que me importa esa baina&#8221;. Una vez que estoy amarrado de pies y manos se lleva a mi novia a otra habitacion que esta al otro lado de la caseta, y me amenaza de que cualquier cosa que yo haga la iba a matar. Fue toda una maldita freakin pesadilla y no podia creer que esa mierda nos estaba pasando. Yo solo tuve que empezar a orar a Dios para que ese individuo no le haga daño a mi novia.</p>
<p>El asunto es que se la llevo por un rato, la amarró, y empieza tranquilo a buscar un lugar donde violarla, resalto que todo esto el tipo lo hace como si a el nadie lo fuera a encontrar en el acto, tranquilo, todo el episodio duró como 40 minutos. Dios escucho mis oraciones, porque ella empezo a decirle a el que ella era cristiana y que Dios no veia bien que el hiciera eso, que Dios no lo permitiria y entre sus opciones estaba el no cometer ese error. El tipo al<br />
escuchar esto lo que dijo fue que ella estaba muy tranquila para lo que estaba sucediendo y que era cierto que andaba con Dios, decidio no hacerle daño. Mientras va sucediendo esa conversacion el fue en dos ocasiones a donde yo estaba para confirmar si yo seguia amarrado. Cuando esa conversacion termina, el va donde mi y me dice que el no nos va a hacer daño, que se iba pero que si voceaba iba a matar a mi novia, mientras me decia esto se cambiaba rapidamente la ropa y me decia que no lo mirara. Salió corriendo, metio la cabeza por la ventana para ver si seguia amarrado y desapareció.</p>
<p>Como mi novia solo estaba amarrada por las manos ella consiguio desatarse y corrio a desatarme a mi, salimos corriendo de inmediato del lugar y fuimos al supuesto &#8220;destacamento&#8221;, cuando le dijimos a los militares del hecho y nos preguntaron como era el tipo, le dijimos: un morenito, de estatura media, andaba vestido como si fuera a hacer ejercicios pero antes de salir se habia cambiado la ropa. Esos barbaros, tranquilos, como si no hubiese pasado nada nos dicen: Oh, y tenia la cara cortada? y le dijimos, si asi mismo tenia la cara cortada, y fue entonces cuando fueron al lugar en vano a ver lo que habia sucedido. El asunto es que ellos al tipo lo conocen ya, el delincuente actuó de una manera inusual, estaba tranquilo, nos dice que no le importa que el sitio esté &#8220;custodeado&#8221; y para colmo los militares ni se sorprenden cuando les decimos la noticia. Además de que en el lugar todo estaba seteado para cometer el crimen, TODO! Eso que el hizo, no solo lo habia planeado cuidadosamente, sino que está cansado de hacerlo! en ese lugar lo que hay es<br />
una asociacion de malhechores, de esas que todos conocemos, de las que para nadie aqui son un misterio, de esas asociaciones entre podridos militares y policias y delincuentes, es lo que hace este lugar aun mas inseguro, y es la razon por la que es un caso especial. Mi padre, que tambien estaba en el lugar haciendo ejercicios pero que no habia ido junto conmigo, les pregunta a los militares como es posible que estas cosas sean posibles en un lugar &#8220;vigilado&#8221; donde hay un destacamento y donde la gente va porque se hace la idea de que esta protegido, a lo que el militar le contesta que lo que le <strong>*paga la sedefir no da para nada y que ni siquiera da para echarle gasolina al motor para dar las vueltas.*</strong> Lo cual confirma el hecho de la lamentable asociacion de malhechores que tiene lugar en ese maldito sitio. Eso ahi va a seguir sucediendo y los mas expuestos son los que parquean sus carros al lado de la cancha de tennis, porque la caseta, esta justo al lado de donde la gente parquea sus vehiculos, no me quiero ni imaginar a alguien que viene tranquilamente a parquear su vehiculo ahi como lo hace siempre y de repente lo que parecia un dia normal se convirtiera en una pesadilla que no podran olvidar.</p>
<p>A ese sitio no vayan, y si quieren a algunos de sus familiares diganles que no vayan tampoco. Uno se siente sumamente impotente porque dime tu, que diablos se va a hacer cuando hay una asociacion entre policia-delincuente, donde el policia protege al delincuente. Gracias a Dios que nos protegió, porque las cosas estan que él es el único que nos puede proteger. Así es la realidad de este mi hermoso pais, por suerte hoy lunes 12 de abril puedo contarlo y puedo decir que no perdimos nada que podamos lamentar, pero lo cierto es que estas cosas suceden y suceden peor de ahi! Me da asco esa maldita institucion llamada Policia Nacional!!</p></blockquote>
<p>Aquí está. Es importante que se difunda el mensaje, si van o conocen alguien que visite este parque deben tener mucho cuidado, eso amerita investigación a fondo pues no es posible que ni siquiera en los parques públicos y en horas de la mañana podamos ejercitarnos sanamente sin estar expuetos a esta clase de peligros.</p>
<p>Gracias a Dios que no pasó nada, porque el señor metió su mano y protegió a mi amigo y su novia.</p>
<img src="http://villavizar.com/?ak_action=api_record_view&id=252&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://villavizar.com/general/importante-alarmante-caso-en-la-via-publica/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Top 10+6] cosas que molestan a un programador</title>
		<link>http://villavizar.com/programacion/top-106-cosas-que-molestan-a-un-programador/</link>
		<comments>http://villavizar.com/programacion/top-106-cosas-que-molestan-a-un-programador/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 17:33:59 +0000</pubDate>
		<dc:creator>Gustavo Villavizar</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Top]]></category>

		<guid isPermaLink="false">http://villavizar.com/?p=222</guid>
		<description><![CDATA[Ayer leía con una sonrisa en mi rostro un tema escrito por Keving William Pang llamado &#8220;Top 10 Things That Annoy a Programmer&#8221; y aunque estoy 100% de acuerdo con el, creo que solo 10 cosas no son suficientes, así que aquí van las 10 cosas que según él molestan a un programador (traducidas por [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fvillavizar.com%2Fprogramacion%2Ftop-106-cosas-que-molestan-a-un-programador%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fvillavizar.com%2Fprogramacion%2Ftop-106-cosas-que-molestan-a-un-programador%2F&amp;source=gvillavizar&amp;style=normal&amp;service=bit.ly&amp;hashtags=Programaci%C3%B3n" height="61" width="50" /><br />
			</a>
		</div>
<p>Ayer leía con una sonrisa en mi rostro un tema escrito por <strong>Keving William Pan</strong><strong>g</strong> llamado &#8220;<a href="http://www.kevinwilliampang.com/2008/08/28/top-10-things-that-annoy-programmers/" target="_blank">Top 10 Things That Annoy a Programmer</a>&#8221; y aunque estoy 100% de acuerdo con el, creo que solo 10 cosas no son suficientes, así que aquí van las 10 cosas que según él molestan a un programador (traducidas por mi) y luego MIS 10 cosas que molestan a un programador.<br />
<span id="more-222"></span></p>
<h2>10. Comentarios que explican el &#8220;cómo&#8221; pero no el &#8220;porqué&#8221;</h2>
<p>Esto es típico, estamos programando en el código de otro y nos encontramos con esto:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">r <span style="color: #339933;">=</span> n <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Set r to n divided by 2</span>
<span style="color: #666666; font-style: italic;">// Loop while r - (n/r) is greater than t</span>
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">abs</span><span style="color: #009900;">&#40;</span> r <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>n<span style="color: #339933;">/</span>r<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> t <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
r <span style="color: #339933;">=</span> <span style="color:#800080;">0.5</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span> r <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>n<span style="color: #339933;">/</span>r<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Set r to half of r + (n/r)</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Y el principal problema con esto es que yo entiendo lo que hace el código, si estoy trabajando con tu código es porque sé cómo funciona un while(), lo que no entiendo (y necesito entender) es con qué objetivo usaste un while en esta parte del programa. A veces cuando comentamos no nos detenemos a pensar la relevancia del comentario, sino que como está comentado ya estamos cumpliendo, tomen por ejemplo el código anterior, cambiemos el comentario y veamos si entendemos algo.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// square root of n with Newton-Raphson approximation</span>
r <span style="color: #339933;">=</span> n <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">abs</span><span style="color: #009900;">&#40;</span> r <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>n<span style="color: #339933;">/</span>r<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> t <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    r <span style="color: #339933;">=</span> <span style="color:#800080;">0.5</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span> r <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>n<span style="color: #339933;">/</span>r<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ok, para muchos seguirá siendo incomplensible, pero para un programador al menos nos pone en el camino correcto de qué hace este bloque de código. Es una de las peores cosas de trabajar con el código de otro.</p>
<h2>9. Interrupciones</h2>
<p>Muy pocos programadores pueden ir de 0 a código en un instante. Por lo general un programador toma tiempo para introducirse en el código, pero una vez que lo hacemos podemos escribir miles y miles de líneas de código semánticas sin detenernos. Desafortunadamente es muy dificil entrar en la zona de programación cuando estamos siendo constantemente distraídos por clientes, compañeros de trabajo o jefes todo el tiempo, incluso otros programadores.</p>
<p>Algo que aprendí en mi trabajo en <a href="http://www.comunique.com.do" target="_blank">comuniQue </a>es que lo mejor para programar definitivamente es desconectarse del resto del mundo.</p>
<p>Mientras programamos debemos manejar demasiada información en nuestra mente, es decir, antes de comenzar debemos tener una visión del objetivo final y luego separar ese objetivo en partes y trabajar en pequeñas porciones, pero cada porción debe ir de la mano con las demás para que mantengan concordancia. Esto es algo dificil de entender para la mayoría de los no-programadores. Las distracciones nos sacan de nuestra área y generalmente toma demasiado tiempo volver a ella.</p>
<h2>8. Scope creep</h2>
<p>Desde <a href="http://en.wikipedia.org/wiki/Scope_creep" target="_blank">Wikipedia</a>:</p>
<blockquote><p>Scope creep (also called focus creep, requirement creep, feature creep, and sometimes kitchen sink syndrome) in project management refers to uncontrolled changes in a project’s scope. This phenomenon can occur when the scope of a project is not properly defined, documented, or controlled. It is generally considered a negative occurrence that is to be avoided.</p></blockquote>
<p>No tengo mucho que decir de esto, solo pensarlo me pone los nervios de punta&#8230;pero miremos un ejemplo práctico que Kevin da:</p>
<ul>
<li>Versión 1: Mostrar un mapa de la ubicación</li>
<li>Versión 2: Mostrar un mapa <strong>3D</strong> de la ubicación</li>
<li>Versión 3: Mostrar un mapa <strong>3D</strong> de la ubicación <strong>en la que el usuario pueda navegar</strong></li>
</ul>
<p>Así de sencillo un requerimiento que en el primer planteamiento fue relativamente sencillo y de unas pocas horas de integración se convirtió en un total dolor de cabeza para cualquier programador. Este tipo de &#8220;adiciones&#8221; a un requerimiento generalmente ocurren <em>durante</em> el desarrollo y esto requiere reescribir, reestructurar y a veces votar porciones de código que previamente teníamos.</p>
<h2>7. Gerencia que no entiende de programación</h2>
<p>Resumiendo: Cuando la gerencia no conoce ni los conceptos básicos de nuestro trabajo, terminamos con Scope Creep, deadlines irrealistas y en general frustración de ambos lados de la mesa. Esta es una queja común entre programadores y la fuente de mucho enojo.</p>
<h2>6. Documentar nuestras aplicaciones</h2>
<p>Ok, desde siempre se nos ha dicho que debemos documentar todas nuestras aplicaciones, pero es un dolor en el @$$, miren todos los programas open source que hay en internet, qué es lo que normalmente buscan cuando alguien se ofrece a ayudar&#8230;&#8221;escribir la documentación&#8221;.</p>
<p>La causa de esto es simple, para cualquiera que esté en este trabajo es porque <strong>disfruta</strong> este trabajo. Siendo realistas, nadie escribiría 3786 lineas de código de no disfrutarlo. Documentar no es parte de nuestro trabajo, estamos a gusto escribiendo código que solo unos pocos entienden, pero la verdad carecemos de la capacidad de escribir una documentación que cualquiera pueda entender&#8230;a la hora de escribir documentación <strong>no podría hacerlo alguien más</strong>?</p>
<h2>5. Aplicaciones sin documentación</h2>
<p>Si, es una contradicción completa al punto anterior, estamos de acuerdo en que <strong>odiamos documentar</strong>, pero eso no significa que no la necesitemos.</p>
<h2>4. Hardware</h2>
<p>Es un error común el creer que solo porque somos programadores podemos reparar una computadora que no sube, una impresora que no imprime o una máquina que no tiene acceso al servidor. En muchos casos es cierto, pero en muchos otros no. Los no-programadores o en este caso no-informáticos en general tienden a creer que cualquiera que trabaje con algo relacionado a las computadoras debe saber repararlas, y esto no es cierto.</p>
<p>Un programador solo desea que las cosas funcionen  como deben de funcionar para que podamos seguir con nuestro trabajo. Esto pasa en compañías que tienen programadores pero no tienen nadie encargado de TI, así que en muchas ocasiones el programador debe dejar de programar y pararse a ayudar a un vendedor que no puede abrir una presentación de powerpoint en su pc, siendo que la presentación es para 2007 y la pc tiene 2003&#8230;y eso, eso <strong>es frustrante</strong>!</p>
<h2>3. Vaguedad</h2>
<p>Antes que todo si, <a href="http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&amp;LEMA=vaguedad" target="_blank">la palabra existe</a>.</p>
<p>Ahora al punto, &#8220;el website no funciona&#8221;, &#8220;no puedo loguearme&#8221;. Es un caos trabajar con requerimientos vagos. Es sorprendente ver como los no-programadores se ponen cuando se les pide que reproduzcan el error para el programador. Parecen no entender que &#8220;está dañado, repáralo&#8221; no es suficiente información para resolverlo.</p>
<p>Por eso muchas veces se dice &#8220;intenté reproducir el error y no logré hacerlo, por tanto, <strong>todo está funcionando correctamente</strong>&#8220;, esto no significa que el programador sea vago, significa que necesitamos saber el navegador, el sistema operativo, la velocidad de conexión, los datos que se estaban introduciendo, desde donde y hacia donde se dirigía cuando surgió el problema, si los CAPS Lock estaban activados o no, si el teclado es en inglés o en español&#8230;todo esto es necesario para poder encontrar y reparar un error.</p>
<h2>2. Otros programadores</h2>
<p>No comentarios en este punto&#8230;el título es muy obvio.</p>
<h2>1. El código propio, 6 meses después</h2>
<p>Para un no-programador puede ser dificil entender este punto, pero la base de un buen programador es la evolución constante. Un programador que no evolucione en 6 meses ya no puede llamarse a si mismo programador.</p>
<p>Lo cierto es que cada vez que tenemos que volver a trabajar en una aplicación que hicimos hace 6 meses o un año, muchas veces preferimos escribir el código desde 0. Esto no es malo, es solo que a un programador le cuesta mucho seguir las malas prácticas, la tecnología y la programación como tal evolucionan, la forma de hacer algo hoy es mucho más sencilla que la forma de hacer eso mismo hace 6 meses, por tanto es repulsivo tener que trabajar con un código no óptimo.</p>
<p>Les pongo un simple ejemplo, en cierto proyecto necesitaba mostrar una fecha en español desde la base de datos. Este fue el primer código que usé:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$fecha</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$item</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'fecha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$date</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;-&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$fecha</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$time</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;:&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$fecha</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$dia</span> <span style="color: #339933;">=</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;l&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">mktime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$time</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$time</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$time</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$date</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$date</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$date</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$search</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Sunday&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Monday&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Tuesday&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Wednesday&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Thursday&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Friday&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Saturday&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$replace</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Domingo&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Lunes&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Martes&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Miércoles&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Jueves&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Viernes&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Sábado&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$dia</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$search</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace</span><span style="color: #339933;">,</span><span style="color: #000088;">$dia</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mes</span> <span style="color: #339933;">=</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;M&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">mktime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$time</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$time</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$time</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$date</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$date</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$date</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$search2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Jan&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Apr&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Aug&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$replace2</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Ene&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Abr&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Ago&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mes</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$search2</span><span style="color: #339933;">,</span><span style="color: #000088;">$replace2</span><span style="color: #339933;">,</span><span style="color: #000088;">$mes</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$meridiano</span> <span style="color: #339933;">=</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;a&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">mktime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$time</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$time</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$time</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$date</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$date</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$date</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Rústico si, pero funcionó bastante bien. Luego perfeccioné ese código, en un nuevo proyecto descubrí que puedo lograr el mismo resultado con el siguiente código:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">setlocale</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'es_ES'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">strftime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%A %d de %b del %Y a las %X'</span><span style="color: #339933;">,</span><span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$item</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'fecha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Cool eh? Acabo de convertir 12 líneas de código en 2&#8230;imagínen mi impresión cuando tuve que volver a trabajar con el primer proyecto y me encontré con ese código&#8230;qué creen que hice, lo dejé tal cual y resolví el asunto o lo cambié por el nuevo código? Por supuesto que lo cambié, si no lo hubiera hecho no habría podido dormir esa noche (si, así de grave es mi caso), en este caso no vale eso de que si no está roto no lo arregles, porque desde el punto de vista de un programador <strong>SI ESTA ROTO</strong>.</p>
<p>Estas son las 10 cosas que molestan a un programador según <a href="http://www.kevinwilliampang.com/">Kevin William Pang</a>, ahora les expreso otras 6 cosas que molestan a un programador según <strong>Gustavo Villavizar</strong>.</p>
<h2>6. La superposición del cliente</h2>
<p>La superposición del cliente indica cuando un cliente solicita un nuevo feature a una aplicación, el contacto del cliente le dice &#8220;Ok&#8221;. Esa persona no hace preguntas, no sabe hacerlas, por tanto le queda al programador la tarea de realizar ese requerimiento sin importar si conviene o no, si es factible, si es posible, pero hay que hacerlo porque ya se le dijo al cliente que si.</p>
<h2>5. Trabajar con el código de otro</h2>
<p>Este caso indica una relación entre varios puntos que he mencionado antes&#8230;es dificil trabajar con el código de otro.</p>
<h2>4. Demasiados nodos en la cadena</h2>
<p>Esto es demasiado común. Cuando hay muchos intermediarios entre el cliente y el programador se hace mucho más dificil desarrollar los requerimientos del cliente. El cliente hace un requerimiento, tarda mucho tiempo en llegar al programador y si el programador lo rechaza tarda mucho en llegar de nuevo al cliente, en esta etapa el cliente entiende que al haber pasado tanto tiempo su requerimiento fue aceptado y que se está trabajando en eso, es problemático cuando se le cambia la idea al cliente con la respuesta del programador.</p>
<h2>3. Gente que cree que sabe programar</h2>
<p>Un ingeniero de sistemas graduado en 1993, un programador de Cobold, un programador de aplicaciones Win32 que creen que saben cómo programar para web&#8230;¡esto es fatal! Por favor entiéndelo, Windows y la Web no funcionan igual.No eres programador web así que deja de pensar que entiendes mi trabajo o pero aún, que sabes más que yo del mismo.</p>
<p>Esta es una de las principales razones por las cuales un programador independiente rechaza un proyecto luego de haberlo iniciado, no es por falta de responsabilidad, es que se vuelve imposible trabajar así.</p>
<h2>2. Clientes que lidian con términos complejos de los cuales no entienden</h2>
<p>A veces, cuando las estrellas se alínean, algún no-programador lee un post sobre programación o escucha una conferencia y aprende términos nuevos, y los quieren usar.</p>
<p>Cuando te piden un proyecto minimalista como el website de Apple, generalmente quieren una página con fondo blanco y muchas imágenes. Cuando te piden que el proyecto tenga la tendencia KISS pero que tenga 13 mil features, cuando te piden que la página sea fácil de usar pero que tenga comunicación de marca, etc.</p>
<h2>1. Cuando creen que el programador también es diseñador y hasta copywriter</h2>
<p>¿Alguien se siente identificado con esto? El cliente hace un requerimiento y el programador debe realizarlo, integrarlo con el diseño y escribir el texto correcto en el website&#8230;cuesta trabajo decirle a un cliente que somos programadores, no diseñadores ni copywriters, y peor aún es cuando se lo has dicho en los dos requerimientos anteriores y en este tienes que repetirselo.</p>
<p>Leyendo todo el post nuevamente parece una especie de rabieta, pero estoy seguro de que mis colegas programadores y algunos no-programadores se sentirán identificados con algunos de los puntos que expreso en esta entrada.</p>
<p>Si olvidé alguno, son bienvenidos a expresarlos en los comentarios.</p>
<img src="http://villavizar.com/?ak_action=api_record_view&id=222&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://villavizar.com/programacion/top-106-cosas-que-molestan-a-un-programador/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
