Si eres dev y te interesa el desarrollo de aplicaciones biométricas
con el SDK DigitalPersona, aquí te comparto unos enlaces que quizás
puedan ser de utilidad para tus proyectos:
En el mundo de la tecnología, los dispositivos USB, como las cámaras
web, han evolucionado rápidamente. Sin embargo, a veces necesitamos
conectar dispositivos más antiguos, lo cual puede presentar ciertos
desafíos, especialmente en sistemas Linux como Debian 12. Este artículo
te guiará a través del proceso de detección y configuración de
dispositivos USB antiguos, usando el ejemplo de una cámara web, y cómo
asegurarte de que funcione correctamente en tu sistema Debian 12.
1. Conectando el Dispositivo USB y Verificando su Detección
El primer paso es asegurarte de que Debian detecte el dispositivo USB
cuando lo conectas. Para ello, utilizaremos algunos comandos esenciales
que te ayudarán a saber si el dispositivo ha sido reconocido.
a) Usa el comando lsusb:
El comando lsusb te permitirá listar todos los dispositivos USB conectados al sistema. Abre la terminal y escribe:
lsusb
Esto mostrará una lista de todos los dispositivos USB conectados. Si
tu cámara web es reconocida, deberías ver algo que mencione el
fabricante o el tipo de dispositivo, por ejemplo:
Bus 001 Device 002: ID 046d:0825 Logitech, Inc. Webcam C270
Si no ves tu dispositivo en la lista, prueba cambiar de puerto USB o verificar el cable.
b) Verifica dispositivos de video (/dev/video):
Para cámaras web, el sistema suele asignar un dispositivo de video.
Usa el siguiente comando para verificar si tu cámara fue detectada como
un dispositivo de video:
ls /dev/video*
Si el dispositivo fue detectado correctamente, verás algo como /dev/video0. Si no aparece, puede ser un indicador de que el sistema no ha cargado el controlador correcto.
2. Instalando Herramientas para Video y Controladores de Cámaras
En la mayoría de los casos, las cámaras web modernas y antiguas funcionan con el subsistema V4L2 (Video for Linux 2). Si no tienes las herramientas necesarias instaladas, puedes hacerlo fácilmente:
a) Instalar V4L2 (Video for Linux 2):
Para asegurarte de que tu sistema pueda manejar correctamente los dispositivos de video, instala las utilidades de V4L2:
sudo apt install v4l-utils
Este paquete incluye herramientas útiles para controlar dispositivos
de video. Una vez instalado, puedes listar los dispositivos de video
detectados usando:
v4l2-ctl –list-devices
Si tu cámara web aparece en la lista, el sistema ya la ha detectado correctamente.
b) Instalar controladores para cámaras antiguas:
Algunas cámaras USB más antiguas pueden no ser compatibles con el controlador genérico de Linux, uvcvideo, que gestiona la mayoría de las cámaras modernas. Verifica si el módulo uvcvideo está cargado:
lsmod | grep uvcvideo
Si no aparece, puedes cargarlo manualmente:
sudo modprobe uvcvideo
Si tu cámara es muy antigua y no es compatible con uvcvideo,
podrías necesitar buscar controladores específicos para Linux.
Investiga el modelo de tu cámara y busca controladores o soluciones en
foros de la comunidad.
3. Solucionando Problemas de Detección
Si después de los pasos anteriores la cámara sigue sin ser reconocida, hay algunas cosas que puedes intentar:
a) Ver mensajes de error en el sistema (dmesg):
Cuando conectas un dispositivo USB, el kernel de Linux genera
mensajes sobre lo que está ocurriendo con el hardware. Puedes revisar
estos mensajes utilizando:
dmesg | grep -i usb
Esto mostrará cualquier mensaje relevante relacionado con
dispositivos USB. Si ves mensajes de error o advertencias, podrías tener
una pista sobre lo que está fallando.
b) Actualizar el sistema y controladores:
En algunas ocasiones, los problemas de compatibilidad se deben a
controladores o kernel desactualizados. Actualiza tu sistema para
asegurarte de que tienes las últimas versiones del software:
sudo apt update && sudo apt upgrade
4. Probar la Cámara con Software de Video
Si todo ha ido bien hasta este punto, deberías poder probar la cámara web. Una manera fácil de hacerlo es con el software Cheese, que está diseñado para tomar fotos y grabar video desde cámaras conectadas:
a) Instalar Cheese:
sudo apt install cheese
Luego de instalar, abre la aplicación Cheese desde el menú de aplicaciones o ejecuta:
cheese
Si Cheese detecta la cámara, deberías ver el video en pantalla. Si la
cámara no aparece, podrías necesitar seguir investigando los
controladores o probar con otro software, como VLC.
b) Usar VLC para probar el dispositivo de video:
Otra opción es probar el dispositivo de video con VLC. Abre VLC y
selecciona «Dispositivo de captura» desde el menú. O bien, puedes
ejecutarlo desde la terminal directamente:
vlc v4l2:///dev/video0
5. Conclusión
Conectar dispositivos USB antiguos, como cámaras web, a sistemas
modernos como Debian 12 puede ser un desafío, pero siguiendo estos pasos
es posible hacerlo funcionar. Verifica que el dispositivo esté
correctamente detectado usando herramientas como lsusb y v4l2-ctl,
asegúrate de que los controladores estén instalados y prueba el
funcionamiento con software de video como Cheese o VLC. Si el
dispositivo aún no es reconocido, considera buscar controladores
adicionales o soporte en línea para tu modelo específico de cámara.
¡Espero que esta guía te haya sido útil para revivir tu cámara web antigua en Debian 12!
En el mundo de la administración de sistemas Linux, las herramientas
de monitoreo de recursos juegan un papel crucial para supervisar el
rendimiento del hardware y la eficiencia del sistema. Dos de las más
populares son btop y htop. Ambas
ofrecen funcionalidades avanzadas para ver el uso del CPU, la memoria y
los procesos activos, pero difieren en diseño, funcionalidad y enfoque. A
continuación, comparamos las ventajas y desventajas de cada una.
htop: El clásico visualizador de procesos
htop es una herramienta de monitoreo interactiva que reemplaza al comando básico top.
Se lanzó en 2004 y se convirtió rápidamente en una herramienta
preferida por su interfaz más accesible y sus opciones de
personalización. Aquí algunos puntos clave:
Pros de htop:
Interfaz amigable: htop mejora la experiencia de top al ofrecer una interfaz colorida y fácil de entender con gráficos para CPU y memoria.
Navegación interactiva: Puedes desplazarte fácilmente entre los procesos y aplicar filtros para buscar tareas específicas.
Acciones rápidas: Permite matar, renombrar o priorizar procesos directamente desde la interfaz, sin necesidad de comandos complicados.
Ligero y eficiente: Consume pocos recursos, lo que
lo hace ideal para sistemas con recursos limitados o para
administradores que buscan un monitor ligero.
Contras de htop:
Limitaciones en la personalización: Aunque htop
tiene varias opciones de configuración, carece de la flexibilidad que
otras herramientas modernas, como btop, ofrecen en términos de
visualización y uso de datos.
Soporte gráfico básico: Aunque su interfaz es clara, htop tiene menos opciones gráficas avanzadas comparado con herramientas más recientes.
btop: La evolución en la monitorización
btop es una herramienta más reciente basada en bashtop,
diseñada para ser visualmente atractiva y extremadamente funcional. Es
conocida por su interfaz gráfica avanzada y la posibilidad de usar el
ratón, algo inusual en este tipo de herramientas.
Pros de btop:
Interfaz avanzada: Con gráficos detallados y
personalizables, btop ofrece una experiencia visualmente mucho más rica
que htop. Incluye estadísticas detalladas del uso de CPU, memoria, red y
almacenamiento.
Soporte para ratón: A diferencia de htop, puedes
navegar completamente por la interfaz de btop usando el ratón, lo que
hace la interacción más sencilla y rápida.
Personalización completa: btop permite una
personalización profunda del aspecto y la disposición de los gráficos y
estadísticas, adaptándose a las necesidades del usuario.
Integración con otras herramientas: Ofrece información más detallada sobre la red y los discos, integrando de manera eficiente estas métricas en la interfaz.
Mejor gestión de recursos: Aunque btop es más
gráfico que htop, está bien optimizado, y su consumo de recursos es
competitivo, a pesar de la mayor cantidad de información que muestra.
Contras de btop:
Complejidad inicial: Su riqueza de funciones puede
resultar abrumadora para quienes buscan algo simple o están
acostumbrados a htop. La curva de aprendizaje es un poco más
pronunciada.
Mayor consumo de recursos: Aunque está optimizado,
su interfaz más compleja y sus gráficos avanzados pueden usar más
memoria que htop, lo que podría ser una limitante en sistemas con pocos
recursos.
¿Cuál elegir?
htop es ideal para administradores de sistemas que
buscan una herramienta ligera, rápida de usar y fácil de entender, con
un enfoque en procesos y rendimiento básico.
btop es más adecuado para aquellos que desean una
experiencia visual mejorada, mayor personalización y datos más completos
sobre la red, el almacenamiento y otros recursos del sistema.
En resumen, si estás buscando una herramienta tradicional, ligera y confiable, htop
sigue siendo una excelente opción. Sin embargo, si prefieres una
interfaz moderna, altamente gráfica y con mayor capacidad de
personalización, btop es una alternativa más avanzada y visualmente atractiva.
Conclusión
Ambas herramientas son poderosas a su manera. La elección entre btop y htop
dependerá de tus necesidades específicas y del entorno en el que estés
trabajando. Para usuarios más experimentados y entornos que requieren
una monitorización visual detallada, btop es una gran opción. Por otro
lado, si prefieres una solución clásica y minimalista, htop cumplirá
todas tus expectativas sin consumir demasiados recursos.
En el mundo del desarrollo, las terminales son herramientas
imprescindibles, pero no todas ofrecen la flexibilidad y personalización
que los desarrolladores modernos requieren. Tabby es
una terminal de código abierto que ha ganado popularidad por ser
altamente personalizable, multiplataforma y fácil de usar. En este
artículo, exploraremos qué es Tabby, sus principales características, y
por qué es una excelente opción para desarrolladores que buscan una
experiencia de terminal avanzada.
¿Qué es Tabby?
Tabby es una terminal moderna y multiplataforma que está disponible para Windows, macOS y Linux.
Su principal atractivo radica en su capacidad de personalización y su
diseño amigable, que combina una interfaz visual atractiva con
funcionalidades avanzadas. Al ser de código abierto, Tabby ofrece una
plataforma transparente y flexible para aquellos que quieran adaptar su
terminal a sus necesidades específicas.
El proyecto fue diseñado con la idea de mejorar la experiencia del
usuario, permitiendo a los desarrolladores trabajar de manera más
eficiente y productiva. A diferencia de muchas terminales clásicas que
pueden ser intimidantes para los nuevos usuarios, Tabby ofrece una
interfaz intuitiva y rica en características.
Características Clave de Tabby
Multiplataforma: Una de las principales ventajas de Tabby es que está disponible para todos los sistemas operativos principales: Windows, macOS y Linux. Esto la convierte en una opción ideal para desarrolladores que necesitan trabajar en varios entornos sin perder consistencia.
Altamente Personalizable: Tabby permite a los
usuarios ajustar su entorno de terminal con temas, atajos de teclado
personalizados, y la posibilidad de dividir ventanas. Los
desarrolladores pueden personalizar cada aspecto visual de la terminal,
desde los colores hasta la disposición de las pestañas y paneles.
Soporte para SSH y Serial: Tabby incluye soporte integrado para conexiones SSH
y seriales, lo que la hace ideal para la administración remota de
servidores o dispositivos. Esto elimina la necesidad de instalar
herramientas adicionales o abrir otras ventanas para estas tareas.
Interfaz de Pestañas y Paneles: Tabby permite abrir
varias pestañas y dividir la ventana en paneles, lo que es perfecto
para multitareas. Cada pestaña puede ejecutar diferentes sesiones o
comandos, permitiendo una mayor eficiencia al trabajar con múltiples
proyectos o entornos de desarrollo al mismo tiempo.
Extensiones: Al ser una terminal moderna, Tabby soporta la instalación de extensiones
que agregan más funcionalidades. Esto incluye temas adicionales,
soporte para más protocolos y funcionalidades especializadas, según las
necesidades del usuario.
Integración con SSH y Múltiples Shells: Además de su personalización, Tabby permite integrarse fácilmente con shells como Bash, Zsh, PowerShell, y más. También permite conectarse a servidores remotos utilizando SSH, lo cual es fundamental para administradores de sistemas y desarrolladores que gestionan servidores a distancia.
Usos y Aplicaciones de Tabby
Tabby es una excelente opción para diversos tipos de usuarios, desde
desarrolladores de software hasta administradores de sistemas. Aquí
algunos escenarios donde destaca su utilidad:
Desarrollo de Software: Los desarrolladores que
trabajan en proyectos multiplataforma o colaboran con equipos que usan
diferentes sistemas operativos encontrarán en Tabby una herramienta
unificadora. Al poder personalizar la terminal para cada proyecto o
lenguaje, Tabby facilita el trabajo en diferentes entornos sin tener que
cambiar de herramienta.
Administración de Sistemas: Para los administradores que gestionan servidores remotos, el soporte integrado para SSH
y la posibilidad de dividir la pantalla en varias sesiones simultáneas
permite monitorear y administrar múltiples sistemas a la vez.
Usuarios Avanzados: Los usuarios avanzados que
buscan maximizar la eficiencia en su flujo de trabajo disfrutarán de la
capacidad de Tabby de manejar scripts complejos, automatización de
tareas, y soporte para múltiples sesiones.
Comparación con Otras Terminales
En comparación con otras terminales populares como Hyper o Terminator,
Tabby destaca por su equilibrio entre una interfaz amigable y sus
funcionalidades avanzadas. Si bien otras terminales pueden ofrecer un
mayor enfoque en diseño o rendimiento en áreas específicas, Tabby brilla
por ser una opción sólida, equilibrada y con un amplio abanico de
personalización.
Conclusión
Tabby se ha consolidado como una excelente opción
para desarrolladores y administradores de sistemas que buscan una
terminal moderna, potente y personalizable. Su compatibilidad con
múltiples sistemas operativos, junto con su soporte para SSH y
extensiones, la convierte en una herramienta versátil que puede
adaptarse a casi cualquier flujo de trabajo. Ya sea que estés buscando
una terminal que se vea bien o que puedas modificar según tus
necesidades, Tabby ofrece una experiencia completa y eficiente.
Si eres un desarrollador o administrador de sistemas que busca una terminal poderosa, definitivamente vale la pena probar Tabby. Puedes descargarla directamente desde su sitio web aquí.
MBR vs. GPT, ¿cuál elegir? Puede que te preguntes lo mismo cuando
configures un Sistema Operativo en tu PC por primera vez. La selección
del esquema de particiones depende totalmente del tipo de Sistema
Operativo y del estado del hardware de tu equipo.
¿Cuál es la diferencia entre la partición MBR y GPT?
Aquí tratamos de responder a esa pregunta, a la vez que ofrecemos una
reseña que describe las características de ambos. Master Boot Record
(MBR) y Tabla de partición GUID (GPT) son dos tipos de esquemas de
partición para los discos duros, mientras que el segundo es más
avanzado.
Aunque estos dos tienen la misma función, cada uno tiene su propia
estructura de arranque, velocidad, capacidad, flexibilidad y requisitos.
Este artículo ofrece una comprensión más amplia de MBR vs. GPT y los pros y los contras de los métodos de inicialización, conversión y recuperación de MBR/GPT.
MBR vs. GPT: ¿Cuál es la diferencia?
GPT, abreviatura de GUID Partition Table (tabla de particiones) es el
nuevo estándar para la disposición de la tabla de particiones en un
disco duro físico. El MBR, abreviatura de Master Boot Record, es el
estándar más antiguo con la misma funcionalidad. Al particionar un disco
duro o utilizar una herramienta de partición de disco, puedes elegir
uno de estos dos métodos diferentes para la partición.
En comparación, el MBR es más antiguo que el GPT. El MBR funciona
mejor con los sistemas anteriores; en cuanto al GPT, es más compatible
con los sistemas más avanzados y nuevos.
La ventaja de GPT es el enorme tamaño de la partición, el número de particiones y la capacidad de recuperación.
Además, las computadoras que funcionan con UEFI sólo pueden soportar
GPT. Por no mencionar que Microsoft ha confirmado recientemente que el
sistema Windows 11 sólo será compatible con GPT y UEFI. Por tanto, el
disco GPT es uno de los elementos esenciales de Windows 11.
Aspectos más ventajosos de la GPT:
Tanto el MBR como el GPT pueden ser primarios o dinámicos. Sin
embargo, un disco GPT ofrece más capacidad, compatibilidad con
dispositivos modernos y mejor rendimiento. Estas son algunas de las
ventajas de GPT en comparación con MBR:
MBR (Registro de arranque maestro)
GTP (Tabla de Partición GUID)
Capacidad máxima de la partición
2 TB
9,4 ZB (cada ZB es 1.000 millones de TB)
Número máximo de particiones
hasta 4 particiones primarias (o tres particiones primarias, una partición extendida y unidades lógicas ilimitadas)
128 particiones primarias
Soporte de la Interfaz del Firmware
BIOS
UEFI
Compatibilidad del Sistema Operativo
Windows 7 e incluso sistemas más antiguos como Windows 95/98, Windows XP 32 bits, Windows 2000, Windows 2003 32 bits
Sistemas más nuevos como Windows 8, 8.1 de 64 bits, 10, 11.
Velocidad
Más lento
Más rápido
Tecnología más avanzada
Funciona con tecnología más avanzada
Funciona con tecnología y hardware menos avanzados
Capacidad de MBR vs. GPT: MBR sólo puede manejar 2
TB de espacio en el disco duro, mientras que GPT puede soportar discos
de más de 2 TB (ayuda a los volúmenes de hasta 18 exabytes de tamaño).
Particiones MBR vs. GPT: El estilo de partición de
disco MBR admite volúmenes de hasta 2 TB y cuatro particiones primarias
por disco (o tres particiones primarias, una partición extendida y
unidades lógicas ilimitadas). Pero la GPT no tiene límite de
particiones. Con GPT, los sistemas operativos Windows pueden tener hasta
128 particiones en una unidad GPT sin necesidad de crear una partición
extendida.
Recuperación MBR vs. GPT: Los discos con
particiones GPT tienen un primario y una copia de seguridad redundantes.
GPT mantiene los datos en varias áreas de la unidad una copia como
copia de seguridad secundaria Tabla GPT para la recuperación. Al mismo
tiempo, la desventaja del MBR es que almacena los datos en un solo
lugar, sin hacer copias de seguridad, lo que aumenta la posibilidad de
que se corrompan y de que el sistema falle.
Confiabilidad de MBR vs. GPT: El disco GPT
proporciona más fiabilidad gracias a la replicación y a la protección de
la tabla de particiones mediante la comprobación cíclica de redundancia
(CRC). A diferencia de los discos con partición MBR, los datos críticos
para el funcionamiento de la plataforma se encuentran en las
particiones en lugar de en los sectores no particionados u ocultos.
Tecnología y compatibilidad MBR vs. GPT: GPT puede utilizar tecnologías de dispositivos más avanzadas, mientras que MBR es para sistemas menos evolucionados.
Interfaz MBR vs. GPT: Normalmente, MBR y BIOS (MBR +
BIOS) y GPT y UEFI (GPT + UEFI) funcionan juntos. Este emparejamiento
es obligatorio para algunos sistemas operativos (por ejemplo, Windows),
mientras que es opcional para otros (por ejemplo, Linux).
Velocidad MBR vs. GPT: Por último, los procesos de arranque GPT y UEFI suelen ser más rápidos que los GPT.
MBR vs. GPT: ¿Cuál es mejor para tus necesidades?
Simplemente, la GPT es la mejor opción en muchos aspectos. Aunque el
mundo avanza hacia tecnologías más avanzadas, la GPT, con la última
compatibilidad tecnológica, supera al MBR. Si tu disco es de más de 2
TB, o si has decidido configurar un sistema operativo más reciente
como Windows 11, Definitivamente, elige el GPT.
Con una segunda copia de seguridad y una mejor administración de las
particiones, esta partición es más confiable y resistente a la
corrupción.
Tener un arranque rápido es otra ventaja de la GPT. Los SSD funcionan
de forma diferente a los HDD y son capaces de arrancar rápidamente.
Aunque tanto GPT como MBR funcionan bien, para tener un arranque rápido
de Windows, GPT es la mejor opción una vez más. Y porque requieres
una Sistema basado en UEFIm para un arranque más rápido, y UEFI sólo
funciona con el particionamiento GPT. Así que, una vez más, GPT parece
la opción más lógica cuando se trata de MBR o GPT para SSD.
Dicho esto, todavía hay ocasiones en las que no tienes más remedio
que optar por un MBR. Como si tuvieras un sistema operativo antiguo. O
cuando el hardware de tu vieja computadora no puede ejecutar una versión
más reciente de Windows. Sin embargo, hoy en día, los usuarios
prefieren trabajar con sistemas de alta calidad, ya que los SSD son más
compatibles con el último Windows. Así que, al final, todo depende de
tus preferencias, de la antigüedad de tu hardware y de que trabajes con
qué tipo de sistema operativo.
MBR vs. GPT: Cómo inicializar tu disco a MBR/GPT
Inicializar un MBR o GPT para SSD o HDD es un proceso sencillo que se
puede administrar con la «Administración de discos» de Windows y el
software disponible. Los pasos para inicializar el MBR/GPT con la
Administración de discos son los siguientes:
Paso 1: Pulsa sobre el acceso directo Windows+R para abrir «Ejecutar.»
Paso 2: Tipo “msc” para iniciar la gestión de discos.
Paso 3: A continuación, se te pedirá que inicialices el disco duro recién añadido. Entonces, puedes elegir entre MBR o GPT.
Cómo convertir GPT a MBR o MBR a GPT
Para convertir MBR en GPT o GPT en MBR, hay varias opciones
disponibles. Puedes conocer la guía de conversión completa haciendo clic
en los siguientes enlaces:
Consejos adicionales: Cómo recuperar datos de una partición MBR o GPT perdida
Wondershare Recoverit es uno de los programas más fiables disponibles
para recuperar particiones GPT y MBR en caso de pérdida de datos o de
diversos problemas relacionados. Puedes recuperar tus datos importantes
con este software profesional de recuperación de particiones en tres
sencillos pasos (Selecciona la partición perdida > Escanear > Recuperar).
Es muy importante colocar los valores de los atributos entre comillas
dobles. En caso de no colocar las comillas dobles, el procesador le
indicará que hubo un error.
ESTRUCTURA DE WEBREPORT-ML
Un reporte escrito en WEBREPORT-ML comienza y termina con la marca reporte, indicando que se trata de un reporte a realizar en el lenguaje.
<reporte>
Cuerpo del documento
</reporte>
Dentro del elemento reporte se encentran varios elementos primarios, tales como:
descripcion
salida
conexion
consulta
titulo
cabecera
detalles
pie-de-pagina
Ejemplo:
<?xml version=»1.0″ encoding =»iso-8859-1″?>
<reporte>
<conexion/>
<consulta>
Contenido de la consulta SQL
</consulta>
<margenes />
<salida/>
<titulo>
Reporte de Productos
</titulo>
<descripcion>
Contenido de la descripcion
</descripcion>
<cabecera>
<fila>
<campo> </campo>
</fila>
</cabecera>
<detalles>
<fila>
<campo/>
</fila>
</detalles>
<pie-de-pagina>
<fila>
<campo> </campo>
</fila>
</pie-de-pagina>
</reporte>
DESCRIPCIÓN DE LOS ELEMENTOS DEL LENGUAJE REPORT-ML
Elemento descripcion
El elemento descripcion se utiliza para colocar una información descriptiva acerca de los que se trata el reporte. Ejemplo:
<descripcion>
Este es un reporte para los empleados de la compañía
</descripcion>
Elemento margenes
El elemento margenes se utiliza para especificar cada uno de los márgenes para el documento del reporte y consta de los siguientes atributos:
Atributo margen-superior
Atributo margen-inferior
Atributo margen-izquierdo
Atributo margen-derecho
Elemento salida
El elemento salida se utiliza para especificar el formato en
el que se desea que se muestre el reporte, así como la ruta en donde se
guardará el reporte. Contiene los siguientes atributos:
Atributo formato
Atributo archivo
*Atributo formato
El atributo formato especifica el formato en el que se desea que se imprima el reporte. Los tipos de formatos disponibles en WEBREPORT-ML son:
Html
PDF
DocBook
*Atributo archivo
El atributo archivo especifica la ruta en donde se desea
guardar el reporte. Es importante que el usuario especifique una ruta
en donde se guardará su reporte para que al momento de terminar de
exportar los datos al formato requerido, sabrá que el reporte se alojará
precisamente en el lugar que él indicó.
Elemento conexion
El elemento conexion se utiliza para especificar los esquemas de conexión con la base de datos. Contiene los siguientes atributos:
*Atributo conector
El atributo conector especifica el motor de la base de datos a utilizar.
Ejemplo:
conector=»sun.jdbc.odbc.JdbcOdbcDriver»
*Atributo url
El atributo url la ruta de la base de datos de la siguiente manera:
jdbc:odbc:Base_de_Datos
Elemento consulta
El elemento consulta especifica el contenido de la consulta SQLque se va a utilizar para generar nuestro reporte.
Ejemplo:
<consulta>
select * from tabla
</consulta>
Elemento titulo
El elemento titulo se utiliza para el título del reporte.
Elemento cabecera
El elemento cabecera se utiliza para los títulos de cada campo del reporte. Contiene un elemento anidado fila el cual hace referencia a las filas deseadas por el usuario; ésta a su vez contiene un elemento anidado campo, que especifica el número de campos (columnas) que el usuario desea para esa fila.
Ejemplo:
<cabecera>
<fila>
<campo tipo=”texto”>
Nombre
</campo>
<campo tipo=”texto”>
Apellido
</campo>
</fila>
</cabecera>
Para el ejemplo anterior se mostrará, en una misma fila, varios
campos con los títulos para el reporte y quedaría de la siguiente forma:
Nombre
Apellido
Elemento detalles
El elemento detalles constituye uno de los elemento más
importantes del reporte, pues es ahí en donde se especifican cada uno de
los campos de la base de datos que se mostraran en el reporte, así
como también se realizan las fórmulas que se desean hacer para el
reporte. Las fórmulas deben codificarse en el lenguaje Java Script.
Existen dos tipos de campos diferentes a los anteriormente descritos,
que se utilizan en el detalle:
El tipo de campo bd
El tipo de campo formula
El tipo de campo bd, se utiliza
para especificar cada uno de los campos de la base de datos que el
usuario desea mostrar en el reporte. Para este tipo de campo, existe un
atributo llamado nombre, el cual especifica
el nombre del campo de la base de datos a extraer para el reporte. Cada
vez que el usuario especifique el tipo de campo bddebe especificar en el atributo nombre el nombre del campo de la base de datos.
Ejemplo:
<detalles>
<fila>
<campo tipo=”bd” nombre=”cedula”/>
<campo tipo=”bd” nombre=”nombre”/>
<campo tipo=”bd” nombre=”apellido”/>
</fila>
</detalles>
El tipo de campo formula,se utiliza para las distintas fórmulas que se desean hacer para el reporte.
Ejemplo:
<detalles>
<fila>
<campo tipo=”formula”>
value = parseInt(query.get(«CANTIDAD»)) * parseInt(query.get(«PRECIO»));
</campo>
</fila>
</detalles>
*Atributo formato
El atributo formato especifica el formato numérico a utilizarse. Este atributo hace parte del elemento anidado campo y se utiliza en caso de que se utilicen números y se les quiera aplicar algún tipo de formato.
Para el ejemplo anterior, se mostrarán todos los registros del campo Valor, correspondiente
al valor unitario de X producto y se le aplica el tipo de formato
$#.##0,00 así como el estilo de letra negrita. El resultado de uno de
los registros del campo valor, quedaría de la siguiente forma: $ 2,052,000.00
Elemento pie-de-pagina
El elemento pie-de-pagina se utiliza para colocar algún
contenido al final del reporte, como funciones para hallar el total de
un determinado campo de la base de datos, ó el gran total de algún total
hallado por medio de las fórmulas descritas en el detalles. Contiene un
elemento anidado fila el cual hace referencia a las filas deseadas por el usuario; ésta a su vez contiene un elemento anidado campo, que especifica el número de campos (columnas) que el usuario desea para esa fila.
Los tipos de campo utilizados en el pie-de-pagina son:
text
total
El campo total se utiliza única y exclusivamente en el
elemento pie-de-pagina. Este tipo de campo especifica la función a
llevar a cabo para hallar el total de un determinado campo de la base de
datos ó para hallar un resultado total de cada uno de los resultados
hallados en la fórmula escrita en el detalle.
También existe un atributo que va de la mano con el tipo de campo total y es el atributo funcion, el cual se explica a continuación.
*Atributo funcion
El atributo funcion especifica la función a utilizarse en el pie-de-pagina y depende del tipo de campo total. Los tipos de funciones disponibles para la el atributo funcion del pie-de-pagina son las siguientes:
Si el usuario va a utilizar en el reporte caracteres propios del
alfabeto español, tales como la letra ñ, tildes, etc, deberá incluir el
siguiente atributo al principio de la creación del reporte:
Para la instalar WEBREPORT-ML, el usuario deberá copiar la carpeta reportml que se encuentra el CD de instalación en el directorio Coligo Fuente, al disco duro y después crear un nuevo Context en el servidor de Apache TOMCAT, el alias debe ser /reportml y el documento base debe ser c:/reportml.
Para desinstalarlo, solo se elimina el Context del servidor y se borra el directorio de la raíz de C: .
Cabe recordar que dentro del directorio reportml se encuentra el directorio waren el cual se encuentra el archivo WebReport.war. Para instalar este archivo, hay dos opciones:
OPCION 1:
1) Copiar el fichero war a TOMCAT / webapps
2) Arrancar el servidor
3) La instalación es automática y crea un nuevo directorio con los contenidos del war.
OPCION 2:
1) Crear la aplicación Web descomprimida en webapps siguiendo el formato estándar.
2) Añadir en TOMCAT / conf / server.xml un nuevo contexto que apunte a nuestro directorio:
NOTA: En su momento este proyecto fue diseñado y
desarrollado bajo windows, sin embargo, puede funcionar con sistemas
operativos linux y macOs. Puedes acceder a todo el proyecto a través de
su repositorio oficial en github: https://github.com/rrcyber/WebReportML/
Los discos duros modernos pueden almacenar grandes cantidades de información. Para utilizar eficazmente todo este espacio, puedes particionar las unidades de disco en áreas de almacenamiento separadas. Estas áreas de almacenamiento separadas le permiten organizar sus datos, mejorar el rendimiento del sistema e instalar y utilizar muchos sistemas operativos.
Moviendo espacio entre particiones
Cómo administrar particiones con GParted
Gracias a las capturas de pantalla que te ayudarán a utilizar eficazmente el disco duro. Comenzarás con tareas sencillas que te ayudarán a identificar unidades y particiones. A continuación, avanza hacia tareas que cubren los aspectos básicos de cómo aumentar, reducir, mover y copiar particiones sin pérdida de datos. Terminará con tareas avanzadas que utilizan los conceptos básicos para prepararse para nuevos sistemas operativos, migrar espacio entre particiones y compartir datos entre Windows, Linux y Mac OS X.
Siguiendo las tareas, desde las más básicas hasta las más avanzadas, este tutorial te proporcionará el conocimiento y las herramientas para Gestionar particiones con GParted.
Mover espacio entre particiones
Puede ser frustrante quedarse sin espacio libre en una partición (por ejemplo, C:) cuando otra partición (por ejemplo, D:) tiene mucho. En esta receta cubrimos los pasos para migrar espacio libre de una partición a otra.
Preparación
Antes de realizar esta tarea, te recomendamos encarecidamente que hagas una copia de seguridad de tus datos. Esta tarea implica mover el inicio del límite de una partición, lo cual es una actividad de alto riesgo.
Cómo hacerlo...
Selecciona la partición con mucho espacio libre.
Disposición original del disco con una partición primaria completa a la izquierda seguida de una partición extendida que contiene una partición lógica con espacio libre.
Elige la opción de menú Partición | Redimensionar/Mover y aparecerá una ventana Redimensionar/Mover.
Haz clic en la parte izquierda de la partición y arrástrela hacia la derecha para que el espacio libre se reduzca a la mitad.
Ventana Redimensionar/Mover con el espacio no asignado a la izquierda seguido de la partición comprimida
Haz clic en Redimensionar/Mover para poner en cola la operación.
Pulsa Aceptar para aceptar la advertencia de mover partición.
Ventana de advertencia indicando que mover una partición puede hacer que el sistema operativo no arranque
Selecciona la partición extendida.
Disposición del disco mostrando una partición primaria completa seguida de una partición extendida que contiene espacio libre a la izquierda de una partición lógica
Elige la opción de menú Partición | Redimensionar/Mover y se mostrará una ventana Redimensionar/Mover.
Haz clic en el lado izquierdo de la partición y arrástrela hacia la derecha para que no quede espacio entre el límite exterior de la partición extendida y el límite interior de la partición lógica.
Ventana Redimensionar/Mover con espacio libre a la izquierda de la partición extendida y la partición lógica encajando perfectamente dentro de la partición extendida.
Haz clic en Redimensionar/Mover para poner en cola la operación.
Selecciona la partición que necesita más espacio libre:
Disposición del disco con una partición primaria completa a la izquierda, seguida de espacio sin asignar seguido de una partición extendida que contiene totalmente una partición lógica
Elige la opción de menú Partición | Redimensionar/Mover y se mostrará una ventana Redimensionar/Mover.
Haz clic en el lado derecho de la partición y arrástrela lo más a la derecha posible:
Ventana Redimensionar/Mover con la partición ocupando todo el espacio
Haz clic en Redimensionar/Mover para poner en cola la operación:
Disposición del disco con una partición primaria que ya no está llena a la izquierda, seguida de una cantidad muy pequeña de espacio sin asignar seguida de una partición extendida que contiene completamente una partición lógica
Observa el espacio sin asignar entre sda1 y sda2. Este espacio, que puede ser de hasta 8 MiB, ocurre debido a tener particiones alineadas por cilindros y por MiB en el mismo dispositivo de disco. En este ejemplo, la partición sda1 se creó con alineación de cilindros para demostrar este hueco potencial.
Elige la opción de menú Editar | Aplicar todas las operaciones para aplicar las operaciones en cola, al disco.
Haz clic en Aplicar para aplicar las operaciones al disco.
Aplicando
Cómo funciona..
Para añadir espacio a una partición, debe haber espacio sin asignar inmediatamente adyacente a la partición. Para liberar este espacio, utilizamos muchas de las recetas tratadas anteriormente.
En primer lugar, hicimos que el espacio no asignado estuviera disponible reduciendo la partición lógica en la que había espacio libre. Como el espacio libre procedía de una partición lógica dentro de una partición extendida, y necesitábamos añadir el espacio a una partición primaria, tuvimos que editar tres particiones para lograr el objetivo deseado.
Aún hay más...
Como se mencionó en recetas anteriores, si redimensiona o mueve una partición que contiene un sistema de archivos NTFS, debe reiniciar Windows dos veces para permitir que Windows realice comprobaciones de consistencia del sistema de archivos.
Aumentar o mover una partición
Para crecer o mover una partición, debe haber espacio sin asignar disponible adyacente a la partición:
Cuando se amplía una partición lógica, el espacio no asignado debe estar dentro de la partición extendida.
Cuando se amplía una partición primaria, el espacio no asignado no debe estar dentro de la partición extendida.
Puede mover el espacio no asignado dentro o fuera de una partición extendida redimensionando los límites de la partición extendida.
Hace un tiempo desarrollé un proyecto con Java y mySQL, el cual se
basa en el registro y autenticación de usuarios a través del lector de
huellas DigitalPersona 4500.
El proyecto está diseñado y desarrollado con Java, puede ser abierto a
través de netbeans o eclipse. Funciona tanto en Windows como en Linux.
El motor de base de datos es mySQL y utiliza el SDK de DigitalPersona.
Me tomé la tarea de escribir 3 scripts para mejorar el proceso de actualización automática de un servidor con Linux Debian 11.
Cada uno de los script tiene la estructura similar a los demás, es por esa razón que te voy a explicar:
El script llamado «actualiza-servidor3.sh» realiza las siguientes actividades:
Actualiza la lista de paquetes existentes en los repositorios de Debian 11.
Actualiza los paquetes instalados a las últimas versiones disponibles.
Elimina paquetes obsoletos y temporales.
Comprueba si se requiere un reinicio del sistema, y en caso afirmativo, reinicia el servidor.
El script llamado «actualiza-servidor2.sh» realiza los mismos pasos que el anterior, pero también incluye algunas mejoras:
Define variables globales para el archivo de registro ($LOGFILE) y la dirección de correo electrónico del destinatario ($EMAIL).
Añade la fecha y la hora al archivo de registro antes de cada actualización.
Redirige la salida de los comandos al archivo de registro (>> $LOGFILE 2>&1), para que se registren cualquier error o advertencia.
Envía un correo electrónico de confirmación después de cada actualización.
Asegúrate de que el archivo tiene permisos de ejecución (chmod +x actualiza-servidor.sh).
El script llamado «actualiza-servidor1.sh» realiza los mismos pasos
que el anterior, pero sin incluir la opción de enviar un correo
electrónico de confirmación.
Hace un par de años escribí un pequeño código en shell-script, cuya
única finalidad ha sido la de detectar peticiones y conexiones de
direcciones ip externas e internas en la red de una empresa, hacia un
servidor.
Este servidor pide como único requisito tener sistema operativo Linux (aún no se ha probado en Windows Server).
El script está publicado en github y se distribuye bajo licencia GNU General Public License v3.0.
Una bomba fork es una forma de ataque del tipo
denegación de servicio sobre un computador implementando una operación
fork o alguna otra funcionalidad equivalente mediante la cual un proceso
es capaz de autorreplicarse. La bomba fork es considerado un wabbit ya
que no se autorreplica de la misma forma que los gusanos o los virus. Su
efecto se basa en la suposición de que el número de programas y
procesos que se ejecutan simultáneamente en un ordenador tiene un
límite.
Una bomba fork funciona creando una gran cantidad de procesos muy
rápidamente con el objetivo de saturar el espacio disponible en la lista
de procesos mantenida por el sistema operativo del computador. Si la
tabla de procesos se llega a saturar, entonces no se pueden iniciar
nuevos programas hasta que no se cierre alguno. En el caso de que esto
suceda, es muy poco probable que se pueda iniciar un programa útil ya
que los procesos de la bomba estarán esperando para poder crear nuevos
procesos a la primera oportunidad que se les conceda.
Las bombas fork no sólo ocupan espacio dentro de la lista de
procesos, también consumen tiempo de proceso y memoria de la máquina
donde se ejecutan. Como resultado de esto, los ordenadores se vuelven
lentos e incluso se pueden volver inutilizables dada la falta de memoria
y la imposibilidad de aprovechar el procesador.
Se puede prevenir?
La respuesta es si. Afortunadamente para el usuario final, ya existen
soluciones antivirus que cuentan con una protección para este tipo de
ataques, tales como Kaspersky Endpoint Security.
El firewall y el sandbox embebidos en esta solución son capaces de
detectar cualquier tipo de ataque en tiempo real, gracias a la
sincronización de sus motores de análisis de amenazas con la nube
Kaspersky Security Network.
Algunos ejemplos
Código fuente de una bomba fork programada en Batch funcional en cualquier versión de Microsoft Windows:
%0|%0
O bien, una reacción más rápida:
:s
start "" %0
goto :s
Código fuente de una bomba fork programada en UNIX C o C++:
Cuando el malware inició en los sistemas información, todos creímos
que únicamente infectarían equipos con sistema operativo Windows, sin
embargo, con el paso del tiempo estos códigos maliciosos han ido
evolucionando a tal punto de infectar a cualquier sistema operativo de
los que se encuentran actualmente en el mercado.
Ya no es necesario tener un equipo conectado a Internet, debido a que
la infección puede llegar incluso si se conecta un dispositivo USB que
sea «portador» de este tipo de códigos.
En estos últimos meses, investigadores de ciberseguridad han logrado
detectar 3 tipos de malware diferentes, catalogados como peligrosos,
casi que indetectables y que además pueden llegar dañar completamente
los sistemas de información.
Orbit, este malware para Linux se diferencia de otras amenazas,
debido a que roba información de diferentes comandos y procesos del
sistema operativo. Posteriormente, el malware almacena la información
robada en archivos específicos en la máquina, según revelaron los
investigadores de la firma de automatización de seguridad Intezer. De
hecho, el nombre del malware proviene de uno de los nombres de archivo
para almacenar temporalmente la salida de los comandos ejecutados.
Orbit puede lograr la persistencia en una máquina o instalarse como un implante volátil, explicó Nicole Fishbein de Intezer en una publicación realizada la semana pasada.
OrBit no es el primer malware de Linux altamente evasivo que ha
surgido recientemente, capaz de usar enfoques similares para comprometer
completamente los dispositivos con puerta trasera.
Symbiotetambién usa la directiva LD_PRELOAD para cargarse en procesos en ejecución, actuando como un parásito en todo el sistema y sin dejar signos de infección.
BPFDoor,
otro malware detectado recientemente que se dirige a los sistemas
Linux, se camufla usando los nombres de los demonios comunes de Linux.
Esto le ayudó a pasar desapercibido durante más de cinco años.