Es muy útil, al crear una tabla cuyos datos pueden ser modificados con cierta frecuencia, añadir campos que especifiquen el momento de creación y el de modificación. Por ejemplo, creamos la siguiente tabla de configuración para una aplicación:
El objetivo es que cuando creemos un nuevo valor, éste rellene automáticamente las fechas de creación y modificación a la fecha actual.… Leer artículo completo
Cuando tenemos una tarea que debemos llevar a cabo a largo medio/plazo, normalmente debemos dedicar un tiempo cada día a esa tarea pero, ¿cuánto tiempo necesitamos dedicar a esa tarea (como mínimo) para terminar en un plazo establecido?
Gracias a Alejandro por la sugerencia de este programa.
typedefstruct { int hours; int minutes; float raw; } Thm;
time_t getTime(int day,int month,int year); int calculateDaysInRange(int daysInRange[7], time_t start, time_t end); int calculateTotalDays(int workDays[7],int daysInRange[7]); int calculateHoursADay(Thm *result,int totalDays,int hoursToWork,int totalHours);
int main(int argc,char*argv[]) { int error; int i ; int totalDays; time_t start = getTime(1,6,2013); time_t end = getTime(18,6,2013); /* Which days can we work in this task?
A medida que las webs se van complicando, sobre todo en las páginas modernas, van necesitando más y más archivos Javascript para poder ejecutarse, y lo malo es que estos archivos deben incluirse por orden, ya que un mínimo fallo aquí puede hacer que nuestra aplicación web no funcione correctamente. Por otro lado, también tenemos el caso de que para incluir un script, debemos incluir también varias dependencias (algunas obligatorias, otras opcionales).… Leer artículo completo
Me he apuntado a esta inicialiva de @ubuntizando, en la que a través de Twitter podéis votar vuestro blog favorito dedica al software libre. Desde aquí os invito a votarme haciendo retweet al siguiente tweet. Hay hasta el día 21 de este mes a las 00:00 (no queda mucho, pero todavía hay tiempo):
Otra de las características que dan a C++ mucha más flexibilidad son los punteros a miembro. Éstos nos permiten trabajar con elementos que podemos encontrar dentro de una clase, un struct o una union. Y el mejor ejemplo lo encontramos a la hora de hacer callbacks, si repasamos los callbacks en C inmediatamente veremos que en un lenguaje orientado a objetos necesitamos poder acceder a métodos dentro de una clase. Si hacemos un ejemplo parecido al de aquel post, podemos demostrar que la misma manera podemos acceder a métodos estáticos dentro de la clase:
/* DECLARACIÓN DE LLAMADORA */ void generaecos(funcion_callback func) { int num; cout<<"Voy a llamar al eco con el texto HOLA"<< endl; num=func((char*)"HOLA"); cout<<"La he llamado y me ha devuelto: "<< num << endl; }
int main() { generaecos(MyClass::eco); }
Pero cuando queremos llamar a un método no estático de la clase fallará sin miramientos, ya que necesitaríamos la información del objeto en el que se encuentra el método, y de esta forma estaríamos pasando directamente una dirección de memoria (al ejecutar la función no encontraría el puntero this, entre otras cosas).… Leer artículo completo
Imaginémonos un programa que almacena periódicamente valores en una base de datos, dichos valores pueden ser temperatura, humedad, uso de CPU, voltaje, corriente, intensidad de luz, etc. En definitiva, parámetros que varían con el tiempo, con la característica de que, dos muestras seguidas pueden ser iguales, y no nos interesaría obtenerlas, pero tras una variación sí que nos interesaría volver a ver el mismo valor. Por ejemplo, en una tabla de uno de CPU vemos:
Id
Date
CPU Use
1
5-jun-2013 10:44:20
56%
2
5-jun-2013 10:45:50
57%
3
5-jun-2013 10:47:20
57%
4
5-jun-2013 10:48:50
57%
5
5-jun-2013 10:50:20
58%
6
5-jun-2013 10:51:50
58%
7
5-jun-2013 10:53:20
56%
8
5-jun-2013 10:54:50
55%
9
5-jun-2013 10:56:20
56%
10
5-jun-2013 10:57:50
56%
11
5-jun-2013 10:58:20
59%
12
5-jun-2013 11:00:50
59%
Cuando en realidad lo que nos interesaría ver es:
Id
Date
CPU Use
1
5-jun-2013 10:44:20
56%
2
5-jun-2013 10:45:50
57%
5
5-jun-2013 10:50:20
58%
7
5-jun-2013 10:53:20
56%
8
5-jun-2013 10:54:50
55%
9
5-jun-2013 10:56:20
56%
11
5-jun-2013 10:58:20
59%
Por tanto tenemos dos formas de abordar el tema:
Evitando introducir valores repetidos
Para ello, bastaría con introducir un trigger en la base de datos asociado a la introducción de los valores en dicha tabla.… Leer artículo completo
Sé que org-mode vale para mucho más, pero es tan grande su utilidad, que hasta para esto nos puede servir, y nos permitirá hacer cosas muy chulas.
Aunque no es tan flexible como tener una instancia del comando mysql abierto, la potencia que nos ofrecerá para tratar la salida es grandísima.
Sólo tenemos que tener org-mode instalado, y org-babel configurado. Para configurar org-mode y org-babel, debemos introducir en nuestro $HOME/.emacs lo siguiente:
Si te ha gustado el sitio, te ha resultado útil o simplemente quieres colaborar con el sitio para que siga compartiendo contenidos, invítame a un café, una pizza, una ensalada, o lo que se te ocurra.Te lo agradeceré eternamente :)
¡Atención! Este sitio utiliza cookies propias y de terceros para mejorar la experiencia de usuario, Si continúa la navegación en el sitio, asumo que estás de acuerdo con esto, aunque siempre puedes desactivar las cookies en tu navegador. AceptarLeer más
Últimos comentarios