macOS High Sierra 10.13 en P55-USB3 (1)

Instalar macOS 10.13 High Sierra en la placa Gigabyte P55-USB3 usando UniBeast y MultiBeast de tonymacx86 y Clover como gestor de arranque. Activación de la app Mensajes.

La placa base Gigabyte P55-USB3 (y algunas otras de la misma marca con chipset P55 / H55) facilitaron el montaje de un hackintosh y la instalación de macOS desde la versión 10.6 Snow Leopard. He probado a instalar High Sierra en mi PC mediante UniBeast y MultiBeast de tonymacx86 y utilizando Clover como gestor de arranque.

Componentes del hackintosh

Son componentes con varios años de antigüedad pero su funcionamiento es bastante bueno con macOS 10.11 que es el sistema que he utilizado desde 2015.

Leer más

Abrir archivos JAR con doble clic en Windows 10

Crear archivos JAR desde línea de comandos. Archivos JAR ejecutables y no ejecutables. Ejecutar un archivo JAR desde línea de comandos. Configurar la asociación del tipo de archivo JAR para que se ejecute correctamente con doble clic en Windows. Acceder a imágenes y otros recursos almacenados en un archivo JAR

Comprimir y empaquetar ficheros en un archivo JAR no ejecutable

Comprimir y empaquetar ficheros en un archivo JAR:

jar -cf archivo.jar archivo1 archivo2 archivo3

Leer más

MP3Gain Express for Mac: normalizar volumen

Modificar volumen de pistas de audio MP3 con MP3Gain Express for Mac

En ocasiones deseamos cambiar el volumen base de una o varias canciones MP3. En el mundo Windows se ha usado desde hace años MP3Gain de Glen Sawyer, este programa cumple bien su función aunque lleva bastante tiempo sin actualizaciones. En el mundo Mac se utiliza MacMP3Gain de Bery Rinaldo que tiene inconvenientes derivados de su diseño como aplicación de tipo Applescript por lo que su funcionamiento es lento y no aprovecha bien las capacidades de los ordenadores actuales; también lleva bastante tiempo sin actualizar.

Recientemente Paul Kratt ha publicado una nueva aplicación llamada MP3Gain Express for Mac inspirada en MP3Gain para Windows.

Leer más

Agenda telefónica desde XML en C#

Leer una agenda telefónica desde un archivo XML que actúa como origen de los datos mostrándolos en un control DataGridView personalizado cuyos registros se pueden filtrar con sentencias SQL, en Visual Studio 2017 con C#

En este ejercicio se diseña una sencilla aplicación de agenda telefónica que lee los datos desde un archivo XML en lugar de hacerlo desde una base de datos. Las principales características del ejercicio son:

  1. Lectura desde un archivo XML, configurado como origen de los datos
  2. Mostrar los datos en un control DataGridView personalizado
  3. Filtrar registros utilizando sentencias SQL desde objetos DataView
  4. Actualizar el origen de los datos con los cambios realizados en DataGridView.

Leer más

Agenda telefónica desde XML en VB

Leer una agenda telefónica desde un archivo XML que actúa como origen de los datos, configurando columnas personalizadas de un control DataGrid, en Visual Studio 2017 con VB

En este ejercicio se diseña una sencilla agenda telefónica que lee los datos desde un archivo XML en lugar de hacerlo desde una base de datos. Las principales características del ejercicio son:

  1. Lectura desde un archivo XML, configurado como origen de los datos
  2. Mostrar los datos en un control DataGrid personalizado
  3. Mostrar registros utilizando filtros de búsqueda basados en sentencias SQL simples
  4. Creación de una clase propia de columna de DataGrid que sólo acepta números.

Leer más

JTextArea con texto multilínea en Java

JTextArea en Java para campos de texto con varias líneas en contraposición a JTextField que sólo admite 1 línea; añadir líneas desde JTextField a JTextArea y vaciar el campo de texto

JTextField es un componente que muestra una sola línea de texto, en cambio JTextArea muestra múltiples líneas de texto. Ambos componentes muestran todo el texto en el mismo formato (fuente, color…), sin embargo, es factible modificar esos parámetros en lugar de los que Java implementa por defecto.

Para crear un objeto JTextArea se pueden emplear varios constructores:

TextArea texto = new JTextArea(); //sin parametros
JTextArea texto = new JTextArea(10,40); //numero de filas y columnas
JTextArea texto = new JTextArea( "Texto dentro de JTextArea" ); //cadena de texto

Leer más

Acciones en Java con ActionListener

Ejecutar acciones sencillas al pulsar botones mediante la interface ActionListener: detectar la pulsación del botón como un evento de acción (ActionEvent) y llamar a la acción prevista con el método actionPerformed

Las aplicaciones han de responder a las acciones que realiza el usuario, por ejemplo: cerrar la ventana al pulsar un botón. Es necesario poder detectar las acciones de usuario y convertirlas en acciones de programa. Java dispone de varias formas de implementar este funcionamiento. En este ejercicio se mostrarán algunas de ellas. Todas se basan en el uso de Interfaces.

  • Las Interfaces son clases «prefabricadas» con propósitos definidos
  • Cada Interface contiene declaraciones de métodos (nombre del método, lista de argumentos y tipo de retorno) pero estos métodos no están implementados (carecen de cuerpo) y deben ser desarrollados
  • Todos los métodos de las Interfaces son public
  • Las Interfaces también pueden declarar constantes (public final static).

Leer más

JLabel con diseño personalizado en Java

Control JLabel en el que se configuran varios parámetros de diseño (alineación vertical y horizontal, color y tipo de borde y de letra) y se muestra texto con salto de línea utilizando código HTML

En este ejercicio se muestra una ventana muy simple que contiene:

  • 3 etiquetas en la parte superior, cada una con variaciones en su diseño
  • 1 botón conectado a una acción en la parte inferior
  • 2 etiquetas vacías a ambos lados del botón para contribuir a mantener la disposición (layout) de los elementos.

Leer más

Captura de pantalla o ventana activa en C#

Capturar la pantalla o la ventana activa usando la clase SendKeys sin recurrir a librerías externas en Visual Studio 2017 con C#

En este ejercicio se propone una manera relativamente sencilla para capturar tanto la pantalla completa como la ventana activa, copiarla al portapapeles y almacenarla en disco como JPG. Es la versión hecha en C# del ejercicio anterior hecho en Visual Basic. El proceso para hacer la captura es el siguiente:

Leer más