jueves, 7 de noviembre de 2019

QRCode.js y Code Length OverFlow Error

El problema

Estoy generando QRCodes mediante  QRCode.js
https://github.com/davidshimjs/qrcodejs
Sin embargo según el contenido algunos se visualizan y otros no.
Mirando en la ventana del navegador veo:
Code Length Overflow Error
por algún problema en el código de QRCode.js

Solución

Usar la bifurcación del proyecto que realizó la compañía Keepx
https://github.com/KeeeX/qrcodejs
dado que el proyecto original no tiene mantenimiento desde hace años.

Referencias

https://github.com/davidshimjs/qrcodejs/issues/78#issuecomment-278567765

vcard, acentos y eñes.

El problema

Creas una página web desde donde pueden descargarse archivos VCard para importarlos y crear contactos en Outlook.
Todo funciona bien salvo que tildes, eñes u otros carácteres  no usados en inglés no se visualizan bien.
Por ejemplo Dª Estefanía se importa como D? Estefan?a

Contexto

El problema me apareció en un desarrollo C# MVC ASP.NET usando la librería MixERP.Net.VCards pero la solución tiene aplicación en otros contextos,

Solución

Hay que codificar con "ISO-8859-1".

Usando un controlador ASP.NET MVC el código es:

        [HttpPost]
        public ActionResult VCard(Simple cto)
        {
            var _VCard = cto.GetComplejo().getVcard(); //genera Vcard en formato MixERP.Net.VCards
            Response.Clear();
            Response.AddHeader(
                $"Content-Disposition",
                $"attachment; filename={_VCard.FormattedName }.vcf;"
                );
            var serializedvCard = _VCard.Serialize();
            return File(
                Encoding.GetEncoding("ISO-8859-1").GetBytes(serializedvCard),
                "text/x-vcard; charset=ISO-8859-1"
                );
        }

martes, 30 de octubre de 2018

Insertar HTML en el cuerpo de un mensaje Outlook 2016

Situación

Quieres insertar el contenido de un archivo HTML en un mensaje de Outlook.
No ves la opción buscas en la web y dicen que cuando adjuntas un archivo tienes un desplegable para elegir entre adjuntar o insertar como texto. Pero en la versión 365 de Outlook no ves el desplegable.

Solución 

En la barra de titulo de la ventana del mensaje hay accesos rápidos, añade el acceso rápido para adjuntar un archivo.
Cuando uses este acceso rápido para adjuntar un archivo veras que el botón insertar es un botón desplegable con la opción deseada.
(desde una respuesta en Comunidad de Microsoft

jueves, 9 de agosto de 2018

Las GPO no se aplican al arrancar

Sintomas

Últimamente mi Windows 10 no aplica las GPO por lo que entre otras no se mapean las unidades de
red y aparecen eventos 1110.

Solución

Arrancar el servicio net logon que está detenido y colocarlo en automático.

¿Por qué se ha detenido el servicio Net Logon? ¿Por qué está en manual?

El asistente de soporte de DELL establece el arranque en manual porque piensan que todos los usuarios son domésticos y no necesitan el servicio net logon.
https://www.dell.com/community/SupportAssist/Dell-SupportAssistant-sets-Netlogon-service-to-manual/td-p/6083752
😡😡😡😡😡😡😡😡😡 😡😡😡😡😡😡

jueves, 19 de abril de 2018

Dos Helpers Razor para postear diccionarios en forms y Json

Descripción

El modelo de una página Razor incluye propiedades del tipo diccionario que queremos postear como campos ocultos o mediante Json.

Solución

Para camposOcultos

@helper OcultoDictionary(Dictionary<int, int> dicc, string nombre)
    {
        var i = 0;
        foreach (var d in dicc)
        {
            <input type="hidden" value="@d.Key" name="@string.Format("{0}[{1}].Key",nombre,i)" />
            <input type="hidden" value="@d.Value" name="@string.Format("{0}[{1}].Value",nombre,i)" />
            i++;
        }
}

Ejemplo de resultados

<input type="hidden" value="1" name="ExperienciasEspecificas[0].Key" />
<input type="hidden" value="1" name="ExperienciasEspecificas[0].Value" />
<input type="hidden" value="2" name="ExperienciasEspecificas[1].Key" />
<input type="hidden" value="1" name="ExperienciasEspecificas[1].Value" />
<input type="hidden" value="3" name="ExperienciasEspecificas[2].Key" />
<input type="hidden" value="1" name="ExperienciasEspecificas[2].Value" />

Para Json

@helper JsonDiccionario(Dictionary<int, int> dic, string n)
    {
        var i = 0;
        foreach (var d in dic)
        {
            @Html.Raw($"'{n}[{i}].Key':{d.Key},")
            @Html.Raw($"'{n}[{i}].Value':{d.Value},")
            i++;
        }
}

Ejemplo de resultados

{
...
'ExperienciasEspecificas[0].Key':1,
'ExperienciasEspecificas[0].Value':1,
'ExperienciasEspecificas[1].Key':2,
'ExperienciasEspecificas[1].Value':1,
'ExperienciasEspecificas[2].Key':3,
'ExperienciasEspecificas[2].Value':1,
...
}

viernes, 1 de diciembre de 2017

Outlook no conecta pero no pide contraseña

Hace poco activé OAuth2 en mi organización Exchange de Office 365, para ello usé:
Set-OrganizationConfig -OAuth2ClientProfileEnabled $true

Al cabo de unos dias el Outlook de uno de mis usuarios dejo de sincronizar. Probé todos los métodos clásicos (crear perfiles, borrar credenciales,...etc) pero no había forma de resolverlo.

Cuando intentaba crear un perfil nuevo desde Outlook se abría una caja blanca que desaparecía inmediatamente. Leí en foros que mucha gente lo resolvía formateando el ordenador, por mi parte me "limité" a borrar el perfil del usuario Windows y volverlo a crearlo.

Pocos días después era el Outlook en mi ordenador el que daba el problema, y yo no estaba dispuesto a borrar el perfil de usuario, tengo demasiadas cosas y personalizaciones.

Después de repetir sin éxito todas los diagnósticos de Office, borrar credenciales y perfiles, desinstalar e instalar Office recordé la activación de OAuth2 y la desactivé
Set-OrganizationConfig -OAuth2ClientProfileEnabled $false

¡Problema resuelto!,...en mi ordenador, puesto que  al día siguiente el usuario al que había recreado el perfil me llama porque no se actualizaba su buzón.

Examinando los registros HKCU:\Software\Microsoft\Office\15.0\Common\Identity en su máquina y en la mía descubrí que en el perfil recién creado faltaba una clave Dword DisablePreferLiveOAuth que en mi perfil mas antiguo estaba establecida a 1.

Creando la entrada en el nuevo perfil de mi usuario, Outlook volvió a poder conectarse.

Imagino que también funcionaría a la inversa cambiar la organización para usar OAuth2 y eliminar la clave  en todas las máquinas y perfiles de usuario.


lunes, 21 de agosto de 2017

Errores Piwik al cargar plugins con sitio de mucho tráfico para periodo largo

Síntomas:

Piwik da un error en los componentes del panel que dice algo así como:
Ooops!! Hubo un problema durante la solicitud. Tal vez el servidor tenía un problema temporal, o tal vez solicitó un informe con demasiados datos,...
En inglés
Oops… there was a problem during the request. Maybe the server had a temporary issue, or maybe you requested a report with too much data,...

Solución:

Puede haber otras causas pero a mí me ha bastado con aumentar la memoria de script PHP
Archivo: /etc/php/7.0/apache2/php.ini
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 384M

Recuerda regargar php.ini con sudo apachectl graceful