Instalar dos tomcats en la misma máquina como servicios

 Dos tomcats en la misma máquina

Introducción

Instalar dos tomcats en la misma máquina como servicios no es una tarea facil a simple vista, ya que hay que seguir unos pasos en los cuales hay que modificar el registro de windows. Los pasos a seguir son los siguientes:

  • Instalar el primer tomcat como servicio de windows.
  • Modificar unos datos del servicio.
  • Modificar unos datos del monitor del tomcat instalado.
  • Modificar el desinstalador del tomcat instalado.
  • Cambiar los puertos del tomcat.
  • Instalar el segundo tomcat como servicio.

Ahora os explico los pasos más detalladamente.

Instalación

Se realiza la instalación de primer tomcat marcando la opción tomcat/service.

Una vez realizada la instalación se va a modificar el registro del sistema, para esto hay que ejecutar la aplicación regedit. Tendremos que ir al menú inicio, darle a ejecutar y escribiremos regedit y le daremos al enter. Ahora haremos los siguientes cambios:

Modificamos el servicio

  • Vamos a la ruta HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\ y le cambiamos de nombre a Tomcat5 por otro cualquiera, por ejemplo Tomcat5_primario.
  • Vamos a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\Tomcat5_primario y cambiamos el valor de la variable DisplayNameModificar de Apache Tomcat al que queramos, por ejemplo por Apache Tomcat Primario.
  • Vamos a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\Tomcat5_primario y cambiamos el valor de la variable ImagePath del valor c:\tomcat\bin\tomcat5.exe //RS//Tomcat5 por  c:\tomcat\bin\tomcat5.exe //RS//Tomcat5_primario. (Cuidado! tiene que ser el mismo nombre que le pusimos a la carpeta del primer paso).
  • Ahora iremos a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\Tomcat5_2\Enum y cambiaremos el valor de la variable 0 de Root\LEGACY_TOMCAT5\0000 por otro como por ejemplo Root\LEGACY_TOMCAT5_PRIMARIO\0000.
  • Ahora dependiendo si estamos en un Windows de 32 bits o de 64 bits tendremos que hacer cosas diferentes:
    • Para un windows de 32bits haremos lo siguiente:
      • Vamos a HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0 y renombraremos al carpetatomcat5 por otra como por ejemplo tomcat5_primario.
      • Por último iremos a HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\tomcat y renombraremos la carpeta 5.5 por otro nombre, por ejemplo 5.5_primario.
    • Para un Windows de 64bits haremos lo siguiente:
      • Vamos a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0 y renombraremos al carpeta tomcat5 por otra como por ejemplo tomcat5_primario.
      • Por último iremos a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\tomcat y renombraremos la carpeta 5.5 por otro nombre, por ejemplo 5.5_primario.

Modificamos el monitor del tomcat

Para windows de 32 bits:

  • Nos movemos a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run y renombramos la variable ApacheTomcatMonitor por otro nombre, por ejemplo ApacheTomcatMonitorPrimario y le cambiamos el valor de "C:\tomcat\bin\tomcat5w.exe" //MS//Tomcat5 por el nuevo "C:\tomcat\bin\tomcat5w.exe" //MS//Tomcat5_primario. (Cuidado! el último nombre tiene que ser igual al nombre que le pusimos en el primer paso de la edición del servicio)

Para windows de 64 bits:

  • Nos movemos a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run y renombramos la variable ApacheTomcatMonitor por otro nombre, por ejemplo ApacheTomcatMonitorPrimario y le cambiamos el valor de "C:\tomcat\bin\tomcat5w.exe" //MS//Tomcat5 por el nuevo "C:\tomcat\bin\tomcat5w.exe" //MS//Tomcat5_primario. (Cuidado! el último nombre tiene que ser igual al nombre que le pusimos en el primer paso de la edición del servicio)

Modificamos el desinstalador del tomcat

Para Windows de 32 bits:

  • Vamos a  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ y renombramos Apache Tomcat 5.5 por Apache Tomcat 5.5_2.
  • Vamos a  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5 y cambiamos el valor de la variable DisplayName de Apache Tomcat 5.5 (remove only) por el de Apache Tomcat 5.5 (remove only) 2 (Asi sabremos cual es cual en la lista de programas para desinstalar).

Para Windows de 64 bits:

  • Vamos a  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ y renombramos Apache Tomcat 5.5 por Apache Tomcat 5.5_2.
  • Vamos a  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5 y cambiamos el valor de la variable DisplayName de Apache Tomcat 5.5 (remove only) por el de Apache Tomcat 5.5 (remove only) 2 (Asi sabremos cual es cual en la lista de programas para desinstalar).

Cambiamos los puertos para que no colisionen

  • Modificar en el fichero server.xml el valor de los siguientes puertos por otros:
...
<Server port="8005" shutdown="SHUTDOWN">
...
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
...
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
...

Ya tenemos todos cambiado, ahora podremos instalar el segundo tomcat con todo por defecto.

temas: 

La pantalla de login en el windows server 2003 se ve negra

Problema de la pantalla de login de windows server 2003 en negro

He tenido un problema hace unos días: Se me lleno el disco duro de un servidor con Windows Server 2003 de 64 bits y estuvo así durante unos cuantos días. A partir de entonces la pantalla de login (donde pones el nombre de usuario y la contraseña) me salía casi toda en negro (solo se veía alguna imagen, pero el fondo y las ventanas en negro), lo cual era un problema para poner el usuario y contraseña. Al principio podías encontrar a ojo donde estaba el campo de nombre de usuario y el de la contraseña, pero como luego te saliera una venta que no conocieras (por ejemplo informando de otro error) no era tan facil entrar en windows. Al final lo conseguí solucionar, pero es necesario entrar en el windows para editar el registro de este.

 Tenemos que abrir el editor del registro de windows. Para ello iremos al menú Inicio, luego le daremos a Ejecutar. Escribiremos regedit y le daremos a Aceptar. Se abrirá el editor del registro de windows, entonces dentro del arbol de Mi PC tendremos que desplegar la carpeta HKEY_USERS, luego la carpeta .DEFAULT y por último la carpeta Control Panel. Ahora seleccionaremos la carpeta Colors. En mi caso el valor de todos los atributos estaban a cero (por eso se mostraba en negro que tiene código 0 0 0). Para que vuelvan a tener los colores originales, tendremos que darle a los atributos que nos salgan los valores que os indico a continuación (según la version de windows server 2003 que tengáis puede ser que no os salgan algunos, no pasa nada):

ActiveBorder=212 208 200
ActiveTitle=10 36 106
AppWorkSpace=128 128 128
Background=102 111 116
ButtonAlternateFace=181 181 181
ButtonDkShadow=64 64 64
ButtonFace=212 208 200
ButtonHilight=255 255 255
ButtonLight=212 208 200
ButtonShadow=128 128 128
ButtonText=0 0 0
GradientActiveTitle=166 202 240
GradientInactiveTitle=192 192 192
GrayText=128 128 128
Hilight=10 36 106
HilightText=255 255 255
HotTrackingColor=0 0 128
InactiveBorder=212 208 200
InactiveTitle=128 128 128
InactiveTitleText=212 208 200
InfoText=0 0 0
InfoWindow=255 255 225
Menu=212 208 200
MenuBar=212 208 200
MenuHilight=10 36 106
MenuText=0 0 0
Scrollbar=212 208 200
TitleText=255 255 255
Window=255 255 255
WindowFrame=0 0 0
WindowText=0 0 0

temas: 

Cómo instalar una impresora multifunción Epson en Ubuntu

 Epson Stylus DX7400 en linux

Introducción

Yo tengo una Epson Stylus DX7400 aunque el proceso creo que sirve también para las siguientes:

  • Las siguientes Epson Stylus: CX2800, CX2900, ME200, CX3900, DX4000, CX4100, CX4200, DX4200, CX4900, CX5000, DX5000, CX5900, CX6000, DX6000, CX7400, DX7400, CX8300, CX8400, DX8400, CX9300F, CX9400Fax y DX9400F.
  • Las siguientes Epson Stylus Photo RX560, RX580, RX590, RX585, RX595, RX610, RX640, RX650, RX680, RX685 y RX690.

Instalación

Impresora

Para instalar la impresora en linux tendremos que hacer lo siguiente:

  • Tendremos que ir a esta webhttp://www.avasys.jp/english/linux_e/dl_spc.html.
  • Tendremos que rellenar el formulario indicando la multifunción que tenemos y los demás datos.
  • Para enviar el formulario le daremos al botón Next.
  • Ahora entre los archivos que nos mostrará tendremos que bajarnos el archivo deb de pipslite (por ejemplo: pipslite_1.4.0-3_i386.deb).
  • Ahora instalamos los deb:

>> dpkg -i pipslite_1.4.0-3_i386.deb

  • Tendremos que ejecutar el siguiente comando para generar el archivoo PPD:

>> sudo pipslite-install

  • Reiniciamos cups:

>> sudo /etc/init.d/cups restart

  • Y por último tendremos que crear la impresora en el menú de las impresoras.

Escaner

Para instalar el escaner de nuestra multifunción, tendremos que hacer lo siguiente:

  • Lo primero que tendremos que hacer es instalar el programa y utilidades para los escaners de linux:

>> sudo apt-get install sane sane-utils xsane

  • Tendremos que ir a esta webhttp://www.avasys.jp/english/linux_e/dl_spc.html.
  • Tendremos que rellenar el formulario indicando la multifunción que tenemos y los demás datos.
  • Para enviar el formulario le daremos al botón Next.
  • Ahora entre los archivos que nos mostrará tendremos que bajarnos el archivo deb de iscan (por ejemplo: iscan_2.20.1-1_i386.deb).
  • Ahora instalamos los deb:

>> dpkg -i iscan_2.20.1-1_i386.deb

  • Miramos si se detecta el escaner (la multifunción tendrá que estar encendida):

>> sane-find-scanner 
  ...
  found USB scanner (vendor=0x04b8, product=0x0838) at libusb:001:003
  ...

  • Ye esta instalado el escaner.

Uso

Para usar el escaner  tenemos el programa Xsane.

Comprobar que un juego grabado de xbox 360 es Stealth

Juegos Xbox 360 Stealth

Introducción

Antes de nada tendremos que familiarizarnos con ciertos términos.

  • Stealth: Un juego grabado es stealth cuando es indetectable que lo diferencien con uno original (o eso se cree en teora) en Xbox Live.
  • Región free: Un juego es Region Free cuando funciona en consolas de cualquier región. Por ejemplo si un juego NTSC/USA es Region Free podrems jugar a l en nuestra consola PAL.

Para hacer las comprobaciones vamos a usar un programa llamado Abgx360.

Windows

Instalación

 En windows la instalación es muy sencilla. Nos lo tendremos que bajar de la página de abgx360 y ejecutar el archivo para que lo instale.

Linux

Instalación

Lo primero de todo es bajarnos el programa para linux. En linux tenemos varios archivos:

  • Uno es el programa en si, que es por consola de comandos (por ejemplo abgx360-1.0.1.tar.gz).
  • Otro es una interfaz gráfica, ya que no es fácil saberse todos parámetros del programa. La interfaz es solo la interfaz, tendréis que instalar tambión el programa para poderlo usar. (por ejemplo abgx360gui-1.0.1.tar.gz)
  • El último son los datos. (por ejemplo abgx360data.tar.gz)

Una vez que hallamos bajado la última versión del programa vamos a compilarlo e instalarlo:

>> tar -zxvf abgx360-1.0.1.tar.gz
>> cd bgx360-1.0.1
>> sudo apt-get install libcurl4-openssl-dev zlib1g-dev
>> ./configure
>> make
>> sudo checkinstall -D --install=no
>> sudo dpkg -i abgx360_1.0.6-1_amd64.deb

Una vez hemos instalado el programa vamos a instalar la interfaz gráfica:

>> tar -zxvf abgx360gui-1.0.1.tar.gz
>> cd bgx360gui-1.0.1
>> sudo apt-get install libwxgtk2.8-dev xterm
>> ./configure
>> make
>> sudo checkinstall -D --install=no
>> sudo dpkg -i abgx360gui_1.0.2-1_amd64.deb

 Uso

Para abrir el programa tendremos que escribir en una consola la siguiente orden (o podemos crearnos un enlace en la barra de tareas):

>> abgx360gui

Problemas

Zlib not found

Al intentar compilar en linux nos aparece el siguiente error:

>> ./configure
...
configure: error: "zlib not found!"

Solución

No tenemos instalado el paquete de desarrollo de la librería zlib. Lo instalamos con la siguiente orden:

>> sudo apt-get install zlib1g-dev

Libcurl not found

Al intentar compilar en linux nos aparece el siguiente error:

>> ./configure
...
configure: error: "libcurl not found!"

Solución

No tenemos instalado el paquete de desarrollo de la librería libcurl. Para instalarlo tendremos que ejecutar la siguiente orden:

>> sudo apt-get install libcurl3-dev

wxWidgetsgets no instalados

Cuando estamos compilando la interfaz de ABGLX360 nos puede aparecer el siguiente mensaje de error:

>> ./configure
...
checking for wx-config... no
configure: error:
wxWidgets must be installed on your system.
Please check that wx-config is in path, the directory
where wxWidgets libraries are installed (returned by
'wx-config --libs' or 'wx-config --static --libs' command)
is in LD_LIBRARY_PATH or equivalent variable and
wxWidgets version is 2.5.0 or above.

Solución

El problema esta en que no tenemos instalado el paquete de desarrollo de la librería wx. A día de hoy me pedía una versión superior a la 2.5, asi que instale la última, que era la 2.8.

>> sudo apt-get install libwxgtk2.8-dev

libwx_gtk2u_richtext-2.8 Not found

Al ejecutar abgx360gui nos aparece un error indicando que no encuentra la librería libwx_gtk2u_richtext-2.8:

abgx360gui: error while loading shared libraries: libwx_gtk2u_richtext-2.8.so.0: cannot open shared object file: No such file or directory

Solución

La instalamos:

>> sudo apt-get install libwxgtk2.8-dev

 

Error: timed out

Puede pasarnos que en el resultado de analizar un dvd nos encontremos con el siguiente mensaje de aviso en letras amarillas en el comienzo:

ERROR: Resolving timed out after 20530 milliseconds
There seems to be a problem with the db so online functions have been disabled
Try again later...

Solución

Para solucionarlo tendremos que crear un fichero en la ruta /home/USUARIO/.abgx360/abgx360.ini con el siguiente contenido:

# http directory that contains verified ini files
web_inidir: http://5.39.25.104/Apps/verified/

# http directory that contains unverified ini files
web_unverifiedinidir: http://5.39.25.104/Apps/unverified/

# http path to GameNameLookup.csv
web_csv: http://5.39.25.104/Apps/Stealth360/GameNameLookup.csv

# http path to abgx360.dat
web_dat: http://5.39.25.104/Apps/Stealth360/abgx360.dat

# http path to topology.php
web_topology: http://5.39.25.104/Apps/topology.php

# http directory that contains SS/DMI/PFI/Video stealth files
web_stealthdir: http://5.39.25.104/Apps/StealthFiles/

# http form for submitting AutoUploads
web_autoupload: http://5.39.25.104/Apps/Control/AutoUpload.php

Ahora cuando abramos el programa y volvamos a analizar un dvd nos funcionará.

 

 

Actualizar el firmware en español de la televisión 37PFL5603H/10

Actualizar firmware en español para la televisión 37PFL5603H/10

 Lo primero de todo es saber que firmware tiene nuestra televisión 37PFL5603H/10. Pasa saberlo tendremos que seguir los siguientes pasos:

  • Encendemos la televisión.
  • Le damos al botón Menú del mando a distancia.
  • Nos ponemos en la opción Menú TV y le damos al botón OK del mando a distancia.
  • Seleccionamos la opción Actualización de software y le damos al botón OK del mando a distancia.
  • Nos movemos a la opción Información actual del software y ahí pondrá Version: ... (en mi caso la Q522E-0.64.69.0)

Ahora vamos a ver el último firmware y si es mas nuevo lo bajaremos:

  • Para bajarnos el ultimo firmware tendremos que ir a esta pagina web.
  • Ahora nos asegurarnos que es el firmware en español y que la version es más actual que la nuestra. En mi caso me sale: Actualización del firmware - Software, Version: 000.064.078.000 Español), que es una versión más actual y esta en español.
  • Le damos al botón Descargar y luego le damos al botón I Accept en la ventana que nos saldrá.
  • Esperaremos a que se termine la descarga del archivo. En mi caso el archivo se llama 37pfl5603h_10_fus_esp.zip.

Ahora vamos a actualizar el firmware de nuestra television 37PFL5603H/10. Para ello necesitaremos una memoria usb con 64 MB libres. Tendremos que seguir los siguientes pasos (antes de actualizar, os recomiendo que os leáis el pdf con instrucciones que hay en la página de descarga del firmware en el enlace de nombre Notas sobre la versión y/o instrucciones de instalación):

  • Tendremos que extraer el fichero autorun22m.upg que se encuentra dentro del archivo comprimido que nos hemos descargado (en mi caso en 37pfl5603h_10_fus_esp.zip) y lo pondremos en la raiz de la memoria usb. (Si la memoria usb esta en D:\ quedaría D:\autorun22m.upg).
  • Encenderemos la televisión.
  • Conectamos la memoria usb a la televisión.
  • La televisión entrará en modo espera, la pantalla permanecerá 10 segundos en negro y se iniciara el proceso de actualización.
  • Esta ventana en mi caso se titula Software upgrade application Q522E-0.64.69.0 y me salen tres barras: Loading, Velidating y Programming. Según se van completando cada una aparece la palabra done al final.
  • Cuando se han completado las tres aparece el mensaje Operation Successful! Remove all inserted media and restart the TV set.
  • Quitamos la memoria usb de la televisión.
  • Ahora le damos al botón de apagar del mando a distancia solo 1 vez (no el de la televisión).
  • La televisión entrará otra vez en modo espera, estando 10 segundos la pantalla en negro y luego se encenderá.
  • Ya esta actualizado, solo queda borrar el archivo autorun22m.upg de la memoria usb.

Para verificar que se ha actualizado bien, haremos los mismos pasos que hemos hecho para saber que versión del firmware tenemos y esta tendrá que coincidir con la que nos hemos bajado.

Migración de cvs a subversion

Cvs2svn

Introducción

Hace pocos meses que tuve que pasar de usar un servidor de CVS para usar uno de Subversión (este nos proporcionaba más cosas que el primero). En nuestro servidor de cvs tendríamos alrededor de 250 proyectos y la verdad es que me han salido muchos problemas, pero al final se pasó todo. Para la migración estuve mirando por internet y vi que todo el mundo utilizaba un programa llamado cvs2svn. A continuación os explico como hacerlo y la lista de los problemas que me aparecieron y sus soluciones.

Migración

Para importar nuestro repositorio de cvs a subversion (svn) usaremos el programa cvs2svn. Lo tendremos que bajar, descomprimir y ejecutar con los correspondientes parámetros:

>> wget http://cvs2svn.tigris.org/files/documents/1462/44372/cvs2svn-2.2.0.tar.gz
>> gzip -d cvs2svn-2.2.0.tar.gz
>> tar -xvf cvs2svn-2.2.0.tar
>> cd cvs2svn-2.2.0
>> ./cvs2svn --existing-svnrepos --encoding iso8859_15 -s /var/www/html/svn/root ../CVSROOT/miproyecto

Podéis mirar aquí para ver que encodings podemos poner.

Como mi caso, si queréis tener un repositorio multiproyecto tendréis que indicarle a cada proyecto que importéis que las carpetas trunk, branches y tags las meta dentro de una carpeta con el nombre del proyecto. Por ejemplo asi:

>> ./cvs2svn --existing-svnrepos --encoding iso8859_15 --trunk=miproyecto/trunk --branches=miproyecto/branches --tags=miproyecto/tags -s /var/www/html/svn/root ../CVSROOT/miproyecto

Problemas

is not a CVS repository

Al intentar importar una carpeta que contiene un proyecto del cvs nos da el siguiente error:

ERROR: the path '/root/miproyecto' is not a CVS repository, nor a path within a CVS repository. A CVS repository contains a CVSROOT directory within its root directory.

Solucion

Metemos la carpeta del proyecto en una carpeta llamada '''CVSROOT'''. Por ejemplo si nuestro proyecto esta en /root/miproyecto quedaría en /root/'''CVROOT'''/miproyecto.

co: No such file or directory

Al ejecutar el programa cvs2svn con la opción '''--use-rcs''' nos aparece el siguiente error:

ERROR: error executing co: [Errno 2] No such file or directory
Please check that co is installed and in your PATH
(it is a part of the RCS software).

Solución

No tenemos instalado el paquete '''rcs''' que contiene el programa '''co'''. Lo instalamos:

* Para sistemas Debian, Ubuntu, ...

>> sudo aptitude install rcs

* Para sistemas Centos, Redhat, ...

>> sudo yum install rcs

No such file or directory

Al ejecutar la importación de un proyecto del cvs a svn nos aparece el siguiente mensaje de error:

Exception occurred while parsing /projects/cvsroot/miproyecto/prueba/Attic/text.html,v
Traceback (most recent call last):
File "/cvs2svn-2.2.0/cvs2svn", line 31, in ?
main(sys.argv[0], sys.argv[1:])
File "/cvs2svn-2.2.0/cvs2svn_lib/main.py", line 88, in main
pass_manager.run(run_options)
File "/cvs2svn-2.2.0/cvs2svn_lib/pass_manager.py", line 181, in run
the_pass.run(run_options, stats_keeper)
File "/cvs2svn-2.2.0/cvs2svn_lib/passes.py", line 152, in run
cd.process_project(project)
File "/cvs2svn-2.2.0/cvs2svn_lib/collect_data.py", line 1329, in process_project
pdc.process_file(cvs_file)
File "/cvs2svn-2.2.0/cvs2svn_lib/collect_data.py", line 1014, in process_file
cvs2svn_rcsparse.parse(open(cvs_file.filename, 'rb'), fdc)
IOError: [Errno 2] No such file or directory: '/projects/cvsroot/miproyecto/prueba/Attic/text.html,v'

Comprobamos que el fichero existe:

>> ls /projects/cvsroot/miproyecto/prueba/Attic/text.html,v
/projects/cvsroot/miproyecto/prueba/Attic/text.html,v

Solución

Este problema fue muy raro. La carpeta donde almacenaba los proyectos del cvs estaba compartida en otra máquina y la tenia montada donde esta instalado el cvs. Creo que el problema era algo causado por la arquitectura de mi entorno. Al final tuve que copiar la carpeta del proyecto desde el ordenador donde estaba al ordenador donde tenía el servidor de cvs y estaba ejecutando el script de migración. Entonces ejecuté el program

Archivos duplicados, Attic

Al hacer la migración con el programa cvs2svn podemos encontrarnos con un error como este:

'''ERROR''': A CVS repository cannot contain both /repositorio/cvsroot/proyecto/src/file.java,v and /repositorio/cvsroot/proyecto/src/Attic/file.java,v

Solución

Antes de explicar el problema tenemos que saber que las carpetas Attic las usa cvs para guardar ficheros que han sido borrados en nuestro proyecto, para poder recuperarlos en caso necesario. Normalmente si tienes un fichero llamado path/file.txt en tu proyecto, CVS almacena su historia en un fichero llamado repo/path/file.txt,v. Pero si el fichero file.txt es borrado en la rama principal de desarrollo, CVS mueve el fichero de la historia a una subcarpeta especial llamada Attic: repo/path/Attic/file.txt,v. (Si el fichero se vuelve a crear, entonces este es movido fuera del directorio Attic donde estaba ántes.) El repositorio nunca debería contener ambos ficheros al mismo tiempo.

Este mensaje de error indica una leve corrupción en tu repositorio CVS. El archivo que da el problema tiene dos historias en conflicto, e incluso el CVS no sabe cual es la historia correcta. La corrupción probablemente fue creada al usar otras herramientas a parte del CVS para hacer copias de seguridad o manipular los archivos en tu repositorio. Con un poco de trabajo puedes ver las dos historias abriendo los dos ficheros en un editor de texto y así saber cual es el correcto.

Hay 4 maneras de corregir este problema, pero cada una tiene sus desventajas. Recuerda hacer una copia de seguridad antes de empezar. Nunca ejecutes el programa cvs2svn con un repositorio cvs en funcionamiento, trabaja siempre con una copia.

  • Vuelve ha hacer la migración con la opción --retain-conflicting-attic-files.  Esto hace que la verión Attic y no Attic de el fichero sea convertida separadamente almacenando la version Attic en un subdirectorio path/Attic/file.txt. Esto evita la perdida de cualquier historia, pero al moverlo a otro directorio proboca que el historio de revisiones se rompa.
  • Borra la versión Attic del fichero e  intentar otra vez la migración del proyecto. En algunas ocasiones esto representará una vieja versión del fichero que fue borrada hace tiempo. Pero estaremos descartando la historia de uno de los ficheros, probablemente esto causará la perdida de la historia antigua del fichero. Acuerdate de hacer una copia de seguridad del fichero antes de borrarlo.
>> rm /repositorio/cvsroot/proyecto/src/Attic/file.java,v
  • Borrar la versión de fichero no Attic e intentar otra vez la migración del proyecto. Esto puede ser apropiado si el fichero no Attic tiene menos contenido importante que la version Attic. Pero esto descarta una de las dos historias y probablemente causará la perdida de los cambios más recientes del fichero. Antes de borrarlo aseguraos de hacer una copia de seguridad del fichero que borréis.
>> rm /repositorio/cvsroot/proyecto/src/file.java,v
  • Renombrar la versión no Attic de el fichero e intentar otra vez la migración del proyecto. Esto nos evita perder historia, pero cambia el nombre del fichero no Attic.
>> mv /repositorio/cvsroot/proyecto/src/file.java,v /repositorio/cvsroot/proyecto/src/file-not-from-Attic.java,v

Instalar phpLDAPadmin

phpLDAPadmin

Introducción

phpLDAPadmin es un gestor web para un servidor de ldap.

Instalación

Manual

La instalación es sencilla. Hay que bajarselo, descomprimirlo, ponerlo ene l apache y configurar los datos para que acceda a nuestro servidor de ldap:

>> wget http://nfsi.dl.sourceforge.net/sourceforge/phpldapadmin/phpldapadmin-1.1.0.7.tar.gz
>> tar -zxvf phpldapadmin-1.1.0.7.tar.gz
>> sudo cp -R phpldapadmin-1.1.0.7 /var/www/html/phpldapadmin
>> sudo cp /var/www/html/phpldapadmin/config/config.php.example /var/www/html/phpldapadmin/config/config.php

Automatica

Necesitaremos tener un servidor web con php y un servidor mysql con una base de datos para el phpldapadmin. Para instalarlo en ubuntu, desde los repositorios:

>> sudo aptitude install phpldapadmin

Indicarle los datos de conexión

Editamos el fichero y nos aseguramos que rellenamos los siguientes campos que son los minimos:

$i=0;
$ldapservers = new LDAPServers;
...
$ldapservers->SetValue($i,'server','name','NOMBRE_SERVIDOR');
...
$ldapservers->SetValue($i,'server','host','IP_DEL_SERVIDOR_DONDE_ESTA_EL_LDAP');
...
$ldapservers->SetValue($i,'server','port','389');
...
$ldapservers->SetValue($i,'server','base',array('RAIZ_BASE_DE_NUESTRO_LDAP'));

Ya tendria que funcionar el phpLDAPadmin.

Configuración

Cambiar la forma de autentificarse

Por defecto la forma que usa para autentificarse con el servidor de ldap es manual (tenemos que introducir un usuario y una contraseña), pero podemos ponerla en automática. Para usar una u otra tendremos que tener el fichero de configuración como nos indica en cada apartado:

Automáticamente

Para que se conecte automáticamente al servidor de ldap, con un usuario cn=root,dc=example,c=es y contraseña passuser, tendremos que usar las siguientes líneas en el fichero de configuración (/var/www/html/phpldapadmin/config/config.php):

$ldapservers->SetValue($i,'server','auth_type','config');
$ldapservers->SetValue($i,'login','dn','cn=root,dc=example,c=es');
$ldapservers->SetValue($i,'login','pass','passuser');
$ldapservers->SetValue($i,'server','tls',false);

Manual

Para que nos pida que introduzcamos un usuario y clave del ldap para conectarnos al servidor, usaremos las siguientes líneas (recalcar que las variables dn y pass de login, tenemos que dejarlas vacías) en el fichero de configuración (/var/www/html/phpldapadmin/config/config.php):

$ldapservers->SetValue($i,'server','auth_type','cookie');
$ldapservers->SetValue($i,'login','dn','');
$ldapservers->SetValue($i,'login','pass','');
$ldapservers->SetValue($i,'server','tls',false);
$config->custom->session['blowfish'] = "cadena";

La cadena blowfish puede ser cualquier cadena (se usa para encriptar la cookie).

 Solo queremos que muestre unos determinados campos

Si lo que queremos es que no muestre todos los atributos tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y buscar el vector hidden_attrs, descomentarlo si está comentado y poner los campos que no queramos que se muestren. Por ejemplo: Si no queremos que se muestren los campos uidNumber, gidNumber, homeDirectory y objectClass tendremos que poner la siguiente línea:

$hidden_attrs = array(
   'uidNumber','gidNumber', 'homeDirectory', 'objectClass');

Guardamos el fichero y ya esta.

Cambiar los nombres que se muestran de cada parametro

Alguien que no tiene conocimientos de ldap cuando vea que hay que rellenar el parámetro l (ciudad) puede que no sepa que significa. Phpldapadmin tiene la posibilidad de definir el nombre que se lista para cada parámetro. Para ello tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y añadir en el vector friendly_attrs los campos que queremos renombrar en la salida. Por ejemplo: si queremos que los campos l, st y sn aparezcan como Ciudad, Localidad y Apellidos tendremos que añadir als siguientes líneas:

$friendly_attrs = array();

$friendly_attrs['l']                      = 'Ciudad';
$friendly_attrs['st']                     = 'Localidad';
$friendly_attrs['sn']                     = 'Apellidos';

Solo nos quedará guardar los cambios y cerrar el archivo.

Definir el orden en que se listan los parametros

Hay una opcion (attrs_display_order) para definir el orden en el que se muestran los parámetros. Por ejemplo: si queremos que primero nos pregunte por el nombre, luego por los apellidos y por último el nombre completo, tendríamos que añadir la siguiente variable al archivo /var/www/html/phpldapadmin/config/config.php:

  $attrs_display_order = array(
   'sn',
   'cn',
   'displayName'
  );

Los parámetros que no pongamos en este vector  se mostraran despues de los que hallamos indiado y en orden alfabético. Guardamos el fichero para mantener los cambios.

Parametros de solo lectura

Si queremosq eu ciertos parametros no se puedan modificar, podemos hacerlo con el parámetro read_only_attrs. Por ejemplo: si queremos que el campo dni no se pueda modificar, tendremos que añadir el siguiente vector al archivo /var/www/html/phpldapadmin/config/config.php:

$read_only_attrs = array( 'dni' );

Guardamos y listo.

Entrar solo con el nombre de un parámetro único

Por defecto para autentificarnos en phpLDAPadmin tenemos que escribir el dn de nuestro usuario. El dn es el que identifica a un objeto y tiene una forma parecida a este ejemplo uid=manolo,ou=personas,o=tuempresa,c=es. Poner toda esta cadena para autentificarte no es nada comodo, pero podemos sustituir el nombre que el usuario utiliza para autentificarse por uno que sea único y más sencillo de recordar, por ejemplo el uid. Para ello tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y descomentar y modificar la siguiente línea:

$ldapservers->SetValue($i,'login','attr','uid');

Guardamos los cambios y ya esta.

Elegir el idioma

Para indicar que lo muestre en español (es) tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y editar la siguiente línea:

$config->custom->appearance['language'] = 'es';

Otros idiomas serian: 'ct', 'de', 'en', 'es', 'fr', 'it', 'nl', y 'ru'.

Activar el log

Para activar el log y que escriba en un fichero /tmp/pla_debug.log tendremos que editar el fichero /var/www/html/phpldapadmin/config/config.php y añadir o descomentar estas líneas:

$config->custom->debug['level'] = 255;
$config->custom->debug['syslog'] = true;
$config->custom->debug['file'] = '/tmp/pla_debug.log';

Errores

Límite de memoria de php bajo

Al instalarlo, cuando accedemos a la url nos aparece el siguiente mensaje de error:

Memory Limit low.
Your php memory limit is low - currently 16M

Solución

Tendremos que editar el fichero /etc/php.ini y buscar la siguiente línea:

memory_limit = 16M

Cambiamos el 16 por 32. Guardamos el fichero y reiniciamos el apache:

>> sudo /etc/init.d/httpd restart

Grabar juegos de xbox 360

Grabar juegos de xbox 360 en windows y linux

Introducción

Para grabar un juego de Xbox 360 necesitaremos una grabadora de doble capa y un dvd de doble capa virgen. A continuación os muestro como hacer en windows o en linux.

Windows

Para grabar juegos de xbox 360 en windows tenéis que seguir los pasos de esta url: http://ociotec.com/como-grabar-juegos-de-xbox-360/

Linux

Para grabar juegos de xbox 360 o juegos de la primera xbox (para jugarlos en nuestra xbox 360) en linux podemos hacer con dos programas: growisofs (desde consola de comandos) o K3B (con ventanas).

Con el programa growisofs

Podremos grabar juegos de extensión iso, 000, ...

  • Para juegos de Xbox 360 en formato XGD3:

Para grabar un juego en formato XGD3 hay que hacerlo en Windows y necesitaremos una grabadora compatible.

  • Para juegos de Xbox 360 en formato XGD2:

Para grabar con la grabadora /dev/dvdrw una imagen /media/datos/juego.iso de un juego de Xbox 360:

>> growisofs -use-the-force-luke=dao -use-the-force-luke=break:1913760 -dvd-compat -speed=2 -Z /dev/dvdrw=/media/datos/juego.iso
  • Para juegos de Xbox:
>> growisofs -use-the-force-luke=dao -use-the-force-luke=break:1913776 -dvd-compat -speed=2 -Z /dev/dvdrw=/media/datos/juego.iso

Con el programa K3B

Para hacerlo con el programa K3B (yo no he probado esto):

Aparte de ese comando puedes configurar el layerbreak en K3B para poder grabar los juegos, lo unico que debes de hacer es ir al menu preferencias/configurar K3B. Ahí dentro de programas te aparecerán 3 pestañas, la segunda nos permite especificar parámetros para ellos.

Después te colocas sobre la linea de growisofs y escribes:

-use-the-force-luke=break:1913760

Le das Aplicar y a Aceptar. Si lo hiciste bien te saldrá un mensaje advirtiendo que estableciste nuevos parámetros.

Balanceador de tomcats con apache

Hacer un balanceador de tomcats con apache

A veces no nos basta con un servidor para poder responder a todas las peticiones que nos llegan y necesitamos tener varios servidores. Pero esto tiene que ser invisible para los usuarios y por eso el punto de entrada es el mismo. Para ello podemos usar un balanceador que según le vayan llegando peticiones de los usaurios les ira redireccionando a un servidor u otro.

Para tener varios servidores con Tomctas instalados y un Apache que redireccione las peticiones a estos, tendremos que seguir los siguientes pasos:

  • Descargamos el instalador del apache (http://httpd.apache.org/).
  • Instalamos el apache.
  • Nos bajamos el conector jk de aqui (http://tomcat.apache.org/download-connectors.cgi): Vamos a Binary Releases, luego a win32 (si tenemos un windows de 32 bits) y por último entramos en jk-1.2.28. Hay una versión para los apache 2.0.x y otra para los apache 2.2.x, bajad la correspondiente al vuestro (para el apache 2.2.x sería mod_jk-1.2.28-httpd-2.2.3.so).
  • Paramos el apache.
  • Movemos el fichero del conector jk a la carpeta de modulos del apache (por defecto es C:\Archivos de programa\Apache Software Fundation\Apache2.2\modules) y lo renombramos como mod_jk.so.
  • Ahora tendremos que editar el fichero de configuración httpd.conf (por defecto estará en C:\Archivos de programa\Apache Software Fundation\Apache2.2\conf\) y añadir la siguiente línea en la zona donde se cargan los demás módulos:
LoadModule jk_module modules/mod_jk.so
  • Crearemos el fichero workers.properies con la definición de los tomcats y del tipo de balanceador. Por ejmplo, imaginemos que tenemos dos tomcats en la misma máquina (localhost), uno con el conector de AJP/1.3 en el puerto 8009 y otro en el puerto 8019 y que queremos usar un balanceador lb. Entonces tendremos el siguiente fichero de configuración:
workers.tomcat_home=C:/tomcat-5.5.20
workers.java_home=C:/jdk1.5.0_03
 
worker.list=balancer
 
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
 
worker.worker2.port=8019
worker.worker2.host=localhost
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
 
worker.balancer.type=lb
worker.balancer.balance_workers=worker1,worker2
worker.balancer.method=B
  • En el archivo httpd.conf (por defecto estará en C:\Archivos de programa\Apache Software Fundation\Apache2.2\conf\) tendremos que configurar unos parametros del conector jk y pondremos las siguientes líneas en las que indicaremos donde escribir los logs, donde esta el fichero que define los workers y alguna cosa mas:
# Path to workers.properties
JkWorkersFile C:/Archivos de programa/Apache Software Fundation/Apache2.2/conf/workers.properties
 
# Path to jk logs
JkLogFile C:/Archivos de programa/Apache Software Fundation/Apache2.2/mod_jk.log
 
# Jk log level [debug/error/info]
JkLogLevel info
 
# Jk log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
 
# JkOptions for forwarding
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
 
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
  • Después de las líneas anteriores, en el fichero httpd.conf (por defecto estará en C:\Archivos de programa\Apache Software Fundation\Apache2.2\conf\) tendremos que indicar los path que queremos que se redireccionen a los tomcats y a cuales queremos que se redireccionen. Solo podremos direccionar explícitamente a los que esten puestos en la línea worker.list del workers.properties. Si queremos redireccionar a alguno que este dentro del balanceador, tendremos que ponerlos en esta línea también: worker.list=worker1,worker2,balancer. Por ejemplo, para que la url http://www.prueba.es/aplicacion sea redireccionada a algunos tomcats definidos en el archivo workers.properties, tendremos que poner alguna de las siguientes líneas dependiendo de a que lo queremos redireccionar (pondremos tantas líneas como sean necesarias):
# Para que envie al tomcat definido como worker1
JkMount /aplicacion worker1
 
# Para que envie a los tomcats definidos como worker1 y worker2
JkMount /aplicacion worker1 worker2
 
# Si queremos que lo envíe a los tomcats definidos en el balanceador
JkMount /aplicacion balancer

Actualizar el dashboard de la xbox 360 offline

Actualización del dashboard de la Xbox 360

¿Que es el Dashboard?.

El Dashboard es la interfaz (menú) que aparece cuando iniciamos la consola sin ningún juego insertado

No todo el mundo tiene su xbox 360 conectada a internet y asi poder actualizar el dashboard online. Pero con los ficheros de la actualización puedes hacerlo tu mismo offline (sin tener que conectarla a internet). Aquí tenéis una lista de diferentes dashboards:

Aquí tenéis mas información de todos dashboards.

Ahora vamos a ver el proceso para actualizarlo:

  • Lo primero que necesitamos es bajarnos los archivos de la actualización que queramos instalar.
  • Necesitaremos una memoria usb para la actualización. Cogemos una y la conectamos al ordenador.
  • Luego tendremos que descomprimir el arhivo que nos habremos bajado en la raiz de una memoria usb. Si el usb lo tenemos en la unidad F:\ tendrá que quedar al final de la siguiente manera F:\$SystemUpdate.
  • Ahora, si tenemos la consola encendida, la apagamos.
  • Conectamos la memoria usb a la consola.
  • Encendemos la consola.
  • Nos aparecerá una ventana con el título Actualización necesaria diciendonos:

Para continuar, necesitas actualizaciones de seguridad y de programas. Se agregarán actualizaciones del sistema para garantizar la seguridad y el fucnionamiento correcto. Si no las aceptas volverás a la Interfaz Xbox. ¿Aceptar la actualización?.

  • Seleccionamos la opción Si, actualizar ahora y le damos al botón A (el verde) del mando.
  • Entonces aparecerá una ventana con el título Actualización en curso informandonos que no apagemos la consola y que puede que la consola se reinicie varias veces si es necesario.
  • Esperamos a que nos aparezca el menú de la consola.
  • Ya podremos quitar la memória usb.

Todo esto lo podemos hacer también con un cd o dvd regrabable (aunque a mi aveces no me la cogía). Ya tenemos la consola actualizada. Ahora podremos disfrutar de las nuevas características que nos iran proporcionando los dashboard que instalemos.

temas: