Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - rastanthology

#1
Hasta donde tengo entendido si, podes snifear sin estar conectado al router siempre y cuando los datos no esten cifrados, tambien el arp poisoning solo es necesario para las redes cableadas, ya q por wifi los datos ya los ves sin necesidad de que sean redirigidos, solo los tenes que leer
#2
Gracias voy a probar lo de las tablas arp


lo puse en wpa... pero yo creo que la historia no va a acabar aca... ya que wpa no implica datos cifrados de las pcs al router hasta donde tengo entendido...


ChimoC:  que me entren o no no me importa mucho, lo que me jode es que hagan sniffing / arp poisoning a la red. Que me capturen las cookies de las cuentas de mail, que me saquen datos privados.... Por que hoy es arp poisoning, mañana el niño vecino va a darse cuenta que no lo necesita para hacer sniffing y pasado me va a capturar las cookies de forma automatica con el karmetasploit o con algo parecido sin tener acceso a la red....

que tiene que ver lo que me paso con que haya virus en las pcs? mi notebook con ubuntu fue redirigida y dudo que haya cualquier clase de backdoor dando vueltas... tambien dudo que en las otras pueda haber algo mas que una cookie y que alla ganado acceso a alguna maquina...

CitarSi lo que quieres es hablar de envenenamientos, flores mágicas y conjuros... postea en hacking básico


que barrabasada dije para merecerme eso? :P, posta decime asi no la repito... de todas formas es un problema wireless... me estan atacando a travez de wireless y si me hacen un arp poisoning a travez de wireless me parece que lo postie en el sector indicado... si queria hablar de flores magicas posteaba en un foro de fumones y de conjuros me iba a uno de ocultismo, no se que tiene que ver con hacking basico :P
#3
jaja ok, si me calente cuando no supe q hacer :P, pero con wpa con que agarraren un handshake, y hacer una fakeauth no estaria denuevo en la misma?

Supongamos que la mac que consegui es la mac enserio de la placa de esta persona, si la logro ver conectada a otra red frecuentemente como para asumir que es su red domestica dicen q vale la pena q trate de ver quien es,  ya sea mediante sniffing/meterme en su red, como para mandarle un mail o algo? o que seria peor?

Hasta donde tengo entendido igual para sniffear datos no cifrados por wifi el ARP es al pedo no? creo que lo unico q se necesita es ponerse a escuchar los paquetes, puedo asumir que no tiene mucha idea de lo que estaba haciendo? O me equivoco en este punto? Alguien me habia dicho  una vuelta q el arp es mas q nada para redes cableadas, ya que por wifi solo necesitas escuchar lo que se manda


Cuando pasa esto hay alguna forma como para decirle a la maquina que valla directo al router? Fue bastante molesto tambien que por 2/3 horas estuvo todo redirigido e internet estaba por momentos casi inutilizable...

#4
Buenas. Estaba en lo de mis viejos y para mi sorpresa internet andaba demasiado lento. Al punto que levanto mis sospechas. Abro el wireshark pongo el filtro de ARP y veo como de vez en cuando aparece una mac adress que no es el router le dice a todas que el es el router y despues como el router hace lo mismo :o

La cuestion es que no se que puedo hacer. Se como hacer lo que esta haciendo pero no se como defenderme. El router es viejo, tiene filtro de mac adress habilitado y soporta wep y wpa pero hasta ahora no encontre necesidad de usarlo. Todos sabemos q wep es lo mismo q nada. Y hasta donde tengo entendido en lo q respecta ARP poisoning wpa tampoco, corrijanme si me equivoco.

Tambien detecte que la mac adress a la q es redirigido el trafico varia. La va cambiando entre algunas de las mac adress q tienen permiso de conectarse a la red!!! asi q no tengo forma de identificar quien es a noser q lo agarre en algun descuido. Aunque recien acabo de prender el airodump y veo q dice q mi maquina esta conectada a otra mac adress, q no es la del router y no aparece en el wireshark. Creo que ahora si lo tengo.


Que se les ocurre que pueda hacer? Yo no estoy aca seguido y mi miedo es q le roben informacion importante a mis padres cuando no estoy, por que ellos mas que pensar q anda lento no van a hacer. Ideas? Alguna forma de mandarle un mensaje a este pajero?


x cierto si tu mac adress es 00:--:00:41:07:--

TE VOY A IR A BUSCAR!!!!!

jeje

enserio
#5
Java / Re: programa de c++ a java, Jar para celular
1 Noviembre 2010, 23:44 PM
o con el android sdk / ndk para c++, ahi los compilas en .apk
#6
Estaba tratando de hacer un juego para android. Lo que quiero hacer es que cuando uno hace click en la pantalla el jugador vaya hasta ese punto esquivando todos los obstaculos que hay en el medio. Para eso trate de seguir la logica de A*Pathfinding, con los calculos "manhatan". Pero la verdad es que despues de dos dias de tratar de que ande bien cada vez estoy mas mareado.

Algo de info para entender lo que hice hasta ahora:

El mapa esta dividido en 50*50 tiles de 32 pixeles c/u. Cuando se carga el mapa se cargan todos los objetos colisionables en mapindexT[ x] [y] = true. Cuando hago click en cualquier tile le paso al void findpath() la coordenada del tile. Despues este void chequea las colisiones de alrededor de las coordenadas que le paso y despues,  al estilo "Manhatan", el costo de caminar horizontal y verticalmente de ir hasta el lugar donde esta el jugador. Despues determina los valores de los tiles de acuerdo al costo de caminar hasta ahi.

Una vez pasado esto deberia buscar cual es el tile optimo y guardar sus coordenadas en un arraylist. Las estoy grabando en 2. Una para pasarle 1 tile x tile las coordenadas de a donde ir una vez calculado como llegar. Y la otra para limpiar otro array booleano que contiene cuales tiles fueron ya calculados una vez que el jugador se termino de mover.

Una vez calculado como deberia llegar vuelve al loop principal en donde agarro las coordenadas que guarde anteriormente "optimas" de como llegar del arraylist y las voy borrando 1 x 1 a medida que el jugador completa un movimiento de tile entero. Una vez que termina el movimiento total calculado le pido que limpie mi array booleano que contiene los tiles que fueron usados.

Actualmente tengo varios errores que no me dejan esclarecer bien cual es el problema. Habre estado 4~6 horas programando esto y 8~10 debuggeando y corrigiendo. Hay variables que estan al pedo, fui creando variables y borrando a medida que debuggeaba para ver si solucionaba el problema, hay mas de una colgada, pero eso no es lo importante, cuando este andando bien voy a borrar las cosas innecesarias.

Estos eran los problemas que tenia al principio, algunos los resolvi, leer el final del post para ver los problemas del codigo actual:
Citar
Los problemas a simple vista que tengo son:

  • El jugador no siempre calcula su tile optima, hay veces que si, hay veces que no
  • Una vez finalizado el movimiento no siempre limpia mi array, cosa que no le encontre sentido alguno
  • Hay veces que el jugador se queda loopeando el movimiento entre 2 tiles, llendo y viniendo
  • Si le pido de que esquive un colisionable a veces entra en un loop infinito :/
  • Seguramente abra mas, pero necesito que alguien que tal vez no este tan cerca del codigo pueda ver que estoy haciendo mal


Bueno les dejo partes del codigo por que el juego total es bastante largo

De aca se inicia el movimiento
Código (java) [Seleccionar]

@Override
public boolean onSceneTouchEvent(Scene pScene,
TouchEvent pSceneTouchEvent) {

if (pSceneTouchEvent.getAction() == MotionEvent.ACTION_DOWN) {

    otoy = toy;
    otox = tox;


toy =(int) pSceneTouchEvent.getY() / 32;
tox = (int) pSceneTouchEvent.getX() / 32;

chartouched = false;
onqueuex.clear();
onqueuey.clear();
queue = 0;
Log.d("MO", "tox " + tox + " toy " + toy);
//Game.this.touchmove();
lpath = true;
realfinish = false;
findpath("player", tox, toy);


return true;

};
return false;
}


});


Esta es la funcion que deberia calcular a donde ir:
Código (java) [Seleccionar]

private void findpath(String who, int ax, int ay) {
int valuesx[][] = new int[3][3];
int valuesy[][] = new int[3][3];
int xx,yy;
int[][] f = new int[3][3];
int[][] h = new int[3][3];
int[][] g = new int[3][3];
int tmpx, tmpy, tmpv;
tmpx = tmpy = tmpv = xx = yy = 0;
boolean[][] ontclosedlist = new boolean[3][3];
firstmove = true;
fx = ax;
fy = ay;
onqueuex.add(fx);
onqueuey.add(fy);
boolean notthere = true;
boolean walkable = true;
if (mapindexT[fx][fy]) { walkable = false; }

if (walkable) {
while (lpath) {
// referenciar los 8 puntos que rodean a donde vamos
valuesx[0][0]= fx - 1;
valuesy[0][0]= fy - 1;

valuesx[0][1]= fx;
valuesy[0][1]= fy - 1;

valuesx[0][2]= fx +1;
valuesy[0][2]= fy - 1;

valuesx[1][0]= fx - 1;
valuesy[1][0]= fy;

valuesx[1][1]= fx;
valuesy[1][1]= fy;

valuesx[1][2]= fx + 1;
valuesy[1][2]= fy;

valuesx[2][0]= fx - 1;
valuesy[2][0]= fy + 1;

valuesx[2][1]= fx;
valuesy[2][1]= fy + 1;

valuesx[2][2]= fx + 1;
valuesy[2][2]= fy + 1;
//--------------------------------------------------
//checkear collidables y conseguir la siguiente tile optima
for (int m=0; m <= 2; m++) {
for (int q=0;q<=2; q++) {


int tvx = valuesx[m][q];
int tvy = valuesy[m][q];
Log.d("MO", "tvx " + tvx + " tvy " + tvy);
if ( tvx >= 0  && tvy >=0) {
if (mapindexT[tvx][tvy]) {
ontclosedlist[m][q] = true;
Log.d("MO", "Collidables X: " + valuesx[m][q] + " Y: " + valuesy[m][q]);

numberofopenlist++;
}
// no entrar en tiles usados
ontclosedlist[1][1] = true;
if (onclosedlist[valuesx[m][q]][valuesy[m][q]]) { ontclosedlist[m][q] = true;}
// else { ontclosedlist[m][q] = true; }
//setear distancia entre el target y el player
// diferenciar x e y de acuerdo al values >>
if (!ontclosedlist[m][q]) {
if ( mx > valuesx[m][q] && my >= valuesy[m][q]) {
g[m][q]= (mx - valuesx[m][q] + my - valuesy[m][q]) * 10;
// Log.d("MO", "Arriba e izquierda" + " mx " + mx + " fx " + valuesx[m][q] + " my " + my + " fy " + valuesy[m][q]);
} else if ( mx <= valuesx[m][q] && my > valuesy[m][q]) {
g[m][q] = (valuesx[m][q] - mx + my - valuesy[m][q]) * 10;  
//Log.d("MO", "Arriba y derecha mx " + mx + " fx " + valuesx[m][q] + " my " + my + " fy " + valuesy[m][q]);
}  else if ( mx >= valuesx[m][q] && my < valuesy[m][q]) {
g[m][q] = ( mx - valuesx[m][q] + valuesy[m][q] - my) * 10;
//Log.d("MO", "Abajo e izquierda" + " mx " + mx + " fx " + valuesx[m][q] + " my " + my + " fy " + valuesy[m][q]);
} else if (mx == valuesx[m][q] && my == valuesy[m][q]) {
g[m][q] = 0;

} else if (mx < valuesx[m][q] && my <= valuesy[m][q]) {
//Log.d("MO", "Abajo y derecha" + " mx " + mx + " fx " + valuesx[m][q] + " my " + my + " fy " + valuesy[m][q]);
g[m][q] = ( valuesx[m][q] - mx + valuesy[m][q] - my)*10;
} else { Log.d("MO", "ERROR DE CALCULO DE COSTOS DE MOVIMIENTO MX: " + mx + " MY: " + my + " valuesx: " + valuesx[m][q] + " valuesy " + valuesy[m][q]); }
//Log.d("mo", "g[m][q] " + g[q][m]  );

} else { // Log.d("MO", "Collisionable");

}
// setear costo diagonal
if ( m == 0 && q == 0 || m == 0 && q == 2 || m == 2 && q == 0 || m == 2 && q == 2) {
h[m][q] = 20;
} else {
// setear costo xy
h[m][q] = 10;
}
// setear costo total;
f[m][q] = g[m][q] + h[m][q];


}
}
}

for (int x = 0; x <= 2; x++) {
for (int y = 0; y <= 2; y++) {
// buscar f optima;
//if (x == 1 && y == 1) { continue; }
if (ontclosedlist[x][y]) {
//continue;
//Log.d("MO", "collisionable \\/");

} else {

//Log.d("MO", "Buscando f opt X: " + x + " Y: " + y + " realx: " + valuesx[y][x] + " realy: " + valuesy[y][x] + " costo:  " + f[x][y]  );
if (x == 0 && y ==0) { tmpx =valuesx[0][0]; tmpy = valuesy[0][0]; tmpv = f[x][y]; xx = yy = 0; }
if (f[x][y] < tmpv) { tmpx = valuesx[x][y]; tmpy = valuesy[x][y]; tmpv = f[x][y]; xx = x; yy = y; exitloop = 0; Log.d("mo", "F optima calculada" + " x " + tmpx +" y " + tmpy + " cost " + tmpv);}

}
ontclosedlist[x][y] = false;

}
}
onqueuelistx.add(tmpx);
onqueuelisty.add(tmpy);
onqueuex.add(tmpx);
onqueuey.add(tmpy);
onclosedlist[tmpx][tmpy] = true;
Log.d( " MO ", "onqueuex: " + onqueuex.get(queue) + " onqueuey: " + onqueuey.get(queue));
queue++;
fx = tmpx;
fy = tmpy;
// llenar lista
// for ( int g1=0; g1<=2; g1++) {
// for (int h1=0; h1<= 2; h1++) {
// if (ontclosedlist[g1][h1]) { onclosedlist[valuesx[h1][g1]][valuesy[h1][g1]] = true; }
// }
// }

//-------------------
// referenciar para donde moverse
if (queue > 30) {
Log.d("MO", "Saliendo del loop! error");
onqueuex.clear();
onqueuey.clear();
queue = 0;
break;}

Log.d("MO", "Fx: " + fx +" Fy " + fy + " cost " + f[xx][yy] + " onqueue " + queue );
// salir del loop
if (fx == mx && fy == my) {notthere = false; realfinish = false; lpath = false; fpath = true; oqueue = queue;
tmoving = true;
onqueuex.remove(onqueuex.size() - 1); onqueuey.remove(onqueuey.size() - 1);
Log.d("MO", "Path calculado, tamaño: " + queue); break;}

}// else { notthere = true; }

}

}
    //}
   //}

}



Una vez calculada entra aca que es donde el jugador se esta moviendo:
Código (java) [Seleccionar]


                            if (!mloop) {
                            if (fpath) {
                           
                            //lpath = true;
                            int tmx, tmy, rtmx, rtmy;
                            if (!onqueuex.isEmpty()) {
                           
                           
                           
                            tmx  = onqueuex.get(onqueuex.size() - 1);
                            tmy = onqueuey.get(onqueuey.size() - 1);
                            rtmx = mx - tmx;
                            rtmy = my - tmy;
                            if (rtmx == 1 && rtmy == 1) {
                            //diagonal superior izquierda
                            tindex = 4;
                           
                            } else if (rtmx == 1 && rtmy == -1) {
                            // diagonal inferior izquierda
                            tindex = 5;
                            } else if (rtmx == -1 && rtmy == 1) {
                            // diagonal superior derecha
                            tindex = 6;
                            } else if ( rtmx == -1 && rtmy == -1) {
                            //diagonal inferior derecha
                            tindex = 7;
                            } else if (rtmx == 1) { tindex = 1; }
                            else if (rtmx == -1) { tindex = 0; }
                            else if (rtmy == 1) { tindex = 2; }
                            else if (rtmy == -1) { tindex = 3; }
                            Log.d("MO", "tmx: " + tmx + " tmy " + tmy + " rtmx " + rtmx + " rtmy " + rtmy + " tindex " + tindex);
                        onqueuex.remove(onqueuex.size() - 1);
                          onqueuey.remove(onqueuey.size() - 1);
                         
                            } else {
                            fpath = false; realfinish = true;
                           
                            for (int g2 = 0; g2 < oqueue ; g2++) {
                            onclosedlist[onqueuelistx.get(g2)][onqueuelisty.get(g2)] = false;
                            Log.d("MO", "Limpiando camino");
                            }
                            onqueuelistx.clear();
                            onqueuelisty.clear();
                            onqueuex.clear();
                            onqueuey.clear();
                            oqueue = 0;
                            }
                            }
                            if (!realfinish) {
                            ox = jx = (int) player.getX();
                            oy = jy = (int) player.getY();
                            String p = "player";
                         
                            Log.d("MO", "X: " + mx + " Y: " + my);
                           
                            switch(tindex) {
                                                   case 0:
                                                       //derecha
                                                    // mapindex(mx, my, true);
                                                    //    if (collidables(mx, my,p,1)){                                                        
                                                       jx = ox + 8;
                                                       ox = jx;
                                                       mloop = true;
                                                       mx++;
                                                           player.setPosition(jx, oy);
                                                           
                                                           player.animate(new long[]{200, 200, 200}, 3, 5, tmoving);
                                                     //  } else { player.animate(new long[]{200, 200, 200}, 3, 5, moving);}
                                                       
                                                       
                                                           break;
                                                           
                                                   case 1:
                                                    //izquierda
                                                   // mapindex(mx, my, true);
                                                   // if (collidables(mx, my,p,1)) {
                                                        jx = ox - 8;
                                                        ox = jx;
                                                        player.setPosition(jx, oy);
                                                        player.animate(new long[]{200, 200, 200}, 9, 11, tmoving);
                                                        mloop = true;
                                                        mx--;
                                                   // } else { player.animate(new long[]{200, 200, 200}, 9, 11, moving); }
                                                           break;
                                                   case 3:
                                                       //abajo
                                                    //mapindex(mx, my, true);
                                                   // if (collidables(mx, my,p,1)) {
                                                    jy = oy + 8;
                                                    oy = jy;
                                                    my++;
                                                    player.setPosition(ox, jy);
                                                    mloop = true;
                                                    player.animate(new long[]{200, 200, 200}, 6, 8, tmoving);
                                                    //} else {  player.animate(new long[]{200, 200, 200}, 6, 8, moving); }
                                                           break;
                                                   case 2:
                                                       //arriba
                                                    //mapindex(mx, my, true);
                                                    //if(collidables(mx, my,p,1)) {
                                                    jy = oy - 8;
                                                       oy = jy;
                                                       my--;
                                                    player.setPosition(ox, jy);
                                                    mloop = true;
                                                    player.animate(new long[]{200, 200, 200}, 0, 2, tmoving);
                                                   // } else { player.animate(new long[]{200, 200, 200}, 0, 2, moving); }
                                                           break;
                                                   case 4:
                                                    //diagonal superior izquierda
                                                    jx = ox - 4;
                                                    ox = jx;
                                                    jy = oy - 4;
                                                    oy = jy;
                                                    mx--;
                                                    my--;
                                                    player.setPosition(jx, jy);
                                                    mloop = true;
                                                    player.animate(new long[]{200, 200, 200}, 9, 11, tmoving);
                                                    break;
                                                   case 5:
                                                    //diagonal inferior izquierda
                                                    jx = ox - 4;
                                                    ox = jx;
                                                    jy = oy + 4;
                                                    oy = jy;
                                                    mx--;
                                                    my++;
                                                    player.setPosition(jx, jy);
                                                    mloop = true;
                                                    player.animate(new long[]{200, 200, 200}, 9, 11, tmoving);
                                                    break;
                                                   case 6:
                                                    // diagonal superior derecha
                                                    jx = ox + 4;
                                                    ox = jx;
                                                    jy = oy - 4;
                                                    oy = jy;
                                                    mx++;
                                                    my--;
                                                    player.setPosition(jx, jy);
                                                    mloop = true;
                                                    player.animate(new long[]{200, 200, 200}, 3, 5, tmoving);
                                                    break;
                                                   case 7:
                                                    //diagonal inferior derecha
                                                   
                                                    jx = ox + 4;
                                                    ox = jx;
                                                    jy = oy + 4;
                                                    oy = jy;
                                                    mx++;
                                                    my++;
                                                    player.setPosition(jx, jy);
                                                    mloop = true;
                                                    player.animate(new long[]{200, 200, 200}, 3, 5, tmoving);
                                                    break;
                           
                           }
                            }
                   } else {
                           
                   
                    switch(tindex) {
                   
                    case 0:
                    jx = ox + 8;
                       ox = jx;
                       player.setPosition(jx, oy);
                           temp++;
                           if (temp == 3) { temp = 0; mloop = false; if (realfinish) { tmoving = false; } }
                           
                           player.animate(new long[]{200, 200, 200}, 3, 5, moving);
                           
                           break;
                    case 1:
                    jx = ox - 8;
                    ox = jx;
                    player.setPosition(jx, oy);
                    temp++;
                    if (temp == 3) { temp = 0; mloop = false; if (realfinish) { tmoving = false; }}
                    player.animate(new long[]{200, 200, 200}, 9, 11, moving);
                    break;
                    case 2:
                    jy = oy - 8;
                    oy = jy;
                    player.setPosition(ox, jy);
                    temp++;
                   
                    if (temp == 3) { temp = 0; mloop = false; if (realfinish) { tmoving = false; }}
                    player.animate(new long[]{200, 200, 200}, 0, 2, moving);
                    break;
                    case 3:
                    jy = oy + 8;
                    oy = jy;
                    player.setPosition(ox, jy);
                    temp++;
                    if (temp == 3) { temp = 0; mloop = false; if (realfinish) { tmoving = false; } }
                    player.animate(new long[]{200, 200, 200}, 6, 8, moving);
                    break;
                     case 4:
                          //diagonal superior izquierda
                          jx = ox - 4;
                          ox = jx;
                          jy = oy - 4;
                          oy = jy;
                          temp++;
                          player.setPosition(jx, jy);
                     
                          player.animate(new long[]{200, 200, 200}, 9, 11, tmoving);
                          if (temp == 7) { temp = 0; mloop = false; if(realfinish) {tmoving = false;}}
                          break;
                         case 5:
                          //diagonal inferior izquierda
                          jx = ox - 4;
                          ox = jx;
                          jy = oy + 4;
                          oy = jy;
                          temp++;
                          player.setPosition(jx, jy);
                     
                          player.animate(new long[]{200, 200, 200}, 9, 11, tmoving);
                          if (temp == 7) { temp = 0; mloop = false; if(realfinish) {tmoving = false;}}
                          break;
                         case 6:
                          // diagonal superior derecha
                          jx = ox + 4;
                          ox = jx;
                          jy = oy - 4;
                          oy = jy;
                          temp++;
                          player.setPosition(jx, jy);
                     
                          player.animate(new long[]{200, 200, 200}, 3, 5, tmoving);
                          if (temp == 7) { temp = 0; mloop = false; if(realfinish) {tmoving = false;}}
                          break;
                         case 7:
                          //diagonal inferior derecha
                         
                          jx = ox + 4;
                          ox = jx;
                          jy = oy + 4;
                          oy = jy;
                 
                          player.setPosition(jx, jy);
                          temp++;
                          player.animate(new long[]{200, 200, 200}, 3, 5, tmoving);
                          if (temp == 7) { temp = 0; mloop = false; if(realfinish) {tmoving = false;}}
                          break;
                   
                    }
                   
                   }
                    }
                   
                   
                   }
           });
       



A ver si alguien puede ver lo que yo no veo

Desde ya gracias por dedicarle tiempo a este tema

PD: corregi otra cosa q me pase x alto, tambien el jug arranca a moverse a la derecha siempre x mas q no alla terminado de calcular a donde ir, y el loop infinito pasa mas seguido ahora :/

PD2: Le saque algunos errores mas, al parecer me habia confundido pensando en como habia declarado ciertas cosas. Ahora los problemas se reducen a:

El jugador no siempre calcula bien el path, hay veces que entra en un loop que no termina; aunque ahora lo fuerzo a que salga para que sea mas comodo

Otras veces misteriosamente me tira un ArrayOutOfBounds Exception esta linea:


int tvx = valuesx[m][q];
int tvy = valuesy[m][q];

if ( tvx >= 0  && tvy >=0) {

if (onclosedlist[valuesx[m][q]][valuesy[m][q]]) { ontclosedlist[m][q] = true;}

}
y digo misteriosamente por que esta comprendida en el if que no dejaria que entre si esta outofbounds :/. En el log me dice que entra con tvx = tvy = -1


Mi teoria al tener que decidir entre dos tiles con el mismo valor elige uno y para ese lado no puede solucionar el problema. Ahi es cuando no sale del loop. Cuando este mas en frio lo chequeo bien, pero si alguien lo descubre a simple vista mejor

#7
mmmm no lo veo muy factible asi como lo planteas, pero un camino mas simple es poner un servidor ssh en la maquina con linux y te conectas desde windows a un terminal remoto y ejecutas lo que quieras desde ahi

en cuanto a modificar el crontab, si es algo que harias regularmente y de forma sistematica, podrias hacer un script que cuando lo corras de acuerdo a ciertas variables lo modifique de ciertas formas
#8
ah jaja, no sabia nada del cron, no se por que pense que lo queria hacer con bash :P
#9
Por empezar esto va a en scripting, probablemente te lo muevan

Despues no entiendo esto:

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
22 10 * * * exec /scripts/start_apache.sh

Luego un script se lee una vez y si no se le indica nada cuando se termina de leer se cierra

Segundo no se donde habras leido que indicando la hora asi bash responde haciendo algo a esa hora :P

Tercero estas seguro de que la forma en la que se arranca el apache en tu distro es esa y no algo como : /etc/init.d/apache start ?



Sacando eso de lado te doy una idea minima de como seria:

Código (bash) [Seleccionar]

#!/bin/bash

function hora() {
date=`date +%H:%M`
}
loop="false"

while [ loop="false" ]
do
hora
if [ date="22:10" ]
then
exec /.../scripts/start_apache.sh
echo $date
echo "Arranco el servidor apache"
sleep 60 #Asi no le pedis que arranque mil veces en ese minuto
#elif [ date=... ]
#then
#...
fi

done



Yo en vez de ejecutar desde otro sh lo haria directamente del mismo, como no conozco tu ditro no toy seguro de donde esta localizado, pero casi seguro que en algun lado podes hacer /apache start y /apache stop; el while es para que el script este corriendo siempre

Espero que te sirva, cualquier cosa pregunta


Saludos



#10
Al final no se como termino andando asi como estaba escrito, me parece q era un bug del eclipse... entre project cleans y grabar los xml y las clases se soluciono...