Archivos de la categoría Web

Crear un usuario mediante comandos en MySQL

Igual mucha gente ya lo sabe, pero una manera sencilla de crear un usuario mediante comandos es la siguiente:

GRANT ALL PRIVILEGES ON mibd.* TO miusuario@mihost IDENTIFIED BY 'mipassword'

Con este comando creamos un usuario que tienen todos los privilegios para la base de datos mibd

La verdad que si tienes que dar de alta muchos usuarios o lo haces mediantes SCRIPT’s es bastante útil

Otro comando útil por si usas clientes de MySQL 4.0 es este:

SET PASSWORD miusuario = OLD_PASSWORD('mipassword');

con esto cambias el password al formato de antiguo para que puedan usarlos los clientes de MySQL 4.0

Dominio

Hoy me había quedado sin dominio, gracias a Bad_CRC por avisarme, la cuestión era que la página a través de la cual lo compre tiene una “feature” muy simpática para que se renueve automáticamente, y yo hace meses la active, lo que no se si esa “feature” consiste en enviarme únicamente mensajes a mi cuenta que se gestiona desde esa página o realmente me lo renueva, porque lo que ha sucedido hoy es que no tenía dominio y en la página en cuestión había cuatro mensajes avisandome de que se me iba a caducar.

Igual yo le he entendido mal, pero cuando pone: “Autorenew”, ¿No significa que se renueva solo?

Bueno, al final todo ha pasado, y desde la misma administración había una opción para volver a pedir el dominio y parece que esa opción si ha funcionado.

Por lo demás, la página está bastante bien y por 7 € tienes un dominio para todo un año, asi que la recomiendo:

http://www.namecheap.com

Includes y Rewrites

Me comenta Bad_CRC que hace mucho que no posteo, la verdad es que últimamente no hago cosas muy interesantes y no descubro nada nuevo o es que no estoy atento a lo que hago y me pienso que no hago nada nuevo, conclusión: NECESITO VACACIONES!!!!

Bueno vamos al tema del post, tenemos una WEB con varios ServerAlias y necesitamos crear un include en función de cada dominio, el problema está en que como hay un sólo Virtual no podemos hacer un alias del tipo:

Alias /includes /mi/directorio/includes/dominio

Para hacer esto nos ayudamos del mod_rewrite y de sus multiples posibilidades:

RewiriteRule ^/includes/(.*) http://%{HTTP_HOST}/includes/%{HTTP_HOST}/$1

Con esto conseguimos que todas las páginas que contengan un /includes/loquesea.htm en función del dominio a través del que accedamos nos presente un contenido u otro.

Esto puede ser útil para personalizar un site en función del dominio manteniendo una sola página con el contenido.

Soluciones

Después de un tiempo pensando en porque ahora no se deja usar javascript en las webs para realizar enlaces a otras secciones de una web, se me ha ocurrido una idea que creo que es interesante:

“Como los buscadores no han coseguido hayar la manera de seguir los enlaces creados con javascript, prohiben su uso y amenazan con penalizar las webs y no indexarlas”.

De lo cual se deduce que en vez de acabar con la rabia simplemente matan al perro.

Esto sucede a menudo, no se solucionar un problema, asi que: ¿Qúe hago?, prohibo todo lo que genre dicho problema.

Yo creo que habría que pensar un poco más e intentar no hacer las cosas por el camino fácil.

Últimamente parece que vivimos para los buscadores, la verdad que están bien como medio de entrada a Internet, pero lo que no es normal es que ellos dicten las normas de como a de ser mi web y que tecnología he de usar.

Una cosa está clara si tus contenidos son buenos, no te preocupes que los buscadores ya se buscaran la vida para conseguir indexar tu web.

Document.all y Safari

Hoy estaba haciendo un javascript para un menu de una web y había utilizado el tipico:

window.document.all.length

para saber cuantos elementos tiene el documento y recorrerlos, pero cual es mi sorpresa cuando descubro que no funciona en Safari, en Explorer y Firefox si.

Me pongo a buscar por Internet y en la web de developer Apple pone explicitamente que esta manera de acceder a los objetos DOM no funciona y que tengo que utilizar document.getElementById.

Así que la solución que he tenido que adoptar has sido poner un id al body y después acceder al número de elementos a través de:

window.document.getElementById(“cuerpo”).children.length

Actualización: He descubierto también que en Firefox no se puede asignar a una varible el document.all, si haces: col = document.all y luego accedes al contenido de col te da undefined.

Pequeños cambios

Este fin de semana me he dedicado a hacer pequeños cambios en el diseño del blog.

Primero me he puesto a jugar con el gimp y he modificado un poco la cabecera, todavía no me ha quedado muy “elite”, así que seguiré intentandolo.

Por otro lado he creado unas cajas redondeadas por medio de estilos, como no sabia por donde empezar, he buscado por internet y me he bajado una librería en javascript que me redondea los div’s y los h’s.

La verdad es que está librería es muy sencilla de usar, únicamente hay que poner un id al div o al h y después llamar a la función Rounded para que nos aplique los estilos pertinentes:

Rounded(“div#acercade”,”all”,”#FFF”,”#d7f1ff”,”smooth”);

Si quereís ver algún ejemplo simplemente teneís que ver el código fuente de está página.

Bueno, este jueves, esperemos que este si, haré algunos cambios más ya que el diseño no me acaba de convencer del todo.

External Test

Hace unos dias leí en microsiervos acerca de esta herramienta via web que te monitoriza una o varias webs, incluso es capaz de monitorizar varios servicios como POP, SMTP, FTP, …

Yo me he registrado y llevo varios dias probandola y funciona bastante bien, te hace un checkeo de la WEB o del servicio que metas cada 15 minutos como mínimo, tiene la posibilidad de enviarte alertas por correo electronico cuando tu WEB o servicio no responde y además te ofrece gráficos y la posibilidad de exportar información en varios formatos: CSV, EXCEL, XML, …

Hoy he recibido un correo de este servicio indicandome que han desarrollado un WIDGET para Yahoo Widget Engine que te permite ver el estado de tú WEB o servicio directamente en tu escritorio. dicho WIDGET se puede descargar desde:

http://www.externaltest.com/widget/xt_es.widget.zip

Yo lo he instaldo en un Windows 2000 y funciona perfectamente, en la web de yahoo dicen que tambien funciona en Mac, pero la verdad es que preferiría que fuera en formato de WIDGET para Mac, pero bueno, me imagino que con el tiempo igual también lo sacan.

Nociones básicas de web services

Por fin he conseguido aprender a hacer web services en JAVA mediante AXIS, mis conocimientos son muy básicos, pero los voy a plasmar aquí por si le sirven a alguien.

No voy a explicar como montar el tomcat ni como instalar el AXIS ni el JTDS ya que creo que esa información está bastante clarita por ahí, lo que voy a intentar explicar es los pasos básicos para montar un servicio pero complementando la información que yo no he obtenido por Internet y la cual he aprendido a base de prueba y error.

En el ejemplo que os voy a mostrar se trata de un servicio de anuncios en el cual se pueden obtener através de web services los anuncios que tiene contratado un usuario.

Lo primero que hay que hacer es definir en JAVA la clase Anuncio.java, es una clase sencillita con una serie de atributos privados a los cuales se accede mediante los típicos métodos publicos de set y get.

Después de esto vamos a definir la classe Anuncios.java que es la clase a la cual referenciaremos en nuestro Web Service y la cual tendrá los métodos que dejaremos que se ejecuten a través de él.

Una vez que tenemos listos los métodos del Web Service vamos a preparar otro archivo que vamos a llamar Anuncios.wsdd el cual contiene la definición del servicio que vamos a ofrecer.

El objetivo de este Web Services es que pasandole un usuario me devuelva un XML con todos los anuncios de dicho usuario.

Existen dos tipo de XML que nos puede devolver, todo ellos encapsulados en un mensaje de tipo SOAP, que es através de el cual se comunican los Web Services.

En el campo style tenemos varios valores posibles, estos determinarán el formato del XML que ira en el cuerpo del mensaje SOAP, yo en el ejemplo he usado: style=”wrapped”, ya que a mi juicio es el más fácil de entender ya que te devuelve un XML bastante claro en el cual se ve el reflejo de la clase en JAVA que hemos definido.

El fichero Anuncios.wsdd es el fichero de deploy, el cual se usa para dar de alta el servico en AXIS, más información sobre su estructura completa aquí

El comando que hay que ejecutar para dar de alta el servicio es el siguiente:

java org.apache.axis.client.AdminClient Anuncios.wsdd

Con esto ya tendremos el servicio listo para atender las peticiones.

Podemos ver los servicios que tenemos activos en:

http://localhost:8080/axis/servlet/AxisServlet

Si tienes el servidor instalado en otra dirección y en otro puerto deberás de cambiar, el resto de la URL a de ser el mismo.

Para dar de baja un servicio hay que crear el fichero de undeploy, en nuestro caso: Anuncios_undeploy.wsdd

El comando a ejecutar es el siguiente:

java org.apache.axis.client.AdminClient Anuncios_undeploy.wsdd

Ahora solo queda crear un cliente que acceda a dicho Web Services, esto tampoco lo voy a explicar porque está bastante documentado en Internet y además se puede implementar en el lenguaje que se quiera: JAVA, PHP, .NET, PERL, …

Yo concretamente he utilizado PHP con la librería nuSoap y funciona bien.

Referencias:
http://www.osmosislatina.com/axis/basico.htm
http://www.it.uc3m.es/berto/SI/WS/

Actualización

Al principio empece haciendo el blog con el iWeb de Apple, pero la poca flexibilidad que me da, me ha hecho buscar otro gestor de contenidos.

Ahora utilizo el b2evolution para seguir con mi blog.

He migrado todos los post y mantengo os enlaces antiguos por si alguien los tiene enlazados para que no se pierda el contenido.

He partido del skin kubrick2evo, poco ha poco iré modificando para adaptarlo a mis necesidades.

Ahora por lo menos tengo posibilidad de que se puedan meter comentarios y tengo trackbacks, lo cual son cosas que no tien el iWeb, esperemos que para sucesivas versiones lo vayan mejorando porque ahora el HTML que generá es muy pesado y ralentiza la carga de la página excesivamente, sin contar el elevadísimo tamaño de las imagenes.