Muy buenos días, os dejo por aquí un vídeo realizado para INETUM , la empresa dónde trabajo en la actualidad y desde hace ya más de 3 años como Coordinadora Operativa.
Aquí respondo a algunas preguntas que nos realizaron para fomentar y animar a las nuevas generaciones a estudiar y dedicarse a profesiones relacionadas con la ciencia y tecnología.
En este lo que hice fue ejecutar procedimiento con 3 variables en Lenguaje C.
Y mostrar el resultado del aleatorio con la función Rand() a partir de un Switch (En caso de).
Y un bucle para que recorre un único número premiado al azar entre el 1 y el 10.
Finalmente ordeno escribir el número que ha salido de forma aleatoria y lo introducimos obteniendo así al ganador/a que le corresponde ese número en el listado del Switch(En caso de).
Este año he realizado el programa en lenguaje SQL: creo una bbdd nueva a través de PHPmyAdmin ( se puede hacer en consola o Workbench entre otros...).
A esa bbdd le creo una tabla con los campos: ID(Autonumerico) que será el campo clave primaria, y los campos Nombre y Apellidos que serán tipo VARCHAR(texto).
A partir de esta tabla añado tantos registros como clientes dispongo con un INSERT INTO.
Y finalmente creo la consulta que me dará el nombre de los ganadores/as de este año.
Hoy vengo con algo que no había enseñado nunca pero lo veo importante, mostrando la BBDD que utilizo desde hace ya varios años,
para los clientes de DESY Repara.
Una BBDD que sólo manejo yo, y que en este videotutorial os muestro sólo la parte que os puede resultar más práctica a la hora de crear vuestra propia bbdd para vuestro negocio o vida personal.
Las Bases de datos manejan información de diferentes tipos, se deben crear relaciones entre los campos y para ello es indicado empezar a crearlas desde el MER y el MR (modelo entidad relación y modelo relacional).
Podéis encontrar referencias y ejemplos en este mismo blog.
Os dejo aquí debajo unos enlaces relacionados.
Estamos ya en la recta final del proyecto final de curso.
Nuestro grupo compuesto por dos miembros, mi compañero Javier Velardiez y yo.
Estamos creando un proxy de aula (Además de la documentación en joomla,blog diario, bbdd, php y todo lo necesario).
Aún no esta acabado, pero teniendo en cuenta que sólo nos queda una semana de margen para entregarlo.
Publico los enlaces de lo que tenemos hecho por aquí.
Al principio ha sido todo un poco locura, porqué no sabíamos ni como empezar.
Pero poco a poco se ha ido abriendo camino.
Empezamos buscando un buen host gratuito para el proyecto y después de mucho buscar...
Al fin dimos con hostWP.es Aquí nuestra página web creada con el gestor de contenidos joomla, como se pedía en la UF2 de Implantación de Aplicaciones Web. http://proyectoproxy.miwp.eu/joomla/
También tenemos el Blog diario donde documentamos los que vamos haciendo día a día:
Y el trabajo ,lo vamos haciendo en local, pero utilizando un servidor web apache donde alojamos el formulario web para que el profesor lo active en horas de exámenes.
Con nuestro porpio servidor DHCP, servidor DNS y usando el proxy SQUID, administrado desde Webmin y configurado desde terminal Ubuntu (trabajando desde red interna en máquinas virtuales tanto servidor como clientes).
Los filtros de proxy hemos tenido que añadirlos por ACL y http_access como normalmente se hace, pero también tuvimos que añadir por IPtables , para denegar acessos https a facebook,twitter y youtube. Dado que usamos un proxy transparente y este no bloquea accesos https, a pesar de restringir el puerto 443 o redireccionar este al puerto del proxy 3128.
Esta semana que entra terminaremos todo y realizaremos el vídeo de la demo, el abstract y ultimaremos detalles.
Hace poco empece el proyecto final de curso de Grado Superior en Administración de Sistemas.
El proyecto de mi grupo trata sobre un Proxy de Aula, pero tenía la idea de poder añadirle algo de biometria en los accesos.
Bien., estuve mirando algunas posibilidades, pero finalmente no podría hacer nada porqué en todos los casos es necesario un terminal biometrico o un aparato de lectura de huella digital (y todo esto se escapa de nuestras posibilidades económicas).
Aun así me gustaría exponer aquí algunas partes de un programa que estuve probando. Muy chulo, aunque para que funcione al 100% es necesario hacerse con el terminal biometrico ( unos 650 €).
Nos descargamos el programa, y iniciamos la instalación ....
Como véis en la siguiente foto es necesario instalar un servidor Mysql que será el encargado de acumular los datos en Bases de Datos.
Iniciamos la instalación del Servidor.
Elegimos instalación típica.
click en Instalar
Tardará un rato largo.
Le damos a Next en las siguientes pantallas.
Y empezamos a configurar el Mysql
En este paso seleccionamos configuración detallada.
Ahora Elegimos Base de datos multifuncional
A continuación escribimos el path del programa
Elegimos el máximo de conexiones hacía el servidor, como manual y ponemos 15
Habilitamos un puerto tcp/ip
y no
olvidar marcar la casilla de : activar una regla de firewall para permitir las
conexiones
En el siguiente paso: seleccionamos manual -- utf8 referente al
español
para ir finalizando le ponemos contraseña de usuario
root y añadimos la opción de añadir un usuario anonimo para
acceder. para hacer pruebas posteriormente.
Le damos a Ejecutar y si todo va bien ....
click a finalizar
Ahora:
le damos a instalar face id drivers y aparecerá una ventana de información que
nos dice:
Para terminar click en instalar bio securitas
Seguimos los pasos indicados por el asistente de instalación.
y.....
Llego el momento de la verdad....
iniciamos programa.
Vamos a inicio--> todos los programas ---> Dactilplus Biometria
Realizamos la activación, de momento solo podemos clic
a evaluación de prueba.
Ponemos nuestro email y nombre.
Nos informa de que disponemos de 30 días de prueba
Cerramos y volvemos a abrir, para que funcione correctamente el programa.
Nos aparece un mensaje que dice: "No se creo la base de datos, click en aceptar para crearla."
Y click en Aceptar.
Aquí ponemos el nombre del servidor " localhost", y la contraseña del super usuario.
click a crear base de datos para finalizar la operación.
Nos informa de que es necesario reiniciar el programa después de esta operación.
Con darle click a Aceptar se cierra todo automáticamente.
Abrimos de nuevo y ahora veremos:
ponemos un código a el usuario admin y al usuario estándar.
Ahora podemos dirigirnos a: la pestaña: departamentos, nos pedirá el
codigo de admin
Desde aquí podemos crear nuevos departamentos:
Podemos ir a pestaña departamentos-->secciones y añadir nuevas secciones
vamos a pestaña usuarios --> lista de usuarios-->
clic en modificar (abajo) y podemos añadir nuevos usuarios
y una vez introducidos los datos le damos a guardar
podemos
ir a configuración -- terminales biométricos
Aquí, es donde deberíamos poner la Ip de el terminal biométrico (aparato para identificación facial).
También podemos ir a la pestaña Horarios --> crear nuevo horario
Y unas cuantas opciones más, pero para ello, hemos de disponer tanto del software como del aparato para reconocimiento facial.
También hay otro modo de hacer el cambio de binario a decimal y decimal binario por ejemplo:
Mediante una tabla como esta:
Cada vez que subimos un nivel en superindex multiplicamos por 2 su valor como podéis ver. Así podemos subir niveles tantos como sean necesarios.
Pero cuando se trate de Ip's solo habrá 7 niveles, porque son como máximo 1 byte ( 8 bits) , que es hasta nivel 2 7, Ddo que la suma de estos 7 niveles da 255 y esa es la última red posible , Que se usa para la máscara de subred.
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
Por ejemplo si tenemos el código binario : 11010010 en la tabla se mira:
DE BINARIO A DECIMAL
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
1
1
0
1
0
0
1
0
Se trata de sumar los dígitos de la tabla que contengan 1 , si es 0 no se suma es decir : 128+64+16+2= 210
Pero con este mismo método también podemos hacer justo lo contrario pasar un valor decimal a binario por ejemplo con el número 100, ahora en vez de sumar el valor decimal de los niveles los hemos de ir restando.
Por ejemplo empezar con el nivel 2 6= 64, dado que el nivel 7 equivale a 128 y se pasa del número 100.
entonces restaríamos 64 a 100.
100-64=36, y así hasta llegar a 0. Así formaríamos nuestro valor binario es decir:64+32+4
DE DECIMAL A BINARIO
27
26
25
24
23
22
21
20
128
64
32
16
8
4
2
1
0
1
1
0
0
1
0
0
Para convertir un número hexadecimal en decimal o binario, solo debemos hacer uso de la siguiente tabla de datos.
Decimal
Hexadecimal
Binario
0
0
0000
1
1
0001
2
2
0010
3
3
0011
4
4
0100
5
5
0101
6
6
0110
7
7
0111
8
8
1000
9
9
1001
10
A
1010
11
B
1011
12
C
1100
13
D
1101
14
E
1111
Lo más fácil y aconsejable es coger un numero decimal y para pasarlo a hexadecimal primero convertir ese decimal en binario., después dividimos ese número binario en bloques de 4 en 4 y hacemos la conversión final del binario a hexadecimal.
Se empiezan a crear los bloques desde el final hacía delante, y si faltan números, para complementar los bloques de 4 dígitos, se añaden 0 a la izquierda.
Este pequeño cuestionario de pruebas esta especialmente pensado para MySQL Workbench, pero también puede ser usado con comandos similares en PostgreSQL y/o PhpMyAdmin
1.Desde un usuario con privilegios(root) . Haz que el usuario us2 solo se pueda conectar desde la máquina en la que estas y a la base de datos bdprova. También, solo podrá utilizar las ordenes: SELECT, INSERT i LOCK TABLES:
Desde root, vamos a la pestaña de users & privileges, y clicamos en el usuario usu2.
Vamos a schema privileges y a add entry , le ponemos los datos que requiere: el host Localhost ,en Schema (bdprova) y los Privilegios se ponen desde la pestaña inferior.
En Object rights marcamos: SELECT e INSERT. Y en Other Rights: LOCK TABLES.
2.Qué privilegios tiene SecurityAdmin? Qué privilegios se activan al escoger esta opción?
Se activan los privilegios “CREATE USER, GRANT OPTION, RELOAD y SHOW DATABASES".
3.Qué diferencias hay entre DBManager y BackupAdmin?
DBManager tiene todo tipos de derechos para ejercer sobre la administración en todas las bases de datos.
BackupAdmin por otro lado, solo tiene el mínimo de derechos para hacer un backup (copia de seguridad) de cualquier base de datos.
En la siguiente imagen veréis la pantalla para establecer los permisos deseados al usuario seleccionado.Si los permisos no están establecidos solo podrá hacer uso de las bases de datos
Como veis en la imagen de a bajo lo hemos configuradop ara que podamos conectar desde cualquier host y a cualquier base de datos.
5. Haz el usuario/a “a3@%” con los privilegios que necesite y limita el número de consultes a 2 por hora. Después conecta con este usuario y prueba a hacer 3 consultas seguidas.
Con un límite de 2 consultas por hora ,cuando hacemos la tercera consulta en menos de una hora , nos dice que hemos sobrepasado el límite de consultes.
6.¿Como se actualizan las tablas de privilegios?
Con el comando, mediante terminal: Flush_privileges .
7.Cuál o cuales privilegios son necesarios para cambiar la contraseña de los usuarios/as? Pon de nueva contraseña del usuario3 “usuario3usuario3” utilitzando mysqladmin y la orden SET. Escribe las ordenes .
El privilegio será: Grant options ,cuando se hace en el usuario que queremos que dé privilegios.
SET PASSWORD
mysql> UPDATE mysql.user SET Password=PASSWORD('usuario3usuario3')
-> WHERE User='usuario3';
mysql> FLUSH PRIVILEGES;
8.Es posible guardar la contraseña de administrador en el archivo de configuración? Dónde?
Es posible modificando el archivo: my.cnf: sudo nano /etc/myslq/my.cnf de Ubuntu.
En windows modificaríamos el my.ini que esta en el directorio de la instalación.
Hay que añadir estas lineas en el apartado cliente:
[client]
user = nombredeusuario
password = passworddeusuario
port = 3306
host = localhost
9.Desde administrador revoca todos los permisos para el usuario3 (que se quede solo con USAGE).
REVOKE ALL PRIVILEGES ON *.* FROM 'usuario3'@'%';
GRANT USAGE ON *.* TO 'usuario3'@'%';
10.Escribe la orden para mostrar los permisos de usuario3.
SHOW GRANTS FOR usuario3;
ROLLBACK / COMMIT
Al hacer una consulta o transacción en MySQL, se suele empezar con un BEGIN, y acabar con un COMMIT para guardar las ordenes o ROLLBACK para deshacer y no guardar.
11.Como se comprueba si autocommit esta activado? Desactivalo.
Para desactivar el autocommit hemos de hacer :
SET AUTOCOMMIT= 0;
Pero eso se suele hacer cuando usamos tables transicionales, es decir con motor de almacenamiento InnoDB o BDB.
MyISAM, el que estamos utilitzando en esta tabla, es un motor no transicional.
O Sino hacer uso del comando START TRANSACTION + comandos a ejecutar.
En este caso no se ejecutará el autocommit, pero solo en la primera acción.
12.Si quieres hacer una transacción con autocommit activado, pero no lo quieres desactivar, como la haces?
Con el comando START TRANSACTION.
En vez de BEGIN.
I después , añadimos el resto de comandos+ COMMIT para finalizar y que se ejecute o ROLLBACK para que no se ejecute.
13.Cuál es la orden para cambiar una tabla MyIsam a InnoDB?
ALTER TABLE nombretabla ENGINE=InnoDB;
14.Diseña una transacción que ejecutarás desde la línea de ordenes.
Ponemos el Autocommit a 0:
SET AUTOCOMMIT =0;
Después ejecutamos la transacción:
BEGIN;
SELECT * FROM Molinero_myisam WHERE ASIGNATURA ='BDD';
COMMIT;
15.Crear una vista a partir de una tabla ya creada.
USE dbuoc;
CREATE VIEW clients_moli AS SELECT nom_cli, nif,telefon FROM clients;
16.Haz un SELECT donde se vean todos los registros de la tabla virtual.
SELECT * FROM clients_moli;
17.Modifica la vista para incluir o excluir algún campo más.
USE dbuoc;
ALTER VIEW clients_moli AS SELECT codi_cli,nom_cli, nif, telefon, ciutat FROM clients;
18.borra la vista
DROP VIEW clients_moli;
CREAR DISPARADOR (TRIGGER):
crear disparador que se ejecute al insertar un empleado y que actualice el presupuesto sumándolo al sueldo del nuevo empleado.
DROP TRIGGER Dbuoc IF EXIST ;
DELIMITER |
CREATE TRIGGER Dbuoc BEFORE INSERT ON departamentos
FOR EACH ROW
BEGIN
SET new.empleado= (SELECT sueldo FROM empleats);
UPDATE presupuesto SET new.presupuesto= (SELECT sueldo + presupuesto FROM empleados,departamentos )
END ;
|
DELIMITER ;
SELECT * FROM departamentos;
añadir nuevo empleado en la tabla empleados:
INSERT INTO empleados VALUES ('18','desiree', 'moli','3000','DIR','Barcelona','1');
20.Hacer un disparador que se ejecute al borrar un empleado y que actualice el presupuesto del departamento restando el sueldo.
DROP TRIGGER IF EXISTS Dbuoc2 ;
DELIMITER
|
CREATE TRIGGER Dbuoc2
BEFORE DELETE ON empleados
FOR EACH ROW
UPDATE departamentos SET presupuesto=presupuesto - old.sueldo WHERE old.nom_dpt=departamentos.nom_dpt AND old.ciudad_dpt=departamentos.
ciudad_dpt;
|
DELIMITER
SELECT * FROM departamentos;
21.Escribe un procedimiento que es llame proc_apellido, donde apellido es tu apellido, que muestre de todos los clientes de la ciudad que le pones como un parametro, su nombre, su DNI y su núm. de teléfono. Hazlo utilizando parámetros siempre que se pueda. Si no hay ningún cliente, ha de mostrar:
“En aquesta trista ciutat no hi ha cap client...encara!”. Ejecuta el procedimiento para la ciudad de Girona.
DROP PROCEDURE IF EXISTS PROC_MOLI;
DELIMITER |
create procedure PROC_MOLI (IN ciudad VARCHAR(50))
Begin
IF (SELECT nom_cli FROM clientes WHERE ciudad=ciudad) IS NULL THEN
SELECT CONCAT ('EN LA CIUDAD', ciudad, 'NO HAY CLIENTES') AS ciudad;
ELSE
SELECT nom_cli,nif,telefon FROM clientes WHERE ciudad=ciudad;
END IF;
END;
|
DELIMITER
CALL PROC_MOLI (@w);
22.Escribe una función que se llame “func_apellido”, donde apellido es tu apellido, que devuelva la fecha de inicio del proyecto del empleado que cobra más. Utiliza la función MAX y las variables que necesites.
DROP FUNCTION IF EXISTS FUNC_MOLI;
DELIMITER |
CREATE FUNCTION func_moli ( ) RETURNS DATE
-RETURN (SELECT data_inici FROM proyectos INNER JOIN empleados ON
proyectos.codi_proj=empleados.num_proj WHERE codi_empl=(SELECT codi_empl
FROM empleados WHERE sueldo= (SELECT max(sueldo) FROM empleados)));
|
DELIMITER
SELECT FUNC_MOLI();
En lenguaje XML/XSL, igual que en cualquier otro lenguaje, podemos crear varias cosas, desde un texto plano, a cualquier otro tipo, siempre que ejecutemos bien los ocmandos necesarios.
En este caso vamos a crear la estructura para un curriculum web, Empezamos con la demostración del XML ( para obtener código haga clic botón derecho sobre el contenido y seleccione inspeccionar elemento):
#img/pibe.jpgDesirèeMartinezInarejos35 años30Septiembre1978Barcelona42312298DPalacios13408083Barcelonaimg/telefono.png93388.98.33img/mobile.png+34670892212desy_mar_ina@hotmail.comimg/logo.pngimg/separador.png
Administradora de Sistemas / Administración WEB2 Años de experienciaExperta en Windows y sistemas UNIX, (administración, desarrollo
y humanización de Productos).
Diseño 3D, Desarrollo e implementacón de planos digitalizaciones,
diseñoo industrial.
AbrilJulio2012
Imaginación Constructiva. CRADE
Diseño Industrial - Gráfico
Prácticas ProfesionalesCreación y desarrollo de ProductosLicenciatura en Diseño Industrial20052010Facultad de Arquitectura y diseño de la Universidad de Girona.Certificado en Carrera General19982003Bachillerato en IES Pompeu Fabra, Badalona.Certificado de Técnico 19951998Secundaria "IES La Pineda" , Badalona.Inglés50%Catalán90%InformáticaModelado y Diseño en 3-D en software de Diseño. Manejo de Rhinoceros,Crazy Talk, Autocad, Hypershot, 3Ds Studio, poser,Particle illusion y paquete elemental de diseño gráfico, corel Draw, Photodraw de Microsoft y Photoshop CS4.
#
Por otro lado ahora vamos con el XSL para adjuntar el XML a este y que funcione correctamente.(Para ver el código utilizado presione el botón del derecho del ratón y seleccione inspeccionar elemento)
Una tabla, es una cuadrícula donde insertar información.Donde hay celdas, en sentido horizontal se llaman filas y en vertical columnas.
La tabla se crea con la etiqueta: (sin almohadillas)<#table> <#/table>.
Dentro de esta tabla, podemos crear filas que se crean con la etiqueta: (sin almohadillas)<#tr> <#/tr>.
I dentro de estas filas crear celdas con la etiqueta: 8sin almohadillas) <#td> <#/td> o <#th> <#/th>.
Las TD son celdas básicas y simples, las TH son celdas en negrita y centradas.
Ejemplo:
<#table>
<#tr>
<#td>PRUEBA<#/td>
<#th>PRUEBA2<#/th>
<#/tr>
<#/table>
Ejemplo gráfico:
PRUEBA
PRUEBA2
ENCABEZADO DE TABLA Y COLUMNAS:
El título en las tablas se crea con la etiqueta :(sin almohadilla)<#caption>TÍTULO<#/caption>. Que se introduce justo después de la etiqueta <#table>, y antes de abrir un <#tr>.
Veamos un ejemplo gráfico:
TABLA
Prueba
Prueba2
Aunque también dentro de la tabla se pueden crear títulos, insertados dentro de las celdas con la etiqueta <#th> <#/th>.Veamos un ejemplo:
<#table>
<#caption>TÍTULO<#/caption>
<#tr>
<#th>PRUEBA<#/th>
<#th>PRUEBA2<#/th>
<#/tr>
Y ahora en modo gráfico
TíTULO
Prueba
Prueba2
En la siguiente imagen podéis ver el código de ejemplo de una tabla con varios formatos
Combinación de celdas:
Para combinar celdas, se puede hacer de dos modos. Dependiendo del tipo de combinación que deseemos realizar.
Combinación por columnas: Colspan= "numero" de columnas a combinar en una sola
Combinación por filas: Rowspan=" numero" de filas a combinar en una sola
Ejemplo de combinación de 2 columnas en la segunda celda de la primera fila
1
2
3
4
5
6
7
Y ahora un caso contrario en el que aplicaremos La combinación por filas uniremos 2 filas con rowspan.
1
2
3
4
5
6
7
Si aun así no os ha quedado claro, aquí debajo tenéis una imagen. Ya sabéis lo que dicen, una imagen vale más que mil palabras.
BORDES:
Para conseguir la visibilidad de los bordes de las tablas, podemos poner dentro del STYLE lo siguiente (sin almohadillas):