Tuesday, December 14, 2010

GMAIL - Ver sólo correos sin leer

A veces en nuestra página de Gmail es bastante complicado empezar a buscar todos los correos que tenemos sin abrir.

Si queremos que aparezcan únicamente éstos correos, podemos filtrarlo escribiendo en el cuadro de búsqueda de arriba lo siguiente: is:unread.

De este modo, sólo aparecerán esos correos sin leer tan deseados.

Friday, December 10, 2010

Transclusion - Definición

Transclusion is the inclusion of the content of a document into another document by reference.

Wednesday, November 3, 2010

Renombrar directorios y ficheros por consola

Aunque parezca una tarea sencilla, los principiantes de la consola de Linux, sea cual sea la distro, tienen problemas para una tarea tan simple como es renombrar un fichero. Ahí van unas ayudas:

  • $> mv old_folder_name new_folder_name
    Esta orden mueve un directorio completo a la ruta que le indiquemos, con un nuevo nombre. Si sólo queremos renombrar, simplemente debemos poner como new_folder_name el nuevo nombre

Iniciar y parar OC4J

De entre las cosas que he comentado de oc4j no he dicho como iniciar y parar el contenedor web. Lo mejor es ir a las fuentes, así que aquí dejo la referencia a Oracle.

Friday, October 29, 2010

Alias en consola

En ocasiones, la socorrida orden ll no está disponible en nuestra sesión. La solución pasa por editar el fichero de nuestro home .bashrc y buscar la linea comentada:
  • alias ll='ls -l'
La descomentamos, reiniciamos la sesión, y listo.

Monday, October 18, 2010

Propiedades detalladas de los discos duros

Siguiendo con la búsqueda de información, otra cosa bien útil es saber qué discos duros tenemos. Su tamaño o espacio libre. Una forma rápida e interesante es la siguiente:
  • $> fdisk -l
Que muestra la información de los discos duros físicos del sistema, cómo están particionados y los nombres correspondientes.

Propiedades detalladas de la RAM

En ocasiones es necesario saber características de la RAM como, por ejemplo, cuantos módulos tenemos, cuántas ranuras de la placa base tenemos libres u ocupadas, velocidad, etc...

La siguiente orden:
  • $> dmidecode --type=17
Imprime un módulo de información por cada ranura que hay en la placa base. De este modo, podemos saber:

  • Ranura vacía: Total Width: Unknown
  • Tamaño del módulo: Size: XXXX MB
  • Tipo: Type: DDRX
  • Velocidad: Speed: XXX MHz (X ns)
Una orden muy útil y que evita tener que abrir el ordenador para comprobar cosas.

Thursday, October 14, 2010

Oracle Streams

Éste es un artículo interesante que he traducido. Tengo pendiente revisarlo para conseguir una coherencia más o menos cuerda de los conceptos.

Un "Oracle Stream", una nueva características de Oracle 9i R2, es una tecnología para compartir información, la cual permite la propagación y gestión de datos, eventos y transacciones dentro de bases de datos ya sean oracle a oracle ó oracle a No-oracle. Los Oracle Streams son flexibles en el sentido de que permiten la intervención del usuario - los usuarios pueden especificar qué información va dentro del stream, la ruta del flujo, qué ocurre con los eventos en el stream y cómo finaliza el mismo. Se emplea para capturar eventos como un Data Manipulation Language (DML), que son los INSERT, UPDATE y DELETE, y Data Definition Language (DDL), que son los ALTER, DROP y RENAME.

Monday, October 4, 2010

Ver el Garbage Collector de Eclipse

Si para la ejecución de vuestras aplicaciones os interesa ver el GC de Java y así controlar cuánto se cargan vuestras aplicaciones antes de reventar, lo mejor es activar lo siguiente:

Window -> Preferences -> General ->Activar el checkbox Show Heap Status.


En la parte inferior dereche del Eclipse, aparecerá un indicador con lo llena que está la pila.

Thursday, September 23, 2010

Performance - Definición

Performance means that the data should be accessed via an efficient approach.

Data Model - Definción

A data model is a way to represent physical objects with data structures.

Wednesday, September 22, 2010

Saber la versión de OC4J

Una cosa tan simple como saber la versión de nuestro servidor OC4J no tiene por qué convertirse en una búsqueda a pelo entre ficheros XML. Aquí va una orden sencilla:

curl -I http://localhost:8888


Entre otras cosas, tendremos la línea siguiente:

Server: Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)


Y ya está.

Thursday, September 2, 2010

Añadir un usuario en Linux

Nuevamente, con una sola orden es suficiente:
  • $> adduser nombre

Tamaño de la RAM en Linux

La solución más clara y sencilla es:
  • $> cat /etc/meminfo

En otros sistemas puede ser:
  • $> cat /proc/meminfo

En ambos casos, la línea que nos interesa es MachineMem

Tuesday, August 31, 2010

Nuevo disco duro en Ubuntu

Sigue estos dos hilos en orden. Es muy simple.

  1. Instalar un disco duro.
  2. Montar particiones.

"Can't open activity db" en Subversion 1.6.6

Si se ha obtenido este error al intentar subir algún archivo a un repositorio recién creado, el problema puede resudir en que dentro de la carpeta del proyecto, la orden svnadmin create no ha creado el directorio dav.

La solución pasa por crearlo manualmente y asignarle el mismo usuario y grupo que el resto del repositorio.

  1. $> mkdir /path/del/repositorio/dav
  2. $> chmod -R usuario.grupo /path/del/repositorio/dav
Y con eso bastará.

Configurar el nombre de una máquina virtual Ubuntu a partir de una Template

Generalmente este proceso es muy simple. Todo viene a partir de una máquina virtual a la que se le instaló Ubuntu y se le puso un nombre, digamos que fue mymachine_one.

Después se creó una plantilla a partir de esa instalación, que se quedó con ese nombre. Al crear una nueva máquina virtual desde esa plantilla, la VM resultante tiene el mismo nombre. Hay que cambiarlo.

  1. Cambiar el archivo /etc/hosts de modo que donde aparece mymachine_one escribimos el nombre de la nueva máquina en su lugar.
  2. Modificar del mismo modo el archivo /etc/hostname
  3. Seguir las indicaciones de este otro post.
Y ya estará ;)

Monday, August 30, 2010

Cómo crear una copia de un repositorio de subversion y recuperarla

Para crear una copia de un proyecto, el proceso es simple:

$> svnadmin dump path_del_repositorio/nombre_del_proyecto | gzip -> path_de_destino/nombre_del_proyecto.dump.gz

Y esto genera un fichero GZ con todo el historial.

Para recuperarlo, el proceso es análogo:

$> gunzip -c path_de_destino/nombre_del_proyecto.dump.gz | svnadmin load path_del_repositorio/nombre_del_proyecto

Tuesday, July 20, 2010

Crear un servicio para Linux

Crear un servicio para Linux es muy sencillo. Pero dado que hoy no tengo tiempo para escribir, os dejo este link que lo explica todo de categoría: http://websenior.wordpress.com/2009/01/13/crear-servicio-el-linux/.

Tuesday, July 13, 2010

Empaquetar un TAR en Linux (o comprimir)

Muy sencillo en Linux:

  • Empaquetar: tar -cvf fichero.tar /directorio/a/comprimir/
  • Empaquetar en otra extensión muy común: tar -zcvf fichero.tar /directorio/a/comprimir/
  • Desempaquetar en el directorio actual: tar -xvf fichero.tar
  • Desempaquetar en el directorio actual otra extensión muy común: tar xvzf archivo.tar.gz
  • Ver contenido tar -tf fichero.tar

Thursday, July 8, 2010

Configurar una versión de Java por defecto en Linux

Quién trabaje en desarrollos normalmente se habrá encontrado con la problemática siguiente:

Necesito ejecutar mi programa con la versión 1.5.x de Java, pero tengo instalada la 1.6.x


¿Significa esto que debemos desinstalar la 1.6 y poner la 1.5? Hay una solución más simple. Si instalamos la versión de Java que queremos, en este caso la 1.5, podemos establecerla como la versión por defecto de Linux con la orden
$> # alternatives --config java
Esta orden nos permitirá escoger entre las diferentes librerias instaladas en nuestro sistema. Por ejemplo, en el mio:
Hay 2 programas que proporcionan 'java'.

Selección Comando
-----------------------------------------------
*+ 1 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
2 /usr/lib/jvm/jre-1.5.0-sun/bin/java

Presione Intro para mantener la selección actual[+], o escriba el número de la selección: 2
Con esto, cuando tecleemos java -version obtendremos que el sistema llama a la 1.5.

¡Un saludo!

Fte.: Wiki Centos

Monday, July 5, 2010

Cambiar el puerto de OC4J

Si necesitamos cambiar el puerto de acceso HTTP del OC4J, la solución es bien sencilla:

  1. Acceder al fichero path_to_0c4j/j2ee/home/config/http-web-site.xml.
  2. Localizar la linea con el siguiente contenido:
    <web-site port="8888" 
    name="" > </web-site>
  3. Cambiar el valor del atributo port.
  4. Reiniciar el OC4J
Y ya está :)

Friday, July 2, 2010

Unknown assembly root-tag attribute: version en OC4J

Imaginad que estáis trabajando en un proyectito web y a mitad de desarrollo os sueltan: "Lo tienes que ejecutar en OC4J 10.1.2. Ya sabes, ése que usaban nuestros abuelos"

Sin problemas, creas un WAR, lo colocas en el directorio de applicacions, configuras el application.xml y el http-web-site.xml, reinicias y...
$> gt; gt; gt; gt; gt; gt; gt; gt; Unknown assembly root-tag attribute: version
¿Y qué narices significa? ¬¬

Retrocedamos en el tiempo. Si creaste el proyecto con un asistente, en algún momento debió pedirte que escogieses el Dynamic web module version.



Últimamente, con los tiempos modernos, el que se escoge es el 2.4 o el 2.5, lo cual crea un fichero web.xml con la siguiente cabecera:



La segunda línea es la que molesta al OC4J pues el 2.4 o superior no está soportado. De modo que tendríamos que corregir dicho parámetro en el proyecto al 2.3 por lo menos.

El cómo hacerlo, depende de lo que estéis haciendo y de cómo lo hagáis, si usáis Eclipse, JDeveloper, NetBeans... Pero os garantizo que no es sencillo y puede traer problemas. Un saludo.

Cuando OC4J no encuentra a JAVA

Al instalar un servidor OC4J podemos encontrarnos con el problema/aviso/puñetería de que nos sale un mensaje que indica: Exception javac not found under $PATH, please use a valid jdk or specify the location of your java compiler in server.xml using the tag.

Esto viene a significar que la configuración del OC4J está buscando el bin javac (Linux) o el java.exe (Wondows) en el lugar equivocado.

La solución es sencilla una vez que se sabe. En primer lugar debemos buscar dónde está el ejecutable de marras y apuntarnos su PATH. En mi caso /usr/lib/jdk1.4/bin

Luego buscamos el fichero server.xml dentro de nuestra instalación oc4j. Dicho fichero suele estar en este path: /opt/oc4j/j2ee/home/config/server.xml

Lo abrimos y añadimos la siguiente línea: <java-compiler name="javac" bindir="/usr/lib/jdk1.4/bin"> tras la etiqueta web-site.

Al reiniciar, el error habrá desaparecido.

Fte.: Database Journal

Manejo de enlaces simbólicos

En Linux, los que solemos llamar un acceso directo se conocen realmente como enlaces simbólicos.

En Linux puede venir bastante bien para acortarnos el camino. Aquí voy a dejar un par de cosas básicas:


  • Crear un enlace simbólico:
    $> ln -s directorio_real nombre_del_enlace
    El primer argumento es el directorio al que queremos apuntar y el segundo el nombre del nuevo en lace, que se creará en la carpeta en la que estamos trabajando.

  • Eliminar un en lace simbólico:
    $> unlink nombre_del_enlace
    Esto eliminará el enlace, aunque el directorio original seguirá existiendo.


Como indicación final, hay que asegurarse de que el usuario del enlace simbólico tenga permisos para trabajar en la carpeta destino, como mínimo 'r' y 'x', sino, el sistema no nos permitirá acceder.

En esta referencia hay un artículo mucho más completo, y que me ha gustado mucho: Informático de Guardia.

Un saludo a todos.

Friday, June 18, 2010

Variables on templates

Pregunta:

Hi, I was studying the Wikipedia Templates and I have see somes codes like this:
style="{{{bodystyle|}}};{{{style|}}}">...
But "bodystyle" isn't defined anywhere and it isn't invoked but has a value in the page result. Exists some meaning to define this values? Thanks.

Respuesta 1:

Yes. It is set on call.

Eg. if you have tamplate foo containing:
{{{1}}}
You could call it as:
{{foo|Hello World!|style=color: blue|bodystyle=background-color: red}}
And the result will be:
Hello World!


Respuesta 2:

In this case, both "bodystyle" and "style" are parameters that are
passed to the template by whatever is instantiating it (e.g. another
template or an instance of the template living on a page somewhere). For
example:
{{some template | bodystyle = color:black; | style = font-weight:bold; }}


Hope that makes sense.

Ryan Kaldari

Wednesday, June 16, 2010

Cómo cambiar el hostname en Linux

Aquí os dejo un link a un blog interesante acerca de como cambiar el hostname de una maquina Linux: EsLoMas.

Sesión no autentificada en VMWare Converter

En ocasiones, al tratar de iniciar el asistente del VMWare Converter puede aparecer un mensage como el siguiente:

The session is not authenticated


Este mensaje significa realmente que hay dos instancias del converter activas al mismo tiempo. La solución es simple: abirir el Administrador de tareas de Windows y matar direstamente los procesos de vmware-converter.exe. Después basta con reiniciar el Converter y se pdorá trabajar normalmente. Un saludo.

Tuesday, June 15, 2010

... Y activarle el DNS

Y por último, ¿no funciona el DNS? Solución rápida después de un par de cafés y varias maldiciones.

  1. $> vim /etc/dhcp3/dhclient.conf
  2. Escribir send host-name "nombre_del_host";
  3. Reiniciar el Pc y sanseacabó.

Levantar la tarjeta de red en Debian/Ubuntu

Al instalar una distro de Debian, podemos encontrarnos con que no tenemos red. Aquí os ofrezco una forma rápida y en la mayoría de ocasiones efectiva para activar la red.

  1. $> ifconfig -a
  2. Buscar el dispositivo ethX generalmente eth0 o eth1. El correcto es aquel que tiene un parámetro llamado HWaddr seguido de una dirección MAC.
  3. Abrir el fichero /etc/network/interfaces y añadir las lineas siguientes al final del archivo:
    auto eth1
    iface eth1 inet dhcp
  4. En mi caso, he puesto el eth1. Y ahora toca reiniciar:
    $> dhclient eth1
  5. Y con esto ya está solucionado. La orden ifconfig debería devolvernos una IP. Si no, puede ser recomendable reiniciar el PC.

Poner el teclado en español en Linux

$> loadkeys es

Máquinas virtuales suspendidas

Este artículo es apra usarios de Máquinas Virtuales con VMWare. En ocasiones podemos necesitas migrar máquinas virtuales de un host físico a otro, y para ello usamos el VMWare Converter Standalone Client. Ocurre en ocasiones que se tiene una Máquina Virtual lista para migrar y el asistente no nos deja continuar por el siguiente error:

Unable to proceed because the source is suspended


¿Cómo arreglarlo? Muy sencillo. La máquina virtual en VMWare se compone de una serie de archivos VMDK y VMX. El VMX es el que interesa:

  1. Realizamos una copia de seguridad del fichero VMX.
  2. Lo abrimos con un editor de texto.
  3. Borramos las líneas "checkpoint.vmState = ..." y "extendedConfigFile =..."
  4. Guardamos los cambios.
  5. Reiniciamos el asistente y no habrá problemas.
El original de la solución está en la comunidad de VMWare. Un saludo.

Wednesday, June 2, 2010

Crear un nuevo usuario en Linux

Crear un grupo de usuarios en Linux y usuarios dentro de él es muy sencillo tal y como comento a continuación.

Estas pruebas son sencillas y las he realizado en una Centos 5.4, pero son estándar de cualquier UNIX.

  1. Acceder a la consola. Primero debemos crear un grupo donde meter el usuario, en caso de que este no exista.
    $> groupadd nombre_grupo

  2. Si todo ha sido correcto, podemos comprobar que se ha creado correctamente con:
    $>cat /etc/group
  3. En la última línea impresa podemos ver la cadena que certifica la creación del grupo:
    nombre_grupo:x:GID:
    Donde GID es el número del grupo.

  4. Crear el usuario es un proceso similar:
    $>useradd -g nombre_grupo nombre_usuario
  5. Luego hay que darle una clave:
    $> passwd nombre_usuario
  6. Para comprobar que realmente se ha creado el usuario, ejecutar la siguiente orden y comprobar la última línea:
    $> cat /etc/passwd

Matar un proceso en Linux

Existen muchos métodos legales para finalizar un programa en Linux. sim embargo, a veces por falta de previsión o las mismas prisas, no tenemos desarrollado ese método que puede bien ser un service básico. Así pues, os presento la forma más sencilla de acabar algo en Linux que no queremos que siga funcionando. Es importante saber que para matar un proceso hay que tener permisos adecuados. Si cualquiera pudiese matar cualquier proceso, este sistema hace tiempo que habría desaparecido.

Estas pruebas son sencillas y las he realizado en una Centos 5.4, pero son estándar de cualquier UNIX.

  1. Acceder a la consola y ejecutar:
    $> ps -eF

  2. Esto imprimirá una lista de todos los procesos son su PID, su nombre y el usuario que tiene su control.
    UID PID PPID CMD
    root 7504 7363 grep

  3. Nos quedamos con el PID y si tenemos permisos adecuados tecleamos:
    $> kill -9 PID
    Donde PID es el número del proceso.

  4. Si no hay problema, el no devolverá ningún mensaje y tecleando de nuevo la orden ps podremos comprobar que ya no existe el proceso.

Tuesday, June 1, 2010

Desactivar la interfaz gráfica de Linux

En ocasiones, interesa ahorrar memoria en el sistema para que el ordenador dedique recursos a tareas más importantes que mostrar una ventana. Si estamos acostumbrados a usar la consola para trabajar, puede ser una buena idea quitarnos la interfaz que ya no se emplea.

Estas pruebas son sencillas y las he realizado en una Centos 5.4

  1. Acceder al archivo inittab
    vim /etc/inittab

  2. Buscar la línea que tiene el siguiente contenido.
    id:5:initdefault:

  3. Sustituir el 5 por el 3
    id:3:initdefault:

  4. Reiniciar el sistema y listo.

Thursday, May 20, 2010

Projec.Net: Cambiar jornada laboral de un proyecto

Pregunta:

Hi,

I've created a task with the next properties:

* Fixed Units
* Effort Driven
* Start date: 5/20/10
* Finish date: 5/21/10
* Duration 5 hours


But automatically, the PNET chages the Start Date to 5/21/2010 and adds a constraint "Finish No Earlier Than" and Constraint Date "5/21/10" anf "17:00"

In my job, I finish at 15:00, how can I change? Thanks

Respuesta 1:

For the project: Workplan >> Properties >> Change Working Times

Conclusión: Buena solución y sencilla para la versión 9.1 de este software.

MediaWiki: Restringir la visibilidad de páginas por grupos

Pregunta:

Hi,

I have a group of pages that I want will be read by some group of users. Exists some meaning to create a new group and configure a group of pages cos' only this group can read? Thanks

Respuesta 1:

Hi, I know there is e extension that can do that. I dont remember which one and dont recomend, though, except in case of a sensitive document on a corporate wiki. Best regards, Nevio

Respuesta 2:

The typical responses from mwbot:

!access
*For information on customizing user access, see http://www.mediawiki.org/wiki/Manual:User_rights. For common examples of restricting access using both rights and extensions, see http://www.mediawiki.org/wiki/Manual:Preventing_access.

!cms
*Wikis are designed for openness, to be readable and editable by all. If you want a forum, a blog, a web authoring toolkit or corporate content management system, perhaps don't use wiki software. There is a nice overview of free tools available at http://www.opensourcecms.com/ including the possibility to try each system.

!secrets
*MediaWiki was not designed with read-restrictions in mind, and may not provide air-tight protection against unauthorized access. We will not be held responsible should private information, such as a password or bank details, be leaked, leading to loss of funds or one's job.

http://mediawiki.org/wiki/Extension:Lockdown or one of the other
extensions might work.

Respuesta 3:

I'm using Mediawiki for a online textbook of sorts, with a page representing a chapter. I have returned on section numbering for all users to mimic the way the chapters are numbered in the book; works great. However, it doesn't make sense in my context to have the numbering start with "1" for each chapter. Ideally there would be a way to start the numbering at any number. Or at least be able to change the leading "1" - no chapter is structured with multiple h2s. I've kludged a fix with javascript, but it is too slow for my liking.

Are there plug-ins available with this functionality? How hard would it to be to add a magic word that performs this functionality? Where in the php should I start messing around?

Conclusión:

MediaWiki: Ordenar categorías en una sola columna

Pregunta:

Hi!

The Categories pages are sorted in three columns. Does it exist some meaning
to sort in one column? Thanks.

Respuesta 1:

Hi

I think (not 100% sure though) it is hard-coded somewhere in the file CategoryPage.php

Alexis

Conclusión: Es mejor no hacerlo. En este caso, MediaWiki es bastante cerrado y no es recomendable empezar a trastear con el código fuente, ano ser que sea estrictamente necesario.

Presentación

El médico de Mary Poppins nace fruto de mi trabajo diario. Cada día debo buscar pequeñas tonterías relacionadas con la Ingeniería Informática.

Estas pequeñas dudas se conocen en ocasiones como píldoras. Así pues, aquí publicaré las preguntas y las soluciones que halle. Simplemente espero que a la gente del ramo les resulten útiles.

El nombre del blog está inspirado en aquella canción de Mary Poppins cuando decían: Con un poco de azúcar es la píldora que os dan. Francamente, nunca ví la píldora, pero el médico debía andar por alguna parte.

Un saludo.