Tipos de archivos

En la entrada ‘¿Qué son los Servicios Web (Web Services)?‘ aparecieron muchos tipos de archivos (XML, JSON, WSDL…) dando por hecho que se conocen. Pero esto no tiene que ser así necesariamente, por lo que vamos a repasar los que, a mi juicio, son más interesantes, particulares y usados dentro del mundo de sistemas de información.

Antes de la digitalización de documentos la cosa no pintaba a bien

CSV (Valores Separados por Comas)

Los archivos CSV son fundamentales para el almacenamiento y la transferencia de datos tabulares. Su simplicidad y eficiencia los hacen ideales para el intercambio de grandes volúmenes de datos entre aplicaciones.

  • Características: Datos tabulares separados por comas, fácil de leer y escribir.
  • Usos: Intercambio de datos entre aplicaciones, manejo de grandes cantidades de datos.
  • Estructura: Filas con el mismo número de campos, separados por comas o punto y coma, líneas separadas por saltos de línea.
  • Ventajas: Simplicidad, bajo sobrecoste computacional.
  • Desventajas: Limitado en cuanto a tipos de datos, no es ideal para datos complejos.
  • Ejemplo:
nombre,edad,ciudad
Juan,30,Madrid

La forma más sencilla de crear archivos CSV es desde un fichero Excel (xlsx) ya que el propio Excel permite Guardar el archivo como un CSV separado por comas. Además la apertura de un CSV también es directa a Excel. Pero, cuidado, que esto conlleva sus riesgos, ya que el Excel quita los ceros a la izquierda de las celdas que considera números. En este caso hay que indicar siempre que todas las celdas son de tipo texto.


JSON (JavaScript Object Notation)

JSON se destaca por su facilidad de lectura y estructuración de datos en un formato de texto. Es ampliamente utilizado para la transmisión de datos en aplicaciones web.

  • Características: Texto legible, nombres y valores como indicadores.
  • Usos: Intercambio de información entre aplicaciones.
  • Estructura: Datos en formato de texto, incluyendo números, cadenas y fechas.
  • Ventajas: Fácil de leer, liviano y rápido.
  • Desventajas: No es tan adecuado para datos muy complejos.
  • Ejemplo:
{
  "estudiantes": [
    {
      "id": 1,
      "nombre": "Ana",
      "asignaturas": {
        "matematicas": 85,
        "ciencias": 90
      }
    },
    {
      "id": 2,
      "nombre": "Luis",
      "asignaturas": {
        "matematicas": 75,
        "ciencias": 80
      }
    }
  ]
}

Lo que yo recomiendo cuando tenemos un json y queremos poder verlo y entenderlo es usar o bien el Visual Studio o una web gratuita de JSON Viewer. Que se verá en jerárquico y pudiendo expandir o contraer nodos.


XML (Extensible Markup Language)

XML es un meta-lenguaje que permite definir lenguajes estructurados (WSDL, XHTML para páginas web, MathML para expresiones matemáticas, SVG para gráficos vectoriales y RSS para feeds web), utilizado en la representación de datos en la web y en el intercambio de información entre aplicaciones.

  • Características: Meta-lenguaje para definir otros lenguajes estructurados.
  • Usos: Representación de datos en la web, intercambio de datos, configuración. Es la base de los servicios web SOAP. Tanto para definición del WSDL y los XSD como para el. Intercambio de mensajes.
  • Estructura: Elementos y atributos, con reglas predefinidas.
  • Ventajas: Interoperabilidad, validación de documentos.
  • Desventajas: Puede ser verboso y complejo.
  • Ejemplo:
<estudiantes>
  <estudiante id="1">
    <nombre>Ana</nombre>
    <asignaturas>
      <matematicas>85</matematicas>
      <ciencias>90</ciencias>
    </asignaturas>
  </estudiante>
  <estudiante id="2">
    <nombre>Luis</nombre>
    <asignaturas>
      <matematicas>75</matematicas>
      <ciencias>80</ciencias>
    </asignaturas>
  </estudiante>
</estudiantes>

Es el formato de archivo que se usa en los servicios SOAP. Personalmente a mi me gusta pegarlos en Ultraedit y pulsar en «View as highlighting file type» para verlo bien.


PROPERTIES

Estos archivos son esenciales en aplicaciones Java, almacenando información como texto en un formato de clave-valor.

  • Características: Almacena valores emparejados a nombres.
  • Usos: Principalmente en aplicaciones Java.
  • Estructura: Texto con formato clave=valor.
  • Ventajas: Fácil de editar y leer.
  • Desventajas: Limitado en cuanto a tipos de datos.
  • Ejemplo:
language=ES
hostname=www.jorgeocampos.com

WSDL (Web Services Description Language)

WSDL es crucial para describir servicios web, especificando interfaces y protocolos en un formato basado en XML.

  • Características: Basado en XML para describir servicios web.
  • Usos: Define interfaces para servicios web.
  • Estructura: Tipos de datos, mensajes, tipos de puerto, bindings, servicios.
  • Ventajas: Permite una descripción detallada y precisa.
  • Desventajas: Complejidad y requerimiento de conocimientos específicos.
  • Ejemplo:
<definitions name="EstudiantesService"
             targetNamespace="http://www.example.com/estudiantes"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:est="http://www.example.com/estudiantes">
    <types>
        <schema targetNamespace="http://www.example.com/estudiantes"
                xmlns="http://www.w3.org/2001/XMLSchema">
            <complexType name="DetallesEstudiante">
                <sequence>
                    <element name="nombre" type="xsd:string"/>
                    <element name="matematicas" type="xsd:int"/>
                    <element name="ciencias" type="xsd:int"/>
                </sequence>
            </complexType>
        </schema>
    </types>
    <message name="ObtenerEstudianteRequest">
        <part name="idEstudiante" type="xsd:int"/>
    </message>
    <message name="ObtenerEstudianteResponse">
        <part name="detallesEstudiante" type="est:DetallesEstudiante"/>
    </message>
    <!-- ... Resto del WSDL ... -->
</definitions>

Como norma general, desde SAP no tenemos que generar WSDL «a mano», ya se encarga el propio sistema de generarlo y consumirlo vía Wizard. Pero me consta que otras tecnologías si que hay que hacer manualidades. Y lo se porque es un estándar y, en ocasiones, viene mal creado (SAP es estricto y no admite errores). No obstante para el las pruebas del consumo de servicios web SOAP y la validación del WSDL yo uso la aplicación gratuita SOAPUI.

Si un servicio funciona, sin errores de validación, en SOAPUI es que esta bien. Y así descartas problemas y te centras en temas de redes, firewall, etc.


XSD (XML Schema Definition)

XSD es un lenguaje que describe la estructura y las reglas de un documento XML, permitiendo validar su contenido. WSDL utiliza XSD para definir las operaciones, mensajes y protocolos de un servicio web.

  • Características: Define elementos y atributos en documentos XML.
  • Usos: Validación de documentos XML.
  • Estructura: Reglas y restricciones para documentos XML.
  • Ventajas: Marco claro para estructura XML.
  • Desventajas: Puede ser complejo de entender y manejar.
  • Ejemplo:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="estudiantes">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="estudiante" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="id" type="xs:int"/>
              <xs:element name="nombre" type="xs:string"/>
              <xs:element name="matematicas" type="xs:int"/>
              <xs:element name="ciencias" type="xs:int"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

YAML (YAML Ain’t Markup Language)

Los archivos YAML (YAML Ain’t Markup Language) son utilizados para la serialización de datos de forma que sean legibles por humanos. Son comunes en configuraciones, archivos de definición y transmisión de datos entre diferentes componentes de un sistema. Su estructura se basa en la utilización de sangrías para representar jerarquías de datos, lo cual facilita su lectura y escritura. Son muy usados en el mundo del desarrollo, especialmente en la configuración de proyectos y entornos.

  • Características: Lenguaje de serialización de datos, fácil de leer.
  • Usos: Creación de archivos de configuración, automatización (Ansible).
  • Estructura: Mapas y listas con jerarquía basada en sangría.
  • Ventajas: Lectura sencilla, sin caracteres de tabulación.
  • Desventajas: Necesidad de validar la sintaxis.
  • Ejemplo:
estudiantes:
- id: 1
nombre: Ana
asignaturas:
matematicas: 85
ciencias: 90
- id: 2
nombre: Luis
asignaturas:
matematicas: 75
ciencias: 80

JS (JavaScript)

Los archivos JS son el núcleo de la interactividad en las páginas web, almacenando código JavaScript para diversas funciones.

  • Características: Código JavaScript para funciones en páginas web.
  • Usos: Interacción dinámica en páginas web.
  • Estructura: Texto con código JavaScript.
  • Ventajas: Flexibilidad y dinamismo en páginas web.
  • Desventajas: Puede afectar la velocidad de carga de la página.
  • Ejemplo:
function saludo() { 
    alert('Hola Mundo!');
}

CSS (Cascading Style Sheets)

CSS dicta cómo se presentan los elementos HTML en la pantalla, siendo fundamental para el diseño de páginas web.

  • Características: Define la presentación de documentos HTML
  • Usos: Diseño y estilización de páginas web.
  • Estructura: Selectores y declaraciones (propiedad y valor).
  • Ventajas: Consistencia en el diseño en múltiples páginas.
  • Desventajas: Complejidad al manejar estilos extensos.
  • Ejemplo:
body {
  font-family: Arial, sans-serif;
  background-color: #f8f8f8;
}

h1 {
  color: #333;
  font-size: 24px;
}

p {
  color: #666;
  line-height: 1.6;
}

HTML (HyperText Markup Language)

HTML es el lenguaje utilizado para estructurar y presentar contenido en la World Wide Web.

  • Características: Lenguaje de marcado para la creación de páginas web.
  • Usos: Estructuración y presentación de contenido en la web.
  • Estructura: Etiquetas que definen elementos y estructura
  • Ventajas: Amplia adaptabilidad, fácil interpretación.
  • Desventajas: Limitado en funcionalidades interactivas avanzadas.
  • Ejemplo:
<!DOCTYPE html>
<html>
<head>
  <title>Mi Página Web</title>
</head>
<body>
  <h1>Bienvenidos a Mi Página Web</h1>
  <p>Este es un párrafo de introducción.</p>
  <h2>Sección 1</h2>
  <p>Información detallada sobre el primer tema.</p>
  <h2>Sección 2</h2>
  <p>Información detallada sobre el segundo tema.</p>
  <p>Para más información, visita <a href="http://www.jorgeocampos.com">nuestro sitio</a>.</p>
</body>
</html>

EDI (Electronic Data Interchange)

EDI facilita la transmisión estructurada de datos comerciales entre organizaciones, optimizando la eficiencia y precisión.

  • Características: Transmisión estructurada de datos entre organizaciones.
  • Usos: Transferencia de documentos electrónicos o datos de negocios.
  • Estructura: Varía según el estándar (EDIFACT, XML, ANSI ASC X12).
  • Ventajas: Ahorro de tiempo, evita errores de comunicación en papel.
  • Desventajas: Requiere estándares y protocolos específicos.
  • Ejemplo: No aplicable directamente, ya que depende del estándar utilizado.

BAT (Archivo Batch)

Un archivo `.BAT` es un archivo de procesamiento por lotes en sistemas operativos Windows. Contiene una serie de comandos de línea de comandos que se ejecutan secuencialmente. Es utilizado comúnmente para automatizar tareas repetitivas y puede ejecutar prácticamente cualquier comando que un usuario podría introducir en la consola de comandos.

  • Características: Ejecutan comandos de la consola automáticamente
  • Usos: Automatización de tareas en Windows.
  • Estructura: Serie de comandos de línea de comandos.
  • Ventajas: Automatización sencilla y rápida.
  • Desventajas: Limitado a las capacidades del intérprete de comandos.
  • Ejemplo: echo Hola Mundo

Se trata de un tipo de archivo bastante rudimentario. Pero yo lo uso todos los días para acceder al SAP GUI directamente sin necesidad de tener que introducir usuario y contraseña. Además lo he usado para automatizar ciertas acciones manuales encadenadas en una sola. Me lo apunto y si veo que tiene suficiente entidad lo explicaré.


INI (Archivos de Configuración)

Los archivos .ini son archivos de texto utilizados para la configuración de aplicaciones y sistemas. Contienen pares clave=valor organizados en secciones, lo que permite una fácil lectura y edición. A pesar de su simplicidad y utilidad, carecen de un estándar universal, lo que puede conducir a inconsistencias entre diferentes programas. Son ampliamente utilizados para personalizar la configuración del software y adaptar el comportamiento de los programas a las necesidades específicas del usuario.

  • Características: Texto simple con pares clave=valor.
  • Usos: Configuración de programas y sistemas.
  • Estructura: Secciones con claves y valores.
  • Ventajas: Fácil de leer y editar.
  • Desventajas: Falta de estándares universales.
  • Ejemplo:
[Settings]
language=es
theme=dark

Dll (Dynamic Link Library)

Los archivos .dll son bibliotecas de enlace dinámico esenciales en sistemas Windows para compartir funciones entre diversas aplicaciones. Aportan eficiencia al evitar la redundancia de código y facilitan actualizaciones. Sin embargo, pueden presentar desafíos de seguridad y dependencias complejas. Estos archivos no se ejecutan por sí solos, sino que son invocados por aplicaciones que requieren sus servicios.

  • Características: Contienen código y recursos utilizados por múltiples programas.
  • Usos: Compartir funciones y recursos en aplicaciones Windows.
  • Estructura: Binaria compilada.
  • Ventajas: Reutilización de código y eficiencia en memoria.
  • Desventajas: Problemas de seguridad y compatibilidad.
  • Ejemplo: No aplicable; es un archivo binario.

Ver las extensiones de archivo en Windows

No te fíes de los iconos que aparecen en el explorador de Windows. Si quieres ser tu quien controle que archivos estás visualizando y para poder modificar las extensiones de archivo, es necesario activar en Windows la visualización de extensiones de archivo.


En conclusión

El objetivo de este artículo no es el aprenderse todos estos tipos de archivos, además muchos de ellos se circunscriben a un lenguaje o aplicación que quizás nunca manejemos y otros son más comunes. Estos son los que yo, de una forma u otra, he manejado. Además de los evidentes claro (Excel, Word, PPT, TXT…)

Reuniones – II – Técnicas y Estrategias

Este artículo es la continuación del artículo «Reuniones» que publicamos anteriormente. En este artículo vamos a proponer estrategias para abordar las reuniones que son interesantes.

La Regla de las dos Pizzas

Jeff Bezos, CEO de Amazon y una de las personas más ricas del mundo, usa la «Reglas de las dos pizzas» para grupos de trabajo en las reuniones. Dicha regla establece que el grupo de personas de una reunión debe ser, como máximo, el número de personas que pueda alimentar dos pizzas.

¿Quién ha pedido la de piña?

Suponiendo que compramos dos pizzas familiares, esto supone unos 4-7 personas (depende lo glotonas que sean).


Técnica «Silent Start» de Jeff Bezos

Una vez más, Amazon, se trata de comenzar la reunión con unos minutos de silencio donde todos leen la agenda o los documentos relevantes. Esto asegura que todos estén en la misma página y reduce las repeticiones durante la reunión. Estos minutos pueden ser hasta 30 minutos. Suena loco, pero todos estarían conociendo el alcance de la reunión perfectamente. No es más que bloquear ese tiempo para preparar la reunión.


Técnica «Parking Lot» (Zona de Aparcamiento)

Si surgen temas interesantes pero no relevantes para la agenda actual, anótalos en una «zona de aparcamiento» para discutirlos en otro momento.

Esto sirve para centrarnos a tratar los temas agendados antes de abordar otro y, si no diese tiempo, ya tienes la agenda de la siguiente reunión hecha en un parking lot.


Método «No Agenda, No Asistencia»

No permitir reuniones a menos que haya una agenda claramente definida y compartida con antelación. Esto asegura que todos sepan de qué se tratará y puedan prepararse adecuadamente.

Dall-E 3 no maneja bien el texto

Es que a la gente le encanta hacer perder tiempo a los demás. Además, pensando en una agenda de reunión ya estás organizando el problema, duda o acciones a realizar. Ya estás avanzando en el trabajo.


Si llegas tarde, no entras

Otra buena. Para aquellos que, sistemáticamente, llegan tarde a las reuniones, haciendo perder el tiempo a los demás. Son los famosos 15 minutos de cortesía, pero que pasado este tiempo se pasa de cortesía a aspereza y se cierra la puerta.

La ves desde fuera

Días sin reunión Meeting free days

Un estudio publicado en el MIT Sloan Management Review que se realizó durante un año en 76 empresas de más de 1000 empleados reveló que introducir días sin reuniones en las empresas conduce a un aumento significativo en la productividad, colaboración, autonomía de los empleados y satisfacción laboral.

The Surprising Impact of Meeting-Free Days

MIT Sloan Management Review

Yo con tener 3 horas sin reuniones ya tengo suficiente.


Regla de los 5 Minutos

Si un tema no puede ser presentado y discutido en 5 minutos, debe ser tratado fuera de la reunión o en un grupo más pequeño y específico. Esto mantiene la reunión enfocada y rápida y obliga a los participantes a concentrarse en la esencia de lo que necesitan comunicar, eliminando divagaciones o detalles innecesarios.

Esta regla me parece muy drástica. Yo soy más partidario de usar esos 5 minutos con la técnica de Parking Lot. Si sale un tema a discutir, si se puede cerrar en 5 minutos, se discute, si no se aparca para otra reunión.


Reuniones «Stand-Up»

Esta estrategia implica realizar reuniones breves y de pie. Al no estar cómodamente sentados, los participantes tienden a ser más concisos y directos, lo que acorta la duración de la reunión. Pero claro, a ver quién apunta ahí. Lo que yo he visto y es muy interesante son las zonas abiertas con mesas y sillas para hacer reuniones más rápidas.


Limitación del Tiempo Total de Reunión

Establece un límite de tiempo total para tus reuniones, no solo por tema discutido. Por ejemplo, ninguna reunión puede exceder los 60 minutos. Esto obliga a todos a ser más conscientes del tiempo y priorizar los temas más importantes.


Uso de Técnicas de Facilitación

Incorpora técnicas de facilitación como el «round robin» para asegurar que todos tengan la oportunidad de hablar. Esto es particularmente útil para garantizar que incluso las voces más silenciosas sean escuchadas y que todos los puntos de vista sean considerados.

¡Yo tengo la banderita! ¡Ahora me escucháis a mí!
Luego le toca a Lucía

Sobre este tema profundizare en otro artículo, porque tiene mucho que contar.


Reuniones de Pie para Check-ins Diarios

Además de las reuniones de pie breves para discusiones específicas, considera implementar reuniones de pie diarias para actualizaciones rápidas del equipo. Estas pueden ser muy efectivas para mantener a todos alineados y enfocados en los objetivos diarios sin tomar demasiado tiempo.


Asignación de un «Abogado del Diablo»

Para temas importantes que requieren deliberación, asigna temporalmente a una persona el rol de «abogado del diablo». Su trabajo será cuestionar ideas y suposiciones, ayudando a evitar el pensamiento de grupo y fomentando una discusión más profunda.

Mira lo que ha hecho el %&@# de tu manager

Sesiones de «Brainwriting»

En lugar de un brainstorming tradicional donde las personas gritan ideas, prueba el «brainwriting», donde cada participante escribe sus ideas en silencio y las comparte de manera anónima. Luego, el equipo puede discutir estas ideas juntas. Esto fomenta la participación igualitaria y puede generar ideas más diversificadas y creativas.


Uso de «Timeboxing»

Asigna una cantidad fija de tiempo a cada punto de la agenda (timeboxing) y mantén el compromiso con esos límites. Esto ayuda a asegurar que se dedique tiempo a todos los temas importantes sin permitir que ninguno domine indebidamente la reunión. Lo que no se llegue a abordar, lo llevamos al Parking Lot para la siguiente o para el final de la reunión.


Mi Opinión

Todo esto está genial, pero necesita que la filosofía de la empresa y del cliente estén alineadas para que esto se lleve a cabo. Quizás para reuniones internas de la empresa, donde sólo hay un equipo y una filosofía, sea más factible. Sobre todo cuando estás en desarrollo de producto. Pero en Consultoría, puedes ser todo lo ordenado que quieras, tener todas las estrategias claras, pero el cliente no, y no estás ahí para enseñarle a hacer reuniones.