sábado, 20 de octubre de 2012

Inslatación de OpenSolaris(Sistema Operativo)

Autor: Fermín Pradena.
Competencia: Gestión de TI, 2°Sem.
Palabras clave: Inslatación OS, OpenSolaris, grupos, usuarios, permisos.


Descripción de la actividad
 En esta actividad del ramo Mantención y administración de Sistemas debimos realizar un reporte sobre instalación de un sistema operativo, en este caso OpenSolaris, donde también reportamos la creación de grupos y usuarios.

Desarrollo de la actividad

Instalación.
Seleccionamos el idioma tipeando el identificador.

  Al entrar a la primera vista del escritorio ejecutamos “Instalar OpenSolaris”, ya que hasta el momento estamos viendo solo una version de prueba que nos da este OS, por consecuencia solo nos sirve para trabajar temporalmente en él hasta que apaguemos el sistema.




Se abre el asistente de instalación, y proseguimos siguiendo las instrucciones.



Seleccionamos el donde instalar el OS, en este caso, seleccionamos nuestro disco duro.



Posteriormente fijamos la zona horaria, fecha y hora.



Seleccionamos el idioma.



Especificamos una contraseña para el ‘usuario root’, creamos un usuario con su respectiva contraseña y le damos un nombre a nuestro equipo.



Verificamos si nuestra información está correcta y por ultimo presionamos el boton rearrancar.
Con eso ya tenemos nuestro SO OpenSolaris instalado en nuestro ordenador.


Luego de reiniciar nuestro ordenador ya tiene instalado correctamente el SO, iniciamos con nuestro usuario.

 

Ahora mostraré como crear y para qué; un grupo.



Creamos el grupo “umbrella” con una ID de grupo el cual nos permitirá identificarlo al ejecutar comandos en la consola. Abajo nos da la opción de añadir usuarios a nuestro grupo recién creado y podemos observar los todos los usuarios que existen en el sistema.
En la pestaña “usuarios” creamos uno, llenamos los campos correspondientes como el nombre y contraseña y le damos clic en “aceptar”.



Añadimos los usuarios que creamos anteriormente a nuestro grupo también anteriormente creado.



La creación de usuarios y grupos sirve para mantener un orden en usuarios, y definir que se le permite hacer a un usuario en un equipo, para esto se configuran los permisos en el usuario o grupo, se le puede dar acceso a tales direcciones y otras no, como tambien se le puede permitir editar o no tales archivos, se puede hacer esto en usuarios y grupos, si se quiere hacer individualmente se realiza para un usuario específico, pero si se desea darle los mismos permisos a muchos usuarios, es mejor crear un grupo y darle ciertos permisos, añadiendo a ese grupo los usuarios que deban tener los permisos que configuramos en el grupo.
Aquí algunas definiciones que se nos dan como opciones a la hora de configurar los permisos de un usuario o grupo:
En los permisos de acceso a archivos, va depender de los privilegios que posea el usuario que desea acceder a dicho archivo.
Los permisos que le podemos dar a un archivo los clasificamos en:
Ninguno: Permite bloquear a todos los usuarios a excepción
del súper usuario o conocido como “root” y a los miembros o
usuarios que estén en cierto grupo.
Solo lectura: Permite leer pero no modificar, no tiene permiso de cambiar algo en el archivo podríamos decir un acceso para usuarios “invitados”.
Lectura y escritura: permite que cualquier usuario o
Miembro un especifico grupo leer y modificar el archivo a cual desee trabajar.
El anterior es usualmente permitido solo para el administrador del SO.


Reflexión
Como reflexión y conclusión de esta actividad puedo comentar que es una actividad interesante, ya que nos da la oportunidad de conocer un sistema operativo completamente desconocido para personas comunes y al mismo tiempo tambien aprender que no existen muchas diferencias de uso con los sistemas comunes que ya usamos como lo son Ubuntu/Linux y los de la familia Windows, siendo esta ultima la mas conocida. Es importante aprender a utilizar nuevos SO ya que con nuestra carrera es necesario saber todo lo posible acerca de nuevos sistemas ya que algun dia podriamos trabajar con cualquiera de ellos y así tambien saber las ventajas y desventajas de cada uno.


Te invito a que compartas comentarios y dudas acerca de esta actividad, gracias...

Programa en Java con interfaz gráfica(Swing)

Autor: Fermín Pradena.
Competencia: Aplica las Ciencias de la Ing, curso 1er Sem.
Palabras clave: Java, Swing, programación, interfaz gráfica.

Descripción de la actividad
Esta es una actividad que se realizó en un laboratorio del ramo programación I, el trabajo constaba de crear un programa en java que tuviera una fórmula matemática. Ésto ya lo habiamos hecho en varios programas comunes anteriormente, pero esta vez teníamos que desarrollar el programa con una interfaz gráfica, para que ésta tenga una apariencia común y amigable para algún usuario común que desee utilizar el programa, no siendo tan solo un programa ejecutable en consola.
El programa que teníamos que desarrollar tenía que ser capaz de calcular el salario semanal de un trabajador, tomando en cuenta que en las primeras 35 horas trabajadas se le pagaban $15.000 por cada hora, y cada hora extra aparte de las  primeras 35 horas, se le paga $20.000 por cada una. La interacción del usuario con el programa es sólo que él debe ingresar sus horas trabajadas en una semana, presionar un boton y con ello el programa le indica su salario.

Solución

Primero empezamos diseñando nuestra interfaz del programa, para esto no necesitamos codigo java, simplemente usando el programa NetBeans este nos da una gama de objetos gráficos para utilizar.

Insertamos dos campos de texto y un botón, asignandole un nombre de variable(no visible en la interfaz) a cada objeto. Además dos etiquetas para indicar lo que sucede en cada campo de texto.



Con ésto ya tenemos terminado lo que sería la interfaz, pero falta lo mas importante; el código, ya que de por sí esto ya se puede ejectutar, se pueden ingresar datos, pero al momento de presionar el botón no sucederia nada, ya que no tiene ninguna orden aún.
Entonces para comenzar a escribir el código hacemos doble click en el boton y eso nos dirigirá a donde tenemos que escribir el código.
En el código tenemos que ordenar que nos tome los datos ingresados en el campo de texto que llamamos "dato" y nos guarde eso en una variable de tipo int(entero) para trabajar con ella.
Realizamos condiciones para tal caso, diciendo tal como se nos planteaba el problema; las horas hasta 35 valen $15.000 cada una, y las extra $20.000, y por si alguna razón se le ingresan datos invalidos, en este caso valores menores a 0; el programa enviará mensaje error. Le ingresamos esas ordenes en código java al programa, utilizando comandos if. Finalmente le ordenamos que nos imprima el salario calculado en el campo de texto que llamamos "salida". Todo esto anteriormente indicado, en código java sería así:


 Finalmente revisamos si es que nuestro projecto está bien compilado, luego guardamos.
Para conluir enseño un ejemplo de como quedó el programa y su perfecto funcionamiento.


Reflexión
Esta primera actividad con interfaz gráfica(swing) a mi gusto fue entretenida, ya que trabajamos con el diseño propio de cada uno, se da la posibilidad de hacer un programa de aspecto tal y como uno quiera, ademas su forma de trabajar en código en sí varia un poco, pero no es dificil acostumbrarse a ella. 

Te invito a que compartas comentarios y dudas acerca de esta actividad, gracias...





jueves, 18 de octubre de 2012

Primera actividad.-Proyecto Robótica(2° semestre)


Autor: Fermín Pradena.
Competencia: Desarrollo de Software, 2° Semestre.
Palabras clave: Robótica, programación, NXT, NXC, lego.

Descripción de la actividad
En esta primera actividad realizada en el ramo de Proyecto Robótica, tuvimos que armar y programar un robot que se desplazaba por una superficie rectangular blanca con algunos puntos negros y paredes en sus bordes. Cada vez que el robot chocaba con una pared(detectando con el sensor de tacto), éste debia retroceder un poco, girar y disminuir su potencia, contando cada vez que cochaba. Así como cuando también cada vez que detectaba un punto negro (con su sensor de luz) también debia contarlo, girar y aumentar su potencia. El robot avanzaba y contaba cada choque con pared y punto negro hasta que escuchaba un sonido de determinado volumen., informando en su pantalla la cantidad de choques y puntos negros detectados.

Código de la solución, con sus respectivos comentarios

/*Grupo Umbrella*/

/*El programa consta de una subrutina con paso de parámetros y el task main*/


/*Los parámetros de la subrutina son un t entero que representa el tiempo, un string direccion que nos indica hacia donde va a girar el robot

y un string evento que nos ayuda a diferenciar si es un choque contra la pared o si el robot detectó un círculo.
La lógica es una secuencia de if, que dependiendo los parámetros que le pasemos, va a realizar una acción*/

sub GiroPotencia(int t, string direccion, string evento){
if(direccion=="D"&&evento=="choque"){
OnFwd(OUT_A,40);
OnRev(OUT_C,40);
Wait(t);
Off(OUT_AC);
Wait(100);
}
else if(direccion=="I"&&evento=="choque"){
OnFwd(OUT_C,40);
OnRev(OUT_A,40);
Wait(t);
Off(OUT_AC);
Wait(100);
}
else if(direccion=="D"&&evento=="circulo"){
int PotRandom=Random(100);
OnFwd(OUT_A,PotRandom);//potencia aleatoria entre 0 y 100
OnRev(OUT_C,PotRandom);
Wait(t);
Off(OUT_AC);
Wait(100);
}
else if(direccion=="I"&&evento=="circulo"){
int PotRandom=Random(100);//potencia aleatoria entre 0 y 100
OnFwd(OUT_A,PotRandom);
OnRev(OUT_C,PotRandom);
Wait(t);
Off(OUT_AC);
Wait(100);
}
}

task main(){
SetSensorLight(IN_3);
SetSensorSound(IN_2);
SetSensorTouch(IN_1);
int verificador, ModPot, contchoque, contpuntos, aleatorio;
verificador=1;// bandera para entrar y salir del ciclo while
ModPot=0;// modificador de potencia de motores
while(verificador){
NumOut(60,LCD_LINE3,ModPot);
if(ModPot<=-30||ModPot>=40)// si la potencia de los motores llega a 0 o a 100, el modificador se reinicia y vuelve la potencia a 60
ModPot=0;
OnFwd(OUT_AC,60+ModPot);//la potencia se modifica dependiendo si choca con pared o detecta círculo
if(SENSOR_2>=100)
verificador=0;// con un ruido fuerte sale del ciclo
if(SENSOR_1==1){//choque con pared
OnRev(OUT_AC,50);
Wait(500);
aleatorio=Random(100);//para hacer girar al robot a la derecha y a la izquierda
if((aleatorio%2)==0)
GiroPotencia(1400,"D","choque");
else
GiroPotencia(1400,"I","choque");
ModPot=ModPot-10;//disminuye potencia
contchoque++;//cuenta cuantas veces choca con la pared
}
if(Sensor(IN_3)<40){//detecta negro
contpuntos++;//cuenta cuantas veces detecta círculo
aleatorio=Random(100);//para hacer girar el robot a la derecha y a la izquierda
if((aleatorio%2)==0)
GiroPotencia(700,"D","circulo");
else
GiroPotencia(700,"I","circulo");
ModPot=ModPot+10;//aumenta potencia
}
}
NumOut(60,LCD_LINE1,contchoque);//muestra contador de choques
NumOut(60,LCD_LINE2,contpuntos);//muestra contador de circulos
Off(OUT_AC);
Wait(10000);
}


Como conlusión de este código, se puede apreciar que ya se ocupan contenidos de programación NXC en comparación con el semestre pasado de este ramo(programación de robots), como lo son
subrutinas y paso de parámetros, además de el uso de Play tone(sonidos). 

Video de la actividad 

 

Reflexión
Esta primera actividad en comparación con actividades del ramo pasado(programación de robots) fue muy complicada, ya que ahora trabajamos con contenidos recién aprendidos y en tan solo una semana de trabajo, pero nos sirvió para acostumbrarnos y tener experiencia para las siguientes actividades, y la primera nunca es la más dificil, pero teniamos las herramientas para manejarlo.


Te invito a que compartas comentarios y dudas acerca de esta actividad, gracias...