domingo, 22 de febrero de 2015

123


Name Surname Age
Raja Dey 18
Mamata Sharma 20
Avijit Sharma 21
Sharanya Dutta 26
Nabin Roy 27

jueves, 16 de junio de 2011

Practicas de PLE

Publico en mi blog todas practicas que realice el primer año de curso. Cualquer interesado puede echar un vistazo o cojer una funcion para sus ideas. Espero que sirva para algo en vuestros programas.

Se trata de 5 juegos y 2 aplicaciones:
1. Laberinto
2. Runner (prototipo)
3. Batalla marina (Battle ship)
4. Juego de los tanques
5. Buscaminas
6. Chat
7. Matrix

viernes, 6 de mayo de 2011

Colocar un script "propio" entre las llamadas de unos programas mediante tuberias



Supongamos:
$ls | grep s
Esto va a retornar todos los nombres de archivos que tengan "s", pero ahora supongamos:
$ls | ./miscript.sh | grep s
¿Qué debería contener el archivo miscript.sh para que eso siga funcionado como si no estuviera?
La respuesta: que miscript.sh sea capaz de leer la salida de ls y pasarla a grep.

¿Como?
Bien, tenemos que diseñar un script que su entrada "por parámetro" sea fijo. Vamos ver en caso de comando grep.


grep - sin pasar ninguna opción, funcionaría:
$grep PATRÓN FICHERO, habrá que pasar DOS PARÁMETROS para que funcione el comando.
$ls | grep PATRÓN, en este caso 1 parámetro y salida de ls será como de "FICHERO", porqué esperará la salida de tubería.

$grep, saldrá un mensaje ayuda.

Bien, grep funcionara en tres modos: sin pasar nada (generará el mensaje de ayuda), con 1 parámetro (cuando antes está una tubería y al parámetro tomará como PATRON) y con 2 parámetros (cuando buscamos un patrón en un FICHERO) y cuando mas de 2 busca en todos FICHEROs pasados por parámetro.

Probamos esto:
$ls | grep - (numero de parametro 0) - NO FUNCIONA

$ls | grep s miscript.sh - (numero de parametro 2) busca PATRON en FICHERO, como si no estuviera "ls |"
$grep miscript.sh - (numero de parametro 1) NO FUNCIONA

Conclusión: Nuestro script debe tener una regla especial para determinar en que momento ejecutar una orden adecuada.

Volvemos a nuestra pregunta:
 $ls | ./miscript.sh | grep s
¿Como hacer que funcione esto?

Diseñamos miscript.sh de siguiente manera: Si a miscript.sh le pasamos un parámetro que sea el nombre fichero, imprime linea-por-linea su contenido. Si le pasamos mas de 1, generará mensaje de error. Y si no le pasamos nada, entonces la entrada será de una tubería.

if [ $# -gt 1 ]; then
     echo "Pasar solo un parametro"!
elif [ $# -eq 1 ]; then
     while read line; do echo -e "$line"; done < $1
else
     while read A; do
              echo $A
     done
fi


Si rompemos las reglas, nuestro script no funcionará bien. (Como en grep que hemos visto).
 
De este modo, funcionara bien:
$ls | ./miscript.sh | grep s   =  $ls | grep s
 
[Puede descargar el script aqui.]

jueves, 5 de mayo de 2011

Trabajo 3. Evaluación 1. Gestor de descargas de fotos con wget

Crear un script que descargue las diferentes imágenes del blog de viñetas http://blogs.publico.es/manel/ y las guarde en carpetas por meses y años.


Como opcional, he diseñado otro script que obtiene todos los vinculos a otras publicaciones y baja sus fotos.

jueves, 28 de abril de 2011

Noticias de Windows 8. History Vault

Se han filtrado unos imágenes de una aplicación de Windows 8 llamada "History Vault". Recordamos que a partir de Windows Vista  el sistema de restauración de archivos de sistema, claves de Registro y etc... con una interfaz de usuario se llama "Shadow Copy". Lo que permite esta tecnología, que los cambios a nivel de bloqueo en cualquier archivo del disco duro pueden monitorizarse y restaurarse, sin importar su ubicación.
"History Vault" tendrá una amigable interfaz que permitirá explorar versiones anteriores de archivos usando una “línea de tiempo” (la misma ventaja que actualmente tiene ahora "Time Machine" de Apple sobre las Shadow copies).

La primera noticia del desarrollo de Windows 8:
En noviembre de 2009, una diapositiva del ciclo de desarrollo de software mostrada por Microsoft en la Professional Developers Conference 2009 permitió entrever que la siguiente versión de Windows (conocida con el nombre clave temporal de "Windows 8") está programada para ser publicada alrededor de 2012.
 Para mas información de "History Vault" pulsar aquí.

lunes, 28 de febrero de 2011

Crear dimensiones en C con Ncurses

Imaginemos que tenemos un mapa de juego. Cuando lo imprimimos "tal cual", será de un caracter no se intiende nada.

Y si queremos dibujar de "dos caracteres," habrá que tocatear el codigo mucho. En un juego un caracter es nada interesante, cuando representando un caracter en 2 o mas dimensiones podemos dibujar objetos.

por ejemplo: 
$=un tanque en 1 caracter






Pero cuando dibujamos en 2 dimensiones  (5x5) parece mas a un tanque de juego.




Pues para dibujar el mapa en 2 dimensiones SIN TOCAR EL MAPA ORIGINAL, diseñamos esta función:

#include <stdio.h>
#include <string.h>
#include <curses.h>
#include <unistd.h>

void Dimension(int x, int y, char caracter, int Dimension);

int main(int argc, char** argv)
{
    initscr();
    char palabra[5][30]={"#####","#$  #","#  b#","#####"};
   
    int i,j;
        for (i=0;i<4;i++)
            for (j=0;j<strlen(palabra[i]);j++)
            Dimension(i,j,palabra[i][j],5);
        refresh();
       
    getch();
    endwin();
    return 0;
}

void Dimension(int x, int y, char caracter, int Dimension){
    int i,j;
    char tanque[25]={'$','$','$','$','$',
                    ' ','$','$','$',' ',
                    ' ','$','$','$','$',
                    ' ','$','$','$',' ',
                    '$','$','$','$','$',};

   int k=0;
    for (i=x*Dimension;i<x*Dimension+Dimension;i++){
        for (j=y*Dimension;j<y*Dimension+Dimension;j++){
             if (caracter=='$' && Dimension==5)
                 mvprintw(i+1,j+1,"%c",tanque[k++]);
             else mvprintw(i+1,j+1,"%c",caracter);
        }
    }
}
El resultado sería esta imagen.
Para poder compilar tiene que instalar primero Ncurses (Linux) o Pdcurses (Windows).

martes, 8 de febrero de 2011

Dar vida a la consola de texto con Biblioteca Ncurses

¿Que es Ncurses?
Ncurses es una biblioteca de programación que permite al programador escribir interfaces basadas en texto.

La diferencia en programación con bibliotecas estandar y ncurses, que ncurses es capaz de "crear" consolas logicas. En la consola de texto (ver imagen -->) con la biblioteca estandar de C, la entrada y salida de un caracter o texto es siempre por la izquierda hacia derecha y casi siempre confirmando con ENTER. Donde esta parpadenado un caudrado a la espera de caracter, es la consola.
Sin embargo, ncurses puede crear una consola logica en un punto determinado, tratando la ventanilla de la consola como una matriz. Para poder crear este imagen en consola de texto "normal" hay que pulsar XX vesez "el espacio" intro intro espacio espacio imprimir simbolos, o en otras palabras imposible. Pero gracias a Ncurses podemos realizar este dibujo a penas de 10 comandos de linea.



Que puede hacer Ncurses:
- Crear interfaz;
- Trabajar con colores;
- Formatear texto (Negrito, cursivo, parpadear[blink]);
- Recibir la entrada de teclados como  (arriba, abajo, izda, dcha)
- Recibir teclado sin confirmar con Enter
mucho mas!

Durante este curso yo voy a desarollar programas y/o juegos en esta libreria. Si alguien tiene interes de aprender manejar con esta biblioteca, preguntarme.
Es bastante facil, logico y muy util para desarollar programas interactivas.

Un ejemplo demostrativo:
Matrix (compilado en Linux) En propiedades del fichero marcar "Ejecutar como un programa"
Matrix (compilado en Windows)

Ejecutarlo en teminal.

Saludos!!!

martes, 11 de enero de 2011

Ejecutar Ncurses en Windows

Hola. Hay una manera para usar la biblioteca NCurses en Windows. Existe otra biblioteca que se llama PDCurses, que es para plataformas DOS, WIN32.
Para instalarlo, hay que hacer siguiente:

2. Elegimos la versión mas reciente (por ej: 3.4). Descargamos el archivo pdcursxx.zip
Donde xx - la versión. (ej: pdcurs34.zip).
3. Ahora, entramos a www.codeblocks.org. Elegimos ¨Download the binary release¨, para Windows XP/Vista/7. Bajamos el programa con soporte mingw (ej: codeblocks-10.05mingw-setup.exe)
4. Instalamos el programa en la siguiente ruta. C:\CodeBlocks . Instalar version completa (complete instalation)
5. Extraemos el contenido de pdcurs34.zip de paso 2 dentro de la carpeta C:\CodeBlocks (paso  Al final tiene que quedar C:\CodeBlocks\pdcurs34
6. Escuchamos a este tío que nos explica cómo hacer la compilación de la biblioteca PDCurses (en inglés) o hacer la siguiente:
Ejecutar consola de comandos (CMD) (Inicio - ejecutar - cmd o [win+R] - cmd)
C:\CodeBlocks\pdcurs34 - es donde está la carpeta con PDCurses
cd C:\
set PDCURSES_SRCDIR=C:\CodeBlocks\pdcurs34
path=c:\codeblocks\mingw\bin
cd C:\CodeBlocks\pdcurs34
cd win32
mingw32-make -f mingwin32.mak
Tiene que empezar el proceso de compilación.
7. Volvemos al programa instalado. Ejecutamos CodeBlocks.exe (Habrá un acceso directo en el escritorio)
8. En menú principal, configuramos (File, Edit ... Settings --> Compiler and debugger...)
GNU GCC Compiler --> Compiler Flags, activamos informar de todas las alertas -Wall
Toolchain executables --> Compiler's instalation directory tiene que ser la dirección donde está el CodeBlocks\MinGW (ej: C:\CodeBlocks\MinGW). Al pinchar autodetect se detecta.
Ultimo paso, ahora al compilador hay que incluir biblioteca PDCurses.   
Linker settings --> add. Buscar C:\CodeBlocks\win32. Habrá pdcurses.* panel.*
donde * - puede ser .a o .so (ej: pdcurses.a panel.a)
9. Listo.

Para comprobar, escribir siguiente programa: (File - new - Project - Console aplication - lenguaje C - nombre de proyecto - folder to create project in (en el escritorio por ejemplo) - compilador GNU GCC Compiler - Finish) Ahora, en carpeta Source - main.c

#include <curses.h>
int main() {
initscr();
move(10,32);
printw("Hola mundo!!!");
refresh();
getch();
endwin();
return 0;
}

Si, tras compilar y ejecutar te sale la frase Hola Mundo! en el centro de la consola, ¡Enhorabuena!
Si no, empezar desde el principio de los pasos escritos.

Saludos y buena suerte en programación.

lunes, 15 de noviembre de 2010

martes, 9 de noviembre de 2010

Ejecutar aplicaciones de Windows en Linux

WINE - WINdows Emulator puede ejecutar aplicaciones de windows en otros O.S.
Ejecutar aplicaciones de Windows en Linux, BSD, Solaris and Mac OS X. Descargar aqui

Caracteristicas del WINE 

lunes, 18 de octubre de 2010

Test de mi PC

DELL INSPIRON 1720 
 
HARDWARE

PROCESADOR: Intel(R) Core(TM)2 Duo T7500  @ 2.20GHz (2 CPUs) L2 4MB
MEMORIA: 2048 MB
TARJETA GRÁFICA: 256 MB NVIDIA GeForce 8600M GT
TARJETA DE SONIDO: SigmaTel High Definition Audio CODEC
DISCO DURO: 160 GB x 2 (5400RPM, serial ATA Device)

RESOLUCIÓN: 1440x900, 17 pulgadas

SOFTWARE
S.O.: Windows Vista™ Ultimate (6.0, Build 6001) Service Pack 1
Programas instaladas:
Adobe Reader, Ccleaner, Microsoft Office 2007, Microsoft Expression Web, Visual Studio 2010, Microsoft Security Essential, WinRAR


SOFTWARE VERSIÓN TIEMPO DE EJECUCIÓN

(en secundos)
NAVEGADORES
MOZILLA FIREFOX 3.6.10 4.43
INTERNET EXPLORER 7.0 3.72
GOOGLE CHROME 6.0 1.27
OPERA 9.0 4.25
OFIMATICA
MS WORD 2007 12.0 3.49
OPENOFFICE 3.2.1 4.15
SISTEMA OPERATIVO
Tiempo de arranque 3 minutos 52 secundos
Tiempo de apague 43 secundos