Blog

Actualización de la documentación para acceso a los alojamientos

Como sabréis, se ha mejorado la infraestructura disponible para los alojamientos web y por esa razón los hemos movido a unos equipos mejores.

Todos los clientes habéis recibido un correo con los nuevos datos para que los tuvierais en cuenta por si teníais que cambiar el método de conexión. Ademas, el CAU (Centro de Atención al Usuario) ha sido instruido para que os ayuden en caso de tener algún problema.

Nosotros, por nuestra parte, hemos actualizado los manuales en la web de información incluyendo dos nuevos videos con las formas de conexión.

Para OSX

[youtube]https://www.youtube.com/watch?v=lTrF7Q0UIvo[/youtube]

Para Windows

[youtube]https://www.youtube.com/watch?v=0PsyRPnWhn4[/youtube]

Aun con todo, si tenéis algún problema, podeis dirigiros a nosotros.

Actuar sobre una lista de ficheros con espacios

Si queremos hacer algo con una lista de ficheros y nos encontramos espacios, esta es la solución

[code]

find . -type f | while IFS= read -r file; do echo «${file}»; done

[/code]

Lo importante son las comillas.

Si queremos por ejemplo moverlos a otro sitio, deberemos usar también las comillas dobles

[code]

find . -type f | while IFS= read -r file; do echo «${file%.doc}»; mv «${file}» /tmp/»${file}»; done

[/code]

 

WPHardering para tu WordPress

En el GIT podemos encontrar un proyecto que nos puede echar una mano a todos aquellos que nos dediquemos a administrar un WordPress, ya sea instalación simple o multiplataforma. Se trata de WPHardering, un script en Python dedicado a reforzar la seguridad de una instalación de WordPress.

Dispone de multitud de opciones típicas (desde la instalación de algunos plugins estándar de seguridad, hasta la revisión de permisos de los directorios y ficheros o la creación de .htaccess o index.php que no suelen venir de serie) de seguridad que, pese a ser conocidas, muchas veces se nos pueden pasar por alto.

Recordad que requiere acceso a la maquina con un terminal y que esta tenga instalado Python, ademas de que esta orientado a entornos Unix. En el GIT tenéis un completo manual de sus funciones.

Más información: WPHardering GIT, página del autor

Número 1 en accesibilidad [actualización]

Captura de pantalla 2014-05-26 a la(s) 12.24.02

Según un estudio de accesibilidad de todas las webs universitarias realizado por la Universidad de Granada, la web de la Universidad de Valladolid es la número uno en accesibilidad con una puntuación global de 0,949 seguida por la web de la Universidad de Almeria con 0,915.

Desde aquí seguimos trabajando para mejorar nuestra web dotandola de nuevos servicios y mejorando, no solo la capacidad, sino tambien desarrollando nuevas herramientas que ayuden al entorno universitario.

Damos las gracias a todos los que nos han ayudado y apoyado en su realización.

Link: UGR

[Actualización]: Aquí tenéis un enlace al Dossier de Prensa del Gabinete de Comunicación de la UVa en donde se hace un reflejo de los articulos de periódicos donde se nos hace referencia.

Opencms: replicación de índices de Solr

Nosotros tenemos una configuración de un maestro donde la gente edita y dos esclavos para servir las webs de OpenCms. El problema que nos encontramos es que en el disco compartido donde tienen los índices de Solr varias instancias de OpenCms (1 del maestro y 2 de los esclavos) intentaban manipular el mismo índice, y esto daba problemas de bloqueo para hacer los updates y commits. Además si un maestro hace las modificaciones, los esclavos no se enteran de las modificaciones. También había un problema con el cacheado de los esclavos, que no se enteran de los cambios en los contenidos del maestro y no actualizan las caches, por que cachean aunque la tengas desactivado y a tamaño cero.

La solución ha sido complicada pero efectiva.Ehmos replicado el índice Solr Online del maestro en los esclavos, y definiendo un servlet para que los esclavos se enteren de las actualizaciones en el maestro. Todo está basado en la configuración de las realizaciones de Apache Solr (http://wiki.apache.org/solr/SolrReplication) y la clase de OpenCms OpenCmsSolrHandler.

Paso a detallar la configuración del maestro:

– Instalamos un módulo con unas pequeñas modificaciones de CmsSolrIndex.java y una nueva clase OpenCmsHandleSolrReplicationHandler.java creada por nosotros (si alguien tiene interés que contacte con nosotros)

– Configuramos la replicación en WEB-INF/solr/conf/solrconfig.xml dentro de OpenCms con la información de la wiki:

[code]

<requestHandler name=»/replication» class=»solr.ReplicationHandler»>

<lst name=»master»>

<str name=»replicationAfter»>commit</str>

<str name=»replicationAfter»>startup</str>

</lst>

[/code]

– configuramos WEB-INF/web.xml un servlet con nuestra clase OpenCmsSolrReplicationServlet .

 

La configuración de los esclavos es más sencilla.

– Configuracmos el índice en  WEB-INF/config/opencms-search.xml

[code]

<directory>index_esclavoID</directory>

[/code]

– Configuramos la replicación en WEB-INF/solr/conf/solrconfig.xml

[code]

<requestHandler name=»/replication» class=»sold.ReplicationHandler»>

<lst name=»slave»>

<str name=»masterURL»>http://IP:PUERTO/replication</str>

<str name=»pollInterval»>00:00:20</str>

</lst>

</requestHandler>

[/code]

Con esto hemos logrado que los índices se actualicen sin bloqueos ni problemas.

Generar el war de opencms desde código fuente

Para generar el opencms.war desde el código fuente que OpenCms pone a nuestra disposición en GitHub aunque en la documentación pone que haya que hacer un «ant war» esto os generará un war sin los módulos, con lo cual el opencms se queda tan limpio que no se puede usar. Si bien podemos instalarlos desde el CmsShell mi recomendación es realizar antes del «ant war», hacer un «ant bindist» que generará los ficheros de los módulos y los incluirá en el war.

OpenCms. Compilar versión 9

Si nos costó compilar la MS 9.4.1, también cuesta la versión 9 del Github del día 28 de Enero. Aquí os dejamos una guía paso a paso.

Lo primero, bajar el eclipse para Java EE, aunque con el clásico valdría.

Lo segundo, como usa Gradle, debemos instalar el plugin para eclipse. Esta nueva versión trae en el menú->Help el Marketplace que nos permite instalar el plugin de una manera sencilla.

Después nos bajamos de github la última versión del acacia-editor, un zip que tras descomprimir debemos importar en nuestro workplace como proyecto Gradle.

Seguimos pulsando el botón derecho sobre el proyecto de acacia editor, en el menú que nos aparece, elegimos «Gradle->Refresh Dependencies». Esto nos descargará las librerías necesarias para su compilación.

A continuación, os recomiendo activar la vista «Gradle Task», en el menú->Window->Show view->other …y en Gradle la tenemos. Así podemos lanzar fácilmente las compilaciones. Lanzamos la tarea «clean» y luego la tarea «install». Todo debería ir bien aunque aparezca algún mensaje de error.

A continuación bajamos el minestrone 9.4.1 de opencms, descomprimimos el zip y lo importamos en nuestro workplace como proyecto Gradle.

Debemos hacer un pequeño cambio en el fichero dependencias.gradle ya que no le gusta la librería gwt-dev.  Debemos pulsando con el botón derecho en el proyecto importado de opencms, en «Java Build Path», en «Libraries» añadimos la librería buscándola en la carpeta lib, y luego compile.

Ya casi terminando, con el botón derecho sobre el proyecto de opencms, en el menú que nos aparece, elegimos «Gradle->Refresh Dependencies»

Con todos estos pasos, ya podríamos ejecutar en la ventana de «Gradle Task» la tarea «bindist» y no debería darnos problemas en generar en la carpeta «BuildCms/distributions» un opencms.war perfecto.

Espero que os sirva y muchas gracias a Montse por la ayuda, que esto debería estar contándolo ella ^_^

OpenCms. Compilar Milestone 9.4.1

Llevamos unos días peleándo con la compilación para generar el war con los módulos del Opencms MS 9.4.1. Aquí os dejamos una guía paso a paso.

Lo primero, bajar el eclipse para Java EE, aunque con el clásico valdría.

Lo segundo, como usa Gradle, debemos instalar el plugin para eclipse. Esta nueva versión trae en el menú->Help el Marketplace que nos permite instalar el plugin de una manera sencilla.

Después nos bajamos de github la última versión del acacia-editor, un zip que tras descomprimir debemos importar en nuestro workplace como proyecto Gradle.

Seguimos pulsando el botón derecho sobre el proyecto de acacia editor, en el menú que nos aparece, elegimos «Gradle->Refresh Dependencies». Esto nos descargará las librerías necesarias para su compilación.

A continuación, os recomiendo activar la vista «Gradle Task», en el menú->Window->Show view->other …y en Gradle la tenemos. Así podemos lanzar fácilmente las compilaciones. Lanzamos la tarea «clean» y luego la tarea «install». Todo debería ir bien aunque aparezca algún mensaje de error.

A continuación bajamos el minestrone 9.4.1 de opencms, descomprimimos el zip y lo importamos en nuestro workplace como proyecto Gradle.

Debemos hacer un pequeño cambio en el fichero dependencias.gradle ya que no le gusta la librería server-api.  Debemos comentar la línea «compile group: ‘javax.servlet’, name: ‘servlet-api’, version: ‘2.4’» y añadir a continuación «compile files(‘lib/compile/servlet-api.jar’)».

A continuación, pulsando con el botón derecho en el proyecto importado de opencms, en «Java Build Path», en «Libraries» añadimos la librería buscándola en la carpeta lob, y luego compile.

Ya casi terminando, con el botón derecho sobre el proyecto de opencms, en el menú que nos aparece, elegimos «Gradle->Refresh Dependencies»

Con todos estos pasos, ya podríamos ejecutar en la ventana de «Gradle Task» la tarea «bindist» y no debería darnos problemas en generar en la carpeta «BuildCms/distributions» un opencms.war perfecto.

Espero que os sirva y muchas gracias a Montse por la ayuda.

 

NOTA: Si durante la compilación os da problemas de «Java Heap Space» debéis cambiar en el fichero «grade.properties» el valor «max_heap_size» a un valor mas alto. Yo tengo puesto «max_heap_size=4096m»

Cambiar tipo mime de un fichero

Recientemente me ha pasado que algún editor modifica la codificación de un fichero como consecuencia si yo tengo un fichero .php que muestre una palabra con acentos y el encoding del fichero no coincide con el encoding que yo le estoy diciendo en el «meta»…pues problema al canto y caracteres raros por ahí…

El encoding se puede solucionar guardando el fichero en el encoding apropiado (algunos editores soportan esta opción) pero para linux (Mac) esta es la solución más sencilla que he encontrado.

Solución en linux:

Para identificar que encoding tiene un fichero concreto:

[code] $file –mime nombrefichero.php [/code]

Esto nos produce una salida…

[code] nombrefichero.php:         text/plain; charset=iso-8859-1[/code]

Para reconvertir al formato que deseamos por ejemplo a utf-8:

[code]  iconv -f iso-8859-1 -t utf-8 nombrefichero.php > nombrefichero_utf8.php[/code]

 

*NOTA: cuidado con intentar encodear un fichero formato ascii a utf-8 porque ascii ya es utf-8 por lo que la reconversión no se lleva a cabo.