5 de febrero de 2019

:: Tip. Script en Groovy para consulta de propiedades de un tipo de datos de Alfresco

Únicamente a modo de apunte, haciendo uso de la herramienta CMIS Workbench podemos conectar con el repositorio de Alfresco. En este teníamos definidos una serie de datos personalizados, y necesitamos obtener los valores asociados a estos metadatos.

Un breve script que podemos ejecutar desde la consola de la herramienta, podría ser similar al siguiente:


import org.apache.chemistry.opencmis.commons.*
import org.apache.chemistry.opencmis.commons.data.*
import org.apache.chemistry.opencmis.commons.enums.*
import org.apache.chemistry.opencmis.client.api.*

Document doc = (Document) session.getObject("d779ee5c-7aa0-46ab-a31f-d8340f9114d0;1.0");

println(doc.name);
println(doc.description);

println("");
println(doc.properties['id']);
println("");

println(doc.getPropertyValue('aso:fecha').format('DD/MM/YYYY'));
println(doc.getPropertyValue('aso:tema'));
println(doc.getPropertyValue('aso:organismo'));


Como salida obtendremos en la consola, diversa información sobre el nodo (uno específico) que estamos consultando.

29 de enero de 2019

:: Tip. Búsqueda por etiquetas en Alfresco

Si en nuestro gestor documental etiquetamos los documentos, podemos llevar a cabo búsquedas sobre estos, haciendo uso de las etiquetas. Para ello, en el buscador, debemos especificar:


TAG:"nombre-de-la-etiqueta"


Por ejemplo, para buscar los documentos que contengan la etiqueta "cmis", la búsqueda a realizar sería:


TAG:"cmis"


18 de enero de 2019

:: CMIS Workbench. Certificado autofirmado

En este tip, cuando intentamos conectarnos por CMIS al repositorio de Alfresco con un certificado autofirmado, obtendremos un mensaje de error como el siguiente:


Para solventar este problema podemos deshabilitar los certificados, añadiendo la siguiente línea en el fichero: "workbench.bat"

-Dcmis.workbench.acceptSelfSignedCertificates=true

De esta manera el fichero quedará así:


@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements.  See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License.  You may obtain a copy of the License at
rem
rem     http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.

rem Version: 0.14.0 / Revision: 1741103 / Build: 2016-04-26T14:09:01-0700

cd %~dp0\lib

rem use variable CUSTOM_JAVA_OPTS to set additional JAVA options

rem uncomment the following lines to configure HTTP proxy

rem set http_proxy=http://:
rem set https_proxy=https://:
rem set no_proxy=localhost,127.0.0.0,.local


for /F "delims=/" %%x in ('"java -classpath .;* org.apache.chemistry.opencmis.workbench.ProxyDetector -j -s"') do set "JAVA_PROXY_CONF=%%x"
set JAVA_OPTS=%JAVA_PROXY_CONF% -Dcmis.workbench.acceptSelfSignedCertificates=true

start /B javaw %JAVA_OPTS% %CUSTOM_JAVA_OPTS% -classpath ".;*" org.apache.chemistry.opencmis.workbench.Workbench


Tras esta modificación, al probar de nuevo a conectarnos por CMIS, accederemos al repositorio.

13 de enero de 2019

:: ¿Qué son los "polyfill"?

En desarrollo web, "Polyfill" es un fragmento de código que proporciona una característica a los navegadores web que estos no soportan nativamente.

Por ejemplo, un "Polyfill" permite a los desarrolladores web utilizar una API, independientemente de si es compatible con un navegador, y normalmente con una sobrecarga mínima. Habitualmente  comprueban si un navegador es compatible con una API y la utilizan -si está disponible-, o -en caso contrario- utilizan su propia implementación.

Un ejemplo de "polyfill" sería: sessionStorage, que permite guardar información localmente. Esta es una característica que está disponible a partir de IE8, pero si la necesitásemos para navegadores anteriores, la solución sería utilizar un "polyfill".

En resumen, el uso de "polyfills" nos aporta beneficios, al escribir código fuente compatible en todos los navegadores.

Más información: https://en.wikipedia.org/wiki/Polyfill_(programming)

Índice de polyfills:
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

Guía sobre como escribir polyfills:
http://addyosmani.com/blog/writing-polyfills/

7 de enero de 2019

:: Condiciones Yoda

Las condiciones Yoda son una convención de programación que nos ayudará a evitar los típicos errores en la comprobación del valor de una variable en un condicional.


if(variable=='Yoda')
{
  //TODO
}


Utilizar la convención Yoda consistiría en modificar el código de esta manera:

if('Yoda'==variable)
{
  //TODO
}


Pero, ¿por qué deberíamos utilizar esta alternativa?. Es bastante habitual (en algunos lenguajes) cometer un error al realizar la comprobación del valor de una variable en un condicional:

if(variable='Yoda')
{
  //TODO
}


En el caso anterior, estaríamos asignando el valor: 'Yoda' a la variable que hemos llamado: "variable". Este código no produciría ningún error, pero estaríamos asignando un valor a una variable que puede provocar errores en la lógica del programa.
Por el contrario, al utilizar una "condición Yoda", en el caso de cometer este error, el intérprete o compilador nos daría un error, lo que nos ayudaría a detectar el problema:

if('Yoda'=variable)
{
  //TODO
}


Las condiciones Yoda usar debes

Más información: https://en.wikipedia.org/wiki/Yoda_conditions

1 de enero de 2019

:: Portal de traducción automática: PTPLATA

Este traductor automático permite al usuario traducir textos y ficheros desde el castellano a los distintos idiomas de la UE y  lengua cooficiales.

Aunque se trata de un traductor automático, la calidad de las traducciones se encuentra dentro de los umbrales de calidad marcados.

Para hacer uso del mismo es necesario tener un perfil de Administración Pública, registrándose en el Portal de Administración Electrónica.

Información de la noticia: https://goo.gl/7GsS7x
Información del traductor: https://goo.gl/TWQTVx

24 de diciembre de 2018

:: Estándar europeo sobre accesibilidad de sitios web y aplicaciones móviles

Publicado el estándar armonizado europeo sobre accesibilidad de sitios web y aplicaciones móviles (21/12/2018).

Este estándar se ha publicado en el Diario Oficial de la Unión Europea la Decisión de Ejecución (UE) 2018/2048 de la Comisión, de 20 de diciembre de 2018 , sobre la norma armonizada aplicable a los sitios web y a las aplicaciones para dispositivos móviles redactada en apoyo de la Directiva (UE) 2016/2102 del Parlamento Europeo y del Consejo. Es decir, la declaración como estándar armonizado de la norma "EN 301 549 V2.1.2 (2018-08). Requisitos de accesibilidad para los productos y servicios de las TIC"

Por lo tanto, desde hoy 21 de diciembre de 2018, el estándar a cumplir por las Administraciones Públicas españolas en sus sitios web es el EN 301 549 v2.1.2 (2018-08). En el caso de las aplicaciones móviles aplicará a partir del 23 de Junio de 2021.

Más información: https://goo.gl/shQCya

:: Liferay DXP 2026. Habilitar RSS

En la versión Liferay DXP 2026 para habilitar las fuentes de datos RSS debemos seguir los pasos siguientes: 1.- Accederemos a la Configuraci...