Debes editar el fichero /etc/crontab y añadir los tabs
Ejemplo:
20 8 27 2 * hector echo "esto es una prueba" | tee /tmp/prueba
Indica que quiere correr todos los años el comando "echo "esto es una prueba" | tee /tmp/prueba" con el usuario hector el 27 de febrero a las 8 y 20 AM
Mostrando entradas con la etiqueta ejemplo. Mostrar todas las entradas
Mostrando entradas con la etiqueta ejemplo. Mostrar todas las entradas
lunes, 27 de febrero de 2017
sábado, 3 de septiembre de 2016
Synergy conf ejemplo
Este es un ejemplo de un fichero de configuración de Synergy que me funciona. Consta de un equipo "laptop" que está a la izquierda de un equipo "localhost.localdomain".
section: screens
laptop:
halfDuplexCapsLock = false
halfDuplexNumLock = false
halfDuplexScrollLock = false
xtestIsXineramaUnaware = false
switchCorners = none
switchCornerSize = 0
localhost.localdomain:
halfDuplexCapsLock = false
halfDuplexNumLock = false
halfDuplexScrollLock = false
xtestIsXineramaUnaware = false
switchCorners = none
switchCornerSize = 0
end
section: aliases
end
section: links
laptop:
right = localhost.localdomain
localhost.localdomain:
left = laptop
end
section: options
relativeMouseMoves = false
screenSaverSync = true
win32KeepForeground = false
switchCorners = none
switchCornerSize = 0
end
section: screens
laptop:
halfDuplexCapsLock = false
halfDuplexNumLock = false
halfDuplexScrollLock = false
xtestIsXineramaUnaware = false
switchCorners = none
switchCornerSize = 0
localhost.localdomain:
halfDuplexCapsLock = false
halfDuplexNumLock = false
halfDuplexScrollLock = false
xtestIsXineramaUnaware = false
switchCorners = none
switchCornerSize = 0
end
section: aliases
end
section: links
laptop:
right = localhost.localdomain
localhost.localdomain:
left = laptop
end
section: options
relativeMouseMoves = false
screenSaverSync = true
win32KeepForeground = false
switchCorners = none
switchCornerSize = 0
end
viernes, 2 de septiembre de 2016
Ejemplo dirección de Ipostel para tarjeta Payoneer
Cuando rellenes la información para tu tarjeta Payoneer en venezuela, es recomendable colocar una dirección de Ipostel, puesto por experiencia propia he visto que los paquetes nunca llegan.
Dos ejemplo de formatos de direcciones usadas y que llegaron fueron las siguientes:
viernes, 22 de julio de 2016
Prueba de Smirnov - Kolmogorov en Excel
Ejemplo de la implementación de la prueba de bondad de ajuste de smirnov - kolmogorov en Excel
Para descargar el fichero Excel
https://drive.google.com/open?id=0B9uuluhrKpGKdmVmSG5QXzJ0ems
![]() |
| Prueba smirnov - kolmogorov |
Para descargar el fichero Excel
https://drive.google.com/open?id=0B9uuluhrKpGKdmVmSG5QXzJ0ems
jueves, 30 de julio de 2015
QtXlsx: Leer y escribir en ficheros .xlsx con Qt
La mejor librería (que he probado) para trabajar con ficheros .xlsx en Qt es QtXlsx.
Para usarla primero debes descargar el src desde aqui:
Si quieres visiar el repo en github:
https://github.com/dbzhang800/QtXlsxWriter
Luego de descargarlo lo descomprimimos en el directorio de nuestro proyecto de Qt
Luego vamos al fichero .pro de nuestro proyecto y agregamos la siguiente linea:
Para usarla primero debes descargar el src desde aqui:
Si quieres visiar el repo en github:
https://github.com/dbzhang800/QtXlsxWriter
Luego de descargarlo lo descomprimimos en el directorio de nuestro proyecto de Qt
Luego vamos al fichero .pro de nuestro proyecto y agregamos la siguiente linea:
include(QtXlsxWriter-master/src/xlsx/qtxlsx.pri)
Compilas y listo, ya estas listo para el primer ejemplo:
Este código nos permitiría leer las dos primeras columnas de todas las filas.
void Ventana::leerTodo()
{
QXlsx::Document *docIN= new QXlsx::Document("data.xlsx");
int nFilas=docIN->dimension().lastRow();
for (int i = 2; i <= nFilas; ++i) {
QString nombre =docIN->read(("A"+QString::number(i)).toString());
QString apellido=docIN->read(("B"+QString::number(i)).toString());
qWarning()<<" Nombre : "<<nombre;
qWarning()<<" Apellido: "<<apellido;
}
}
El fichero .xlsx usado es algo así:
viernes, 1 de mayo de 2015
Ejemplo de QSettings
En este pequeño ejemplo veremos como obtener y guardar una configuración en el disco con QSettings.
Explicación:
Primero creamos el objeto de configuración. El primer parámetro es el grupo y el segundo la aplicación. Le puedes colocar cualquier nombre, solo debes tener en cuanta que cuando desees obtener valores de dicha configuración debes crear un objeto con los mismos parámetros.
QSettings settings("Group", "SMS");
Luego intentamos leer de la configuración. Puesto que en la primera corrida del programa todavia no hemos guardado nada entonces la variable scriptDelay valdrá 0.
En la segunda corrida valdrá 1000
int scriptDelay = settings.value("SMS/ScriptDelay").toInt();
Luego asignamos el valor de la configuración.
settings.setValue("SMS/ScriptDelay", 1000);Este es el código de ejemplo:
#include <QCoreApplication>
#include <QSettings>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSettings settings("Group", "SMS");
int scriptDelay = settings.value("SMS/ScriptDelay").toInt();
settings.setValue("SMS/ScriptDelay", 1000);
qDebug()<<"scriptDelay = "<<scriptDelay;
return a.exec();
}
domingo, 15 de marzo de 2015
Ejemplo libconfig con QtCreator: Leer y escribir en el fichero de configuración
En esta entrada veremos un ejemplo de uso de libconfig en linux para trabajar con ficheros de configuración. Usaremos QtCreator como ide.
Lo primero es instalar el paquete libconfig
Desde debian:
apt-get install libconfig
Desde fedora:
yum install libconfig libconfig-devel
Luego debemos linkear la librería desde nuestro IDE. Para ello damos clic derecho al titulo del proyecto y luego en Add Library. Luego colocamos la dirección de el fichero libconfig.so.
Por lo general está en /usr/lib64/libconfig.so si es un so de 64 bits
Por lo general está en /usr/lib/libconfig.so si es un so de 32 bits
Puedes hacer el paso anterior de forma manual agregando la siguiente linea a tu fichero .pro
LIBS += -lconfig
Para este ejemplo utilizamos el siguiente fichero de configuración (example.cfg):
// Nombre
nombre = "Libros, Películas y mas";
// Inventario
inventario =
{
libros = ( { titulo = "Treasure Island";
autor = "Robert Louis Stevenson";
precio = 29.99;
qty = 5; },
{ titulo = "Snow Crash";
autor = "Neal Stephenson";
precio = 9.99;
qty = 8; }
);
peliculas = ( { titulo = "Brazil";
media = "DVD";
precio = 19.99;
qty = 11; },
{ titulo = "MEMEMTO";
media = "VHS";
precio = 18.99;
qty = 5; }
);
};
Este código lee el fichero, muestra su contenido y cambia el valor de la preferencia 'nombre' a Totona.
#include <stdio.h> #include <stdlib.h> #include <libconfig.h> /* Este ejemplo lee el fichero de configuracion example.cfg * y muestra su contenido */ int main(int argc, char **argv) { static const char *output_file = "updated.cfg"; static const char *input_file = "example.cfg"; config_t cfg; config_setting_t *setting; const char *str; config_init(&cfg); /* Lee el fichero, si hay error lo muestra y sale */ if(! config_read_file(&cfg, input_file)) { fprintf(stderr, "%s:%d - %s\n", config_error_file(&cfg), config_error_line(&cfg), config_error_text(&cfg)); config_destroy(&cfg); return(EXIT_FAILURE); } /* Obtenemos el nombre. */ if(config_lookup_string(&cfg, "nombre", &str)) printf("nombre: %s\n\n", str); else fprintf(stderr, "No hay un campo 'nombre' en example.cfg.\n"); /* Mostramos todos los libros del inventerio. */ setting = config_lookup(&cfg, "inventario.libros"); if(setting != NULL) { int count = config_setting_length(setting); int i; printf("%-30s %-30s %-6s %s\n", "titulo", "autor", "precio", "QTY"); for(i = 0; i < count; ++i) { config_setting_t *libro = config_setting_get_elem(setting, i); const char *titulo, *autor; double precio; int qty; if(!(config_setting_lookup_string(libro, "titulo", &titulo) && config_setting_lookup_string(libro, "autor", &autor) && config_setting_lookup_float(libro, "precio", &precio) && config_setting_lookup_int(libro, "qty", &qty))) continue; printf("%-30s %-30s $%6.2f %3d\n", titulo, autor, precio, qty); } putchar('\n'); } /* Muestra todas las peliculas en inventario. */ setting = config_lookup(&cfg, "inventario.peliculas"); if(setting != NULL) { unsigned int count = config_setting_length(setting); unsigned int i; printf("%-30s %-10s %-6s %s\n", "Titulo", "Media", "Precio", "QTY"); for(i = 0; i < count; ++i) { config_setting_t *movie = config_setting_get_elem(setting, i); const char *titulo, *media; double precio; int qty; if(!(config_setting_lookup_string(movie, "titulo", &titulo) && config_setting_lookup_string(movie, "media", &media) && config_setting_lookup_float(movie, "precio", &precio) && config_setting_lookup_int(movie, "qty", &qty))) continue; printf("%-30s %-10s $%6.2f %3d\n", titulo, media, precio, qty); } putchar('\n'); } /** Actualizamos el valor del nombre **/ config_setting_t *root,*nombre; root = config_root_setting(&cfg); nombre=config_setting_get_member(root,"nombre"); // Cambiamos el valor del nombre y le colocamos config_setting_set_string(nombre,"Totona"); /* Escribimos el fichero de salida*/ if(! config_write_file(&cfg, output_file)) { fprintf(stderr, "Error escribiendo en el fichero.\n"); config_destroy(&cfg); return(EXIT_FAILURE); } fprintf(stderr, "Se ha actualizado el fichero %s y se ha guardado en: %s\n", input_file,output_file); config_destroy(&cfg); return(EXIT_SUCCESS); }Links de interés:http://jpmens.net/2009/09/17/reading-configuration-files-with-libconfig/
Etiquetas:
archivo de configuración,
change,
configuracion,
ejemplo,
escribir,
example,
fichero,
leer,
libconfig,
qtcreator,
read,
simple,
write
domingo, 8 de febrero de 2015
Ejemplo Qt5 + Postgres
En la entrada anterior expliqué como se configuraba fedora para conectar qt5 con postgres. Ahora aquí se muestra un ejemplo de una aplicación en Qt que se conecta con una BD en postgres.
Primero creamos la BD de ejemplo desde pgadmin3. En este caso se llama BD_UNEG
CREATE DATABASE "BD_UNEG"
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'es_VE.UTF-8'
LC_CTYPE = 'es_VE.UTF-8'
CONNECTION LIMIT = -1;
-- Table: persona
CREATE TABLE persona
(
cedula character varying(20) NOT NULL,
nombre character varying(50),
tipo character varying(30),
estatus character varying(30),
carrera character varying(30),
CONSTRAINT persona_pkey PRIMARY KEY (cedula)
)
WITH (
OIDS=FALSE
);
ALTER TABLE persona
OWNER TO postgres;
Quedaría así
Ahora agrega algo a la BD.
NOTA: En este ejemplo la clave de postgres es 123456 y el puerto es 5432
Este es el código en Qt que busca todos los elementos de la tabla persona y los muestra
#include <QtCore/QCoreApplication>
#include <QDebug>
#include <QSqlDatabase>
#include <QSqlError>
#include <QStringList>
#include <QMessageBox>
#include <QSqlQuery>
#include <QSqlRecord>
bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("127.0.0.1"); // Nombre del host
db.setDatabaseName("BD_UNEG"); // Nombre de la BD
db.setPort(5432); // Puerto
db.setUserName("postgres"); // Usuario
db.setPassword("123456"); // Contraseña
// Si esta abierto entonce retorna true
if (db.isOpen()){
qWarning() <<"La conexión ya estaba creada";
return true;
}
// Abre la BD
if (!db.open()) {
QMessageBox::critical(0, QObject::tr("Database Error"),
db.lastError().text());
return false;
}
return true;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << (createConnection() ? "Se crea la conexión :)" : "ERROR al conectar :(");
QSqlQuery qry;
qry.prepare( "SELECT * FROM persona" );
if( !qry.exec() )
qDebug() << qry.lastError();
else
{
qDebug( "Seleccionado!" );
QSqlRecord rec = qry.record();
int cols = rec.count();
for( int c=0; c<cols; c++ )
qDebug() << QString( "Columna %1: %2" ).arg( c ).arg( rec.fieldName(c) );
for( int r=0; qry.next(); r++ )
for( int c=0; c<cols; c++ )
qDebug() << QString( "Fila %1, %2: %3" ).arg( r ).arg( rec.fieldName(c) ).arg( qry.value(c).toString() );
}
return a.exec();
}
Recuerda agregar QT += sql en el fichero .pro
Links de interes:
http://www.informit.com/articles/article.aspx?p=1405550
http://www.java2s.com/Code/Cpp/Qt/ConnecttoMySqlwithQSqlDatabaseanddoselectupdateinsertanddelete.htm
http://www.ics.com/designpatterns/solutions/qsqldatabase.html
Suscribirse a:
Entradas (Atom)












