“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 API’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

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.
    flotr
  • PHP/SFW Charts: como su propio nombre indica, para poder fusionar con . Realmente recomendable, además goza de un monton de gráficos diversos.phpswf
  • Visfire: bastante simple, permite funcionar con , .Net, , JSP, ColdFusion, on Rails o solamente HTML
    .visifire
  • FusionCharts: funciona de manera equivalente a Visfire.fusioncharts
  • JFreeCharts: elúltimo scriot puede resultar muy interesante, puesto que funciona con , de forma que cualquier programador pueda mostrar sus gráficas en unos sencillos pasos. Una joya para los desarrolladores en .
    java

Vía: | Informatica Practica