Entradas

Mostrando entradas de 2009

Rotar Logs de Apache 2 en Windows

Imagen
Este post es una modificación de este post donde se muestra un archivo bat para rotar los logs de apache. Es más o menos la misma utilidad que existe en linux o unix conocida como logsrotate. En este se han agregado las siguientes cuestiones:compatibilidad con apache 2envío de un email al finalizar el procesodisponible para todos los archivos logs de apache no solo access.log y error.log Primero antes de ejecutar el bat es necesario descargar el programa 7-zip desde aquí, instalarlo y copiar el archivo 7z.exe del directorio donde lo has instalado al directorio system32 de Windows con el nombre 7za.exe.Luego de este paso creamos el archivo svrlogmng.bat con el contenido del script y creamos la tarea diaria para ejecutarlo con Scheduled Tasks de Windows.El código quedaría de la siguiente forma:@echo off & setlocal
:: Name - svrlogmng.bat
:: Description - Server Log File Manager
::
:: History
:: Date         Author             Change
:: 22-May-2005  AGButler         …

Nuevo diseño Script Inside

Imagen
Hola a todos gracias a Blogger Templates he cambiado el diseño del blog, me he creado una cuenta en twiter y he cambiado los feeds rss a feedburner. En mi página principal de cartelera y estrenos de cine también he empezado a crear feeds, por ahora solo está disponible el de películas onlines, pero pronto y con el nuevo diseño que también viene en camino gracias a pinKode vendrán los nuevos feeds de trailers y estrenos semanales y por países.El avance del diseño de ecine os lo dejo aquí con el nuevo logo. Espero que os guste.

Bases de datos grandes en 1and1

Imagen
Para trabajar con bases de datos grandes (de más de 100 MB) en 1and1 no te queda otra opción que obtener un plan de alojamiento que sean los servidores virtuales o los dedicados, pero en los planes normales (inicial, confort, business o business plus) es imposible aumentar el tamaño de estas bases de datos, lo que aumenta es el número de estas pero no el tamaño individual de cada una.En los planes inicial, confort y business al no tener acceso ssh no aconsejo migrar las bases de datos ya creadas y que superen los 20 MB porque tendrían que fraccionar los archivos porque la única forma de importar los datos al nuevo alojamiento es a través de phpMyAdmin y este no soporta subir archivos grandes porque es através de interfaz web, así como la creación de backups al migrar la base de datos MySQL con phpMyAdmin es engorroso para bases de datos grandes (menores de 100 MB). El el plan business plus si tenemos acceso shell y podemos importar y exportar los datos de nuestra base de datos utiliz…

Obtener contenido http en 1and1

Imagen
Para los planes de alojamiento de 1and1 (no servidores virtuales ni dedicados) la directiva allow_url_fopen está deshabilitada, según su propia ayuda puedes hacer un php.ini y habilitarla pero realmente no he sido capaz de hacerlo porque no me lo ha detectado, tampoco se puede hacer dínámicamente con ini_set porque en 1and1 no esta configurado php como modulo de apache.Si la directiva allow_url_fopen no está habilitada al utilizar la función file_get_contents para obtener el contenido de una página web daría los siguientes erróres:PHP Warning: fopen(http://www.example.com): failed to open stream: HTTP request failed!
fsockopen(): unable to connect to
file_get_contents(): failed to open stream: HTTP request failed!
PHP Warning: main(): Failed opening ‘http://www.example.com/index.html’ for inclusion …
PHP Warning: include(/usr/local/index.php): failed to open stream: No such file or directory in … Para solucionar esto me he creado una función utilizando las funciones de …

Trucos para alojamientos 1and1 (htaccess)

Imagen
Esto es un breve manual para trabajar con 1and1 y no morir en el intento. He pasado por casi todos sus servicios de hospedaje hasta que finalmente lo que tengo es un servidor virtual, en todos he estado muy a gusto pero siempre hay sus pegas y que no encuentras muy fácilmente en su ayuda o soporte técnico.Archivo htaccess para redirecciones de url amigables Una de las comeduras de cabeza que me dio este alojamiento fue que al trasladar mi plan desde otro operador fueron las redirecciones url pues mi archivo htaccess funcionaba perfectamente pero en el hosting de 1and1 no redirigía, la solución agregar la línea RewriteBase de la siguiente forma al comienzo del archivo .htaccessOptions +FollowSymLinks
RewriteEngine on
RewriteBase /De esta forma ya redirige correctamente todas las url, es muy muy importante esta tercera línea para cualquiera de sus planes.

Comparar cadenas con cero en PHP

Imagen
Hoy me ha ocurrido una cosa muy curiosa y a mi entender es un bug de PHP, la explicación no la sé pero tendrá algo que ver con la forma de interpretar PHP las cadenas. Pongamos un ejemplo:$cadena = “1234”;
$numero = 0;
echo ($cadena == $numero)?”Son iguales”:”Son distintos”;El resultado sería son distintos porque php interpreta a $cadena como un número y por supuesto este numero es distinto de cero. Sin embargo si:$cadena = “hola”; El resultado que debería ser el mismo que en la opción anterior porque videntemente son distintos es son iguales. Asombrosamente php interpreta esta cadena como falso y por tanto falso == falso es verdadero.La solución es no utilizar el operador == si se puede dar este caso sino el operador === que si funciona porque es estrictamente igual.

MS-Excel Stream Handler’s Bugs

Imagen
Otra de las herramientas para crear excel he escuchado (pongo esto porque nunca he podido generar un excel válido con ella) es la clase MS-Excel Stream Handler, pero a aparte de que cuando la logras hacer funcionar no genera un excel válido o por lo menos que lo pueda interpretar el Office 2007 o 2010 contiene algunos bugs que le impiden su funcionamiento.El primer bugs es producto de que es una clase pensada para Linux y al introducir cualquier ruta de archivo le pone delante el caracter “/” como si fuera el directorio root. Esto hay que eliminarlo de la función stream_open en la línea:$this->xlsfilename = '/' . $url['host'] . $url['path'];Esta debería quedar de la siguiente forma para evitar errores del tipo Failed to open stream: "xlsStream::stream_open" cuando ponemos una ruta en windows del tipo absoluta (C:\Documents and Settings\-\My) o relativa:$this->xlsfilename = $url['host'] . $url['path'];El otro bugs no es un error …

General Excel Real con PHP

Imagen
Existen varias herramientas para generar Excel desde PHP que van desde un simple HTML en forma de tabla hasta la complejidad de crear un stream que exporte estos resultados a una especie de Excel utilizando la documentación del propio Microsoft.



Entre estas herramientas me he encontrado con la librería de clases PHPExcel, excelente para la gestión de Excels pues permite leer desde CSV, HTML, Excel5 y Excel 2007 además de crear archivos en todos estos formatos más PDF.
Es una librería muy completa y solo requiere tener habilitadas las librerías de php_zip y php_xsl, además de una versión de PHP superior o igual a la 5.2.
Hay multitud de ejemplos y documentación en la página oficial pero aquí os dejo un script para generar un Excel a partir de un array asociativo que podemos sacar perfectamente de una base de datos (solo es válido para datos que no excedan las 25 columnas):
function GeneraExcelFromDB($data,$url){ $objPHPExcel = new PHPExcel(); $letra_inicial_ascii = 65; // corresponde…

Manifiesto “En defensa de los derechos fundamentales en Internet”

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cua…

Refrescar página que no se actualizan

Imagen
Siempre que cambiamos un código js o css se actualiza nuestra aplicación pero muchas veces no se muestran los resultados esperados en las páginas de nuestros usuarios, es normal pues los navegadores del cliente descargan una caché para evitar estar descargando estos archivos y no siempre es muy fiable su opción de auto actualización que puede ser por el tamaño del archivo js o css o por su fecha de modificación, o por el código asignado por el servidor web que indica si se ha modificado o no.Las técnicas son simples: pulsar la tecla F5 que envía la orden al navegador de que actualice el contenido o en caso más extremo borrar la caché del mismo y que vuelva a cargar todo. Esto se complica cuando utilizamos herramientas como Minify Uri Builder, que optimizan y comprimen códigos js o css para eliminar saltos de línea, comentarios y espacios en blanco, pues algunas se crean su propio cache por tanto el usuario recibe el código comprimido de la caché no del archivo nuevo, esto ocurre en mu…

Maximum call stack size exceeded

Imagen
He estado volviéndome loco desde que utilizando la funcionalidad de jQuery UI Dialog en Chrome al pulsar en cada uno de los botones que había definido me salía el siguiente error: ‘RangeError: Maximum call stack size exceeded’. Al probar el mismo script en mozilla se bloqueaba completamente y la pista final me la dio Opera que me mostraba el siguiente error: ‘Event thread: click Abort (control stack overflow)’.Sacando conclusiones si Maximum call stack size exceeded es un error de webkit asociado a un exceso de llamadas recursivas en una misma función entonces deduje con el error de Opera que estaba asociado al hacer click en cada botón del nuevo diálogo.Curiosamente ejecutaba todas las funciones que estaban definidas dentro de cada botón y el script dejaba de funcionar cuando ponía la opción $(this).dialog(‘close’);El script original es el siguiente:$("#dialog_attachment").dialog({
            bgiframe: true,
            autoOpen: false,
            width:850,��…

Optimizar consultas lentas en SQL

Imagen
La optimización de las bases de datos es un punto fundamental en todas y cada una de las aplicaciones, pero el uso de consultas optimizadas sin duda es otro punto a tener muy en cuenta, el problema es que muchas veces no sabemos cuales son estas consultas. Hoy rebuscando por internet he encontrado estos dos maravillosos manuales, uno para MySQL y otro para SQL Server 2005 o superior. en ellos nos explican distintos puntos para optimizar las querys lentas y sobre todo nos muestran las distintas herramientas de cada uno de estos motores de base de datos para obtener estas.El enlace para las slow queries en MySQL y el enlace para la Optimización del rendimiento de las consultas de SQL Server. Adicionalmente tenéis unos comentarios en este post en inglés que se titula Quick and Dirty SQL Server Slow Query Log sobre el artículo de SQL Server muy útiles.

jQuery Treeview 1.4 bugs en Chrome 3+

Imagen
Luego de varias pruebas y solo con Google Chrome en versiones superiores a la 3 (la alpha de la 4 también ha sido testeada) el control de este pluging de jquery no se carga como debería. El pluging funciona perfectamente salvo cuando recargas la página con F5 que se carga todo correctamente menos el div que contiene los botones de control definido según el atributo ‘control’.El div en cuestión desaparece de la pantalla junto con todo lo que contiene y no muestra ningún error, no sé si será debido a la actualización de su motor de javascript que también impide el reenvio de un mismo formulario 2 o más veces hacia una nueva ventana.

Múltiples caídas de apache

Imagen
Tras varias semana de experimentar los mismos problemas en un CentOs con apache 2.2.3 y en un Windows server 2003 con apache 2.0.63 he llegado a la conclusión que las constantes colgadas del servidor apache no son más que un bug raro y letal de este multifacético servidor. Posibles causas: es indudable que es producido por una especie de sobrecarga en las peticiones, cuando hay muchos usuarios realizando peticiones al mismo tiempo sobre el server pero que no superan el número máximo de clientes permitidos y que tampoco saturan la memoria del equipo. Es una especie de bloqueo interno del servidor y que es incapaz de recuperarse.Los scripts que comprueban el número de procesos activos así como si esta activo el servicio son ineficaces porque el servicio en realidad está activo lo único que el servidor está en una especie de bloqueo que le impide servir páginas.Estoy diseñando el script para Linux el cual lo que básicamente hará es conectarse al servidor si se puede conectar hará una pe…

Arrays la pata coja de JavaScript

Imagen
Los que me conocen o que han compartido trabajo conmigo en cuanto a tema de programación son testigos de mi ‘amor’ (irónicamente hablando) hacia javascript. Personalmente que es un lenguaje que se creó para un objetivo muy limitado y que por el auge de la propia web 2.0 e internet se ha ido parcheando cada vez más. En concreto con los arrays, es difícil imaginarse un lenguaje en el que no puedas decir que a=b y que luego si modificas a no te cambie b. O crear arrays asociativos, o insertar en medio de un array un elemento. Pues todo esto son puntos flacos de javascript. Como diría Jack El Destripador ‘vamos por partes’.Asignar un array a otroJavascript en el caso de arrays no permite igualar uno a otro, o si lo permite pero ambos son punteros a una misma dirección de memoria, por lo que modificando uno modificas el otro. El caso es declarar ambos arrays por separado y hacer un concat de uno con el otro, para arrays multidimensionales ya no es tan sencillo, te tienes que hacer una fun…

El navegador que espero

Imagen
Haciendo un break entre los post de los test realizados creo necesario soñar un poco y ponerme a imaginar qué navegador me gustaría tener uniendo todas las cosas que me gustan de los actuales.De Firefox me gustaría tener esa gran comunidad que posee con el sinfín de complementos y que estos no penalizaran el rendimiento del mismo. Me gusta también que puedas mover las pestañas entre ventanas o arrastrarlas para crear nuevas.De Internet Explorer me quedaría con la independencia total que tienen una pestaña de otra, también echo por Google Chrome pero a mi modo de ver no tan magistralmente. Me gusta mucho que cuando abres una nueva pestaña a partir de otra tengan el mismo color, ese pequeño detalle me encanta. Y me quedo con su gestión de descargas, es la de toda la vida, a la que estoy acostumbrado, ni por mucho la mejor pero si la que necesito. De Chrome me quedo con su barra de direcciones multiuso, muy pero que muy útil, me gusta su diseño y su página de inicio de la versión 3.De Op…

Celtic Kane Javascript Benchmark

Imagen
De los test específicos realizados este es el que me ha aportado unos datos más relevantes además de ser de un grupo independiente no asociado a ningún motor JavaScript de ningún navegador, por tanto la imparcialidad está, como mínimo, más garantizada.La ventaja de este test es que prueba los elementos más básicos de JavaScript y además AJAX, con el cual me llevé la gran sorpresa pues si la prueba de AJAX no se hubiera realizado Safari sería el glorioso vencedor pero por esta  prueba es, aunque suene increíble, el aplastado perdedor, incluso por debajo –y ni yo me lo creo- de Internet Explorer 8.Las pruebas se realizan sobre la mayoría de los objetos de JavaScript: Arrays, Date, Math, RegEx, String; además incluye pruebas sobre el DOM, el manejo de errores y la conflictiva declaración de AJAX.Los resultados son los siguientes:Si hubiésemos eliminado la prueba de AJAX los resultados hubiesen sido totalmente distintos, veamos:El test lo podéis realizar desde aquí, aparte de ver las est…

V8 Benchmark Suite

Imagen
Si el anterior test estaba diseñado por los miembros de WebKit este está diseñado por los miembros de Google Chrome y más concretamente de su nuevo y reluciente motor JavaScript V8, por lo cual está de sobra decir quien se lleva la palma en el mismo.Este test es al contrario de los demás, el que alcance la mayor puntuación es el mejor. La suite V8 consta de 7 pruebas independientes escritas por diferentes programadores y en ellas se basan para optimizar Google Chrome, las pruebas miden desde el propio Kernel del SO hasta encriptación, expresiones regulares y manipulación de datos.La última versión la podemos encontrar aquí junto con una explicación breve (en inglés) y un histórico de las mismas.Los resultados arrojados fueron los siguientes:Recordad que en este test mientras más grande mejor, o sea que aquí el tamaño SI importa.Como aclaración decir que al salir la versión 4 de Safari se dijo que era la más rápida y luego de pasar este test quedó por detrás de Chrome en todas las prue…

SunSpider WebKit Benchmark

Imagen
El test SunSpider realiza una serie de pruebas sobre el navegador para saber el tiempo que le toma para procesar ciertas instrucciones, las cuales abarcan: renderizado 3D; acceso a arrays, propiedades de objetos y variables; procesos matemáticos con enteros y punto flotante; control de flujo (bucles, recursión, condicionales); encriptado; performance de objetos "date"; expresiones regulares y tratamiento de cadenas.La fiabilidad de este test ha surgido porque realiza un ciclo de 5 repeticiones de cada prueba y hace una media estadística de estas mediciones además de brindar el porcentaje de error de las mismas. Es un test creado por los desarrolladores de Webkit el motor de renderizado de Safari y también Chrome lo utilizó en sus diseños anteriores por lo que su V8 está basado en Webkit. Está de más decir que es lógico que estos dos navegadores salgan bien parados en esta comparativa.Veamos los resultados:Y esta es la tabla comparativa según los bloques de pruebas realizados…

Test Acid3

Imagen
El test Acid3 pone a prueba lo navegadores con los estándares web, especialmente los de DOM y ECMAScript. La parte principal de Acid3 esta escrita en ECMAScript (JavaScript), y consiste de 100 sub-pruebas divididas en seis grupos, llamados "buckets", más cuatro pruebas especiales.El único requerimiento de la prueba es que el navegador tenga la configuración de forma predeterminada. El renderizado final debe mostrar un 100/100 y además no sólo debe ser idéntico al de referencia sino que además la animación debe ser fluida (la prueba en teoría no debe tomar más de 33 milisegundos).Esto son datos sacados de la wikipedia sobre este test, ahora veamos los resultados:Los Navegadores Safari, Opera y Chrome obtuvieron el 100 % la única diferencia fue el tiempo de carga del test siendo en el Safari el más rápido de estos y Chrome el más rezagado, aunque la diferencia no supera los 5 milisegundos.  Nuestro amigo Firefox en su versión 3.6 alcanzó la no despreciable cifra de 94 % cuando…

Pruebas de velocidad en navegadores

Imagen
Desde hace unos días vengo aprovechando en casa para ir escribiendo un pequeño manual sobre nuevas tendencias en JavaScript y por supuesto en él he tenido que hablar de los navegadores y sus respectivos motores de renderizado y motores de JavaScript. Como soy un poco quisquilloso y no se me da fiarme de lo que ponen en las web sobre las ventajas de uno u otro, decidí crearme mi propio sistema para ver, después de varias pruebas, cual era el realmente más rápido de todos.En fin que manos a la obra me puse a googlear y descubrí que existen unos cuantos test para los navegadores y personalmente elegí solo 6, en este post pondré las condiciones básicas en que desarrollé cada una de las pruebas las cuales iré explicando en un post individual y al final pondré unas conclusiones.Equipo Utilizado El ordenador dónde se realizaron las 7 pruebas es un Intel Core 2 Quad a 2,4GHZ con 4 GB de RAM DDR2 bajo el innovador Windows 7 Ultimate en la versión de 64 bits.Navegadores TesteadosLos afortunado…

PHP como lenguaje orientado a objetos

Imagen
Realmente entre los lenguajes web PHP me parece el más robusto o al menos el más versátil de todos, pero gustos colores y no es el tema que me ocupa, pero como lenguaje orientado a objetos está muy verde aún. Es cierto que implementa la herencia múltiple de interfaces y la herencia simple de clases, tipos de datos public, protected, private y métodos abstractos. Es un lenguaje que va por muy buen camino pero creo que se ha estancado en esto, y lo digo porque en las nuevas especificaciones de PHP 6 no veo nada sobre polimorfismo (capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa) y menos sobre herencia múltiple de clases. La herencia múltiple la trato en el post anterior y entiendo que tal vez no se implemente por problemas conceptuales que nunca entenderé. sobre el polimor…

Herencia Múltiple ¿por qué no?

Imagen
El tema de la herencia múltiple más que el poder implementarlo es el ponerse de acuerdo en cuanto a si hacerlo o no, de ahí que ¿útil o inútil? he ahí el dilema. Yo soy partidario de que sí debería existir, si estamos haciendo POO y en la vida misma todos tenemos 2 padres (papá + mamá para los menos entendidos) entonces porque los objetos en PHP no pueden heredar de 2 clases.La herencia de clases es muy diferente a implementar interfaces que estas si pueden ser múltiples pero carecen de muchas cosas útiles como declaración de variables o declaración de funciones, por ejemplo una interface es como un tío, o tu profesor sin embargo las clases de las que heredas son como tus padres o abuelos y cada uno de nosotros tenemos varios de esos. Aún no me entra en la cabeza porque en Java, el hijo pródigo de la POO no soporta este tema mientras C++, Eiffel y hasta .net en el framework 4.0 ya lo soportan. En PHP lo podría llegar a entender porque hasta PHP 5 casi ni conocía lo que era un objeto p…

Errores comunes en PHP

Espero que este sea uno de una serie de artículos porque serán cosas que me voy encontrando y que son ‘errores’ comunes al programar en php. Resalto la palabra errores porque en realidad no lo son, son solo códigos muy frecuentes que me encuentro y que son fáciles de optimizar. en este primer artículo comenzaré por los más básicos.Funciones isset y emptyEs muy común ver en una misma línea de código ambas comprobaciones, esto es un gasto de recurso porque la función empty si la variable no está definida retorna falso y no da error, por tanto si queremos utilizar ambas comprobaciones con solo utilizar empty es suficiente. La función isset sólo la debemos utilizar si la variable en cuestión puede tener valores vacios o si solo queremos saber si está definida o no. (comprobar que a==0 es más lento que empty(a) por la propia construcción de PHP).Recorrer un arraySobre las velocidades y pruebas tengo otros artículos de este mismo blog, en este punto solo quiero decir que nunca pongamos dent…

Gran chapuza o gran favor de Microsoft

Imagen
Aunque el título parezca un poco sensacionalista en realidad es una pregunta verdadera ¿Por qué no puedo actualizar de XP a Windows 7? algunos ‘entendidos’ por allí dicen que es porque son sistemas muy diferentes pero en realidad es porque no han estudiado matemática porque una de las bases de la lógica matemática es la transitividad o sea si A implica B y a su vez B implica C pues es lógico que A implique C. Traduciendo un poco si yo tengo XP y lo actualizo a Vista (cosa posible) y luego de Vista lo actualizo a Windows 7 (cosa posible también) ¿por qué entonces no puedo actualizar directamente de XP a Windows 7? Se me ocurren un par de razones y de ahí el título, uno puede ser que Microsoft con esto de sacar el sistema lo más pronto posible para borrar la si chapuza de Windows Vista haya obviado deliberadamente este paso, lo cual no lo creo, o que sabiendo la gran acogida que tiene XP y la multitud de ordenadores que lo tienen, la antigüedad de este mismo sistema operativo, obligue …

Firefox 3.5 y los errores en javascript

Imagen
Ojala esto sea algo que solo me pase a mi por algún complemento o algo desconocido pero desde la RC1 de Firefox 3.5 vengo testeándolo por las maravillas que prometía en javascript (las cuales realmente no he notado para seros sinceros), bien el asunto es que para mi sorpresa ante errores tan nimios como un formulario no definido, o un nodo de un XML nulo, o un índice de un array no definido, la ejecución del script se detiene (como es de esperar por supuesto) pero NO REPORTA EL ERROR. O sea que se te detiene tu script y no tienes ni idea de porque ni dónde.Ante esto he probado otros navegadores para probar las consolas de errores y un punto a favor de Firefox 3.0 es que ninguno me complacía del todo, por ejemplo: Chrome – me detecta el error pero es una consola muy complicada y no te va a la línea de código dónde a fallado el script, demasiados colores y botones para no servir de nada. Opera 10 beta – no es compatible al 100 % con la aplicación pero la consola presenta los mismos det…

Gráficos para la web

Estos días he estado peleándome con múltiples alternativas para generar gráficos dinámicos en la web y realmente entre todas no he encontrado ninguna que me convenza definitivamente, voy a describirlas un poco y pondré las ventajas y desventajas de cada una.jqplotDestacar el diseño tan currado de este plugin de javascript muy sencillo de implementar pero en una fase muy verde de su desarrollo porque solo sirve para g´gráficos de líneas, eso si, con un sorprendente diseño, al ser basado en javascript podemos jugar con múltiples opciones del lado del cliente pero no con gráficos muy potentes.jQuery Google ChartingMuy útil y potente herramienta para gestionar la API de Google Chart mediante jquery, el diseño realmente no están currado pero es muy personalizable y con multitud de posibilidades en cuanto a gráficos, la única pega que le veo es que para gráficos con más de 150 puntos se bloquea y no muestra nada, esto claro es debido a ser una herramienta del lado cliente. Otra pega son lim…

Internet ¿acceso o barrera?

Imagen
No cabe duda de que la llegada de internet y la aplicación de esta en múltiples aspectos de nuestra vida es una ventaja más que considerable, pero a la vez si optamos por ciertos servicios puede llegar a ser una verdadera tortura. Por ejemplo, me he dado de alta al servicio de e-factura de movistar, un poco para ser ecologista y que no me manden la factura en papel, pero debí darme cuenta que movistar no es para nada una empresa comprometida con sus usuarios de internet, y porque digo esto pues porque su web no es, ni remotamente, una web que respete a sus visitantes. Antes que nada solo el válida para Internet Explorer, dicen ellos que versiones 5.5 en adelante pero esto es falso porque para la versión 8 tampoco es compatible. Yo por ejemplo tengo todos los navegadores más famosos pero por suerte o desgracia tengo la ultima versión de los mismo o sea que tengo Internet Explorer 8, ahora, si no puedo ver mi factura por internet porque la aplicación está mal ¿como hago?, pasarme 3 hora…