viernes, 6 de agosto de 2010

Instalar thunderbird 3.1 en linux por tar.bz2

Descargamos el paquete desde la página de thunderbird buscamos el paquete y la versión que necesitamos y la descargamos para el SO del pinguino.

Seguido de esto (cuando termine la descarga o se tenga el archivo) descomprimimos el archivo tar.bz2 con el siguiente comando:

# tar -jxvf thunderbird-seguido-la-version.tar.bz2

el archivo descomprimido nos creará una carpeta llamada "thunderbird" esta carpeta la debemos mover o copiar a /opt.

# sudo mv thunderbird /opt/

# sudo cp -r thunderbird /opt/


obiamente el primer comando mueve la carpeta mientras que el segundo copia la carpeta al destino.

Luego de esto creamos un link simbolico al archivo binario para que pueda ser ejecutado por el usuario actual.

# sudo ln -s /opt/thunderbird/thunderbird /usr/bin/thunderbird

Si la terminal te entrega un mensaje diciendo que el link ya existe simplemente lo eliminamos así:

# sudo rm /usr/bin/thunderbird

y luego volvemos a ejecutar el comando para la crear el link .



Con esto terminamos de instalar thunderbird ahora pasamos a crear el lanzador.


le damos el nombre que queremos y en el comando que solicita le añadimos thunderbird %u y le damos a aceptar.

El lanzador quedara con la imagen por defecto si lo queremos cambiar el icono de thunderbird viene dentro de la carpeta que descargamos en una carpeta que se llama chrome

la direccion del archivo donde esta la imagen sería:

/opt/thunderbird/chrome

y con esto nos queda thunderbird completamente instalado y listo para configurar las cuentas de correo.

jueves, 17 de junio de 2010

Guardar datos de un formulario en Ext framework

Ext.onReady(function(){ //Inicia la carga de los formulario, datos, etc. cuando el DOM esta listo

Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';

var login = new Ext.FormPanel({ //declaro un nuevo Formulario
labelWidth:80,
frame:true, //es visible
title:'Ingreso de usuarios',
//width:300,
//default:{autoHeight:true},
defaultType:'textfield',

items:[{ // items que contendra el formulario
fieldLabel:'usuario',
name:'user',
allowBlank:false
},{
fieldLabel:'run',
name:'run',
allowBlank:false
},{
fieldLabel:'password',
name:'pass',
inputType:'password',
allowBlank:false
}],
buttons:[{ //botones dentro del formulario
text:'Guardar',
id: 'btnGuardar',
tooltip:'Guardar datos',
handler:function(){ //le agrego una funcion al boton
login.getForm().submit({
method:'POST', //le indico el metodo por el cual entregará los datos (siempre con mayusculas)
waitTitle:'Conectando',
waitMsg:'Enviando datos...',
url:'putdatos/', //direccion la cual realizara la accion, en este caso para guardar datos en djago
success:function(){ //funcion si el servidor devuelve confirmacion sin errores
//var url = 'main.html';
//window.location = url;
Ext.Msg.alert('Exito', 'Datos guardados'); //mensaje como alert de javascript
},
failure:function(form, action){
if(action.failureType == 'server'){
obj = Ext.util.JSON.decode(action.response.responseText);
Ext.Msg.alert('Oops!', obj.errors.reason);
}else{
Ext.Msg.alert('Oops!', 'Authentication server is unreachable');
}
login.getForm().reset(); //limpia el formulario
}
});
}
}]
});

login.render('formulario'); // dibuja el formulario dentro del div 'formulario'
});

lunes, 31 de mayo de 2010

Generar archivos csv, excel y word en PHP

Una forma muy sencilla de hacerlo y que encontré en http://www.webcheatsheet.com.
Esto al momento de cargar la página lanzará el cuadro de diálogo para guardar el archivo.


MS-WORD
1 <?php
2 header
("Content-type: application/vnd.ms-word");
3
header("Content-Disposition: attachment;Filename=nombre_archivo.doc");
4
5 echo
"<html>";
6 echo
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
7 echo
"<body>";
8 echo
"<b>Mi primer documento</b>";
9 echo
"</body>";
10 echo
"</html>";
11
?>



MS-EXCEL
1<?php
2 header
("Content-type: application/vnd.ms-excel");
3
header("Content-Disposition: attachment;Filename=nombre_archivo.xls");
4
5 echo
"<html>";
6 echo
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
7 echo
"<body>";
8 echo
"<b>Dato 1</b> \t <u>Dato 2</u> \t \n ";
9 echo
"</body>";
10 echo
"</html>";
11
?>



CSV

1<?php
2 $table
= 'table_name';
3
$outstr = NULL;
4
5
header("Content-Type: application/csv");
6
header("Content-Disposition: attachment;Filename=cars-models.csv");
7
8
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
9
mysql_select_db("db",$conn);
10
11
// Query database to get column names
12
$result = mysql_query("show columns from $table",$conn);
13
// Write column names
14
while($row = mysql_fetch_array($result)){
15
$outstr.= $row['Field'].',';
16 }
17
$outstr = substr($outstr, 0, -1)."\n";
18
19
// Query database to get data
20
$result = mysql_query("select * from $table",$conn);
21
// Write data rows
22
while ($row = mysql_fetch_assoc($result)) {
23
$outstr.= join(',', $row)."\n";
24 }
25
26 echo
$outstr;
27
mysql_close($conn);
28
?>



Gracias a http://formatealo.terysoftware.com/ por el formateo, queda de lujo!

lunes, 10 de mayo de 2010

Función Case en SQL

CASE WHEN {cond1} THEN {Value1}

     WHEN {cond2} THEN {Value2}

     [ELSE Value n ] END 

lunes, 19 de abril de 2010

Eliminar registros duplicados.

Verificar los campos que se van a eliminar, asumamos que los campos duplicados son columna1 y columna2
SELECT columnas FROM nombre_tabla a WHERE rowid > ( SELECT min(rowid) FROM nombre_tabla b WHERE b.columna1 = a.columna1 and b.columna2 = a.columna2 );
Cambiamos la sentencia SELECT por DELETE
DELETE FROM nombre_tabla a WHERE rowid > ( SELECT min(rowid) FROM nombre_tabla b WHERE b.columna1 = a.columna1 and b.columna2 = a.columna2 );