Un poco de todo lo relacionado al area de la informatica... programacion, ocio, configuraciones, en fin herramientas que pueden ser utiles para un estudiante de ingenieria en ciencias y sistemas.

martes, 16 de octubre de 2012

On 22:08 by Unknown in ,    2 comments
Si ya es conocido que con wine se pueden instalar diversos programas que solamente funcionan en windows, algunas veces se vuelve un poco complicado o un proceso tardado, en este caso vamos a utilizar una herramienta llamada playonlinux que se podria decir que es un frontend de wine bastante amigable y facil de usar, se puede descargar desde PlayOnLinux.

Una vez descargado e instalado podemos iniciar el proceso de instalacion, en este ejemplo se instalara Call of Duty 2.

1. Ejecutamos playonlinux y nos vamos a la opcion "instalar programa" y nos aparece una ventana con distintas pestanas para elegir que software queremos instalar, en nuestro caso nos vamos a juegos y elegimos call of duty 2 del listado que nos aparece.


2. elegimos el juego y clic en instalar y nos aparecera el asistente para la instalcion.


3. insertamos el dvd de call of duty 2 y damos clic en siguiente y en donde nos pide el origen del dvd (donde esta montado) elegimos el dvd que insertamos, sino nos aparece hay que dar clic en actualizar.


4. clic en siguiente y la instalacion inicia.


5. Una vez instalado nos muestra nos debe de aparecer en playonlinux.

6. Ahora debemos crackear cod2 para ello nos vamos a "abrir directorio" y copiamos el crack del cd hacia la carpeta.



7. Si iniciamos a jugar veremos que el juego carga muy bien hasta llegar a la pantalla de menu donde nos mostrara una pantalla negra y no podremos hacer nada, por lo que necesitamos instalar "driconf" ya sea desde el centro de software o con el gestor de paquetes y en driconf activamos la compresion de texturas s3tc.



8. Ahora si corremos el juego vemos que ya podemos ver el menu correctamente, pero queda el ultimo paso y es instalar directx 9 que es necesario para cod2 y no tener problemas al jugar.  para ello en playonlinux nos vamos a la opcion configurar y en la pestana instalar paquete seleccionamos directx 9 esperamos la descarga y esperamos la instalacion y listo! ahora si podemos jugar cod2 en linux. 









El proceso de instalacion para NFS undercover es el mismo y simplemente dependiendo del juego descargaran paquetes o actualizaciones de wine para que el juego funcione correctamente, por lo que si el juego pertenece a alguno de los que aparece en el listado no deberia de haber ningun problema.

Les dejo unas imagenes de NFS Undercover instalado en linux el cual funciona bien y como mencione anteriormente depende de los requisitos del juego debemos instalar algun complemento tal como el directx9 para cod2 o automaticamente playonlinux descargara los paquetes que necesita para su funcionamiento.




On 21:14 by Unknown in    No comments

La ultima parte del mini manual para tener una idea general de la utilidad de sql y como utilizarlo para las consultas.

Sentencias para consultas:
Order by: Para ordenar los resultados de una consulta por alguna columna deseada. Ej:
Select * from Estudiantes
Order by nom_alumno
--la consulta se mostrara ordenada por el campo nom_alumno.

Por defecto ordena de forma ascendente pero si se quiere en forma descendente solo se agrega la clausula “DESC”.

select * from estudiantes
order by nom_alumno desc

El siguiente conjunto de instrucciones son bastantes simples y su nombre prácticamente indica prácticamente lo que hacen, por lo que solo se mostraran ejemplos de su uso en consultas.
La sintaxis general es:

Select <clausula> (<campo>) from <tabla>

Donde clausula  se refiere a la instrucción.

EJEMPLOS:

select count (nom_alumno) as ‘cantidad alumnos’ from estudiantes

select sum(notas) as ‘total notas’ from estudiantes –suma todos los campos

select avg(notas) as ‘promedio’ from estudiantes—promedio de todos los campos

select min(notas) as ‘nota minima’ from estudiantes

select max (notas) as ‘nota maxima’ from estudiantes

Otra instrucción bastante útil es DISTINCT la cual sirve para mostrar solamente una vez resultados que puedan tener campos iguales, por ejemplo si tenemos

carnet      nombre    promedio

2000        Carlos          90
1243        Carlos          45

Y realizamos una consulta como:
Select Distinct nombre from Estudiantes  
Solo nos mostrara Carlos una vez.



CONSULTAS A MULTIPLES TABLAS:

Es una de las ventajas de sql y de la sentencia select el poder realizar una consulta de varias tablas simultáneamente y esto es posible si se tienen conexiones entre tablas, es decir se deben tener llaves primarias y foráneas para relacionar la información por medio de ellas.

Hay dos formas diferentes de realizar una consulta múltiple:

Forma 1 Ejemplo:

select campoa1,campoa2, campob1, campob2, campoc1, campoc2
from tablaa, tablab,tablac
where tabla1.campoa1 = tablab.campob2 and –los campos campoa1 y campob2 deben de ser llave -----primaria y foránea por eso se comparan en donde sus valores sean iguales.
tablab.campob1 = tablac.campoc1

Forma 2 Ejemplo:

select campoa1,campoa2, campob1, campob2, campoc1, campoc2
from tabla inner join tablab
on tabla.campoa1=tablab.campob2
inner join tablac tablab.campob1=tablac.campoc1
--aqui relacionamos tablas directamente con inner join para comparar sus campos.

Para terminar les dejo un link de un tutorial bastante completo y muy bien explicado de SQL para profundizar mejor en el tema.

lunes, 15 de octubre de 2012

On 11:42 by Unknown in    No comments

           1- Alter table: Puede usarse para diferentes definiciones, las mas comunes so   
               Anadir nuevo campo a una tabla. Ej:

Alter table Tabla1 add nueva_col varchar (40) null

2-      Eliminar una columna de una tabla, tomando en cuenta que antes de realizar esta eliminación se deben de quitar las restricciones que tiene la columna a eliminar.

Alter table Tabla1 drop column nombre

3-      Agregar una llave primaria o una llave foránea a una tabla. Ej:

Alter table Tabla1 add primary key (campo1)
Alter table Tabla1 add foreign key (campo2)
--Para la llave primaria es necesario que al campo (columna) que se le aplique contenga valores ---únicos.

Drop Table: sirve para eliminar una tabla de la base de datos. Ej:
Drop table Tabla1

CONDICIONES DE BUSQUEDA:

Nos sirven para realizar consultas condicionales utilizando operadores de comparación, lógicos o palabras reservadas de sql.

          1.       Operadores (=, <>, <, >, >=, <=) Ej: Seleccionar los alumnos cuyo carnet este comprendido               
                 entre el 500 y 1000.

select carnet as ‘numero de carnet’,
nom_alumno as ‘nombre estudiante’
from estudiantes
where carnet >=500 and carnet <=1000 – la ultima linea podria cambiarse por
       --where carnet between 500 and 1000

2.       Operadores lógicos (and, or, not):  En el ejemplo anterior vimos el uso de “and” y prácticamente trabajan de la misma forma que en cualquier lenguaje ya sea de programación o de consulta como en este caso y su uso es para consultas compuestas Ej:

select carnet, promedio
from estudiantes
where carnet between 500 and 1000 and not  promedio <60
              --la condcion not sirve para solamente tomar los promedios mayores a 60.

3.       Instrucción “LIKE” :

select carnet, nom_alumno from estudiantes
where nom_alumno like ‘%r%’   
--mostrara todos los registros de alumnos que tengan la letra r en su campo nombre.

4.       Instrucción “Soundex”: Nos sirve para realizar consultas de valores que tenemos la idea de su sonido o pronunciación pero no conocemos exactamente como se escriben. Ej:

select carnet, nom_alumno from estudiantes
where soundex (nom_alumno) = soundex(‘rob’)
--listar los alumnos cuyo nombre suene como ‘rob’

5.       Instrucción “is null”: Se utiliza para listar valore de columnas cuyos campos tengan valores nulos.

select*
            from estudiantes
            where telefono is null or celular is null



domingo, 14 de octubre de 2012

On 20:21 by Unknown in    No comments
Despues de meses de ausencia voy a tratar de publicar la mayoria de trabajos que he realizado (bueno, la mayoria de los que funcionan xD) en especial codigo (metodos, funciones, etc) que pueda ser de utilidad a la hora de realizar una aplicacion y empezar a incluir un poco de teoria relacionada a la informatica en el blog para tener una base tambien sobre lo que se realiza.

El siguiente manual constara de 3 partes y sera sobre diferentes tipos de consultas o "queries" que podemos realizar con sql, en este caso se trabajo con SQL Server 2005.


MANUAL SQL

SQL (structure query languaje) lenguaje de consultas estructurado establecido claramente como el lenguaje de alto nivel estandar para las bases de datos relacionales.
Ocupa tres tipos de sentencias con objetivos particulares los cuales son: DDL, DML, DCL.

DDL (Lenguaje de definicion de datos): Grupo de sentencias que soportan la declaracion de objetos que pertenecen a la BD. por ejemplo instrucciones tales como: Create, alter, drop, etc.

DML (Lenguaje de Manipulacion de Datos): permite manipular los datos almacenados en la base de datos, instrucciones tales como: insert, update, delete, etc.

DCL (Data control languaje): Controla las funciones de administracion que realiza el DBMS, tales como seguridad y atomicidad. Instrucciones tales como: Rollback, Revoke, grant ,etc.

Vamos a iniciar con los ejemplos:
Creacion de una base de datos completa: aqui se indica ubicacion, tamano, tamano maximo y como crecera la base de datos.

create database ventas on primary(
name = ventas,
filename = 'C:\Mis_bases\ventas.mdf',
size = 5MB, Maxsize = 8 MB,
filegrowth = 1 mb
)
LOG ON
(
name = ventas_log,
filename = 'C:\Mis_bases\ventas.ldf',
size = 5MB, Maxsize = 8 MB,
filegrowth = 1 mb
)
la forma "corta" seria  create database ventas;

CREAR UNA TABLA:
 Se crea la tabla "Registro" con cuatro campos.

create table Registro
(Nombre_completo varchar(75),
Pais_de_nacimiento varchar (25),
correo_e varchar (50),
contrasena varchar(20));


LIGADURAS

Las ligaduras nos ayudaran a dejar la restriccion de las entradas al DBMS y no tener que hacer esto en la aplicacion.
1.     Por Defecto: Asigna un valor especifico a una columna cuando este valor no sea dado, es decir asigna un valor por default a un campo en el cual no ingresemos un valor. Ej:


create table empleados 
(
id int primary key,  --id = pk
edad int not null default 18 --edad automaticamente toma el valor 18 si no se ingresa nada
);

 
   2. Por Validacion: Especificamos los valores que se aceptaran para un campo, es decir los valores que    
        el DBMS aceptara para que le sean ingresados. Ej:


create table empleados 
(
id int primary key,  --id = pk
edad int not null default 18 --edad automaticamente toma el valor 18 si no se ingresa nada
Sexo varchar (1) check (Sexo in ('f', 'm')) -- se verifica que el valor ingresado sea f o m
)


    3. Por referencia: Especifica los valores que son aceptados por una columna y estos valores son    
        tomados de una columna que pertenece a otra tabla. Ej:


create table empleados 
(
id int primary key,  --id = pk
edad int not null default 18 --edad automaticamente toma el valor 18 si no se ingresa nada
Sexo varchar (1) check (Sexo in ('f', 'm')), -- se verifica que el valor ingresado sea f o m
no_func int references trabajos (func_id)) -- toma el valor de func_id de la tabla "trabajos"

create table trabajos
(id intfunc_id int unique)  --unique no permite duplicados es una llave alternativa

LLAVA PRIMARIA: Un campo unico que identifica de manera inequivoca a un registro.
LLAVE FORANEA: Se define una columna o combinacion de columnas en las cuales su valor correspondera al valor de la llave primaria de la misma tabla o de otra tabla. Ej:

create table cliente
(email varchar (30) unique not null,
numcli int not null primary key)

create table pedido(
numped int not null primary key,
numerocli int not null, foreign key (numerocli)
references cliente (numcli)
)
--NOTA
--Primero crear las tablas que solo tienen llave primaria, luego las que tienen
--llave foranea.







miércoles, 6 de junio de 2012

On 20:56 by RC in    No comments
Muchas veces es necesario realizar un menu basico para alguna aplicacion, generalmente en las que se necesite editar textos.

Una forma sencilla de hacerlo es crear metodos que puedan ser reutilizados independientemente de la aplicacion y simplemente haciendo los cambios necesarios de acuerdo a los requerimentos.

Les dejo un pequeno ejemplo sobre un menu en java, se realizo en netbeans 7.1.1 jdk 7.

Descarga en:


Menu_Java

martes, 31 de enero de 2012

On 18:51 by RC in    No comments
El post anterior trata sobre como utilizar jflex cambiando las variables de entorno en windows, es una manera funcional de hacerlo pero no es eficaz, una alternativa es utilizar una clase en java y con ella darle lectura a un archivo .jflex y generar la clase .java con el analizador lexico, esto importando la librería de jflex a nuestro proyecto.

Para esta demostración se trabajara sobre Ubuntu pero es totalmente funcional para windows.

1.      Lo primero es descargar jflex, ya sea por el gestor de paquetes o directamente desde la página oficial.

ya que lo descargamos creamos un nuevo proyecto.

2.  Agregamos la librería jflex.jar al proyecto



3.  Ahora debemos crear una clase auxiliar que leerá el archivo de entrada .jflex para generar una clase de java y trabajar con ella nuestro proyecto. El código de la clase auxiliar es el siguiente:


import java.io.File;
public class milexer{
public static void main(String[] args){
/*ubicacion exacta del archivo a leer, preferentemente ponerlo dentro de la carpeta del proyecto
que creamos */
JFlex.Main.generate(new File("/home/ubuntu/NetBeansProjects/simplelex/src/simplelex/archi.flex"));
}}
Una vez creada la clase la ejecutamos y nos tienen que aparecer los resultados de la ejecución en pantalla



Y como podemos ver se ha agregado al proyecto la clase generada a partir de la lectura de nuestro archivo .jflex, en este caso la clase creada fue la Scanner.java.



Como se puede observar en la clase lo único que hay que ir cambiando al generar diferentes analizadores es el string para leer el archivo y que a la misma vez es lo único que incluye tal clase.

lunes, 30 de enero de 2012

On 21:11 by RC in    No comments
Jflex es un generador de analizadores lexicos utilizado para java, tiene una sintaxis especifica en la cual a partir
de expresiones regulares declaradas permite generar un analizador lexico como una clase para java.

El siguiente post es para mostrar como utilizarlo en un ambiente windows realizando un cambio en las variables
de entorno del sistema operativo.

1.     1.   Descargar Jflex de la pagina :  http://jflex.de/
2.     2.  Una vez descargado extraer en alguna carpeta que sea del disco local de preferencia.
3.     3.  Entramos a la carpeta donde fue extraído jflex e ingresamos a la carpeta “bin”

   En esa carpeta vamos y editamos el archivo jflex.bat que contiene lo siguiente:

__________________________________________________________________________
@echo off
REM Please adjust the paths JFLEX_HOME and JAVA_HOME to suit your needs
REM (please do not add a trailing backslash)

set JFLEX_HOME=C:\jflex-1.4.3

REM only needed for JDK 1.1.x:
set JAVA_HOME="C:\Program Files (x86)\Java\jdk1.6.0_21"

REM -------------------------------------------------------------------

set CLPATH=%JAVA_HOME%\lib\classes.zip;%JFLEX_HOME%\lib\JFlex.jar

REM for JDK 1.1.x
%JAVA_HOME%\bin\java -classpath %CLPATH% JFlex.Main %1 %2 %3 %4 %5 %6 %7 %8 %9

REM for JDK 1.2
rem java -Xmx128m -jar %JFLEX_HOME%\lib\JFlex.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

_____________________________________________________________________________

Las líneas de color rojo son las únicas que han sido modificadas colocando primero la ubicación de donde tenemos la carpeta de jflex y la segunda es la ubicación de donde se encuentra instalado nuestro jdk.

4.       Una vez editado el archivo jflex.bat damos clic derecho a MIPC , clic en propiedades, luego   seleccionamos opciones avanzadas y ahí le damos clic a variables de entorno.


Vamos a sustituir el valor original por :

;C:\Program Files (x86)\Java\jdk1.6.0_21\bin;C:\jflex-1.4.3\bin

Donde primero se incluye un punto y coma (;) luego la ubicación del jdk, después nuevamente punto y coma y la ubicación de jflex, clic en todos los “ok” necesarios.

Nota: al cambiar las variables de entorno algunos comandos como por ejemplo "ipconfig" ya 
no son reconocidos por el cmd, por lo que se recomienda guardar el valor original del valor
de las variables de entorno en un archivo de texto por si se desea regresar a los valores originales.


5. Tomamos el archivo .jflex que queramos compilar y lo guardamos en alguna carpeta del disco local, para mayor comodidad lo guardo en una carpeta directamente ubicada en el disco local por ejemplo una carpeta llamada “archivosjflex” para que sea un poco más fácil accederla desde la consola.

          Abrimos la consola (cmd)  y nos dirigimos a la carpeta “archivos”  escribiendo
   cd “c:\archivosjflex” y luego que nos coloque dentro de la carpeta tecleamos jflex     <nombre_archivo>.jflex, que en este caso seria  jflex ejemplo.txt  
(la extension del archivo a ejecutar es indiferente pero se recomiendoa utilizar .jflex , en        este caso se trabaja con un .txt)

        si todo va bien nos debe mostrar en la consola:



Lo cual nos debe generar un archivo .java que es una clase que estará lista para utilizar en nuestro proyecto.

la clase generada se encuentra en la carpeta "c:/ archivosjflex"


Ahora para incluir la clase generada con jflex solo la incluimos en nuestro proyecto copiándola dentro de la carpeta “src” (donde se encuentran todas las clases) del proyecto en el que vayamos a trabajar e incluyendo la librería jflex.jar en nuestro proyecto y ya se puede modificar, compilar, ejecutar, etc  el proyecto completo.

ACTUALIZACION:
Lo mencionado de las variables de entorno pues no es necesario borrar las que ya teníamos y sustituirlas sino simplemente al final de nuestra variable de entorno podemos agregar ";" si no lo tiene y pegar nuestra nueva linea de variable de entorno que seria:
C:\Program Files (x86)\Java\jdk1.6.0_21\bin;C:\jflex-1.4.3\bin 
y todos los comandos funcionaran correctamente en el cmd.

Por ultimo sino se desea trabajar todo lo de jflex en el cmd podemos ejecutar el jflex en consola escribiendo "jflex" en el cmd y nos abrirá un pequeño programa con el cual podemos trabajar la fase de creación del analizador léxico.

sábado, 21 de enero de 2012

On 19:24 by RC   No comments

miércoles, 28 de diciembre de 2011

On 23:05 by Cinoter   No comments


Es una estructura de datos dinámica que consiste en una serie de nodos con su respectivo apuntador hacia el siguiente nodo de la lista. Al utilizarse este tipo de estructura de datos obtendremos un mejor aprovechamiento de los recursos disponibles ya al no ser necesario algún nodo este deja de ocupar espacio en memoria.

El siguiente link contiene un ejemplo practico con algunas funciones adicionales.