No entiendo lo del CANON…

Hola,

Hace tiempo que llevo discutiendo con varios amigos el tema de que en España necesitamos un cambio rotundo al modelo de negocio de algunos sectores, ya que como están diseñados (son prehistóricos) no es sostenible y más en épocas de crisis. Por poner un ejemplo rápido, podemos hablar del famoso CANON que a mi entender es un robo a mano armada y sin posibilidad de devolución si demuestras que no lo estas utilizando para hacer copias de productos con derecho de autor. La cuestión es que nunca he entendido (si alguien sabe como explicármelo perfecto…) que me cobren un «impuesto» obligatorio una entidad privada para beneficiar a unos cuantos que en muchas ocasiones (por no decir en la gran mayoría de veces) no son los mismos autores de dicho producto.

Por ejemplo… si yo me compro un CD de Linkin Park… porque tengo que pagar ese canon para que se beneficien autores que no fueron los que crearon el contenido de ese CD ?

Lo mismo me pregunto sobre porque razón tengo que pagar no solo 1 vez el canon, sino incluso hasta 3 veces por escuchar o ver algo que he comprado ? por ejemplo… Yo me compro un Reproductor de DVD que tiene su CANON, después me compro una película o CD de música que tiene su CANON y lo visualizo en una televisión que me cobran su CANON… y si se me ocurre la maravillosa idea de comprararme un CD virgen para hacer una copia de seguridad del CD de música que me he comprado, también me cobran un CANON… Y me pregunto yo… encima de pagar tanto CANON… encima me vienes y me prohíbes copiar ? no entiendo la razón la verdad, si estamos pagando con creces el «por si copias»… no entiendo porque después te prohíben copiar.

En mis próximos pensamientos, hablare de nuevos modelos de negocio, como pueden ser el que realizan en El Cosmonauta (de la cual soy Productor jejeje), o el ya conocido Spotify. Os recomiendo que miréis estos dos proyectos y que comprendáis que la sociedad a cambiado (hemos evolucionado o eso intentamos unos cuantos)… que tenemos que descubrir o utilizar nuevos modelos de negocios, no podemos seguir estancados en la época de los discos de vinilo para escuchar música ;)

Un saludo !!

Publicado en Variedad | Etiquetado , , , , , , | Deja un comentario

Guia del buen uso de Internet por… patetico

Pues si… patético es que la SGAE, Promusicae y FAP realice una guía para el buen uso de Internet para distribuir en todos los colegios de España… y es patético que se permita a unas empresas privadas entrometerse en los estudios de nuestros niños, que se suponen que van a ser nuestro futuro y que están engañando realizando guías que alteran la realidad de los hechos. Pero como en España se apremia al ladrón y nunca al honrado, seguirán haciendo lo que desean.

La cuestión es que mirando una web de noticiasUna de las perlas que me ha dejado alucinado de esta maravillosa guía es la explicación que ha realizado de lo que es un blog y que expongo aquí en mi blog:

«Abreviatura de «web log», un diario o revista que se publica en Internet. Los blogs a menudo se utilizan para publicar enlaces a archivos, que pueden ser copias ilegales de música, películas u otros ficheros multimedia»

Y para vuestra información y educación correcta pongo lo que es un blog desde Wikipedia, que es libre:

«Un blog, o en español también una bitácora, es un sitio web periódicamente actualizado que recopila cronológicamente textos o artículos de uno o varios autores, apareciendo primero el más reciente, donde el autor conserva siempre la libertad de dejar publicado lo que crea pertinente. El nombre bitácora está basado en los cuadernos de bitácora, cuadernos de viaje que se utilizaban en los barcos para relatar el desarrollo del viaje y que se guardaban en la bitácora. Aunque el nombre se ha popularizado en los últimos años a raíz de su utilización en diferentes ámbitos, el cuaderno de trabajo o bitácora ha sido utilizado desde siempre.

Si alguien quiere ver toda la información que explica Wikipedia sobre Blog, le dejo el enlace aquí (Wikipedia – Blog)

Pero como cojones pueden dejar a estos «elementos» distribuir semejante guía ? Estamos locos ? Lo que esta claro es que mientras exista semejantes pensamientos en este país… seguiremos siendo un país tercermundista… ¡¡ EVOLUCIONAR !!, como han hecho miles y miles de personas desde muchos años atrás hasta el momento, siempre estáis con la MALA película de siempre, os quedan dos telediarios, dejaréis de robar pronto, o eso es la intención de muchos, y cada vez más personas.

Publicado en Variedad | Etiquetado , , , , , , , , , , , | Deja un comentario

Gestión sala Cine con C

Pues bien, para ir terminando de rematar los ejercicios con arrays, nos vamos a realizar una aplicación para gestionar las butacas de una sala de cine, de momento como no estamos tocando el entorno gráfico, lo voy a realizar en modo ASCII para recordar viejos tiempos. El programa debe de poder iniciar la sala, poniendo todas las butacas libres, tiene que poder imprimirte la sala con las butacas y decirte cuantas están libres y ocupadas, propusimos la idea de que fuera ASCII para que se viera a simple vista el aforo de la sala, por lo tanto vamos a utilizar para este cometido los caracteres «.» para cuando este libre y «X» para cuando este ocupada.

Evidentemente y como ultima función, debe de poder ocupar las butacas, para ello pediremos fila y número de butaca, visualizar por un momento como esta dispuesto una sala de Cine, por una parte están las filas, cada fila tiene u número determinado de butacas, para no hacer que la visualización de la misma sea enorme en la pantalla, hemos planteado en hacerla para 10 filas con 25 butacas, dándonos un total de 250 butacas para ver la película en esa sala.

Pues bien, empezamos a desarrollar el código:

#include 

#define X 10
#define Y 25

void iniciar(int s[X][Y]);
void imprimir(int s[X][Y]);
void ocupar(int s[X][Y]);
void menu();

void main() {
   int sala[X][Y];
   int opc;

   do {
        menu();
        scanf("%d",&opc);
        switch (opc) {
           case 1:
                iniciar(sala);
                break;
           case 2:
                imprimir(sala);
                break;
           case 3:
                ocupar(sala);
                break;
           case 0: break;
           default:
                printf("\nNo ha introducido una opción valida..\n");
        }
   } while (opc != 0);
}

void menu() {
   printf("\nPulse en la opción deseada o 0 para salir...\n");
   printf("1. Iniciar sala\n");
   printf("2. Imprimir la ocupación de la sala\n");
   printf("3. Ocupar butaca\n");
   printf("0. Salir\n");
   printf("Elije una opcion: ");
}

void iniciar(int s[X][Y]) {
   int i, j;

   for(i=0;i 9)
                   printf(" X ");
                else
                   printf("X ");
                ocupada++;
                ocupadatotal++;
           } else {
                if (j > 9)
                   printf(" . ");
                else
                   printf(". ");
                libres++;
                libretotal++;
           }
        }
        printf (" -> Libres %d / Ocupadas %d", libres, ocupada);
        libres=0;
        ocupada=0;
   }
   printf("\nTotal butacas ocupadas: %d \t Total butacas libres: %d\n", ocupadatotal, libretotal);
}

void ocupar(int s[X][Y]) {
   int i, j;
   int reserva[X][Y], ri;

   iniciar(reserva);
   imprimir(s);

   printf("\nElija la fila y butaca que quiera coger, para parar de reservar introduzca un 0 en la fila...\n");

   do {
        printf("Fila: ");
        scanf("%d",&i);
        if (i != 0) {
           fflush(stdin);
           printf("Butaca: ");
           scanf("%d", &j);
           fflush(stdin);
           if (reserva[i-1][j-1] == 0 && s[i-1][j-1] == 0)
                reserva[i-1][j-1] = 1;
           else
                printf("\nLa butaca %d de la fila %d esta ocupada, reserve otra localidad...\n", j, i);
        }
   } while(i != 0);

   for (i=0;i

Descarga: CÓDIGO FUENTE

Espero que para ir rematando los ejercicios con ARRAYS, os pueda servir de ayuda este mini-programa de gestión de una sala de Cines.

Publicado en Código C | Etiquetado , , , , , , , , , , , , , , , , , , , | 3 comentarios

Estructura y Union en C

Ya hemos visto por encima lo interesante que puede ser trabajar con estructuras en C, ahora vamos a ver lo que es una UNION en C. Una UNION en base es como una estructura, solo que en una estructura los componentes de la misma se almacenan en diferente región de memoria, y en una UNION los componentes comparten la misma porción de memoria. Por lo tanto en una UNION nunca vamos a poder a acceder a sus componentes a la misma vez, modificar un componente modificará el valor del otro, a veces a valores impredecibles. Mejor verlo en un ejemplo:

#include <stdio.h>

/* un campo de bits que se va a codificar */
struct byte {
        int a : 1;
        int b : 1;
        int c : 1;
        int d : 1;
        int e : 1;
        int f : 1;
        int g : 1;
        int h : 1;
};

union bits {
        char car; // Un byte contiene 8 bits
        struct byte bit; // Los 8 bits que corresponden a la letra pulsada
} ascii;

void decodificar (union bits b);

void main()
{
        do {
                ascii.car = getchar();
                printf(": ");
                decodificar(ascii);
                printf("\n");
        } while (ascii.car!='s'); /*salimos si se pulsa una s */
}

/* Muestra la trama de bits para cada carácter. */
void decodificar(union bits b)
{
        if (b.bit.h) printf ("1 ");
        else printf("0 ");
        if (b.bit.g) printf ("1 ");
        else printf("0 ");
        if (b.bit.f) printf ("1 ");
        else printf("0 ");
        if (b.bit.e) printf ("1 ");
        else printf("0 ");
        if (b.bit.d) printf ("1 ");
        else printf("0 ");
        if (b.bit.c) printf ("1 ");
        else printf("0 ");
        if (b.bit.b) printf ("1 ");
        else printf("0 ");
        if (b.bit.a) printf ("1 ");
        else printf("0 ");
}

Descarga: CÓDIGO FUENTE

Pues bien, compilar el código y cuando lo ejecuteis poner vuestro nombre, y averiguareís como sería en binario jejejeje, el mio es:

0 1 0 0 0 1 0 1 --> E
0 1 1 0 0 1 0 0 --> d
0 1 1 1 0 1 0 1 --> u
0 1 1 0 0 0 0 1 --> a
0 1 1 1 0 0 1 0 --> r
0 1 1 0 0 1 0 0 --> d
0 1 1 0 1 1 1 1 --> o

Un saludo !!

Publicado en Código C | Etiquetado , , , , , , , , , , , , , , , , , , | Deja un comentario