Linux: loguear como otro usuario

Para loguear dentro de un entorno gráfico (gnome, kde ...) como otro usuario, si usamos el comando login nos saldrá un error como este:
FATAL: no es posible cambiar los permisos de TTY: Operación no permitida

Para cambiar de usuario tenemos que usar el comando su:
su -l otrousuario

CakePHP: instalación en public_html bajo Opensuse 11.2

El objetivo es intalar el framework CakePhp en el directorio public_html de un usuario en concreto, para que este usuario pueda usar dicho framework. Presuponemos instalado y funcionando apache2 y php5, bajo una máquina opensuse 11.2. Presuponemos que esta con los valores por defecto ( con la directiva UserDir habilitada) de modo que el usuario puede acceder a su web con la siguiente URL:
http://localhost/~usuario

Los pasos son los siguientes:
1- Descargar CakePHP desde su página principal http://cakephp.org/ :
wget http://github.com/cakephp/cakephp1x/tarball/1.2.6

2- Descomprimimos el archivo en el directorio public_html del usuario (ej dieguz2), de modo que al hacer un ls quede así:
/home/dieguz2/public_html/app
/home/dieguz2/public_html/cake
/home/dieguz2/public_html/plugins
/home/dieguz2/public_html/vendors
/home/dieguz2/public_html/index.php
/home/dieguz2/public_html/README
Tras este paso deberiamos poder conectar al servidor y ver la página de CakePHP, nos saldrán varios errores, que corregiremos a continuación:
http://localhost/~dieguz2/index.php
Si no tenemos activado el MOD_REWRITE de apache veremos la página (sin estilos ni imágenes), con una serie de errores,en todos los casos HAY que activar el rewrite. Si lo tenemos activado tenemos que hacer los cambios explicados en el siguiente paso.

Para activar el módulo rewrite, podemos hacerlo a través de yast (servidor http /Módulos del servidor / rewrite / habilitar ) o a través de la linea de comando:
a2enmod rewrite
sudo /etc/init.d/apache2 force-reload

3- Si tenemos activado el MOD_REWRITE en apache, nos saldrá el mensaje "Objeto no encontrado", tenemos que hacer cambios en dos archivos .htaccess añadiendo la directiva RewriteBase de modo que queden así:
/home/dieguz2/public_html/.htaccess

RewriteEngine on
RewriteRule (.*) app/webroot/$1 [L]
RewriteBase /~dieguz2/

/home/dieguz2/public_html/app/webroot/.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
RewriteBase /~dieguz2/

Si tenemos algun problema adicional (como que no hace caso de los .htaccess tendremos que activar el AllowOverride en apache.

4- Cambiamos los permisos del directorio tmp para evitar que nos de errores de escritura ( CAKE Warning (512) app/tmp/cache/ is not writable [CORE/cake/libs/cache/file.php, line 263])
chmod 777 -R /home/dieguz2/public_html/app/tmp

5- Editamos el archivo:
vi /home/dieguz2/public_html/app/config/core.php
Buscamos la cadena "Security.salt" cambiamos la cadena por defecto por otros numeros y letras aleatorios. por ejemplo, podría quedar asi
Configure::write('Security.salt', 'imaqm1897dfnAsk1938ajmKnau812na2A2kajsai');

Hacemos lo mismo con la "cipherSeed", pero en este caso usamos sólo números aleatorios
Configure::write('Security.cipherSeed', '16359506657458542996042684645');

Con estos cambios evitaremos los siguientes errores:
Notice (1024): Please change the value of 'Security.salt' in app/config/core.php to a salt value specific to your application [CORE/cake/libs/debugger.php, line 674]
Notice (1024): Please change the value of 'Security.cipherSeed' in app/config/core.php to a numeric (digits only) seed value specific to your application [CORE/cake/libs/debugger.php, line 678]

6- Si no tenemos definida una zona horaria en php, podemos tener un mensaje de error como este:
[http://php.net/function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting

Para corregirlo editamos como root el archivo php.ini (/etc/php5/apache2/php.ini) fijando la variable a la zona horaria que queramos (listado de zonas horarias en php):
date.timezone = Europe/Madrid
7- Finalmente pasamos a editar el archivo de configuración de la base de datos. En CakePhp nos envía un archivo de ejemplo para mysql, lo copiaremos y editaremos con los valores que necesitemos (usuario,contraseña...) para conectar con nuestra base de datos (que debe estar ejecutándose):
cp /home/dieguz2/public_html/app/config/database.php.default /home/dieguz2/public_html/app/config/database.php
vi /home/dieguz2/public_html/app/config/database.php

El resultado final ( en la imagen no he configurado la BD) debe ser algo similar a esto:

Netbeans 6.8 : google app engine, instalacion del plugin

Como instalar soporte para el APP Engine en Netbeans:

Instalación de los plugin:

1- Pulsamos en Herramientas / complementos:
2- Pulsamos en la pestaña Configuración, y luego en el botón Agregar
3- Como nombre ponemos por ejemplo Google App Engine - Kenai y como URL
a) si usamos netbeans 6.7 : http://kenai.com/projects/nbappengine/downloads/download/1.0_NetBeans671
b) si usamos netbeans 6.8 : http://kenai.com/projects/nbappengine/downloads/download/Latest_NetBeans68

4- Le damos a la pestaña plugin disponibles, buscamos por "google app" ya añadimos los plugin.


Más información en el siguiente enlace :

Getting Started With Google App Engine
NetBeans support for Google App Engine
Will it play in App Engine

 


 


POR LA LIBERTAD EN LA RED






¡¡¡ NO AL CIERRE DE WEBS !!!


 


 


 

RED SOStenible : red y libertad

Consideramos imprescindible la retirada de la disposición final primera de la Ley de Economía Sostenible por los siguientes motivos:

1 -Viola los derechos constitucionales en los que se ha de basar un estado democrático en especial la presunción de inocencia, libertad de expresión, privacidad, inviolabilidad domiciliaria, tutela judicial efectiva, libertad de mercado, protección de consumidoras y consumidores, entre otros.

2 - Genera para la Internet un estado de excepción en el cual la ciudadanía será tratada mediante procedimientos administrativos sumarísimos reservados por la Audiencia Nacional a narcotraficantes y terroristas.

3 - Establece un procedimiento punitivo “a la carta” para casos en los que los tribunales ya han manifestado que no constituían delito, implicando incluso la necesidad de modificar al menos 4 leyes, una de ellas orgánica. Esto conlleva un cambio radical en el sistema jurídico y una fuente de inseguridad para el sector de las TIC (Tecnología de la Información y la Comunicación). Recordamos, en este sentido, que el intercambio de conocimiento y cultura en la red es un motor económico importante para salir de la crisis como se ha demostrado ampliamente.

4 - Los mecanismos preventivos urgentes de los que dispone la ley y la judicatura son para proteger a toda ciudadanía frente a riesgos tan graves como los que afectan a la salud pública. El gobierno pretende utilizar estos mismos mecanismos de protección global para beneficiar intereses particulares frente a la ciudadanía. Además la normativa introducirá el concepto de "lucro indirecto", es decir: a mí me pueden cerrrar el blog porque "promociono" a uno que "promociona" a otro que linka a un tercero que hace negocios presuntamente ilícitos

5 - Recordamos que la propiedad intelectual no es un derecho fundamental contrariamente a las declaraciones del Ministro de Justicia, Francisco Caamaño. Lo que es un derecho fundamental es el derecho a la producción literaria y artística.

6 - De acuerdo con las declaraciones de la Ministra de Cultura, esta disposición se utilizará exclusivamente para cerrar 200 webs que presuntamente están atentando contra los derechos de autor. Entendemos que si éste es el objetivo de la disposición, no es necesaria, ya que con la legislación actual existen procedimientos que permiten actuar contra webs, incluso con medidas cautelares, cuando presuntamente se esté incumpliendo la legalidad. Por lo que no queda sino recelar de las verdaderas intenciones que la motivan ya que lo único que añade a la legislación actual es el hecho de dejar la ciudadanía en una situación de grave indefensión jurídica en el entorno digital.

7 - Finalmente consideramos que la propuesta del gobierno no sólo es un despilfarro de recursos sino que será absolutamente ineficaz en sus presuntos propósitos y deja patente la absoluta incapacidad por parte del ejecutivo de entender los tiempos y motores de la Era Digital.

La disposición es una concesión más a la vieja industria del entretenimiento en detrimento de los derechos fundamentales de la ciudadanía en la era digital.

La ciudadanía no puede permitir de ninguna manera que sigan los intentos de vulnerar derechos fundamentales de las personas, sin la debida tutela judicial efectiva, para proteger derechos de menor rango como la propiedad intelectual. Dicha circunstancia ya fué aclarada con el dictado de inconstitucionalidad de la ley Corcuera (o ley de patada en la puerta). El Manifiesto en defensa de los derechos fundamentales en Internet, respaldado por más de 200 000 personas, ya avanzó la reacción y demandas de la ciudadanía antes la perspectiva inaceptable del gobierno.

Para impulsar un definitivo cambio de rumbo y coordinar una respuesta conjunta, el 9 de enero se ha constituido la "Red SOStenible" una plataforma representativa de todos los sectores sociedad civil afectados. El objetivo es iniciar una ofensiva para garantizar una regulación del entorno digital que permita expresar todo el potencial de la Red y de la creación cultural respetando las libertades fundamentales.

En este sentido, reconocemos como referencia para el desarrollo de la era digital, la Carta para la innovación, la creatividad y el acceso al conocimiento, un documento de síntesis elaborado por más de 100 expertos de 20 países que recoge los principios legales fundamentales que deben inspirar este nuevo horizonte.

En particular, consideramos que en estos momentos es especialmente urgentes la implementación por parte de gobiernos e instituciones competentes, de los siguientes aspectos recogidos en la Carta:

1 - Las/os artistas como todos los trabajadores tienen que poder vivir de su trabajo (referencia punto 2 "Demandas legales", párrafo B. "Estímulo de la creatividad y la innovación", de la Carta);

2 - La sociedad necesita para su desarrollo de una red abierta y libre (referencia punto 2 "Demandas legales", párrafo D "Acceso a las infraestructuras tecnológicas", de la Carta);

3 - El derecho a cita y el derecho a compartir tienen que ser potenciado y no limitado como fundamento de toda posibilidad de información y constitutivo de todo conocimiento (referencia punto 2 "Demandas legales", párrafo A "Derechos en un contexto digital", de la Carta);

4 - La ciudadanía debe poder disfrutar libremente de los derechos exclusivos de los bienes públicos que se pagan con su dinero, con el dinero publico (referencia punto 2 "Demandas legales", párrafo C "Conocimiento común y dominio público", de la Carta);

5 -Consideramos necesaria una reforma en profundidad del sistema de las entidades de gestión y la abolición del canon digital (referencia punto 2 "Demandas legales", párrafo B. "Estímulo de la creatividad y la innovación", de la Carta).

Por todo ello hoy se inicia la campaña INTERNET NO SERA OTRA TELE y se llevarán a cabo diversas acciones ciudadanas durante todo el periodo de la presidencia española de la UE.

Consideramos particularmente importantes en el calendario de la presidencia de turno española el II Congreso de Economía de la Cultura (29 y 30 de marzo en Barcelona), Reunión Informal de ministros de Cultura (30 y 31 de marzo en Barcelona) y la reunión de ministros de Telecomunicaciones (18 a 20 de abril en Granada).

La Red tiene previsto reunirse con representantes nacionales e internacionales de partidos políticos, representantes de la cultura y legaciones diplomáticas.

Firmado Red SOStenible

http://Red-SOStenible.net

La Red Sostenible somos todo. Si quieres adherirte a este texto, cópialo, blogguéalo, difúndelo.

Script: punto delante del script

En muchos scripts de linux es común usar el operandor punto (dot en inglés) de modo que la ejecucion queda asi:
$ . miscript.sh

¿Por qué se usa el .?

Con el punto estamos indicando que el script se ejecute en el shell actual. Esto implica que las variables que hemos modificado en este shell, serán visibles para el script.

Si no se usase, el script se ejecutará en un shell nuevo, donde no se conservan las variables. Al ser un shell nuevo

Del mismo modo, si ejecutamos el script con el . delante, todos los cambios de variables que ejecute el script (por ejemplo si cambiamos de directorio), serán visibles y se conservaran cuando acabe el script.

Ejemplo:

Supongamos que tenemos el siguiente script en el archivo script1.sh al que le damos permisos de ejecutación(chamod u+x script1.sh):
#!/bin/sh
echo $MENSAJE
MENSAJE='Mensaje script1'
echo $MENSAJE

Supongamos que estamos en una shell, y vamos a crear una variable llamada MENSAJE en la shell. Ejecutaremos el script1 con y sin punto y veremos que sale:
$>MENSAJE='ESTOY EN LA SHELL'
$> echo $MENSAJE
ESTOY EN LA SHELL
$> ./script1.sh

Mensaje script1
$>echo $MENSAJE
ESTOY EN LA SHELL
$>. ./script1.sh
ESTOY EN LA SHELL
Mensaje script1
$> echo $MENSAJE
Mensaje script1


En la primera ejecución de script1 sin el . :
1) Desconoce el valor de MENSAJE, dado que se ejecutan en una subshell que no hereda las variables de la shell. Así que escribe en primer lugar una linea en blanco
2) Al volver a la shell y ver el contenido de mensaje vemos que no se ha modificado (ESTOY EN LA SHELL)

En la segunda ejecución, con el . delante :
1) Imprime el contenido de MENSAJE que hay en la shell, dado que se ejecuta en el mismo espacio, y por tanto sí conoce la variable ( ya no imprime la linea en blanco)
2)Al volver a la shell, el script1 modificó el valor de la variable MENSAJE, y ahora aparece Mensaje script1.

El . como un include de C

Así pues el funcionamiento del . cuando lo incluimos dentro de nuestros scripts es algo similar a la cabecera include de C. Es decir es casi como si la linea que incluy ele script se sustituyese exactamente por su contenido (un copiar y pegar del código).

Por todo ello usar el . delante del script es imprescindible conocerlo y usarlo.

Oracle Bug 4604970 : el group by no funciona

Recientemente encontre problemas con una consulta en las que usaba varios SUM y Group BY en mi version de oracle 10g. El problema era que no agregaba correctamente los datos, y que el resultado fuese correcto tenía que cambiar el orden de los campos.

Buscando por internet encontre este enlace:
http://oracle.ittoolbox.com/groups/technical-functional/oracle-sql-l/sql-result-totals-differ-with-and-without-group-by-1671408

En el que se comenta que es un bug y las soluciones. Si no aplicamos el parche la corrección para Oracle este problema puede solventarse de varias formas, que al menos a mi en mi caso concreto han funcionado cualqueira de estas dos opciones:

1) Incluir un ORDER BY en la consulta, usando uno cualquiera de los campos
2) Tal y como se indica en el link anterior, en el caso concreto de la consulta que estaba ejcutando bastó con una sóla de las alter:
alter session set "_gby_hash_aggregation_enabled" = FALSE;

o si quieremos hacer el cambio permanente
alter system set "_gby_hash_aggregation_enabled" = FALSE;

Si bien es más recomendable usar siempre los útlimos parches para nuestra BD.

comtrend hg536+: cambiar de ip sin resetear el router, script en python


El siguiente código contiene un script en python para resetear el router comtrend hg536+, en este caso está configurado para un router jazztel con los valores por defecto de user,pass y el nombre de la conexión.

El script usa lo mismo que lo explicado en Comtrend hg536+: cambiar de ip sin resetear el router.

Podremos ejecutarlo siempre y cuando tengamos instalado python en nuestro SO (linux, windows ...). Podemos crear el archivo con el comando
cat > ~/bin/resetear.py
chmod u+x ~/bin/resetear.py
Versión actualizada en :
http://dieguz2.blogspot.com.es/2012/04/comtrend-hg536-script-para-cambiar-de.html

El script es el siguiente:
#!/usr/bin/python
#
# Copyright (C) 2009 dieguz2
# License: GNU GPL v2
# http://dieguz2.blogspot.com/
# Script for comtrend hg536+ ( firmware A101-302JAZ-C03_R21.A2pB021g.d15h )
# This scripts connect to router and reset ip in 45s. In this example use default values for jazztel .

import getpass
import sys
import telnetlib
import time

HOST = "192.168.1.1"
LOGIN = "admin"
PASS = "admin"
PROMPT = " -> "
WAITTIME = 40 # Number of second
CONNECTIONNAME = "0.8.35 2" # to see your connections, manually connect to router (telnet 192.168.1.1) and use "wan show" .You should choose you PPPoE connection Use a combination of VCC + Con Id. For example ""0.8.35 2""

tnt = telnetlib.Telnet(HOST)

tnt.read_until("Login: ")
tnt.write(LOGIN + "\n")

tnt.read_until("Password: ")
tnt.write(PASS + "\n")

tnt.read_until(PROMPT)
tnt.write("ppp config " + CONNECTIONNAME + " down\n")

time.sleep(3)
tnt.write("\n")
tnt.write("ppp config " + CONNECTIONNAME + " up\n")

time.sleep(WAITTIME)

tnt.read_until(PROMPT)
tnt.write("ppp config " + CONNECTIONNAME + " up\n")

tnt.write("\n")

tnt.read_until(PROMPT)
tnt.write("13\n") # press option to exit

tnt.close()

Manifiesto: En defensa de los derechos fundamentales en Internet

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.

comtrend hg536+: cambiar de ip sin resetear el router

En ocasiones no es necesario cambiar nuestra dirección ip, una de las opciones es la de resetear el router, pero esto puede implicar que se marque nuestra linea como problemática y el ISP (en mi caso jazztel) podría reducir la velocidad de sincronizacion para intentar mejorla.

Por otra parte es lento, tarda unos 2 minutos en reiniciarse y conseguir una nueva ip.

Con el siguiente procedimiento negociaremos una nueva dirección ip en menos tiempo sin resetear el router.

1) Conectar por telnet al router. Usualmente es el 192.168.1.1. Si lo desconocemos debemos mirar cual es nuestra puerta de enlace ( gateway) usando el comando ipconfig en windows o el comando route ( como root o con sudo) en linux . Tambine podemos mirar el network manager en caso de usarlo. El comando para conectar con telenet desde una terminal sería
telnet 192.168.1.1

2) Una vez conectados ejecutamos:
ppp config 0.8.35 2 down

3) Pasados unos 30 segundos ejecutamos. Puede darnos un error
ppp config 0.8.35 2 up

Puede darnos el error siguiente : "ping: sendto: Network is unreachable". Si esto es asi, esperamos otros 10s y probamos de nuevo ( y sucesivamente hasta que no de el error)