martes, 5 de julio de 2011

Ejercicio BASH

Estais aprendiendo Bash pues aquí va un estupendo ejercicio para que aprendais un poco más de nuestro sistema operativo preferido:

Ejercicio:

Diseñar un pequeño script que reciba como parámetro un nombre de directorio, de forma que se cree ese directorio en el interior del directorio de inicio de sesión de unos determinados usuarios. Debe cumplir los siguientes requisitos:

  • El nombre del directorio se pasa como parámetro

  • Si no hay parámetros se toma como nombre del directorio “defecto” y si el número de parámetros es mayor a uno, se toma el último parámetro.

  • El directorio se creará para todos los usuarios cuyo uid sea mayor o igual a 500

  • Si el directorio ya existe añadirá un mensaje con el usuario y la fecha y hora actual al fichero errores.txt

  • El directorio tendrá permisos de lectura,escritura y acceso solamente para el propietario

  • El directorio pertenecerá al usuario correspondiente.

SOLUCION (no seais tramposos):

#! /bin/bash
clear
if [ $# -eq 0 ];then
directorio= "defecto"
else
if [ $# -gt 2 ];then
while [$# -gt 1 ];do
shift
directorio= $1
done
else
directorio=$1
fi
fi
#echo "$directorio"
cat /etc/passwd |cut -d : -f 3| while read usuario
do
if [ $usuario -gt 500 ] && [ $usuario -ne 65534 ]; then
#echo $usuario
home1=`cat /etc/passwd| grep $usuario | cut -d : -f 6`

#echo "$home1/$directorio"
if [ -d $home1 ];then
if [ -d $home1/$directorio ];then
echo "$home1/$directorio erroneo ya existe" >> error.txt
else
mkdir $home1/$directorio
chown $usuario $home1/$directorio
chmod 7 $home1/$directorio
fi
fi
fi
done

lunes, 4 de julio de 2011

Diferencia entre require e include en PHP

Diferencia entre require e include en PHP

F. Javier Carazo Gil 4 julio 2011 Noticias 1 Comentario
Cuando aprendes a programar en PHP, dos de las primeras funciones que usas son include y require. Prácticamente sirven para lo mismo, insertar código de un tercer fichero en el fichero actual (en otros lenguajes de programación hay funciones o construcciones similares). Pero, ¿cuál es la diferencia entre ellas?

Antes de la versión 4.0.2 de PHP (que prácticamente ninguno usaréis, o al menos deberéis usar), la diferencia radicaba en que require siempre leía el archivo al que hacía referencia, incluso si la línea de código en que se encontraba no se ejecutaba nunca (por ejemplo dentro de un condicional). include en cambio sí que se veía afectado por los condicionales y sí que podíamos hacer que no se ejecutara (por lo que tampoco se ejecutaba el código del archivo diferenciado).

Sin embargo, por razones del equipo de desarrollo de PHP, a partir de dicha versión la diferencia es la siguiente: si el archivo llamado no existe, include sólo da un warning, y sigue ejecutando, mientras que require produce un error e interrumpe el flujo de ejecución.

INFORMACION SACADA DE:
http://www.linuxhispano.net/2011/07/04/diferencia-entre-require-e-include-en-php/

Procedimiento almacenado Jornas y partidos

Hola a tod@s, en nuestro ciclo superior en el IES. Gran Capitán, se nos presento el siguiente reto en la asignatura de bases de datos, el cual un consitia en: (teniendo una base de datos de baloncestos que guarde toda la informacion relevante a una competición que calcurara mediante un procedimiento almacenado las jornadas así como los enfrentamientos de las mismas, dando por rectricion que un equipo no puede cjugar en dos estadios al mimo tiempo.

En nuestro caso elegimos montar la base de datos en SQL server para compararo con el software libre que estabamos acostumbrados a utilizar.
Para la creacion de este triger fueron nesesarios un cursor(puntero que recorre el resultado de una consulta metida en una variable) y 4 if anidados os pongo este triger porque esta muy completo y dispone de 2 bucles anidados, lo cual es idoneo para ver un ejemplo o aprender sobre trans-SQL

CREATE PROCEDURE [dbo].[calculajornadas]

AS
--Declaracion de variables nesesesarias--
declare @id_jornada as int
declare @id_jornada_inicial as int
declare @id_jornada_final as int
declare @id_visitante as int
declare @id_local as int

--Cursor--
declare Cursorequipos cursor for select equipos.id,equipos1.id from equipos, equipos as equipos1 where equipos.id != equipos1.id
declare @fecha as Datetime
declare @salto as int
declare @contador as int
declare @bandeta as int
BEGIN
--asignaciones--
set @salto = (select count(*) from equipos)
set @contador = 1
set @fecha= GETDATE()

insert into jornadas (fecha) VALUES(@fecha)
set @id_jornada_inicial = (Select max(id) from jornadas)
--Creamos todas las jornadas--
while @salto * 2 > @contador
begin
insert into jornadas (fecha) VALUES(@fecha)
set @fecha = DATEADD(day, 1, @fecha)
set @contador = @contador + 1

end

set @id_jornada_final = (Select max(id) from jornadas)

open Cursorequipos
fetch next from Cursorequipos into @id_local, @id_visitante

while @@fetch_status = 0
begin

set @bandeta = 1
set @id_jornada = @id_jornada_inicial
--bucle 2 anidado
while @bandeta=1
begin
if (select count(*) from partidos where id_visitante=@id_local and id_jornada=@id_jornada ) = 0
begin
if (select count(*) from partidos where id_local=@id_local and id_jornada=@id_jornada ) = 0
begin


if (select count(*) from partidos where id_local=@id_visitante and id_jornada=@id_jornada ) = 0
begin
if (select count(*) from partidos where id_visitante=@id_visitante and id_jornada=@id_jornada ) = 0
begin
insert into partidos (id_jornada, id_local,id_visitante) values (@id_jornada,@id_local,@id_visitante)
set @bandeta = 0
end
else
begin
set @id_jornada = @id_jornada + 1
set @bandeta = 1
end
end
else
begin
set @id_jornada = @id_jornada + 1
set @bandeta = 1
end

end
else
begin
set @id_jornada = @id_jornada + 1
set @bandeta = 1
end
end
else
begin
set @id_jornada = @id_jornada + 1
set @bandeta = 1
end

--else
--begin
-- set @id_jornada = @id_jornada + 1
-- set @bandeta = 1
--end

--cierre del segundo bucle
end
--avansa un registro--
fetch next from Cursorequipos into @id_local, @id_visitante
end
close Cursorequipos
deallocate Cursorequipos
END

domingo, 3 de julio de 2011

Codigo de barras en .NET

En la creacion de aplicaciones en .net y VB es muy util la utilizacion decodigos de barras para ayudar a facilitar esto os pongo un documento con diversos codigos, ami resulto muy util.

Net Barr As

Ejercicio mini Foro

APLICACIÓN WEB MINIFORO Supongamos que tenemos que construir una aplicación web llamada miniforo, que distinguirá entre varios tipos de usuarios y permitirá a los usuarios publicar mensajes en la página web para compartir opiniones sobre temas diversos, pues este es un practico ejercicio para aprender el lenguaje php o ASP
Espero que os sea de gran ayuda


miniforo