Transformación XML + XSL = HTML en VB

Convertir un documento XML en un documento HTML con formato y diseño definidos en una hoja de estilos XSL con Visual Studio 2017 con VB

Los documentos XML son de texto plano y su presentación básica carece de opciones de diseño o formato. Al abrirlo siempre vemos texto estructurado de acuerdo con las normas del lenguaje XML. En ocasiones se necesita utilizar datos XML como origen pero presentarlos de una manera determinada, por ejemplo para un dispositivo móvil o para la web. En estos casos podemos recurrir a las hojas de estilo XSL.

XSL (extensible stylesheet language) contiene las reglas que nos permiten extraer y formatear la información desde un archivo XML para ser presentada al usuario. Dentro del lenguaje XSL existe el estándar XSLT (XSL transformation) que se usa para transformar documentos XML. Mediante hojas de estilo XSLT se define cómo va a ser convertido un documento XML en otro tipo de documento que puede ser de varios tipos (PDF, JAVA, etc.) aunque lo más habitual es que sea HTML para poder ser visualizado en un navegador Web.
Para conseguirlo hay que relacionar el documento XML con la hoja de estilos XSL en la que se detallan las reglas para transformar un tipo de documento en otro, estas reglas son analizadas por el procesador XSL y la salida resultante es un documento HTML formateado con arreglo a esas reglas.
En este ejercicio se ha creado una hoja de estilo XSL en la que se ha definido cómo presentar el origen de datos XML en una página Web apta para ser imprimida por el usuario.

Continuar leyendo «Transformación XML + XSL = HTML en VB»

Cambiar de OpenCore 0.6.5 a 0.6.6

LauncherOption en lugar de Bootstrap.efi: en OpenCore 0.6.6 hay un cambio importante respecto a las versiones anteriores. Hasta ahora OpenCore era un driver EFI y necesitaba un cargador. Bootstrap.efi o BOOTx64.efi realizaban esta función. Pero ahora OpenCore es una aplicación y ya no necesita un cargador. Ello mejora la compatibilidad con firmwares UEFI.

El usuario final notará este cambio en la desaparición de la carpeta Bootstrap y la substitución en config.plist de la clave Misc > Security > BootProtect por las claves LauncherOption y LauncherPath, ambas en Misc > Boot.

En la guía de Dortania explican este cambio pero en resumen el proceso puede ser similar a este:

Continuar leyendo «Cambiar de OpenCore 0.6.5 a 0.6.6»

Proceso helpd ocupa CPU en Big Sur 11.1

En mi sistema con Big Sur 11.1 el proceso helpd arranca de forma automática a los pocos minutos de iniciar sesión y permanece arrancado ocupando el 12% de la CPU hasta el fin de la sesión o el apagado del equipo. Si cierro el proceso (killall helpd) la carga de la CPU en reposo baja a 0-1% pero al poco tiempo vuelve a activarse y a ocupar de nuevo el 12%.

Nota: este problema ha sido corregido en la versión 11.2 de Big Sur.

El Visor de la Ayuda, presente en macOS desde Mac OS X 10.5 Leopard cuando Apple separó la ventana de la ayuda de la ventana principal de la aplicación, depende del proceso helpd que se encarga de indexar los archivos de ayuda de las aplicaciones que están instaladas. En condiciones normales, helpd ha de arrancar periódicamente (instalación o cambio de alguna app que utiliza el sistema de ayuda) durante cortos períodos de tiempo.

Continuar leyendo «Proceso helpd ocupa CPU en Big Sur 11.1»

Cómo usar ScanPolicy en OpenCore

Puesto que existen dispositivos de almacenamiento de varias clases (USB, SATA, NVMe, etc.) y también diferentes sistemas de archivos y tipos de particiones (EFI, APFS, HFS+, etc.) es útil disponer de un mecanismo para definir cuáles de esos elementos van a ser tenidos en cuenta por OpenCore (OC) de acuerdo con nuestras necesidades.

Esto se consigue con la clave ScanPolicy (Integer) que está en la sección Misc / Security del archivo config.plist y que define la política de detección de tipos de dispositivo y sistemas de archivos por parte de OC.
ScanPolicy se calcula sumando valores hexadecimales elegidos de una lista (disponible en el PDF de configuración de OC) y convirtiendo la suma total a su valor decimal que es el que debe anotarse en config.plist. OpenCore sólo mostrará en su menú (picker) como opciones de arranque los elementos definidos en ScanPolicy.

Continuar leyendo «Cómo usar ScanPolicy en OpenCore»

Captura de pantalla en la BIOS

En el año 2016 arrancó un proyecto para desarrollar un driver que sirviese para capturar la pantalla estando todavía en BIOS. El driver que surgió de este proyecto se llama CrScreenshotDxe y se utiliza en el mundo Hackintosh para tomar pantallazos desde el menú de OpenCore. Pero esto hoy ya no es necesario porque casi todas las BIOS modernas llevan incorporada esta función.

¿Cómo tomar pantallazos de la BIOS?

  • Se requiere una memoria USB formateada como FAT o como FAT32 (requisito para que la BIOS pueda escribir en el dispositivo)
  • La memoria USB ha de estar insertada antes de encender el PC para ser bien detectada
  • Pulsa F12 o Impr Pant cuando estás en la sección que desas capturar
  • Si la captura se ha realizado correctamente, un mensaje de confirmación aparece inmediatamente
  • La imagen se guarda en la memoria USB con formato BMP
  • Se pueden hacer varias capturas en la misma sesión.
Continuar leyendo «Captura de pantalla en la BIOS»

Cambiar de OpenCore 0.6.4 a 0.6.5

Ya es oficial la versión 0.6.5 de OpenCore lanzada el 4 de enero de 2020. Hay cambios profundos tanto en el propio paquete como en algunas utilidades y extensiones publicadas junto a él. También hay cambios en el archivo config.plist aunque son pocos y fáciles de realizar.

Como en ocasiones anteriores, es altamente recomendable leer el artículo de vit9696 con un resumen excelente de los cambios más importantes.

Sin entrar a fondo en las múltiples modificaciones y mejoras, estas son las principales diferencias que hay que tener en cuenta.

config.plist

Continuar leyendo «Cambiar de OpenCore 0.6.4 a 0.6.5»

macOS Big Sur en Z390 Aorus Elite con OpenCore

Instalar macOS Big Sur 11.0.1 en la placa Gigabyte Z390 Aorus Elite + procesador i7 9700 Coffee Lake R + tarjeta gráfica AMD Radeon RX 580 + tarjeta WIFI y Bluetooth fenvi FV-T919 + OPENCORE 0.6.4 + AppleALC, IntelMausi, Lilu, USBMap, USBWakeFixup, VirtualSMC, XHCI-unsupported y WhateverGreen

Hardware

  • Placa base Gigabyte Z390 Aorus Élite: soporte para procesadores Intel de generaciones 8 y 9, audio Realtek ALC1220, Ethernet Intel I219V, 4 ranuras PCI-E, puertos USB 2, 3 y 3.1, tarjeta gráfica integrada Intel UHD Graphics 630 y conectores para disco M.2
  • Procesador de 9ª generación Intel i7 9700
  • Ventilador CPU 120 mm Nox Hummer H-312
  • Memoria RAM Corsair Vengeance LPX 3200 MHz 32 GB (2 x 16)
  • Tarjeta gráfica AMD Radeon RX 580 8 GB
  • Tarjeta Wifi y Bluetooth Fenvi FV-T919
  • Fuente de alimentación Mars Gaming MPII850 (850 W)
  • Disco M.2 Western Digital Black SN750 NVMe.

¿Qué funciona bien?

Prácticamente todo lo que he probado:
– Radeon RX 580: 3 puertos DP, 1 puerto DVI y 1 puerto HDMI, salida a 3 pantallas simultáneamente
– Apagado, reinicio y reposo
– Sonido integrado y salida de sonido HDMI
– Puertos USB (2, 3 y 3.1)
– Activación de TRIM para discos SSD y M.2.
– Airdrop, Mensajes, Sidecar…

Continuar leyendo «macOS Big Sur en Z390 Aorus Elite con OpenCore»

AHCI en Big Sur: Generic AHCI Controller

Big Sur ha eliminado la clase AppleIntelPchSeriesAHCI en la extensión AppleAHCIPort.kext por lo que los controladores AHCI de la familia Intel han dejado de ser reconocidos como tales y se muestran como genéricos.

A algunos usuarios les disgusta ver que el controlador Intel de una determinada familia sale como genérico aunque se trata de un inconveniente puramente cosmético que no parece interferir con el rendimiento o el comportamiento de los controladores.

La solución encontrada, propuesta originalmente desde la web Dortania, consiste en utilizar la extensión AppleAHCIPort.kext de macOS Catalina modificada (CtlnaAHCIPort.kext) con los identificadores de cada familia de controlador Intel.
Para utilizar CtlnaAHCIPort se recomienda:

Continuar leyendo «AHCI en Big Sur: Generic AHCI Controller»

macOS Catalina en Z390 Aorus Elite con OpenCore

OpenCore como gestor de arranque en lugar de Clover en un PC con placa base Z390 Aorus Elite, procesador i3 9100 Coffee Lake, tarjeta gráfica RX 580 y macOS Catalina, con SMBIOS de iMacPro1,1, con la tarjeta gráfica integrada deshabilitada en BIOS y mapa de puertos USB específico para esta placa base.

Clover y OpenCore

Hoy disponemos de 2 gestores para arrancar macOS en PCs compatibles: Clover y OpenCore (OC en adelante). Clover es un proyecto maduro, iniciado en 2011 por SergeySlice, capaz de arrancar macOS, Windows y Linux en modo UEFI; actualmente parece ir por detrás de OC, proyecto reciente iniciado en 2019 por vit9696 y Download-Fritz entre otros, unidos bajo el nombre Acidanthera.

Continuar leyendo «macOS Catalina en Z390 Aorus Elite con OpenCore»

AMD RX 580 8GB en macOS

Tarjeta gráfica AMD RX 580 de 8GB en macOS High Sierra (desde 10.13.6), Mojave, Catalina y Big Sur en la placa Gigabyte Z390 Aorus Elite: funcionamiento excelente con aceleración gráfica (Metal) tal como sale de la caja, sin necesidad de controladores (kexts), con 1 inconveniente cosmético en el arranque del sistema operativo (se propone solución).

He colocado la tarjeta gráfica XFX AMD Radeon RX-580 P8DFD6 8GB Triple X Edition GDDR5, 256BIT, DVI+HDMI+3DP en una placa base Z390 Aorus Elite con micro i3-9100 Coffee Lake para poder instalar 10.14 Mojave, 10.15 Catalina y 11 Big Sur porque la tarjeta que he utilizado estos últimos años, Nvidia Geforce GTX 750 1GB, impedía pasar de 10.13.6 High Sierra ya que esta fue la última versión para la que Nvidia publicó los controladores web alternativos que eran necesarios para que la tarjeta funcionase bien con aceleración gráfica.

Continuar leyendo «AMD RX 580 8GB en macOS»