Frases Informaticas

Humor, Internet, Opinión, Programación Sin Comentarios »
Publicado por lopongoaca

Aca les dejo unas muy buenas frases informaticas que encontre navegando la .

El uso de COBOL daña la mente. Su enseñanza debería ser considerada como un ataque criminal”
– E. W. Dijkstra

“Iterar es humano, ‘recursivar’ es divino”
– L. Peter Deutsch

“Escribir en C o C++ es como utilizar una sierra eléctrica sin ningún tipo de protección”
– Bob Gray

“Lo mejor de los booleanos es que si te equivocas estás a un sólo bit de la solución correcta”
– Anónimo

“La complejidad es destructiva. Chupa la sangre de los desarrolladores, hace que los productos sean difíciles de planificar, construir y probar, introduce problemas de seguridad y provoca la frustración de usuarios finales y administradores”
– Ray Ozzie

“La función de un buen software es hacer que lo complejo aparente ser simple”
– Grady Booch

“Todos los sistemas operativos que hay ahí fuera son más o menos iguales. Todos somos una mierda”
– Brian Valentine, vicepresidente senior de describiendo el estado del arte en seguridad de sistemas operativos en 2003

“¿Internet? ¿Todavía anda eso por ahí?”
– Homer Simpson

“Se dice que las grandes disciplinas científicas son ejemplos de gigantes subidos a los hombros de otros gigantes. También se dice que la industria del software es un ejemplo de enanos subidos a los dedos de los pies de otros enanos”
– Alan Cooper

“Somos . La resistencia es inútil. Serás absorbido”
– Bumper sticker

“La mayoría de las patentes son una mierda. Dedicar tiempo a leerlas
es estúpido. Es cosa de los propietarios de las patentes hacerlo y procurar que se respeten”
– Linus Torvalds

“Recuerda: no eres torpe, no importa lo que digan esos libros. Los torpes de verdad son gente que, creyéndose expertos técnicos, no podrían diseñar hardware y software manejable por usuarios normales aunque la vida les fuera en ello”
– Walter Mossberg

“La programación es una carrera entre los desarrolladores, intentando construir mayores y mejores programas a prueba de idiotas, y el universo, intentanto producir mayores y mejores idiotas. Por ahora va ganando el Universo”
– Rich Cook

“La mayoría de ustedes están familiarizados con las virtudes del programador. Son tres, por supusto: pereza, impaciencia y orgullo desmedido”
– Larry Wall

“La formación en informática no puede convertir a nadie en experto programador, de la misma forma que estudiar pinceles y pigmentos puede hacer a alguien un experto pintor”
– Eric Raymond

“Un programador es la persona considerada experta en ser capaz de sacar, después de innumerables tecleos, una serie infinita de respuestas incomprensibles calculadas con precisión micrométrica a partir de vagas asunciones basadas en discutibles cifras tomadas de documentos inconcluyentes y llevados a cabo con instrumentos de escasa precisión, por personas de fiabilidad dudosa y cuestionable mentalidad con el propósito declarado de molestar y confundiar al desesperado e indefenso departamento que tuvo la mala fortuna de pedir la información en primer lugar”
– IEEE Grid newsmagazine

“Un hacker puede ser capaz de producir, en unos pocos meses, algo que un pequeño grupo de desarrolladores (digamos de 7 u 8 personas) podría tener trabajado duramente juntos más de un año. IBM solía decir que ciertos programadores podían ser 100 veces más productivos que otros trabajadores, o más”
– Peter Seebach

“No te preocupes si no funciona bien. Si todo estuviera correcto, serías despedido de tu trabajo”
– Ley de Mosher de la Ingeniería del Software

“Medir el progreso del de software por líneas de código es como medir el progreso de la construcción de un avión por su peso”
– Bill Gates

“Hay sólo dos clases de lenguajes de programación: aquellos de los que la gente está siempre quejándose y aquellos que nadie usa”
– Bjarne Stroustrup

es un mal menor perpetrado y creado por amaterus incompetentes, mientras que Perl es un gran e insidioso mal perpetrado por hábiles pero pervertidos profesionales”
– Jon Ribbens

“Pienso que eligió el nombre .Net para que no pudiera ser mostrado en un listado de directorio de Unix”
– Oktal

“¿Cincuenta años de investigación en lenguajes de programación, y acabamos con C++?”
– Richard A. O’Keefe

“Una de las causas principales de la caída del imperio romano fue que, como no usaban el cero, no tenían forma de saber cuándo sus programas en C terminaban correctamente”
– Robert Firth

“Bien, podría ser un buen ejemplo de cómo debería ser un lenguaje de programación. Sin embargo, las aplicaciones son buenos ejemplos de cómo las aplicaciones no deberían ser”
– Pixadel

“El software es como el sexo: mejor si es libre y gratis”
– Linus Torvalds

“Cualquier código tuyo que no hayas mirado en los últimos seis meses o más es como si lo hubiese escrito otro”
– Eagleson’s Law

“Tan pronto como comenzamos a programar encontramos, para nuestra sorpresa, que crear programas correctos no era tan fácil como habíamos pensado. Tuvo que descubrirse la depuración. Puedo recordar el instante exacto en el que me dí cuenta que una gran parte de mi vida desde entonces iba a pasarla encontrando errores en mis propios programas”
– Maurice Wilkes descubre la depuración, 1949

“Si la depuración es el proceso de eliminar errores, entonces la programación debe ser el proceso de introducirlos”
– Edsger W. Dijkstra

“¡No me importa si funciona en tu máquina! ¡No estamos vendiendo tu máquina!”
– Vidiu Platon

“Programar es como el sexo: un único error y tienes que estar soportándolo toda la vida”
– Michael Sinz

“Codifica siempre como si la persona que finalmente mantendrá tu código fuera un psicópata violento que sabe dónde vives”
– Martin Golding

“Pienso que hay mercado en el mundo como para unos cinco ordenadores”
– Thomas J. Watson, Presidente de la Junta Directiva de IBM, sobre 1948

“Podría parecer que hemos llegado a los límites alcanzables por la tecnología informática, aunque uno debe ser prudente con estas afirmaciones, pues tienden a sonar bastante tontas en cinco años”
– John Von Neumann, sobre 1949

“No hay ninguna razón para que un individuo tenga un ordenador en su casa”
– Ken Olson, Presidente de Digital Equipment Corporation, en 1977

“640K deberían ser suficientes para todo el mundo”
– Bill Gates, 1981

“Los ordenadores son inútiles. Sólo pueden darte respuestas”
– Pablo Picasso.

“Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza”
– Paul Leary

“Si la industria automovilística hubiera seguido el mismo que los ordenadores, un Rolls-Royce costaría hoy 100 dólares, circularía un millón de millas con 3,7 litros y explotaría una vez al año, eliminando a todo el que estuviera dentro en ese momento”
– Robert X. Cringely

“Nunca confíes en un ordenador que no puedas lanzar por una ventana”
– Steve Wozniak

“La mayoría del software actual es muy parecido a una pirámide egipcia, con millones de ladrillos puestos unos encima de otros sin una estructura integral, simplemente realizada a base de fuerza bruta y miles de esclavos”
– Alan Kay

Despues de mucho buscar la fuente original de este post, creo que llegue a ella: Post Original [Fistro]

“MYSQL vs POSTGRESQL” ….”DELFIN vs ELEFANTE”

Desarrollo Web, Programación Sin Comentarios »
Publicado por juank


Me parece importante recalcar que muchos de nosotros estamos acostumbrados a utilizar como gestor de BD, pero hay muchos otras opciones. A continución un versus interesante entre dos de los mejores.

CARACTERISTICAS:


Soporta distintos tipos de datos, además del soporte para los tipos base, también soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes (MAC, IP …), cadenas de bits, etc. También permite la creación de tipos propios.   Incorpora una estructura de datos array.    Permite la declaración de funciones propias, así como la definición de disparadores”TRIGGERS”. Soporta el uso de índices, reglas y vistas.     Incluye herencia entre tablas (aunque no entre objetos, ya que no existen), por lo que a este gestor de bases de datos se le incluye entre los gestores objeto-relacionales.

 
 Aprovecha la potencia de sistemas multiprocesador, gracias a su implementación multihilo.   Soporta gran cantidad de tipos de datos para las columnas.    Dispone de ’s en gran cantidad de lenguajes (C, C++, , , etc)   Gran portabilidad entre sistemas.   Soporta hasta 32 índices por tabla.   Gestión de usuarios y passwords, manteniendo un muy buen nivel de seguridad en los datos.

PARA RESALTAR:

 
  Posee una gran escalabilidad. Es capaz de ajustarse al número de CPUs y a la cantidad de memoria que posee el sistema de forma óptima    Implementa el uso de rollback’s, subconsultas y transacciones, haciendo su funcionamiento mucho más eficaz.     Tiene la capacidad de comprobar la integridad referencial, así como también la de almacenar procedimientos en la propia base de datos, equiparándolo con los gestores de bases de datos de alto nivel, como puede ser Oracle. 


su velocidad a la hora de realizar las operaciones, lo que le hace uno de los gestores que ofrecen mayor rendimiento.Su bajo consumo lo hacen apto para ser ejecutado en una máquina con escasos recursos sin ningún problema. Las utilidades de administración de este gestor son envidiables para muchos de los gestores comerciales existentes, debido a su gran facilidad de configuración e instalación.Tiene una probabilidad muy reducida de corromper los datos, incluso en los casos en los que los errores no se produzcan en el propio gestor, sino en el sistema en el que está. El conjunto de aplicaciones -- es uno de los más utilizados en Internet

PARA TENER EN CUENTA 


 Consume gran cantidad de recursos.  Tiene un límite de 8K por fila, aunque se puede aumentar a 32K, con una disminución considerable del rendimiento.    Es de 2 a 3 veces más lento que .


 Carece de soporte para transacciones, rollback’s y subconsultas.   El hecho de que no maneje la integridad referencial, hace de este gestor una solución pobre para muchos campos de aplicación, sobre todo para aquellos programadores que provienen de otros gestores que sí que poseen esta característica.   No es viable para su uso con grandes bases de datos, a las que se acceda continuamente, ya que no implementa una buena escalabilidad.

En conclusion: miren, evaluen y elijan el que mejor se les adapte a sus necesidades.

Números A Letras

Desarrollo Web, Programación, Scripts 3 Comentarios »
Publicado por lopongoaca

Hace algunos días estaba realizando un sistema de información para la compañía en la que trabajo y entre todas las cosas que tenia que hacer este sistemas se incluía el hecho de realizar facturas de venta.

Hace mucho tiempo que no realizaba este típico proceso, por lo cual tuve que hacer memoria de mis clases de Bases De Datos recibidas en la Universidad y recordar que en la mayoría de casos una factura tiene un Encabezado, un Detalle y un Pie o Total.

Al fin pude realizar la factura y su modelo, pero el problema vino cuando me dijeron que el valor de la factura debía estar escrito en letras. Después de mucho tiempo de intentar crear una función que me permitiera esto, decidí buscar en Google y me encontré con esta excelente función que nos permite realizar esto sin ningún problema.

:
  1. <?
  2. /*
  3. @function num2letras ()
  4. @abstract Dado un n?mero lo devuelve escrito.
  5. @param $num number - N?mero a convertir.
  6. @param $fem bool - Forma femenina (true) o no (false).
  7. @param $dec bool - Con decimales (true) o no (false).
  8. @result string - Devuelve el n?mero escrito en letra.
  9. */
  10. function num2letras($num, $fem = false, $dec = true) {
  11. $matuni[2]  = "dos";
  12. $matuni[3]  = "tres";
  13. $matuni[4]  = "cuatro";
  14. $matuni[5]  = "cinco";
  15. $matuni[6]  = "seis";
  16. $matuni[7]  = "siete";
  17. $matuni[8]  = "ocho";
  18. $matuni[9]  = "nueve";
  19. $matuni[10] = "diez";
  20. $matuni[11] = "once";
  21. $matuni[12] = "doce";
  22. $matuni[13] = "trece";
  23. $matuni[14] = "catorce";
  24. $matuni[15] = "quince";
  25. $matuni[16] = "dieciseis";
  26. $matuni[17] = "diecisiete";
  27. $matuni[18] = "dieciocho";
  28. $matuni[19] = "diecinueve";
  29. $matuni[20] = "veinte";
  30. $matunisub[2] = "dos";
  31. $matunisub[3] = "tres";
  32. $matunisub[4] = "cuatro";
  33. $matunisub[5] = "quin";
  34. $matunisub[6] = "seis";
  35. $matunisub[7] = "sete";
  36. $matunisub[8] = "ocho";
  37. $matunisub[9] = "nove";
  38.  
  39. $matdec[2] = "veint";
  40. $matdec[3] = "treinta";
  41. $matdec[4] = "cuarenta";
  42. $matdec[5] = "cincuenta";
  43. $matdec[6] = "sesenta";
  44. $matdec[7] = "setenta";
  45. $matdec[8] = "ochenta";
  46. $matdec[9] = "noventa";
  47. $matsub[3]  = 'mill';
  48. $matsub[5]  = 'bill';
  49. $matsub[7]  = 'mill';
  50. $matsub[9]  = 'trill';
  51. $matsub[11] = 'mill';
  52. $matsub[13] = 'bill';
  53. $matsub[15] = 'mill';
  54. $matmil[4]  = 'millones';
  55. $matmil[6]  = 'billones';
  56. $matmil[7]  = 'de billones';
  57. $matmil[8]  = 'millones de billones';
  58. $matmil[10] = 'trillones';
  59. $matmil[11] = 'de trillones';
  60. $matmil[12] = 'millones de trillones';
  61. $matmil[13] = 'de trillones';
  62. $matmil[14] = 'billones de trillones';
  63. $matmil[15] = 'de billones de trillones';
  64. $matmil[16] = 'millones de billones de trillones';
  65.  
  66. $num = trim((string)@$num);
  67. if ($num[0] == '-') {
  68. $neg = 'menos ';
  69. $num = substr($num, 1);
  70. }else
  71. $neg = '';
  72. while ($num[0] == '0') $num = substr($num, 1);
  73. if ($num[0] &lt;'1' or $num[0]&gt; 9) $num = '0' . $num;
  74. $zeros = true;
  75. $punt = false;
  76. $ent = '';
  77. $fra = '';
  78. for ($c = 0; $c &lt;strlen($num); $c++) {
  79. $n = $num[$c];
  80. if (! (strpos(".,'''", $n) === false)) {
  81. if ($punt) break;
  82. else{
  83. $punt = true;
  84. continue;
  85. }
  86.  
  87. }elseif (! (strpos('0123456789', $n) === false)) {
  88. if ($punt) {
  89. if ($n != '0') $zeros = false;
  90. $fra .= $n;
  91. }else
  92.  
  93. $ent .= $n;
  94. }else
  95. <p align="justify">break;</p>
  96. }
  97. $ent = '     ' . $ent;
  98. if ($dec and $fra and ! $zeros) {
  99. $fin = ' coma';
  100. for ($n = 0; $n &lt;strlen($fra); $n++) {
  101. if (($s = $fra[$n]) == '0')
  102. $fin .= ' cero';
  103. elseif ($s == '1')
  104. $fin .= $fem ? ' una' : ' un';
  105. else
  106. $fin .= ' ' . $matuni[$s];
  107. }
  108. }else
  109. $fin = '';
  110. if ((int)$ent === 0) return 'Cero ' . $fin;
  111. $tex = '';
  112. $sub = 0;
  113. $mils = 0;
  114. $neutro = false;
  115. while ( ($num = substr($ent, -3)) != '   ') {
  116. $ent = substr($ent, 0, -3);
  117. if (++$sub &lt;3 and $fem) {
  118. $matuni[1] = 'una';
  119. $subcent = 'as';
  120. }else{
  121. $matuni[1] = $neutro ? 'un' : 'uno';
  122. $subcent = 'os';
  123. }
  124. $t = '';
  125. $n2 = substr($num, 1);
  126. if ($n2 == '00') {
  127. }elseif ($n2 &lt;21)
  128. $t = ' ' . $matuni[(int)$n2];
  129. elseif ($n2 &lt;30) {
  130. $n3 = $num[2];
  131. if ($n3 != 0) $t = 'i' . $matuni[$n3];
  132. $n2 = $num[1];
  133. $t = ' ' . $matdec[$n2] . $t;
  134. }else{
  135. $n3 = $num[2];
  136. if ($n3 != 0) $t = ' y ' . $matuni[$n3];
  137. $n2 = $num[1];
  138. $t = ' ' . $matdec[$n2] . $t;
  139. }
  140. $n = $num[0];
  141. if ($n == 1) {
  142. if ($n2 &lt;&gt; '00') {
  143. $t = ' ciento' . $t;
  144. } else {
  145. $t = ' cien' . $t;
  146. }
  147. }elseif ($n == 5){
  148. $t = ' ciento' . $t;
  149. }elseif ($n == 5){
  150. $t = ' ' . $matunisub[$n] . 'ient' . $subcent . $t;
  151. }elseif ($n != 0){
  152. $t = ' ' . $matunisub[$n] . 'cient' . $subcent . $t;
  153. }
  154. if ($sub == 1) {
  155. }elseif (! isset($matsub[$sub])) {
  156. if ($num == 1) {
  157. $t = ' mil';
  158. }elseif ($num&gt; 1){
  159. $t .= ' mil';
  160. }
  161. }elseif ($num == 1) {
  162. $t .= ' ' . $matsub[$sub] . 'ón';
  163. }elseif ($num&gt; 1){
  164. $t .= ' ' . $matsub[$sub] . 'ones';
  165. }
  166. if ($num == '000') $mils ++;
  167. elseif ($mils != 0) {
  168. if (isset($matmil[$sub])) $t .= ' ' . $matmil[$sub];
  169. $mils = 0;
  170. }
  171. $neutro = true;
  172. $tex = $t . $tex;
  173. }
  174. $tex = $neg . substr($tex, 1) . $fin;
  175. return ucfirst($tex);
  176. }
  177. ?>

Para llamar a la función sencillamente incluimos el archivo donde tenemos y la funcion y la llamos asi:

:
  1. <?
  2. include 'numero2letras.';
  3. echo num2letras(1500);
  4. ?>

Aca pongo el demo (un poco mejorado) y el archivo para descargar la función y el demo.

Enlace Script Original

API de EL TIEMPO.COM Abierta a Desarrolladores

Desarrollo Web, Opinión, Programación 1 Comentario »
Publicado por lopongoaca

api

El periódico EL TIEMPO ha abierto su API de para buscar, en conjunto con Microsoft y Campus Party, el rey de la programación.

eltiempo.com abre su API para invitar a la comunidad de a construir las nuevas formas de visualizar su portal.

Las mejores aplicaciones se escogerán por su innovación, creatividad y usabilidad.

Para ello podrás servirte del contenido del sitio (un archivo digital que va desde 1990 hasta la fecha) mézclale tu código, agrégale lo que se te ocurra y construye la mejor aplicación para consultar las noticias de eltiempo.com.

logo_transversal

Los mejores recibirán dos regalos:

1. El desarrollador de la mejor aplicación irá con todos los gastos pagos al próximo Campus Party en Valencia del 28 de julio al 3 de agosto del 2008 (sujeto a disponibilidad de visa).

2. Y para el que haga mejor uso del con Microsoft Silverlight podrá asistir a la próxima edición del Professional Developers Conference (PDC), en Los Ángeles (sujeto a disponibilidad visa). Lea sobre como desarrollar con Microsoft Silverlight.

El único problema es que para participar debes asistir al Campus Party Colombia (Me sacaron de una), aunque para los que asistieron es una genial oportunidad para dar a conocer su trabajo y ganarse muy buenos premios.

Toda la información y bases del concurso en:

/API webmonster

PHP+Apache+MySql en Windows

Internet, Programación, Software 2 Comentarios »
Publicado por lopongoaca

php.apache-mysql

Yo llevo algo mas de 2 años en el de aplicaciones , y una situación recurrente es el problema para hacer pruebas de nuestros desarrollos cuando no tenemos conexión a Internet, cuando no tenemos acceso a nuestro servidor, o es mas, cuando definitivamente no tenemos servidor.

La solución para esto es tener nuestro propio servidor local para hacer pruebas de nuestros proyectos, pero realmente esto no se ve nada sencillo y mucho menos si es alguien que apenas esta comenzando.

Por esta razón existen aplicaciones que nos permiten de manera fácil y sencilla tener nuestro propio servidor configurado en nuestra máquina.

Como funcionan?

Estos instaladores lo que hacen es realizar una instalación sencilla y con muy poca configuración por parte de los usuarios de lo que algunos llama "el trío": Apache (Servidor Web) + PHP (Lenguaje Interpretado) + MySql (Manejador Base de datos).

Este "trío" es el más usado en configuración de servidores (claro que no bajo ) y en el cual están soportados cientos de proyectos entre los cuales están: Youtube, Flickr, Digg, Wikipedia.

Diferentes Opciones

En el mercado existen diferentes alternativas para instalar nuestro servidor de manera sencilla y rápida: XAMPP, EasyPHP, PHP Triad, WampServer, PHPHome.

Cada uno tiene sus propias características y sus agregados adicionales, pero básicamente todos nos presentan lo mismo.

xampp-logo-new
Al momento de escribir este post XAMPP tiene la siguiente configuración:

  • HTTPD 2.2.8 + Openssl 0.9.8g
  • 5.0.51a
  • 5.2.5
  • 4.4.8
  • 2.11.4
  • FileZilla FTP Server 0.9.25
  • Mercury Mail Transport System 4.52

top_title
EasyPHP tiene la siguiente:

wampserver
WampServer nos presenta esto:

php_home
PHPHome tiene esta configuración (un poco desactualizada):

PHP Triad no nos muestra su configuración, pero por las fechas de su ultima actualización no creo que sean las versiones mas recientes de estos programas.

Conoces otra aplicación de este tipo?. Cuentanos.

Scripts para crear gráficas con: Javascript, PHP, Flash, Java, ASP…

Programación, Scripts Sin Comentarios »
Publicado por lopongoaca

Desde Informatica Practica leo este interesante articulo:

Vamos a ver algunos scripts interesantes para crear gráficos, que utilizan Javascript, , y en un caso.

  • Flot: realizado puramente con Javascript utilizando , puedes interaccionar con los datos incluso ofrece la posibilidad de realizar zoom.
    flot
  • Open Flash Chart: es una de las mejores opciones, tanto por el aspecto visual, como por la cantidad de clases disponibles en diferentes lenguajes, como son , Perl, Python, , on Rails, y .Net; que posibilitan conectar con los gráficos.open-flash-chart
  • AmCharts: realizado con , ofrece diferentes tipos de gráficos, todos ellos muy atractivos. Se pueden usar datos extraidos de ficheros , incluso se pueden leer datos generados dinamicamente con , .NET, , on Rails, Perl y ColdFusion. Ésta opción ya la hemos comentado en el blog, es complematemente gratuito siempre y cuando respetemos el link que incorporan en la parte superior de las tablas.
    amcharts
  • Emprise Javascript Charts: para crear gráficas utilizando unicamente Javascript.javascript-charts
  • Plotkit: otra solución Javascript perfectamente documentada, basada en la librería MochiKit.plotkit
  • Flotr: éste script se basa en la librería . Puedes hacer zooms, crear leyendas, soporte para valores negativos, etc.