Correos electrónicos sospechosos: bonos de seguros no reclamados, cajas de seguridad con incrustaciones de diamantes, amigos cercanos abandonados en un país extranjero.
Todas estas cosas y más, aparecen en nuestras bandejas de entrada, y el procedimiento estándar es eliminarlos. ¿Pero qué pasa cuando respondes?
En este vídeo, James Veitch -escritor y humorista -, nos cuenta un hilarante intercambio de mensajes con un spammer que se ofreció a convencerlo de una buena oferta.
Otra forma de ver y tomarse el creciente problema del spam o correo no deseado.
11 de febrero de 2019
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:
Como salida obtendremos en la consola, diversa información sobre el nodo (uno específico) que estamos consultando.
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:
Por ejemplo, para buscar los documentos que contengan la etiqueta "cmis", la búsqueda a realizar sería:
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"
Tras esta modificación, al probar de nuevo a conectarnos por CMIS, accederemos al repositorio.
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/
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.
Utilizar la convención Yoda consistiría en modificar el código de esta manera:
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:
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:
Más información: https://en.wikipedia.org/wiki/Yoda_conditions
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
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
Suscribirse a:
Entradas (Atom)
:: 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...
-
En multitud de ocasiones es útil obtener el modelo de datos de una aplicación para determinar las tablas, consultas, relaciones,... En es...
-
La siguiente prueba de concepto consistirá en la creación de un webscript que liste las carpetas contenidas en una carpeta dada, pasada co...
-
En Liferay 7.3 y, en versiones anteriores, para el idioma por defecto -en las configuraciones habiturales- no se muestra el código de idioma...






