20081123

la frasezota !

Si una mesa abarrotada es síntoma de una mente abarrotada, entonces ¿qué debemos pensar de un escritorio vacío?
... a decir de Albert Einstein

20081113

made in home

Algunos sabrán, algotros no... la fotografía me encanta (si, suena medio puñeto, pero que... no me gusta cantar, ni pintar, me caga cuando declaman, odio a los políticos, adoro como cantan las viejas en especial Natalia Lafourcade ó Michelle Branch, me encanta cocinar, pero no lavar los trastos, so..), así que de hace un tiempo dispuse aprender ello. No se si lo haga bien o mal, pero el intento lo estoy haciendo y me estoy divirtiendo en el proceso :-P

Algo de practica con el GIMP, con una Canon Rebel XTi (pa' beginners like me) y tienes mucho para distraerte.



"cachorro"


"noviembre por la mañana"


"no salgas de ahí.."


code it !

20081111

la frasezota !

"En una economía globalizada el poder es como un violin: se toma con la izquierda pero se toca con la derecha"

... a decir de David Konzevik

N: interesante la forma de ver las cosas de este personaje, alguien a quien verdaderamente sería importante escuchar !

20081109

pinches maquinas ...

Si algo me incomoda es tener que pelearme con una maquina dispensadora (je je je en general con cualquier maquina !) y parece ser que las dispensadoras automáticas están dispuestas a darme batalla ó al menos, hacerme repelar un rato al respecto.

La semana pasada, se me antojaron unas galletitas de canela así que me dispuse enfrentar mi suerte con la maquina de la cafetería...


cual fué mi suerte, que por tercera ocasión sucedía que se quedaban atoradas las mentadas galletas; arghhh ... no es posible que por tercera ocasión !. Así que dispuse a pensar; le doy sus madrazos a esta madre cual oficinista desesperado en video de youtube ó ... le dejo caer otra cosa pa que se zafe el mentado producto.


Chingao, esos de Bimbo se hacen la bolsa con imbeciles como yo, pensé. Pero bueno, que le voy a hacer ... era la tercera ocasión y no iba a permitir que otro cabrón se tragara lo que con tanto esfuerzo me costo meter 4 monedas de a peso y no se cuantas de 50 centavos... así que pues vamos a clavarle la de 10 ! total... uhmmm ... que será bueno.... uhmmta pues una coca total no he tomado en toda la semana una !

- moneda de 10 pesotes, click (pinches maquinas...) !

- credito de 10 pesotes (pinches maquinas de bimbo... pinches weyes de bimbo... )

- tecleo el E1 ya qué.. falta que también se atore mi cocota... hijos de la chingada, no'mas se atora... pinche maquina alcance a cuchichear ...


NO JODAS !

Hijos de la prangana !, que ? le dejo caer otra cosa pinche maquina hija de bimbo !... ni para darle sus madrazos, pues la maquina esta ubicada en un lugar donde es paso para muchos cabrones ... argghhhh ...


Sin perder la paciencia (y la elegancia caray) con una risa nerviosa, decidí ir por un lapiz e intentar hacer caer aquellas pinches galletas, rascandole con la mano torcida cual gato decir jugar con su bola de estambre y ante la extraña mirada de los compañeros, que volteaban viendome hacer malabares (y un esbozo de sonrisa de "pobre wey") para sacar mis pinches galletas (y mi coca).


He de decir que esas galletas me supieron "poca madre", la coca ni la pelé. Ahora el lapiz forma parte del mobiliario de oficina.

20081108

Conscience

Conscience is what makes a boy tell his mother before his sister does.
... a decir de Evan Esar

20081107

doodles

Cisco VPN Client sobre Ubuntu Linux 2.6.24+

Como parte del trabajo que realizo es necesario contar con la posibilidad de conectarme a la red interna de la organización, sabemos que hay mejores herramientas que las que ofrece Cisco en cuestión de VPN, sin embargo forman parte del escenario en el que laboralmente nos movemos.

Así que al grano, la receta para instalar el cliente de Cisco es la siguiente:
Verificar versión del kernel
- $ uname -r
2.6.24-21-generic

Nota: esta receta aplica para kernels 2.6.24+, para la serie 2.6.22 es cuestión de
buscar el cliente y el parche los cuales puedes encontrar en las referencias que
cito mas abajo.
Independientemente de ello el procedimiento es muy similar.


Instalar herramientas de Compilación y cabeceras del kernel
- $ dpkg-query --show build-essential
build-essential 11.3ubuntu1

- $ dpkg-query --show linux-headers-generic
linux-headers-generic 2.6.24.21.23

- en caso de NO contar con ellas, entonces a instalarlas
$ sudo apt-get install build-essential linux-headers-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
build-essential linux-headers-generic
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 7066B/33.5kB of archives.
After this operation, 102kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com hardy/main build-essential 11.3ubuntu1 [7066B]
Fetched 7066B in 0s (8227B/s)
Selecting previously deselected package build-essential.
(Reading database ... 230086 files and directories currently installed.)
Unpacking build-essential (from .../build-essential_11.3ubuntu1_i386.deb) ...
Selecting previously deselected package linux-headers-generic.
Unpacking linux-headers-generic (from .../linux-headers-generic_2.6.24.21.23_i386.deb) ...
Setting up build-essential (11.3ubuntu1) ...
Setting up linux-headers-generic (2.6.24.21.23) ...


Bajar el cliente de VPN Cisco y el parche correspondiente a la versión del kernel
- Cliente VPN Cisco
- Parche para kernel 2.6.24+


Descomprimir el Cliente
$ cd /opt
$ tar xvfz /home/aqzero/Downloads/vpnclient-linux-x86_64-4.8.01.0640-k9.tar.gz
vpnclient/
vpnclient/libvpnapi.so
vpnclient/vpnapi.h
vpnclient/cisco_cert_mgr
vpnclient/vpnclient
vpnclient/ipseclog
vpnclient/cvpnd
vpnclient/vpn_install
vpnclient/vpnclient_init
vpnclient/vpn_uninstall
vpnclient/driver_build.sh
vpnclient/sample.pcf
vpnclient/vpnclient.ini
vpnclient/license.txt
vpnclient/license.rtf
vpnclient/interceptor.c
vpnclient/linuxcniapi.c
vpnclient/linuxcniapi.h
vpnclient/vpn_ioctl_linux.h
vpnclient/IPSecDrvOS_linux.c
vpnclient/linux_os.h
vpnclient/frag.h
vpnclient/frag.c
vpnclient/linuxkernelapi.c
vpnclient/GenDefs.h
vpnclient/mtu.h
vpnclient/IPSecDrvOSFunctions.h
vpnclient/IPSecDrvOS_linux.h
vpnclient/Cniapi.h
vpnclient/unixcniapi.h
vpnclient/unixkernelapi.h
vpnclient/config.h
vpnclient/libdriver64.so
vpnclient/libdriver.so
vpnclient/Makefile


Aplicar el parche correspondiente
$ cd /opt/vpnclient
$ patch < ~/Download/vpnclient-linux-2.6.24-final.diff
patching file GenDefs.h
patching file interceptor.c

Instalar
$ sudo vpn_install
Cisco Systems VPN Client Version 4.8.01 (0640) Linux Installer
Copyright (C) 1998-2006 Cisco Systems, Inc. All Rights Reserved.

By installing this product you agree that you have read the
license.txt file (The VPN Client license) and will comply with
its terms.


Directory where binaries will be installed [/usr/local/bin]

Automatically start the VPN service at boot time [yes]

In order to build the VPN kernel module, you must have the
kernel headers for the version of the kernel you are running.


Directory containing linux kernel source code [/lib/modules/2.6.24-21-generic/build]

* Binaries will be installed in "/usr/local/bin".
* Modules will be installed in "/lib/modules/2.6.24-21-generic/CiscoVPN".
* The VPN service will be started AUTOMATICALLY at boot time.
* Kernel source from "/lib/modules/2.6.24-21-generic/build" will be used to build the module.

Is the above correct [y]

Shutting down /opt/cisco-vpnclient/bin/vpnclient: module cisco_ipsec is not running.
Stopped: /etc/init.d/vpnclient_init (VPN init script)
Making module
make -C /lib/modules/2.6.24-21-generic/build SUBDIRS=/opt/vpnclient modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-21-generic'
CC [M] /opt/vpnclient/linuxcniapi.o
CC [M] /opt/vpnclient/frag.o
CC [M] /opt/vpnclient/IPSecDrvOS_linux.o
CC [M] /opt/vpnclient/interceptor.o
CC [M] /opt/vpnclient/linuxkernelapi.o
LD [M] /opt/vpnclient/cisco_ipsec.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: could not find /opt/vpnclient/.libdriver.so.cmd for /opt/vpnclient/libdriver.so
CC /opt/vpnclient/cisco_ipsec.mod.o
LD [M] /opt/vpnclient/cisco_ipsec.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-21-generic'
Copying module to directory "/lib/modules/2.6.24-21-generic/CiscoVPN".
Already have group 'bin'

Creating start/stop script "/etc/init.d/vpnclient_init".
/etc/init.d/vpnclient_init
Enabling start/stop script for run level 3,4 and 5.

Installing license.txt (VPN Client license) in "/opt/cisco-vpnclient/":
/opt/cisco-vpnclient/license.txt

Installing bundled user profiles in "/etc/opt/cisco-vpnclient/Profiles/":
* Replaced Profiles: sample

Copying binaries to directory "/opt/cisco-vpnclient/bin".
Adding symlinks to "/usr/local/bin".
/opt/cisco-vpnclient/bin/vpnclient
/opt/cisco-vpnclient/bin/cisco_cert_mgr
/opt/cisco-vpnclient/bin/ipseclog
Copying setuid binaries to directory "/opt/cisco-vpnclient/bin".
/opt/cisco-vpnclient/bin/cvpnd
Copying libraries to directory "/opt/cisco-vpnclient/lib".
/opt/cisco-vpnclient/lib/libvpnapi.so
Copying header files to directory "/opt/cisco-vpnclient/include".
/opt/cisco-vpnclient/include/vpnapi.h

Setting permissions.
/opt/cisco-vpnclient/bin/cvpnd (setuid root)
/opt/cisco-vpnclient (group bin readable)
/etc/opt/cisco-vpnclient (permissions not changed)
* You may wish to change these permissions to restrict access to root.
* You must run "/etc/init.d/vpnclient_init start" before using the client.
* This script will be run AUTOMATICALLY every time you reboot your computer.


Iniciar el servicio
$ sudo /etc/init.d/vpnclient_init start
[sudo] password for aqzero:
Starting /opt/cisco-vpnclient/bin/vpnclient: Done


Instalar tus _profiles_ de Cisco
$ cp trabajo.pcf /etc/opt/cisco-vpnclient/Profiles/


Probar tu enlace
$ sudo vpnclient connect trabajo
Cisco Systems VPN Client Version 4.8.01 (0640)
Copyright (C) 1998-2007 Cisco Systems, Inc. All Rights Reserved.
Client Type(s): Linux
Running on: Linux 2.6.24-21-generic #1 SMP Tue Oct 21 23:43:45 UTC 2008 i686
Config file directory: /etc/opt/cisco-vpnclient

Initializing the VPN connection.
Contacting the gateway at 21.10.40.30
Authenticating user.
Negotiating security policies.
Securing communication channel.

Do you wish to continue? (y/n): y

Your VPN connection is secure.

VPN tunnel information.
Client address: 192.168.10.10
Server address: 21.10.40.30
Encryption: 128-bit AES
Authentication: HMAC-SHA
IP Compression: None
NAT passthrough is active on port UDP 4500
Local LAN Access is disabled

listo, disfruta trabajando desde tu casa !

refs:
code it !

20081105

cagar gente ...

hay que zurrar a la gente, pero también hay que pasarle el papel pa'que se limpien...
... a decir de Andrés, cuando la riegan sus compañeros del trabajo.

20081104

NO a la pornografía infantil




_________ ¿ Necesitas mas palabras ? _________

20081030

a chingarse bonito

Frase imperativa que en los talleres mecánicos -aunque eso no exime a ningún tipo de empresa- enuncia, normalmente, el empleado de mayor jerarquía a uno o varios de sus subalternos, para sugerirles que trabajen intensa y esmeradamente.
ref. num. 46, año XI, pp 39 algarabia.com.mx

20081027

uso del time zone en UNIX ó por que Superman la cagó ...

Hace unos días solicite a mis compañeros de trabajo me reenviaran este correo que tuve a bien redactar en su momento con la intención de compartir y asi mismo divertirlos.

Sucedió en una noche de trabajo bajo la presión de entregar un proyecto a la empresa, que la discusión entre dos compañeros de trabajo le llevo a uno decirle al otro, que el podría arreglar el programa en cuestión siempre y cuando le dieran una hora, a lo cual el otro en un tono bastante sarcastico le replicó: "pues vas superman..."


He aquí su historia:


Resulta que Superman estaba tratando de obtener la superinformation del superserver del superdía anterior, via el siguiente superscript ...

#!/bin/sh
FILE='/home/proyect/app/mania'`TZ=aaa24 date +%m%d%Y`'.cvs'
echo $FILE
MIN=0
sftp mania@12.10.20.88 < file2="'mania'`TZ=">
...
peeeero cuando se hicieron las superpruebas para la superliberación, pues nel ! estaba jalando la superinformación del superdía actual (o sea, hoy... tudeiii dijera Fox)

Cosa que desato la ira ( si IRA, ira como se estan dando .. ira como se dijeron .. ) de Superman en contra de Lex Luthor y sus batinenas... ( no las del excesss... )


Ni el superserver estaba mal configurado, ni el shell esta mal ... vaya ni Oraclito pues !


Cosa de poner atención a como junciona el tieeeempo en el planeta tierra, ahi les

dejo caer la explicación.

How to date command works in unix for dummies in 20 mins !
(no more less && so so anymore ..., mins is minuts, not means... NfD*, NfD* is Note for Dummies)

el siguiente comandito, ese que aparece en el superscript:

$ TZ=aaa24 date
es el equivalente a:
$ TZ=UTC+24 date
Ya que la idea es que nos regrese la fecha del día de ayer, o sea el anterior al día de hoy :-P (digo, explico por aquello del dummies, oka ? )

Veamos:

  • Partimos del hecho que UTC(CDT) es la base para calcular la hora en distintos paises vaya, es lo _innnnn_... el GTM wuakala, ya no esta a la moda
  • Nuestra Zona Horaria en UTC es UTC+5, es decir tenemos 5 horas de retraso (si, el + maaas es pa retrasar.. ) respecto a la Hora Universal Coordinada (UTC es el acronimo para Universal Time Coordinated NfD*).
  • Ejemplos, en este momento en México son las 5:40AM, veamos la hora en otros paises (No me creen ?):
UTC              = 10:40
Mexico (UTC+5) = 05:40
China (UTC-8) = 18:40
Italia (UTC-2) = 12:40
Brasil (UTC+3) = 07:40
  • Solo podemos movernos entre -24 y +24, numeros mayores(o menores) no aplican. (aquí no hay NfD*. si, punto)

Para comprender por que Superman la cagó, veamos la siguiente tabla:

+---------------------------------+
| LOCAL | UTC | UTC-24 | UTC+24 |
| 0:00 | 5:00 | 26-Ago | 25-Ago |
| 1:00 | 6:00 | 26-Ago | 25-Ago |
| 2:00 | 7:00 | 26-Ago | 25-Ago |
| 3:00 | 8:00 | 26-Ago | 25-Ago |
| 4:00 | 9:00 | 26-Ago | 25-Ago |
| 5:00 | 10:00 | 26-Ago | 25-Ago |
| 6:00 | 11:00 | 26-Ago | 25-Ago |
| 7:00 | 12:00 | 26-Ago | 25-Ago |
| 8:00 | 13:00 | 26-Ago | 25-Ago |
| 9:00 | 14:00 | 26-Ago | 25-Ago |
| 10:00 | 15:00 | 26-Ago | 25-Ago |
| 11:00 | 16:00 | 26-Ago | 25-Ago |
| 12:00 | 17:00 | 26-Ago | 25-Ago |
| 13:00 | 18:00 | 26-Ago | 25-Ago |
| 14:00 | 19:00 | 26-Ago | 25-Ago |
| 15:00 | 20:00 | 26-Ago | 25-Ago |
| 16:00 | 21:00 | 26-Ago | 25-Ago |
| 17:00 | 22:00 | 26-Ago |*25-Ago | * hasta aquí, Superman felíz
| 18:00 | 23:00 | 26-Ago | 25-Ago |
| 19:00 | 0:00 | 27-Ago |*26-Ago | * aqui la puerka tuerce el rabo !
| 20:00 | 1:00 | 27-Ago | 26-Ago |
| 21:00 | 2:00 | 27-Ago | 26-Ago |
| 22:00 | 3:00 | 27-Ago | 26-Ago |
| 23:00 | 4:00 | 27-Ago |*26-Ago | * aqui Superman vs Batiunix
+---------------------------------+
  • En correspondencia a nuestra zona horaria (+5), para poder obtener una fecha pasada o futura necesitaremos movernos entre las 0 y las 18 hrs, cuando se den las 19 horas, entonces nos dara el mismo día.
Por qué ?

Bueno, 19hrs + 5hrs (de nuestro TZ "taimmm zonnnn") = 24hrs ó 0hrs es decir, cuando nos da 0hrs ni se suma ni se resta, sino todo lo contrario.. ehhh ! ORALE CHAMACOS !


Como Superman quería la fecha del día anterior, siendo hoy 26-Ago, necesitaba un 25-Ago para el superscript; cuando lo mando a ejecutar a la 5PM sí le regreso el día anterior (25); pero cuando lo ejecutamos a las 23PM al plancharlo en produción nos regreso el mismo día (26) y laaaastima, dieron reversa ...


Por esa razón, Superman la cagó.


Luego entonces, hay que zurrar a la gente pero también hay que pasarle el papel

pa'que se limpien...

Cómo calcular fechas en:

PERL
"un dia anterior = ayer"
$ perl -e "print scalar(localtime(time()-86400))"

"un dia después = mañana"
$ perl -e "print scalar(localtime(time()+86400))"


C (muy 3133t)

#include
#include
int main()
{
time_t localtime;
time(&localtime);
localtime = localtime - 86400;
printf("%s",ctime(&localtime));
return 0;
}

$ cc yesterday.c -o yesterday
$ ./yesterday

Después, todo fue miel sobre ojuelas :-)

code it !

20081026

la frasezota !

La principal causa de la difusión de la ignorancia es el hecho de que todos saben leer y escribir.
... a decir de Peter de Vries, ref. algarabia.com.mx, sabidurias.com

20081025

aplicar parches en WebLogic 8 y 9

pues como nota:

si quieres aplicar parches al WebLogic (8 y 9) existe una variable de ambiente donde se pueden colocar(PATCH_CLASSPATH), el archivo es relativo al dominio (setDomainEnv.sh) y no es necesario afectar la instalación de WL.

El archivo en cuestión es el $DOMAIN/bin/setDomainEnv.sh y las lineas son las siguientes:

..
# If you want to override the default Patch Classpath, Library Path and Path for this domain,
# Please uncomment the following lines and add a valid value for the environment variables
# set PATCH_CLASSPATH=[myPatchClasspath] (windows)
# set PATCH_LIBPATH=[myPatchLibpath] (windows)
# set PATCH_PATH=[myPatchPath] (windows)
# PATCH_CLASSPATH=[myPatchClasspath] (unix)
# PATCH_LIBPATH=[myPatchLibpath] (unix)
# PATCH_PATH=[myPatchPath] (unix)

# para colocar parches esta la variable de ambiente: PATCH_CLASSPATH que se adjuntara antes
# del WEBLOGIC_CLASSPATH esto lo pueden ver en el common/bin/commEnv.sh
P_798814="${DOMAIN_HOME}/patch/798814/532B.jar"
P_CR3805="${DOMAIN_HOME}/patch/CR380517_920mp2.jar"
PATCH_CLASSPATH="${P_CR3805}${CLASSPATHSEP}${P_798814}"
export PATCH_CLASSPATH

. ${WL_HOME}/common/bin/commEnv.sh
..

y listo, con eso solo alteramos el comportamiento del dominio donde deseamos aplicar el parche y no toda la instalación del WL y por ende todos los dominios.

code it !

20081024

la frasezota !

Me gustan los cerdos.
Los perros nos ven pa'rriba, los gatos nos ven pa'bajo. Sólo nos cerdos nos tratan como iguales.
... a decir de Sir Winston Churchill, ref. algarabia.com.mx, netotem.com y proverbia.net

bajo la sal ...

Si bien no es la finalidad de este blog, si quieren pasar un rato de suspenso vayan al cine de su preferencia y vean la pelicula "Bajo la Sal", buena trama, buenos actores (de los pocos que quedan y jovenes que resaltan) y en terminos generales _aceptable_. Aunque la historia en un momento llega a ser predecible, es entretenida y logra mantenerte en la butaca.

No conocia Guerrero Negro, que es el estado donde se desarrolla la trama y me parecio un lugar bastante interesante (al menos para hacer algo de fotografía) así que tendré que anotarlo en la lista de lugares por conocer.

Así que, ya tienes algo que ver este fin de semana :-)

code it !

20081017

git aptrigger

Qué paso viejo !

Pues mira, aptrigger es una aplicación shell para ejecutar otras aplicaciones en ambientes like UNIX de manera muy similar a como lo hace el "service" de los RedHat ó Fedora.

De momento es una versión preliminar y aun falta mucho por trabajar, de momento lo he usado para ejecutar aplicaciones basadas en:
* WebLogic
* iPlanet
* Resin
* .. y otras de carácter personal

De manera similar estaré publicando diversos proyectos con la finalidad de generar mi webfolio laboral en espera de que te sea de útilidad lo que estoy trabajando.

El repositorio lo puedes encontrar aqui, se encuentra en GIT la cual recomiendo ampliamente si te mueves entre distintos equipos y deseas seguir desarrollando sin necesidad de estar con un repositorio centralizado (like Subversion o CVS, los cuales también son buenos).

code it !