28 septiembre 2009

Tutoriales para principiantes de Photoshop

adobe_photoshop_logo Me topé con esta página, el Beginners Guide to Adobe Photoshop, la cual es un tutorial muy bueno para principiantes en Photoshop.  Pese a que está en inglés, está fácil de entender.  Es muy, pero muy básico, pero espero que te sea útil.

Otro que tiene ejemplos muy padres es el 50 Great Photoshop Tutorials for Clever Beginners.  Aunque no son tan básicos, casi cualquiera que sabe un poco de Photoshop puede aprender a hacer algunos efectos muy interesantes.

Espero que les sean de utilidad estos sitios.  ¡Hasta la próxima!

Evil Player: nada de maldad y pura música

evil_icono A mi me gusta escuchar música ocasionalmente cuando trabajo en mi computadora.  Sin embargo, me cae gordo el iTunes (solo lo uso para sincronizar mi iPod) porque es un programa muy grande que ocupa mucha memoria.  Y solo quiero escuchar canciones, sin tantas funciones avanzadas que tiene iTunes.  Hace tiempo, mucho tiempo, les recomendé AIMP2, sin embargo ahora me topé con Evil Player, un reproductor súper pequeño (menos de 1MB, lo cual hace que mi computadora no se “haga lenta”) que solo toca canciones y nada más.

Pese a que es un programa pequeño, puede reproducir archivos MP3, MP2, MP1, OGG, AIFF y MOD, así como Shoutcast, Icecast y Icecast2. Y, obviamente, es gratis.  Así se ve la pantalla cuando está en tamaño normal (cuando lo minimizas se queda como un icono pequeño a un lado del reloj en la barra de tareas).

Untitled-1

Descarga el programa aquí.  La primera vez que leí sobre este programa, fue el el blog de Elite Freeware.

Ojalá te sirva.  ¡Hasta la próxima!

17 septiembre 2009

¡Gratis! ¡WinX DVD Ripper Platinum!

¿Alguna vez has querido respaldar un DVD a tu disco duro?  Hay muchos programas que lo hacen, pero generalmente lo hacen en formato MPG propio del DVD o alguna otra cosa rara.

Hoy me enteré que están regalando copias de WinX DVD Ripper Platinum (lo vi primero en The Cheapskate y luego en Life Rocks! 2.0), el cual es un programa muy padre que te permite respaldar DVDs de diferentes tipo (con protección CSS, de cualquier región, etc), los puede codificar en muchos formatos de video populares (AVI, WMV, MPEG, MP4, etc.), tiene soporte para muchos reproductores portátiles (como el iPod, iPhone, iTouch, Zune, PSP, etc.), puede extraer el audio del video, es fácil de usar y de deja el video en muy buena calidad.  ¿Qué más podrías pedir?

La oferta se termina el 30 de Septiembre, así que no tardes en bajarlo.  Puedes hacer clic en la liga que está abajo para ir a la página de descarga.

Bajar WinX DVD Ripper Platinum

Espero que te sea útil.  ¡Hasta la próxima!

08 septiembre 2009

Encadenándose en C y C++

cadenas Las cadenas son tipos de datos esenciales para las aplicaciones de hoy.  Imagínate un programa donde no pudieras escribir tu nombre, dirección o cualquier otra palabra.  Sin embargo, en C el tipo de dato String (o algo similar) no existe (otros lenguajes, como Visual Basic 6, 2005 y 2008 sí lo tiene) sino que tienes que declarar un arreglo de caracteres (si tienes dudas sobre arreglos en C/C++ puedes ver este post).

En este post voy a ejemplificar como se pueden manipular cadenas de texto en C y C++.  El mensaje se divide en dos partes: en la primera voy a tratar cadenas en C (lo cual también funciona en el C++) y en la segunda voy a usar objetos propios de C++ (lo cual no funciona en C “no-mas”). 

Cadenas en C

Dicho lo anterior, comencemos con el uso de cadenas en C “normalito”.  Para empezar, se declaran como cualquier otro arreglo de tipo char, por ejemplo:

char x[15];

lo cual declara un arreglo/cadena que puede contener 14 letras máximo.  ¿Por qué solo 14 cuando lo declaré de 15?  Precisamente porque todo texto en C debe terminar un el carácter ‘\0’ que significa “hasta aquí terminó el texto”.  De esta manera, si almacenas “Tony”, realmente se guarda “Tony\0” y eso le permite a C manejar cadenas de diferente longitud.

También se permite declarar una cadena mediante un apuntador (seguramente sabe, y si no aquí te cuento el chisme, un arreglo puede ser usado como apuntador y viceversa).  Si ese es el caso, podrías declararlo como:

char *x;

Solo que en este último caso, no defines la longitud máxima que puede tener la cadena.

Como es un relajo intentar usar cadenas como arreglos, alguna alma caritativa se le ocurrió hacer un montón de funciones que nos facilitan la vida a la hora de usar cadenas.  Esta librería es la string.h y voy a mencionar sus funciones principales (abajo escribo un programa sencillo que ejemplifica su uso y sintaxis):

Función

Propósito

strcpy

Asigna una cadena a otra.  El nombre de la función viene de STRing CoPY.

strcmp

Compara 2 cadenas para ver su orden alfabético.  El nombre viene de STRing CoMPare.

strlen

Devuelve la longitud de una cadena (o sea, el número de caracteres que lo compone).  El nombre viene de STRing LENgth.

strcat

Añade una cadena al final de otra.  El nombre viene de STRing conCATenation.

Veamos un ejemplo muy simple que ejemplifica el uso de estas funciones.  Aquí está el código fuente (haz clic sobre la imagen para que se vea en grande) que fue hecha con el compilador Borland C++ versión 5.02 (que puedes descargar gratis aquí).

01-Código

Así se ve a la hora de ejecutar el programa:

02-Ejecución

Además de estas funciones básicas, también tiene funciones para encontrar un carácter en una cadena (strchr y strrchr), buscar subcadenas (o sea, extraer parte de la cadena con strstr), etc.

También cabe recalcar que en la librería ctype.h existen funciones para comparar caracteres, pero esto se tiene que hacer un carácter a la vez.  Por ejemplo isalnum te dice si es un carácter alfanumérico, isalpha te dice si es una letra,  isdigit te dice si es un número (dígito entero), islower te dice si es una letra minúscula, isupper si es una letra mayúscula, entre otros.  También puede convertir caracteres, por ejemplo toupper convierte un carácter a mayúscula y tolower lo hace minúscula.

Si solo te interesa cadenas en C, hasta aquí llegamos.  Sin embargo, si quieres adentrarte al mundo de los objetos, te sugiero que te quedes.  C++ tiene una clase que hace el uso de cadenas mucho, pero mucho más sencillo.

Cadenas en C++

En C++ otra persona iluminada decidió facilitarnos la vida aún más.  Aprovechando las cualidades de la programación orientada a objetos (si quieres saber más sobre estas características, puedes leer este post sobre la programación orientada a objetos) y creó una clase llamada string que nos brinda muchas facilidades para manejar este tipos de datos.  Vamos viendo de qué se trata.

Aquí pongo el código de un programa que usa el objeto string.  El código está hecha en Visual C++ 2008 Express Edition (que puedes conseguir gratis aquí).  Si tienes problemas en como usar el Visual C++ 2008, puedes ver el tour que hice aquí.

03-Código 

Y así se ve a la hora de ejecución:

04-Ejecución

Al igual que con la librería string.h en C, hay funciones para buscar, generar subcadenas, etc.  Aquí pongo una tabla donde vienen muchas funciones que puedes hacer con el objeto string.

Ejemplo

Lo que hace

cin >> s;

Cambia el valor de s con lo que teclea el usuario.
El valor termina cuando encuentre un espacio o ENTER.

cout << s;

Escribe en la pantalla lo que está guardado en s.

getline(cin, s, ‘\n’);

Lee todo un renglón desde el teclado (ver el código que escribí antes).

i = s.length();
i = s.size();

Devuelve el número de caracteres que contiene la cadena (ver ejemplo).

if(s.empty()) i++;
if(s =
= "") i++;

Ambos ejemplo incrementan i en 1 si la cadena está vacía.
if (s < s2) i++;

Compara dos cadenas alfabéticamente.  Aquí incrementa i si s es menor que s2.

s2 = s2 + "x";
s2 += "x";

Concatena x al final de s2.

s = s2.substr(1,4);
s = s2.substr(1,50);

Subcadenas:
El primer ejemplo comienza en la posición 1 de la cadena s2 y devuelve los 4 siguientes caracteres (4 letras incluyendo el de la primera posición).  El segundo ejemplo devuelve las 50 primeras letras o hasta que termine la cadena.  Recuerda que la primera posición de una cadena es el 0.

s.replace(4,3,"x");

Reemplazo de subcadenas:
Reemplaza los 3 caracteres de s comenzando en la posición 4 con el carácter x.

s.erase(4,5);

Elimina 5 caracteres de s comenzando en la posición 4.
i = s.find("ab",4); Búsqueda de subcadenas:
Devuelve la posición donde comienza la cadena “ab” en s comenzando a buscar desde la posición 4.

Espero que esto te de suficiente material para hacer todo tipo de cosas con cadenas en C y C++.  ¡Hasta la próxima!

02 septiembre 2009

Navegador de internet para Wii: Opera al rescate

wii-opera-sdk Yo soy un entusiasta del Wii.  Me gusta esta consola porque permite un nivel muy padre de interactividad que no tengo en mi computadora.  Sé que con la maestría, el trabajo y otros mil quehaceres no me queda mucho tiempo para jugar, lo disfrutamos mucho con mis hijas.

Encima de los juegos existentes, noté que tiene capacidad de conectarse a una red inalámbrica WiFi para poder accesar cosas desde internet.  Hasta ahora solo había podido bajar videos de futuros juegos porque lo demás cuesta, incluyendo un navegador web.

El día de hoy anunciaron que el navegador de internet Opera es gratuito para instalar en el Wii (esta es la noticia de ElectricPig y esta en la página de Nintendo) y ya no cuesta.  Aunque es difícil teclear apuntando el controlador a un tecladito en pantalla, realmente muchos sitios no necesitan del teclado (por ejemplo mi hija de 5 años navega con el puro mouse y puede estar horas en la PC) y sería muy padre poder compartir algún sitio o imagen con todos en la TV.

Aquí les dejo una imágenes de como se ve el navegador en el Wii.  Y aquí termino porque voy a instalarlo en mi Wii.  Si quieres un instructivo paso a paso para instalarlo, fíjate aquí pero no hagas caso de lo que te van a descontar de puntos Wii (esa guía lo escribieron antes de que fuera gratis).  ¡Hasta la próxima!

operawii

wii_opera_1

Actualización: ya lo instalé en mi Wii y funciona muy bien (no me pude aguantar las ganas de verlo en acción).  Necesita actualizarse, por lo que no van a funcionar las alteraciones que algunos le hacen para que pueda ver películas DVD, etc.

Lo que dije de la flojera de tener que teclear con el controlador del Wii se puede facilitar conectando un teclado USB atrás de la consola (cosa que no tengo, pero creo que uno inalámbrico estaría bien…).  Otro detallito: mi TV es de las viejitas y se ve medio borroso debido a la resolución de mi tele (ya me había tocado tener este problema al usar una TV como monitor)… cuando compre una LCD gigante seguramente se ve a todo dar.

¡Que lo disfruten!

Related Posts Plugin for WordPress, Blogger...