OpenLLM-France/wikimedia huggingface dataset:
# El usuario como individuo inteligente

Primero que todo, debe quedar claro una gran verdad: las ciencias computacionales no son la meta, sino una herramienta para alcanzarla. Por muy evolucionada que se encuentre la tecnología informática, esta no deja de ser sólo una herramienta para que los usuarios hagan su trabajo más rápido, más fácil y más eficientemente.
Es muy común, que en el desempeño diario de nuestras labores, nos topemos con clientes "ineptos", incapaces de utilizar bien Word, mandar un correo o navegar por la internet, pero con conocimientos suficientes para llevar a buen término una cirugía a corazón abierto, ganar litigios legales o diseñar grandes edificios. Es necesario darse cuenta que para nuestros usuarios, la computadora es una herramienta, que podrían dominar o no, pero muy posiblemente, sus objetivos no incluyan aprender las complejidades del arte arcano de grabar un CD o revisar sus archivos contra virus; antes bien, se concentran en labores que trascienden al equipo; y es trabajo del administrador de sistemas, procurar que las herramientas sigan funcionando aún a pesar de los propios usuarios.

# El usuario como punto de falla

Segunto, otra gran verdad: los usuarios son la principal fuente de problemas en los equipos computacionales. Ni los virus ni los gusanos pueden compararse con el uso destructivo que algunos usuarios hacen de su equipo. Descargan cosas de internet, desactivan antivirus, borran archivos que no deben y la lista continua.
Microsoft Windows ha evolucionado desde sus primeros dias para darle al administrador de sistemas, herramientas suficientes para mantener a raya a los usuarios, por lo menos en la medida de lo posible. Permite evitar los problemas más comunes, como la instalación no autorizada de software, o la eliminación de partes importantes del sistema. Así los daños potenciales se minimizan notablemente.
Pero aún con todas las herramientas con las que pudiéramos contar, los usuarios siempre se las arreglan para meterse en problemas. No se les puede amarrar las manos (por mucho que algunos adminstrador desearan) pues es necesario que sigan trabajando.

# Educando al usuario

La educación del usuario debe empezar por hacerle entender que debe ser responsable. Ante todo debe comprender que todas sus acciones sobre los datos almacenados en los equipos de cómputo, tienen una consecuencia. Debe aceptar que si borra un archivo, muy posiblemente nunca lo recupere, que si riega café sobre el teclado, tendrá que pasar un tiempo sin equipo, hasta que se repare. Debe entender que él es el principal sospechoso en caso de algún fallo, claro, sin ánimo de amendrentar.
Como administrador de sistemas, debemos hacerle notar al cliente, que somos ante todo, profesionales. Gente capacitada en el uso de nuetras herramientas, en el trato con la gente y en la solución de problemas y no meros improvisados.
# Using Tina POS+/Guía del desarrollador/Base de datos-Descripciones de la tabla
## Contenido
### Generador de tablas

Estas tablas son simples lugares de almacenamiento para el proximo ID disponible para otras tablas a las que ellos sirven.
* CashVisibleIdGenerator
* TicketCreationGenerator
* ticket_id_gen
* ticket_line_id_gen

### Tablas especificas para Restaurante

Estas tablas parecen especificamente configuradas para restaurantes en vez de ser generalmente aplicable a cualquier POS.
* Reservation
* kitchen_order
* kitchen_order_ticket_line

### Geografico

Estas tablas son espaciales por naturaleza
* Floor
* Location
* Place
* ProductLocation

### Manejo de Ticket

Estas tablas tratan el manejo de Tickets
* ticket
* ticket_cashregister
* ticket_line
* ticket_payment

### Control de Usuarios

Estas tablas controlan usuarios incluyendo sus derechos
* user
* role
* role_Permission
* Permission

### El Resto

El resto de las tablas
* StockDiary
* cash_register
* category
* image
* payment
* product
* property
* resource
* image_resource
* tax
# Qué hacer antes de usar una PC nueva

¿Qué es lo primero que uno hace cuando enciende una PC nueva, o recién formateada? ¡Reinstalar todo!, claro, pero antes de hacer eso hay que tomar unas precauciones, que nos permitirán restaurar el equipo si falla algo, a configuración "De fábrica"

## Arranque de Windows

Muchos programas modifican el arranque para iniciarse junto con el inicio de Windows, como los antivirus, pero, antes de intalarlos, desde el escritorio de Windows haremos un respaldo del arranque:
En el menú de Inicio, haremos click en "Ejecutar", aparecerá un mensaje que dice "Escriba el nombre de un programa, carpeta, documento o recurso de internet y Windows lo abrirá"; en el espacio en blanco escribiremos "msconfig" y presionamos "Aceptar", la ventana se cerrará y aparecerá "Programa de configuración del sistema", debajo de ellos están los botones "Crear copia de Seguridad", "Restaurar copia de seguridad" y "Avanzado", sólo usaremos los dos primeros. Hacemos click en "Crear copia de seguridad", cerramos el mensaje de configuración y listo, cuando queramos restaurar la copia de seguridad, ejecutamos el programa y hacemos click en "Restaurar copia de seguridad", reiniciamos el equipo y el inicio será como antes. Archivo:'''Ejemplo.jpg'''

# Copia de seguridad y Herramienta de Restauración del sistema

Windows 95 y 98 SE incluyen la herramienta de Copia de Seguridad, que permite recuperar el sistema desde una versión de respaldo.
Con windows Millenium y XP existe la Herramienta de restauración, que es más sencilla que la copia de seguridad:
En Menu inicio/Programas/Accesorios/Herramientas del sistema/Restaurar sistema accesaremos al programa, ahora, en su pantalla pricipal está "Restaurar mi equipo en un estado anterior" y "Crear un punto de Restauración", seleccionamos la última y hacemos click en "Siguiente". Ahora tenemos que teclear un nombre para el punto de restauración, podemos ponerle "Equipo nuevo", y hacemos click en "Crear".
Listo, ahora estamos listos para instalar nuestros programas, pensando en que tenemos un respaldo del equipo, puede tomar puntos de respaldo cuando desse o configurar el equipo.

## Recomendaciones

Es recomendable tener dos discos, o una partición: una que tenga el Sistema Operativo y otra con todos nuestros documentos y archivos personales, así, en caso de que se dañe Windows, solamente se perderá el SO, pero no nuestros achivos, aún así, es reocomendable sacarle copias de seguridad a nuestros archivos, pero, reparar al sistema será más facil
# Excursionismo/Incursionando en la naturaleza

Nuestras propias piernas han sido el medio de transporte por excelencia desde que el hombre apareció sobre la tierra. Como sucede con otras actividades que se han transformado para satisfacer las demandas actuales, caminar se ha convertido, en el caso de los habitantes citadinos, en un medio para estar en contacto con la naturaleza, hacer ejercicio y dar rienda suelta a nuestros pasatiempos.
Desde la prehistoria, el hombre ha necesitado desarrollar su inteligencia para compensar su falta de competitividad física con otros depredadores. El hombre nómada debía estar preparado físicamente para poder salir airoso de los retos que la naturaleza ofrecía. El hombre sedentario, en cambio no ha necesitado de tal preparación y miles de años después, junto con con el desarrollo económico y tecnológico ha desembocado en problemas de salud tales como obesidad, problemas cardio-respiratorios, alergias y problemas musculares y de huesos. En la sociedad moderna ha aparecido una nueva enfermedad: el estress; la medición del tiempo y el establecimiento de horarios y objetivos ha dado lugar a una preocupación continua por nuestros quehaceres y nuestra salud mental se encuentra en peligro.
Quién diría que la solución para reducir éstos consiste en hacer ejercicio y relajarse. ¿Y de qué mejor forma hacerlo que haciendo excursionismo? Sí, tal y como lo hacían nuestros antepasados, pues nuestra evolución física poco ha cambiado desde entonces, y cualquier otra diferencia nuestra con nuestros bisabuelos desde los tiempos en que ellos vivían en poblados de montaña e incluso ciudades entre la naturaleza es prácticamente nula. Entonces si realmente estamos preparados para sobrevivir entre la naturaleza, ¿Porqué ni tan siquiera nos acercamos a disfrutar de su compañía?
# Excursionismo/Seguridad
## Introducción

Los peligros se dividen en objetivos y subjetivos.
* Los objetivos se deben a causas naturales externas, como condiciones atmosféricas, animales salvajes, animales venenosos, etc.
* Los subjetivos, por el contrario, tienen su causa en el ser humano y pueden resumirse en tres conceptos: estimación exagerada de las propias capacidad, negligencia e ignorancia.
La mayoría de los accidentes caen dentro de la clasificación de subjetivos, es decir tienen su causa en el ser humano. Cuando por comodidad no atendemos a medidas de precaución, cuando la amenaza no se toma en serio, cuando nos confiamos en la rutina o cuando al final de la excursión pensamos que ya no puede pasar nada.
Tener en cuenta medidas de seguridad nos llevará a un buen termino de nuestras excursiones y ha asegurar que estas sean una grata vivencia o en caso de accidentes tener una rápida respuesta.

## Medidas Preventivas

Algunas medidas de seguridad son:
* Portar siempre identificación con los siguientes datos: A quien notificar y teléfono, tipo de sangre, alergias y afiliación de institución de salud o seguro medico.
* Dejar una nota con la ruta y el destino a familiares y en el último poblado o comisaría de policía.
* Contar con números telefónicos de cruz roja, bomberos y otros centros de auxilio.
* Estimar posibles riesgos antes de que sucedan, para así evitar accidentes.
* Informar al guía, retaguardia o compañeros de malestares físicos, mentales y de salud.
* Si se tiene algún padecimiento llevar el medicamento necesario.
* En situaciones difíciles buscar el control y serenidad que nos ayuden a la cooperación y búsqueda de soluciones.
* Ser optimistas sin perder la racionalidad de las circunstancias.

## Seguridad ante el clima

En relación al clima también debemos tomar medidas de seguridad. En una tormenta eléctrica, hay que evitar los árboles. Una exposición prolongada al sol puede producir mareo, náuseas, vómito, fiebre, e incluso pérdida de la conciencia, para evitarlo debemos cubrir la cabeza del sol. Una insolación es muy peligrosa y, dependiendo de su gravedad, puede ser incluso mortal.
# Álgebra/Introducción

En sus orígenes, éste era un libro perteneciente al Departamento de Matemática y Estadística de la Universidad de La Frontera (Temuco, Chile) por la Dra. María Teresa Alcalde Cordero y el Dr. César Burgeño Moreno, creado para cursar el primer semestre de Ingeniería en dicha universidad. Con poco mantenimiento a partir del año 2008, se retoma y reordena, respetando el poco material de un capítulo original de teoría de Grupos
Si deseas contribuir con la edición de este libro, te recomendamos que visites antes la página sobre convenciones de edición de este libro. Ahí encontraras algunas sugerencias útiles para mantener la coordinación en la edición del libro.
# Programación en JavaScript/Operadores en JavaScript

Los operadores son uno de los elementos fundamentales en cualquier lenguaje de programación, ya que son los que nos permiten trabajar con variables y datos. A continuación vamos a estudiar los distintos operadores divididos en categorías:
Operadores aritméticos:
| Operador | Significado | Ejemplo |
| + | suma | números y cadenas |
| - | resta | |
| * | producto | |
| / | división | |
| % | módulo (resto) | 20 % 10 (= 0) |
| ++ | suma tipográfica | variable++; ++variable; (variable = variable + 1) |
| -- (dos guiones) | resta tipográfica | variable--; --variable; (variable = variable - 1) |
Operadores de asignación:
| Operador | Significado | Ejemplo | Es igual a |
| = | Asignación de datos | x = 1; | |
| += | Asignación y suma | x += 1; | x = x + 1; |
| -= | Asignación y resta | x -= 1; | x = x - 1; |
| *= | Asignación y producto | x *= 1; | x = x * 1; |
| /= | Asignación y división | x /= 1; | x = x / 1; |
| %= | Asignación y módulo | x %= 1; | x = x % 1; |
Operadores condicionales (comparativos):
| Operador | Significado | Ejemplo |
| == | es igual a | 5 == 8 es falso |
| != | no es igual a | 5 != 1 es verdad |
| > | es mayor que | 5 > 1 es verdad |
| < | es menor que | 5 < 8 es verdad |
| >= | es mayor o igual que | 5 >= 8 es falso |
| <= | es menor o igual que | 5 <= 1 es falso |
Operadores lógicos:
| Operador | Significado | Ejemplo |
| && | Y | 1 == 1 && 2 < 1 es falso |
| || | O | 1 == 2 || 15 > 2 es verdad |
| ! | NO | !(1 > 2) es verdad |
Suma y Resta Tipográfica
La diferencia en el uso de la suma y resta tipográfica radica en el momento en que se realiza la operación. Cuando los símbolos preceden a la variable (ej: ++a; --a;) la operación se realiza antes de ejecutar el resto de las operaciones en la linea. Cuando la variable precede a los símbolos (ej: a++; a--;) la operación se realiza despues de ejecutar el resto de las operaciones en la linea. En caso de que la linea de código no contenga ninguna operación extra el resultado será el mismo. Aquí algunos ejemplos para mostrar las diferencias:
# Programación en JavaScript/FuncionesJS

JavaScript contiene sus propias funciones que podemos utilizar en nuestros programas. Aunque algunas de estas funciones podemos usarlas independientemente de sus correspondientes objetos, lo cierto es que todas las funciones provienen de algún objeto específico. El objeto window representa a la ventana del navegador y es el objeto por defecto. Esto quiere decir que podemos usar sus elementos (funciones, propiedades, objetos, etc...) sin necesidad de llamar explícitamente al objeto window.
Ya conocemos alguna que otra función como length (de los objetos de matriz) o alert, que proviene del objeto window y que muestra un mensaje en una ventana.
Otro objeto dependiente de window es document que contiene, entre otras cosas, funciones como write que nos permite escribir texto en la página web.
A continuación vamos a estudiar algunas posibilidades que nos aportan las funciones en JavaScript, ya que hay una gran cantidad de ellas. Sin embargo, vamos a repasar las más usadas para el desarrollo web en general.

## Abrir una ventana nueva

El primer parámetro de open es la dirección que queremos mostrar en la ventana. El segundo es el nombre que queremos darle a la ventana (y que podemos usar, por ejemplo, en el atributo target de los enlaces). El tercer y último parámetro nos permite definir el aspecto de la ventana según los datos que le indicamos.

## Cambiar la URL actual

El siguiente ejemplo nos muestra el uso de location para conseguir la dirección de la página actual en la que nos encontramos o bien ir a una página diferente:

## Cambiar el tamaño de la ventana actual

Si se usan frames, debe utilizarse el elemento top en vez del elemento window, para representar el frame superior.

## Retrasar la ejecución del programa durante un tiempo determinado

Un par de detalles sobre este último ejemplo: La función setTimeout tiene dos parámetros: una cadena de texto que representa un código JavaScript a ejecutar cuando hayan pasado el número de milisegundos del segundo parámetro.

## Cambiar una imagen por otra

Como podemos apreciar, lo primero que hacemos es recoger todas las imagenes de la página en una matriz mediante el objeto document.images y después acceder a la imagen específica como se muestra en la funcion setSrc. Para hacer el cambio usamos la propiedad src que tienen todos los objetos de imagen.
A medida que vayamos pasando por los capítulos de este curso, iremos viendo nuevos ejemplos con nuevas posibilidades de manejo de las funciones y sus respectivos objetos. En el siguiente capítulo veremos cómo crear nuestros propios objetos y aplicarlos en nuestros programas.
# Python/Info

Este libro describe Python, un lenguaje de programación interpretado de uso general de código abierto disponible para los sistemas operativos más populares. Las versiones actuales son 3.x, mientras que 2.x ya no es compatible desde 2020. Este libro describe principalmente la versión 2 no compatible (aunque a menudo el mismo código funciona en la versión 3), pero a veces hace referencia a cambios en la versión 3. No son algunas implementaciones para Python 3 (y anteriores): la implementación estándar escrita en C, y PyPy, una versión compilada con JIT escrita en RPython, un subconjunto de Python. Solo para Python 2 hay Jython escrito en Java e IronPython escrito en C # para el entorno .NET.
Python: Índice · Introducción · Enlaces :
* Instalación de Python ·
* Generalidades ·
* Funciones, constantes nativas ·
* Tipos de datos nativos ·
* Herramientas de control de flujo ·
* Definición de funciones ·
* Leer y escribir archivos ·
* Su primer programa en Python ·
* Entrada y salida ·
* Estructuras de datos ·
* Errores y excepciones
* Interfaces gráficas ·
* Módulos relacionados con el sonido ·
* Módulos relacionados con el tiempo ·
* Módulos relacionados con la matemática
# Python/Generalidades/Estructuras de decisión

* Índice de la sección «Generalidades»
* Breve historia de Python
* Palabras reservadas, operadores y símbolos del lenguaje
* Tipos de datos fundamentales
* Operaciones de entrada y salida básica
* Tabla de operadores con asociatividad y precedencia
* Estructuras de decisión
* Estructuras de iteración
* Funciones
* Características especificas de Python
* Cómo se compila Python
Varias sentencias de Python permiten al programador especificar que la siguiente sentencia a ser ejecutada puede ser otra diferente que la siguiente en secuencia. Esto es llamado transferencia de control. La transferencia de control se logra con las estructuras de decisión de Python.

## if

Las estructuras de decisión escogen entre diferentes cursos de acción. Por ejemplo, suponga que la nota para aprobar un curso es 60. La sentencia en pseudocódigo es la siguiente:
    Si el estudiante obtiene una nota igual o superior a 60:
       Aprobado
Si la condición es verdadera, se imprime “Aprobado”. Si la condición es falsa, la sentencia de impresión es ignorada. Escrito en Python se vería de la siguiente manera:

## if/else y if/elif/else

La estructura de decisión if realiza una acción específica solo cuando la condición es verdadera; de lo contrario, la acción se ignora. La estructura if/else permite al programador especificar que una acción diferente se debe desarrollar, cuando la condición es falsa. Por ejemplo, la sentencia en pseudocódigo:
    si el estudiante obtiene una nota igual o superior a 60:
    entondes:
       Aprobado
    si no:
       Suspendido
Escrito en Python:
También se utiliza la estructura de selección múltiple if/elif/else. Que se vería en Python de la siguiente manera:
Python: Índice · Introducción · Enlaces :
* Instalación de Python ·
* Generalidades ·
* Funciones, constantes nativas ·
* Tipos de datos nativos ·
* Herramientas de control de flujo ·
* Definición de funciones ·
* Leer y escribir archivos ·
* Su primer programa en Python ·
* Entrada y salida ·
* Estructuras de datos ·
* Errores y excepciones
* Interfaces gráficas ·
* Módulos relacionados con el sonido ·
* Módulos relacionados con el tiempo ·
* Módulos relacionados con la matemática
# Python/Generalidades/Cómo se compila Python

* Índice de la sección «Generalidades»
* Breve historia de Python
* Palabras reservadas, operadores y símbolos del lenguaje
* Tipos de datos fundamentales
* Operaciones de entrada y salida básica
* Tabla de operadores con asociatividad y precedencia
* Estructuras de decisión
* Estructuras de iteración
* Funciones
* Características especificas de Python
* Cómo se compila Python
Python es un lenguaje interpretado, lo cual quiere decir que no se compila; esto podría ser algo malo entonces, pero hoy en día, con la potencia de las máquinas actuales es preferible perder un poco de rendimiento en búsqueda de una mayor facilidad y rapidez a la hora de crear el código.
Para ejecutarlos

## En Windows

Si ya tienes el ejecutable de python en el path:
python c:\ruta\a\miprograma.py

## si no

c:\Python24\python c:\ruta\a\miprograma.py

## En casi cualquier unix, si tienes python en el path

$ python /home/foolano/miprograma.py

## ¿Cómo se genera un fichero .exe?

Para generar archivos .exe para MS Windows, hay que usar la utilidad py2exe. Esto genera un ejecutable que incluye el intérprete y el programa a interpretar, por lo que a efectos prácticos es compilar el programa. Para Linux existen cosas parecidas, pero no son prácticas porque la inmensa mayoría de los sistemas Linux tienen Python instalado o es muy fácil hacer que se instale como parte de la instalación de nuestro programa.
Pero, si deseamos optimizar un poco el programa u ocultar el código fuente de un script Python bajo Linux, podemos ejecutar "python -O mi_script.py" (o "python -OO mi_script.py", si deseamos optimizar al máximo bajo riesgo de que no funcione el programa), lo cual generará un archivo binario, "mi_script.pyc", por ejemplo, que hará un poco (muy poco) más rápido el programa. Eso sí, no se podrá ejecutar con "./mi_script.pyc". Se tendrá que usar "python mi_script.pyc".
Python: Índice · Introducción · Enlaces :
* Instalación de Python ·
* Generalidades ·
* Funciones, constantes nativas ·
* Tipos de datos nativos ·
* Herramientas de control de flujo ·
* Definición de funciones ·
* Leer y escribir archivos ·
* Su primer programa en Python ·
* Entrada y salida ·
* Estructuras de datos ·
* Errores y excepciones
* Interfaces gráficas ·
* Módulos relacionados con el sonido ·
* Módulos relacionados con el tiempo ·
* Módulos relacionados con la matemática
# Programación en VHDL/Bibliografía
## Recursos en internet

* GHDL
* IEEE
* Open Cores
* VHDL
* XESS

## Libros y otros textos

* VHDL Programming by Example, Douglas L. Perry (McGraw-Hill).
* VHDL Lenguaje para descripción y modelado de circuitos, Fernando Pardo Carpio (Universidad de Valencia, España).
* The VHDL Cookbook, Peter J. Ashenden (Universidad de Adelaida, Australia).
* Diseño de circuitos digitales con VHDL, F. Machado, S. Borromeo (Archivo Abierto de la Universidad Rey Juan Carlos)
* Diseño de sistemas digitales con VHDL, F. Machado, S. Borromeo, C. Rodríguez (Archivo Abierto de la Universidad Rey Juan Carlos)
* Crear Circuitos con VHDL, J. Castillo, J.I. Martinez, C. (Curso de Udemy sobre VHDL)
# Programación en VHDL/Ejemplos

En este capítulo se mostrarán ejemplos de diseños lo más completos posible, van desde la descripción del problema hasta su simulación, se deja al lector si dispone del hardware apropiado su síntesis y verificación real, así como su simulación mediante el software apropiado.
* Puerta triestado
* Multiplexor
* Sumador
* Contador
* Biestable-Latch
* Máquinas de estados
* ALU
# Programación en VHDL/Ejemplos/Máquinas de estados

El objetivo es crear un sistema que genere unas salidas determinadas, dependiendo de los estados por donde va fluyendo la ruta de datos. Por consiguiente, hará falta el reset y reloj del sistema como entradas del sistema. También se añade una señal para sacar el estado al exterior.
* Entradas:
** rst: Reset del sistema.
** clk: Reloj del sistema.
* Salidas:
** a: Salida de datos.
** b: Salida de datos.
** estado: Salida del estado.
# Programación en VHDL/Ejemplos/Biestable-Latch

El objetivo es crear un dispositivo capaz de reproducir en cada tic de reloj la entrada en la salida. Para ello será necesario diponer del reloj y reset del sistema.
* Entradas:
** rst: Reset del sistema.
** clk: Reloj del sistema.
** a: Entrada de datos.
* Salidas:
** b: Salida de datos.
También es posible realizar esta operación a través de una señal de activacion (enable), pero a este tipo de diseños se les denomina latch. En este caso no hará falta la señal de reloj, pero sí el reset.
* Entradas:
** rst: Reset del sistema.
** en: Enable de almacenamiento.
** a: Entrada de datos.
* Salidas:
** b: Salida de datos.