Comparar dos columnas en MySQL

by Zilus on 29/06/2011

Como hacer, si es necesario comparar el contenido de dos tablas en MySQL. Por ejemplo:

Tabla1 -> productos_codigo

Tabla2 -> productos_codigo

Aquí ejecutaremos una sentencia MySQL que hará el trabajo por nosotros! tomando como ejemplo campos y las tablas arriba descritas.

SELECT Tabla1.productos_codigo AS productos_no_encontrado
FROM Tabla1
LEFT JOIN Tabla2 ON Tabla1.productos_codigo = Tabla2.productos_codigo
WHERE Tabla2.productos_codigo IS NULL

Esto nos mostrara solamente los “Productos” que no existen en la Tabla 2 y si en la Tabla 1.

Happy Coding!

No Comments

Montar directorio compartido vía Samba en Ubuntu

by Zilus on 8/06/2011

Para montar por ejemplo, el directorio compartido “Compartido” en un servidor o workstation con Linux, solo hay que ejecutar el siguiente comando:

mount -t smbfs -o username=usuario,password=password //192.168.1.1/Compartido /media/samba

El directorio destino debera existir en el sistema que desea montar el compartido. Hay que poner el IP que corresponde y el nombre del directorio compartido, en este caso el IP será 192.168.1.1 y el share: “Compartido”. El destino para el montado, en este ejemplo sera /media/samba

1 Comment

Buscar campos duplicados en MySQL

by Zilus on 6/06/2011

Un tip de como buscar registros duplicados en una base de datos MySQL:

SELECT id, campo, count( campo ) AS count
FROM tabla
GROUP BY campo
HAVING count >1
ORDER BY id ASC

Solo hay que adaptar el código a lo que se necesite! En este ejemplo “campo” es el field en el que buscaremos duplicados.

1 Comment

RSync ignorar errores de I/O

by Zilus on 6/06/2011

Para hacer un sync entre dos directorios e ignorar los errores de I/O con Rsync, solo hay que agregar la opcion:

–ignore-errors

Ejemplo:

rsync -av –no-whole-file –ignore-errors /dirA/ /DirB

No Comments

Vendido: Tsuru GSR2000 DF

by Zilus on 28/03/2011

Ya se fue mi zorrito…

Con todo el dolor del mundo, me veo en la necesidad de vender mi preciado GSR… Alguno ya saben que es lo que tiene y la historia de su restauración, aquí les dejo el enlace:

http://nissanmexico.org/smf/index.php/topic,25073

Fotos:

Para mas fotos y detalles, seguir el enlace de su reconstrucción: http://nissanmexico.org/smf/index.php/topic,25073 Me gusta ser honesto, así que pondré exactamente lo que tiene y lo que le duele.

Tsuru GSR 1993 206,000 km, Todo pagado, incluyendo tenencia 2011 y verificación.

Interior:
Estereo Sony MP3
Bocinas delanteras Sony y Traseras 6×9″ LG
Alarma y seguros eléctricos
Pelicula Anti-asalto
Viseras nuevas
Cable de iPod a la guantera
Bota de Palanca en piel
Asientos de Vinyl En perfecto Estado
Cielo en buen estado
Tablero entero
Gomas de pedales nuevas
No le falta absolutamente ninguna pieza
Led en luz interior

Detalles:

Tapas de puertas un poco despegadas (Tapiz)
Falta una cañuela
Patas de defroster

Motor:
SR20 JDM HC 10.1
Header Gen 5 HotShot
CatBack 2.5
Escape PowerTech
Short Ram “Spectre” (AutoZone)
ECU Respogramada por SRCO
Bomba de gasolina Wallbro
Launch Control
Optima Yellow Top Nueva
No A/A
Siempre Aceite Mobil 1 Sintetico

Detalles:
Falta arreglar el regulador del alternador.

Exterior y Suspensión:

Rines de B14 GSR en perfecto estado (Ningún rayon)
Llantas Maxxis nuevecitas, menos de 1000 km
Resortes Eibach Sportline
Balatas brembo nuevas, menos de 1000 km
FSTB
RLTB
Alineado y balanceado
Estribos de Lucino
Lip de Honda Accord
Fascia Golden con esquineros
Parrila Auto magic nueva
Xenon
Calaveras, chisgueteras y limpiadores nuevos
Ningún golpe!

Detalles:
Las gomas de las puertas no están tan bien
La pintura es vieja y tiene detalles

Extras (Piezas que se van al con la compra):
Vicel del tablero.
Parrilla OEM 2004
Juego de manijas para ventanas
Juego de Marcos para las puertas

El GSR anda perfecto, no le duele nada y jala como loco…

Precio $ 52,000.00

1 Comment

Eliminar “Mail Recuperado” de Gmail en Apple Mail

by Zilus on 9/02/2011

Hoy por la mañana al abrir Apple Mail me dí cuenta que tenia “En mi Mac” un directorio de mensajes recuperados de Gmail, el cual contenía unas 30 veces un mail que intente enviar el día anterior. El correo no salio como debería, ya que excedí el limite de MB que GMail permite, pero esto, por alguna razón desato el problema en mi apple mail ya que no paraba de “reciclar” ese correo y por lo mismo, no podía recibir mis nuevos correos.

La solución es muy simple!

  1. Primero den botón derecho en el buzón de Gmail para poner Offline la cuenta.
  2. Eliminen el directorio de Mensajes recuperados.
  3. Abran su terminal desde Aplicaciones -> Utilidades -> Terminal**
  4. Naveguen hasta /Users/usuario/Library/Mail/IMAP-user@imap.gmail.com/.OfflineCache
  5. Eliminen todo el contenido de este ultimo directorio, OJO, los contenidos no el directorio en si.
  6. Command + q para cerrar Mail
  7. Vuelvan a abrir Mail

**Debido a que .OfflineCache es un directorio oculto, tenemos que eliminar su contenido desde la terminal y ejecutar lo siguiente:

cd /Users/usuario/Library/Mail/IMAP-correo@imap.gmail.com/.OfflineCache

rm -Rf *

8 Comments

Como cambiar el orden de todos los contactos de Otulook a “nombre apellido”

by Zilus on 26/01/2011

Que pasa si tienes 1000 contactos en Outlook y se almacenan como “Pérez Pedro” y necesitas que sea “Pedro Pérez” o viceversa… imagina la cantidad de trabajo que representa cambiar manualmente el campo “Almacenar como” de 1,000 contactos, o de 10,000, incluso hacerlo para 200 ya es una labor titánica.

Para solucionar esto, existe un script que podemos correr desde el editor de Visual Basic incluido en Office, para abrir el editor VB, solo presionamos “alt+f11″.

//Comienza Script VB

Public Sub ChangeFileAs()
Dim objOL As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objContact As Outlook.ContactItem
Dim objItems As Outlook.Items
Dim objContactsFolder As Outlook.MAPIFolder
Dim obj As Object
Dim strFirstName As String
Dim strLastName As String
Dim strFileAs As String

On Error Resume Next

Set objOL = CreateObject("Outlook.Application")
Set objNS = objOL.GetNamespace("MAPI")
Set objContactsFolder = objNS.GetDefaultFolder(olFolderContacts)
Set objItems = objContactsFolder.Items

For Each obj In objItems
'Test for contact and not distribution list
If obj.Class = olContact Then
Set objContact = obj

With objContact
strFirstName = .FirstName
strLastName = .LastName
strFileAs = strFirstName & " " & strLastName
.FileAs = strFileAs

.Save
End With
End If

Err.Clear
Next

Set objOL = Nothing
Set objNS = Nothing
Set obj = Nothing
Set objContact = Nothing
Set objItems = Nothing
Set objContactsFolder = Nothing
End Sub

//Termina Script VB

Después, solo corremos el script que acabamos de copiar y listo!

1 Comment

Ejecutar script, tarea o trabajo mediante SSH, salir de sesion y al regresar, ver el progreso del proceso

by Zilus on 17/11/2010

Si tenemos un script, una app o algún comando que lleve mucho tiempo de ejecución, normalmente deberíamos dejar nuestra ventana SSH abierta durante todo el proceso, ya sea mediante putty, una terminal en Linux o una consola en Mac OS X. Con este sencillo tip ya no será así, podemos cerrar la aplicación SSH que estemos utilizando y después de un tiempo, regresar al servidor y ver el avance.

En mi caso personal, tengo que correr un script que tarda un par de horas en terminar su ejecución, por lo que generalmente lo hacia directamente en el servidor, precisamente para evitar este problema de no saber que hace después de apagar mi equipo. Ya no mas! ahora usando “screen” puedo revisar el proceso desde cualquier terminal en cualquier momento!

Primero, entramos al servidor con ssh

$ ssh usuario@servidor

Ahora tecleamos screen, esto la primera ves que lo ejecutamos, nosa sacara una ventana con informacion, solo damos enter:

$ screen

Después, ya dentro de “screen”, ejecutamos el script o lo que queramos hacer, en este ejemplo haremos un apt update y upgrade.

$ apt-get update & apt-get upgrade -y

Para probar que este funcionando, salimos del terminal, putty o consola y despues regresamos con ssh:

$ ssh usuario@servidor

Ahora, para recuperar el proceso con screen, tecleamos screen -r

$ screen -r

Y veremos el proceso en cuestión… ahora, no he encontrado una forma más elegante de cerrar screen una ves terminado el proceso, mas que con un killall, si alguien lo sabe, no estaria mal que lo compartiera.

$ killall screen

Con esto cerramos screen y regresamos al modo normal de la sesión ssh.

2 Comments

Cambiar el serial de Office 2008 en Mac

by Zilus on 8/11/2010

A veces por las razones que sean, es necesario cambiar la licencia de un Office en Mac, para hacerlo solo necesitamos eliminar dos archivos y la siguiente ves que abramos cualquier aplicación de las suite de oficina, nos pedirá de nuevo que aceptemos los términos y que ingresemos la licencia nueva.

Abrimos nuestra terminal, desde Aplicaciones > Utilidades > Terminal y tecleamos los siguientes comandos, tenemos que poner atención en [usuario] que se reemplazara por el nombre de usuario que corresponda en nuestros equipos:

/Users/[usuario]/Library/Preferences/Microsoft/Office 2008/Microsoft Office 2008 settings.plist

/Applications/Microsoft Office 2008/Office/OfficePID.plist

No Comments

Crear particiones de más de 2TB en Ubuntu Linux

by Zilus on 4/11/2010

Para los que ya tenemos discos o mejor dicho, arreglos de discos mayores a 2TB seguramente nos hemos dado cuenta de mala forma que fdisk no permite la creación de particiones mayores a 2TB.

Al crear una partición de 4 TB por ejemplo, fdisk nos regresa una partición de tan solo 2TB, la solución es simple, pero la logre encontrar después de un rato de investigación, se debe instalar “parted” y con el crear las particiones.

$ apt-get update && apt-get install parted

Después se invoca de la siguiente forma (donde sdb es nuestro disco duro a particionar):

$ parted /dev/sdb

Ahora estamos dentro de la interfaz dinámica de parted:

GNU Parted 2.2

Using /dev/sdx

Welcome to GNU Parted!
Type ‘help’ to view a list of commands.

(parted)

Ahora crearemos el disklabel:



# mklabel gpt

Después con esta instrucción armamos una partición de 4TB

# mkpart primary 1 4000G



Salvamos los cambios:


# quit



Ahora, crearemos el sistema de ficheros, o “formato” en el ejemplo usaremos EXT4



$ mkfs.ext4 /dev/sdb1



Por último, crearemos una etiqueta, ya que en lo personal prefiero montar unidades por medio de etiquetas en lugar de dispositivos, por ejemplo en lugar de usar /dev/sdbX, me gusta LABEL=”disco1″, ya que si por alguna razón, no conectamos los discos en el mismo orden todo se vuelve un caos.

$ e2label /dev/sdb1 nombrededisco



Eso es todo!

No Comments