Hola compañeros, tengo un proyecto que se me ocurrió al estar limpiando uno de mis discos duros externos.
Me encontré con todos mis programas cuando estaba empezando a programar en C++, desde estructuras de control, programación orientada a objetos, pasando por estructuras de datos (listas, colas, arboles, arboles de decision, tablas de acceso directo, hash table, arboles binarios, grafos, algoritmos bellman-ford, dijikstra, etc, etc etc..) es un compendio de programas en C++ valiosisimo, obviamente tengo el tipico programa "Haz un programa que genere los números del 1 al 10", o "Haz un programa que encuentre todos los números perfectos" o los números impares.. etc...
Estaba pensando en juntar todos esos programas, montar un portal de programación que he estado diseñando y ponerlos para que sean descargados, con codigo fuente y ejecutable.
La manera de remunerar sería que el código fuente de estos programas estaría ofuscado.
por ejemplo, este es el programa Hello World ofuscado para C
Código C:
Ver original#include "stdio.h"
#define e 3
#define g (e/e)
#define h ((g+e)/2)
#define f (e-g-h)
#define j (e*e-g)
#define k (j-h)
#define l(x) tab2[x]/h
#define m(n,a) ((n&(a))==(a))
long tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L };
int tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 };
main(m1,s) char *s; {
int a,b,c,d,o[k],n=(int)s;
if(m1
==1){ char b
[2*j
+f
-g
]; main
(l
(h
+e
)+h
+e
,b
); printf(b
); } else switch(m1-=h){
case f:
a=(b=(c=(d=g)<<g)<<g)<<g;
return(m(n,a|c)|m(n,b)|m(n,a|d)|m(n,c|d));
case h:
for(a=f;a<j;++a)if(tab1[a]&&!(tab1[a]%((long)l(n))))return(a);
case g:
if(n<h)return(g);
if(n<j){n-=g;c='D';o[f]=h;o[g]=f;}
else{c='\r'-'\b';n-=j-g;o[f]=o[g]=g;}
if((b=n)>=e)for(b=g<<g;b<n;++b)o[b]=o[b-h]+o[b-g]+c;
return(o[b-g]%n+k-h);
default:
if(m1-=e) main(m1-g+e+h,s+g); else *(s+g)=f;
for(*s=a=f;a<e;) *s=(*s<<e)|main(h+a++,(char *)m1);
}
}
Entonces con la ofuscación al compilarlo, imprimiría una marca de agua.
"Programa descargado desde http://www.mipaginaweb.com"
Y si la persona que lo descargue, quiere el codigo fuente original sin la marca de agua y sin codigo fuente, para que lo pueda modificar a su gusto, entonces tendría que pagarme no se, unos 5 dolares por programa, por su codigo fuente, y mas adelante incorporar una sección de usuarios premium, que por una suscripción mensual, tendrían acceso a contenido exclusivo, e incluso recursos para el aprendizaje y enseñanza, es decir un maestro de programación podría entrar como usuario premium a mi comunidad, y descargar metodos de enseñanza de programación, diagramas, graficas, figuras, videos, ejemplos, power points, etc...
Que les parece? Funcionaría?