Manifiesto en defensa de los derechos fundamentales de internet

0 comentarios

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…

  1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial – un organismo dependiente del ministerio de Cultura -, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Este manifiesto, elaborado de forma conjunta por varios autores, es de todos y de ninguno. Si quieres sumarte a él, difúndelo por Internet.

Javier Leiva Aguilera
Catorze Asesoria Internet SL
http://www.catorze.com/

Un problema derivado

0 comentarios

Dos semanas llevo entre cambios de toda una aplicación para que se torne en Internacional y se pueda localizar correctamente.

El problema es que el framework que se utiliza es de terceras personas y no tiene licencias libres por lo que no se puede modificar, aunque si que te dan todo el código para que veas como funciona. El problema es que como el esquema de flujo de datos que me han pasado es paupérrimo pues he tardado casi dos días en encontrar otro flujo de datos que utiliza la configuración y por lo tanto un nuevo flujo de errores.

Tanto le cuesta a la gente documentar bien todo lo que hace para que los que vengan detrás puedan realizar los trabajos de una manera algo mas efectiva?

Métodos de lectura.

0 comentarios

El otro dia me encontre en el trabajo que cuando intentaba subir segun que textos a la base de datos resultaba que me los metia como interrogantes, despues de mucho buscar, buene en realidad solo busque unas 3 horas, di con un conjunto de funciones implementadas en JAVA que me solucionaba el papel, las funciones son las siguientes:

 public static void main(String[] args) {
  writeOutput(readInput(args[0]), args[0]);
 }
 
 static void writeOutput(String str, String file) {
  try {
   FileOutputStream fos = new FileOutputStream(file);
   Writer out = new OutputStreamWriter(fos, "8859_2");
   out.write(str);
   out.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 static String readInput(String file) { 
  StringBuffer buffer = new StringBuffer(); 
  try { 
   FileInputStream fis = new FileInputStream(file); 
   InputStreamReader isr = new InputStreamReader(fis, "UTF8"); 
   Reader in = new BufferedReader(isr); 
   int ch; 
   while ((ch = in.read()) > -1) { 
    buffer.append((char)ch); 
    } 
   in.close(); 
   return buffer.toString(); 
  } catch (IOException e) {
   e.printStackTrace(); 
   return null; 
   } 
  }


Mi principal problema era que el fichero que se subia era UTF8 en el que los caracteres son Unicode, eso hace que la lectura binaria del fichero sea por la suma de dos caracteres del tipo hexadecimal, por lo que cuando se subia a la base de datos cada caracter hexadecimal se subía como un caracter normal, esto hacia que cada vez que se encontraba un caracter impar ponia un espacio o en su defecto un cuadrado.
La solucion que aqui os planteo es una que transforma el fichero del tipo UTF8 al tipo ISO 8859_2 que viene a ser nuestro charset en la zona occidental de Europa

Realmente es necesario?

0 comentarios

Muchas son la empresas que te solicitan que le facilites una pagina web personal, en la que ellos suponen tu pondras tus datos mas significativos. Hoy en dia esto es inviable por la creciente criminalistica que hay entre todo el mundo, tardan realmente muy poco en coger todos tus datos y simplemente canviar la cara del carnet.

A mi humilde parecer y ante el conocimiento que tengo de que esta pagina web no la ve nadie puedo decir con toda sinceridad que la creación de una pagina dinamica es una de las mejores opciones, dejando de esta manera una puerta de entrada en la que puedes hacer tu mejor presentación y despues poder mostrar a traves de enlaces diferentes tipos de paginas en las que pongas tus progresos, o simplemente utilizar diferentes tipos de sistemas de programación para poder mostrar al cliente final, que en este caso sera una empresa, las posibilidades que tienen con tigo.

Pensaroslo con paciencia por que es una de las mejores cartas de presentación que podreis hacer para una empresa, y no olvideis utilizar Linux para el desarrollo de vuestros sistemas, es más dificil pero la empresa siempre te mira mejor. La verdad no se el por que de esta ultima afirmación ya que por suerte o por desgracia al final siempre se usa Windows.

Un saludo queridos lectores.

Declarado el estado seco

0 comentarios

Hola amigos hace tiempo que no estoy con vosotros. El problema principal es el trabajo que de momento no me deja tiempo para hacer nada, bueno eso no es del todo cierto ya que pude encontrar una librería para la Nintendo DS que se denomina PA_Lib.

La estoy intentando de instalar en un linux, distribución UBUNTU FEISTY FAW, de momento la cosa pinta bien pero como ya ni me acuerdo de en que punto se encuentra pues igual lo empiezo de nuevo, gente de los errores se aprende y eso me demuestra que no apuntar lo que se va haciendo puede terminar pasando factura.

Bueno os dejo queridos lectores que tengo que seguir parametrizando todos los productos de nuestro cliente y no preguntéis que ya sabéis que significa secreto de empresa
13/12/07

Creación de PONG para DS

0 comentarios

  En estos momentos me encuentro investigando la librería Pa_LIB de la DS para intentar de crear un juego, como veis es el PONG pero al no haber creado a la hora de la verdad nada que se le pueda denominar interactivo y mucho menos algo que de como resultado algo dinámico pues me encuentro con esa dificultad.

 

Tras ver que ninguno de los afiliados a la pagina ni posibles lectores se han interesado por mantener ningún tipo de comunicación pues e preferido actualizar menos veces, buscar mas información y dar como resultado lo que será mi primer juego. Después de este primer intento haré otras cosas para la DS, pondré cantidad de información en esta pagina pero lo mas importante, una vez crea que ya estoy preparado preparare mi primer juego en C/C++ con entorno gráfico preferiblemente basado en OpenGL para intentar de que sea compatible tanto con un Windows como para un Linux.

 

Bueno queridos amigos espero que nos podamos ver dentro de poco y que la gloria del C os acompañe.

Calendario en PHP.

0 comentarios

No es que me sienta muy orgulloso de tener que hacer las cosas de esta manera, pero en este caso cuelgo un código que me hubiera sido muy beneficioso cuando estudiaba.

Este en concreto lo encontré no hace mucho por la red de una pagina que se denomina koders. Esta no es la manera que me gusta de colgar cosas ya que prefiero hacerlo por mi mismo todos estos programas pero en mi caso la falta de tiempo a sido crucial para no poderos prestar atención.

<?

/*
Autor inicial : Miguel Angel Alvarez <miguel@desarrolloweb.com>
Cita textual : Puedes utilizar ese cdigo para lo que desees... yo estoy encantado de
ayudar.
Febrero 2 2005.

Este archivo tiene cdigo inicialmente creado por Miguel Angel Alvarez, agradecemos
sus buenos deseos y continuaremos construyendo con el mismo nimo.

Contribuye : Rubn Amrtegui

*/


function nombre_mes($mes){
switch ($mes){
case 1:
$nombre_mes="Enero";
break;
case 2:
$nombre_mes="Febrero";
break;
case 3:
$nombre_mes="Marzo";
break;
case 4:
$nombre_mes="Abril";
break;
case 5:
$nombre_mes="Mayo";
break;
case 6:
$nombre_mes="Junio";
break;
case 7:
$nombre_mes="Julio";
break;
case 8:
$nombre_mes="Agosto";
break;
case 9:
$nombre_mes="Septiembre";
break;
case 10:
$nombre_mes="Octubre";
break;
case 11:
$nombre_mes="Noviembre";
break;
case 12:
$nombre_mes="Diciembre";
break;
}
return $nombre_mes;
}

function mostrar_calendario($dia,$mes,$ano){
$mes_hoy=date("m");
$ano_hoy=date("Y");
if(empty($dia))
$dia=date("d");
if(empty($mes))
$mes=date("m");
if(empty($ano))
$ano=date("Y");
//echo $ano_hoy;
if (($mes_hoy != $mes) || ($ano_hoy != $ano)) {
$hoy=0;
}
else {
$hoy=date("d");
}
//tomo el nombre del mes que hay que imprimir
$nombre_mes = nombre_mes($mes);
$nombre_mes_hoy = nombre_mes(date("m"));
//construyo la cabecera de la tabla
echo "<table border=0 bgcolor=#DDDDDD align=center><tr><td colspan=7 align=center>";
echo "<tr bgcolor=#7777FF><td colspan=7 align=center>Actual: $nombre_mes_hoy ".date("d")." del $ano_hoy</td></tr>";

echo "<tr bgcolor=#7777FF><td colspan=2>";
//calculo el mes y ano del mes anterior
$mes_anterior = $mes - 1;
$ano_anterior = $ano;
if ($mes_anterior==0) {
$ano_anterior--;
$mes_anterior=12;
}
echo "<a href=menuagenda.php?dia=1&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior&diaagenda=0>Ant</a></td>";
echo "<td align=center colspan=3> $dia - $nombre_mes - $ano </td>";
echo "<td colspan=2 align=right>";
//calculo el mes y ano del mes siguiente
$mes_siguiente = $mes + 1;
$ano_siguiente = $ano;
if ($mes_siguiente==13) {
$ano_siguiente++;
$mes_siguiente=1;
}
echo "<a href=menuagenda.php?dia=1&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente&diaagenda=0>Sig</a></td></tr></td></tr>";
echo "<tr bgcolor=#CCCCFF><td>LUNES</td><td>MARTES</td><td>MIERCOLES</td><td>JUEVES</td><td>VIERNES</td><td>SABADO</td><td>DOMINGO</td></tr>";

//Variable para llevar la cuenta del dia actual
$dia_actual = 1;

//calculo el numero del dia de la semana del primer dia
$numero_dia = que_dia_de_semana(1,$mes,$ano);
//echo "Numero del dia de demana del primer: $numero_dia <br>";

//calculo el ltimo dia del mes
$ultimo_dia = verifica_long_mes($mes,$ano);

//escribo la primera fila de la semana
echo "<tr align=center>";
for ($i=0;$i<7;$i++) {
if ($i < $numero_dia) {
//si el dia de la semana i es menor que el numero del primer dia de la semana no pongo nada en la celda
echo "<td></td>";
} else {
if ($i == 6) {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}
else {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td> <a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}
$dia_actual++;
}
}
echo "</tr>";

//recorro todos los dems das hasta el final del mes
$numero_dia = 0;
while ($dia_actual <= $ultimo_dia) {
//si estamos a principio de la semana escribo el <TR>
if ($numero_dia == 0)
echo "<tr align=center>";
//si es el ultimo de la semana, me pongo al principio de la semana y escribo el </tr>

if ($numero_dia == 6) {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}
else {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}

$dia_actual++;
$numero_dia++;
if ($numero_dia == 7) {
$numero_dia = 0;
echo "</tr>";
}

}

//Comprobando terminar el calendario del mes
for ($i=$numero_dia;$i<7;$i++) {
echo "<td></td>";
}

echo "</tr>";
echo "</table>";
}

//Retorna el nmero de la semana en donde se encuentra un determinado da.
function que_dia_de_semana($dia,$mes,$ano){
$numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano));
if ($numerodiasemana == 0)
$numerodiasemana = 6;
else
$numerodiasemana--;
return $numerodiasemana;
}


//Revisa para tener los meses completos
function verifica_long_mes($mes,$ano){
$ultimo_dia=28;
while (checkdate($mes,$ultimo_dia + 1,$ano)){
$ultimo_dia++;
}
return $ultimo_dia;
}

potencia en recursiva

0 comentarios

Hoy vamos a poner un ejemplo sencillo de recursividad en C/C++. Se trata de algo muy sencillo pero extraordinariamente util en la programacion de funciones matematicas, se trata de nada más y nada menos que la potencia, todos sabemos que dentro de la libreria math se pueden hacer potencias casi de cualquier tipo pero lo que con este ejercicios queremos demostrar es que por recursividad podemos tener cualquier base y cualquier exponente.

//Lo priemro como siempre es cargar las librerias que nos puedan hacer falta.
#include <stdio.h>

//Declaramos la potencia que nos va a servir como recursiva, fijaros que le pasamos dos enteros pero devuelve un numero largo, esto es para previsionar un posible fallo por un numero demasiado alto.
long potencia(int,int);

void main()
{

int x=0,y=0;//La declaracion de las variables que nunca nos puede faltar en C

printf ("\nIntroduzca la base -> ");//se saca por pantalla la peticion de una base.
scanf ("%d",&x);//y con esto lo recojemos, fijaros que solo aceptamos numeros enteros, y se lo pasamos a la variable "X"

printf ("\nintroduzca la potencia -> ");
scanf ("%d",&y);



printf ("\nel resultado es igual a %ld\n\n\n",potencia(x,y));//Esto es interesante, si os fijais imprimimos una funcion y no una variable esto es debido a que cuando lee la funcion la ejecuta una vez pasandoles las dos variables anteriores.

};


long potencia (int x,int n)//Como siempre cargamos la funcion y sus variables, se han cambiado los nombres para que veais que no hace falta que sean los mismos.
{

if (n>0)//Con la setencia if hacemos que se ejecute la primera sentencia si es cierta y si es falsa pasara al else ejecutando la segunda sentencia.
return potencia (x,n-1)*x;//con return lo que hacemos es salir de la funcion dando el resultado de lo que esta detras de ella.
else
return 1;

};

Programacion en cobol

0 comentarios

Pocos son los que programan en Cobol y de los pocos que intentan hacerlo se encuentran con el problema añadido de no encontrar con que hacerlo por eso desde el programador cutre os traemos una manera de poder probar vuestros codigos.

Anita es un programa basado en Java por lo que en cualquier maquina en la que tengais la maquina virtual de Java podreis mover el programa, en este caso el link solo incluye el .exe de Windows pero si os hace falta el de Linux me podeis enviar un mail para ponerlo en la pagina ademas de enviaroslo por mail. Tened en cuenta que este programa no es propiedad nuestra si no de si no de April System Design, cualquier duda con el programa en cuestion teneis que reportarselo a ellos, de igual manera que agradeceran que le reporteis los posibles bugs que tenga el programa. El programa en cuestion es una evaluacion de 30 dias.

Las torres de Hanoi C/C++

0 comentarios

Las torres de Hanoi es un juego matemático. Consiste en tres varillas verticales y varios discos dispuestos en la primera varilla de mayor a menor. No existen dos discos iguales y contra más hayan más dificil sera la solución, ¿Seguro? pues no por que el programador cutre os ofrece la manera de solucionar este problema; esta entrega sera en C/C++, ello no significa que no se pueda hacer en otros lenguajes.

/*Las torres de Hanoi es el juego de tres torres con unos discos en el que se tienen
*que pasar los discos de una torre a la otra con la condicion de que en ninguna torre puede
*haber un disco pequeño por debajo de uno grande
*las funciones serian:
* Hanoi (1,A,B,C)
* Hanoi (1,A,C,B)
* Hanoi (1,B,C,A)
* Donde el orden seria el de: Hanoi (numero de discos, origen, destino, torre auxiliar)*/

#include <stdio.h>//incluimos esta libreria ya que pediremos por pantalla cuantos discos se usaran.

void hanoi(int,char,char,char);// aqui se ve claramente como estamos inicializando una funcion nueva.

void main()//esta es la funcion principal, se pone void por que al ser una funcion unica tampoco no nos interesa que devuelva nada. Dentro de la funcion no recojemos nada por que de momento a los main no le pasaremos nada.
{
int num;//Declaramos un variable entera.
char A='A',B='B',C='C';//Declaramos tres variables de tipo caracter para indicar la torre en la que estamos.

printf ("Introduzca el numero de discos que utilizara: ");//Esto es lo que se visualizara por pantalla, tened en cuenta que si poneis algun tipo de escape tendria que estar fuera de las comillas.
scanf ("%d",&num);//Con %d le indicamos que lo que recogeremos sera un decimal y con &num que se pasara a la variable num.

hanoi (num,A,C,B);//Con esto realizamos la llamada a la función inicializada con anterioridad.

printf ("\n\n\n");//Se imprimiran tres saltos de linea cuando se acabe la anterior función.
}

/**En esta funcion viene la parte importante de este programa**/

void hanoi (int num,char org,char des,char aux)// Aqui se esta inicializando la función y sus variables.
{
if (num==1) //en caso de que num sea 1 se hara el ultimo printf dando por finalizado esta funcion.
printf("\n%c-->%c",org,des);//Esto nos printara en el dispositivo estandar el ultimo movimiento.
else//en caso contrario se ejecutaran tres veces seguidas las funciones
{
hanoi (num-1,org,aux,des);
hanoi (1,org,des,aux);
hanoi (num-1,aux,des,org);
}//Teneis que recordad que esto esta pensado en recursiva por lo tanto asta que num no sea 1 se seguiran concatenando las fuciones para despues volver hacia atras.
}

Bueno una vez ejecuteis este programa podreis ver cual es el resultado y una vez lo hayais visto pensad en la leyenda detras de este problema.

Cuenta la leyenda que Dios al crear el mundo colocó tres varillas de diamante con 64 discos de oro en la primera. También creó un monasterio con monjes que tenian que resolver esta torre de Hanoi divina. Se dice que el dia en que la terminen el mundo terminara. xD desde luego este Edouard Lucas creo una buena falacia.


Solucion 4 discos