1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
private static List< Shop > randomSort(List< Shop > inList) { int numItems = inList.size(); List< Shop > outList = new ArrayList< Shop >(); Integer[] randomNumbers = new Integer[numItems]; int itm = 0; int cm = 0; while( cm < numItems ) { itm = new Double(Math.random() * numItems).intValue(); if( randomNumbers[itm] == null ) { randomNumbers[itm] = cm++; } } for( int i = 0 ; i < numItems ; i++ ) outList.add(inList.get(randomNumbers[i])); return outList; } |
Etiqueta: Minientrada
Copia y restaura base de datos mediante comandos
1 2 3 4 5 |
#Copia: mysqldump --opt --user=USUARIO --password='CONTRASEÑA' NOMBRE_DB > NOMBRE_FICHERO.sql; #Restaura: mysql --user=USUARIO --password='CONTRASEÑA' NOMBRE_DB < NOMBRE_FICHERO.sql |
Omitir la introducción de la contraseña al inicio de sesión de Windows
Pulsar: windows+r
Escribir: control userpasswords2
Desmarcar: Los usuarios deben escribir su nombre y contraseña para usar el equipo.
Aceptar.
Fuente:
http://www.ehowenespanol.com/omitir-inicio-sesion-windows-xp-como_295309/
Arduino: Apertura de válvula programada
Enunciado:
Hay que realizar un ciclo de purga cada x tiempo, y cada purga durará 200 ms. El tiempo entre purga y purga viene determinado por la operación 2300/intensidad=seg. Siendo la Intensidad la que voy a leer del sensor de intensidad. Es decir, si estando en varios estado de funcionamiento del sistema, ejecuto la operación (2300/i) y ese valor que me da, es el tiempo que tengo que esperar para purgar, en el momento que pase, pongo en alto la válvula de purga y purgo durante 200 ms (los 200 ms siempre es igual) cuando termino de purgar (200ms) vuelvo a realizar la operación y vuelvo a esperar el tiempo que salga del resultado de la operación y así sucesivamente. También tengo que tener en cuenta que la operación se realice una sola vez tras realizar la purga para evitar perdidas de datos, o que se pase todo el tiempo realizando operaciones y finalmente no purgue. Fuente: fc
Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
#define tPURGADO 2000 #define pVALVULA 13 unsigned long tEsperaPurga = 10000; unsigned long tUltPurgado = 0; unsigned long tAhora; boolean purgando = false; unsigned long tInicioPurgado = 0; // Permite simular el sensor introduciendo a mano // los numeros desde la consola Serial del IDE void leerValorSensorPurgado() { if( Serial.available() ) { tEsperaPurga = Serial.parseInt(); while( Serial.available() && Serial.read() != -1 ); } } void funcionPurgando() { tAhora = millis(); if( purgando ) { if( tAhora-tInicioPurgado > tPURGADO ) { digitalWrite( pVALVULA, LOW ); tUltPurgado = tAhora; purgando = false; Serial.print("FIN ("); Serial.print(tAhora/1000); Serial.println(")"); } else { digitalWrite( pVALVULA, HIGH ); } } else if( tAhora-tUltPurgado > tEsperaPurga ) { tInicioPurgado = tAhora; purgando = true; leerValorSensorPurgado(); Serial.print("INICIO ("); Serial.print(tAhora/1000); Serial.println(")"); } } void setup() { pinMode(pVALVULA, OUTPUT); // Led del arduino que se encendera durante el purgado. Serial.begin(9600); while(!Serial); delay(2000); Serial.println("INICIO PROGRAMA\r\n"); } void loop() { funcionPurgando(); // El resto de tareas del programa. } |
Resultado:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
INICIO PROGRAMA INICIO (10) FIN (12) INICIO (22) FIN (24) INICIO (34) FIN (36) INICIO (46) FIN (48) INICIO (58) FIN (60) INICIO (70) FIN (72) |
Forzar bandeja de salida Postfix
Fuerza cola de correo:
1 |
postqueue -f |
Lista los correos:
1 |
postqueue -p |
Lista los correos en un fichero:
1 |
postqueue -p > fichero.txt |
Cuenta los correos de la cola:
1 |
postqueue -p | tail -n 1 | cut -d' ' -f5 |
Elimina todos los correos de la cola de correo:
1 |
postsuper -d ALL |
Y otras cosas:
http://rm-rf.es/comandos-basicos-en-postfix-para-manejar-la-cola-de-correo