elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: 1 2 [3] 4 5 6
21  Programación / PHP / Sistema de Baneos; ¿Existe alguno eficiente? en: 6 Marzo 2012, 18:58 pm
Hola,  estoy implementando una pequeña web y necesito implementar alguna clase de sistema de baneo, es decir, si un usuario comete alguna infracción que este no se pueda loguear mas (eso es sencillo), lo que pasa es que lo ideal sería que ese usuario tampoco se pueda registrar bajo otro usuario, otra vez. ¿Existe alguna manera eficaz de lograr esto?. Pensé varias maneras sin embargo todas tienen falencias; Por ejemplo, bannearlo y esperar que el usuario tenga la buena voluntad de no volverse a registrar (sencillo de implementar, pero obviamente ridículo), bannearlo y usar las cookies para saber si el usuario que se esta tratando de registrar esta baneado (Obviamente no sirve si el usuario borra las cookies), por ultimo, como ya no vivimos en la era del dial-up, no hay forma de guardarse inequívocamente las ip, sin embargo creo que pueden existir métodos para enlazar una dirección dinámica e identificarla (Esto se me haría particularmente difícil puesto que no conozco mucho sobre el tema, y solo es una suposición). ¿Existe alguna forma en Php (O javascript si es que me estoy equivocando de rubro xD), de obtener algún numero que identifique inequívocamente a una maquina, o alguna forma de generarlo? (Claro, podríamos identificar la maquina, pero si el usuario se logea con otra maquina, este pasa desapercibido, bueno supongo que sería un precio a pagar)

Muchas gracias por detenerse a leer, cualquier dato que me puedan pasar es bien recibido.

Saludos!!!
22  Programación / Desarrollo Web / Duda sencilla sobre javascript en: 5 Marzo 2012, 18:43 pm
Hola, estoy tratando de implementar un javascript que sencillamente lo que hace es al presionar un botón "Quiero registrarme" abra una serie de inputs para introducir datos personales como nombre, apellido, edad, etcétera. El problema es que yo quiero que el usuario presione una sola vez el botón "Quiero registrarme" y luego este desaparezca (No que se oculte, sino que se borre). Sin mas preámbulos les muestro mi código:

Código
  1. function mostrar_registro() {
  2. if (registrarseOn == false) {
  3. var nombre = document.createElement('input');
  4. nombre.setAttribute('name','nombre');
  5. nombre.setAttribute('value','Ingrese su nombre aqui.');
  6. var email = document.createElement('input');
  7. email.setAttribute('name','email');
  8. email.setAttribute('value','Ingrese su email de usuario aqui.');
  9. var apellido = document.createElement('input');
  10. apellido.setAttribute('name','apellido');
  11. apellido.setAttribute('value','Ingrese su apellido aqui.');
  12. var nick = document.createElement('input');
  13. nick.setAttribute('name','nick');
  14. nick.setAttribute('value','Ingrese su nick aqui.');
  15. var universidad = document.createElement('input');
  16. universidad.setAttribute('name','universidad');
  17. universidad.setAttribute('value','Ingrese su universidad aqui.');
  18. var edad = document.createElement('input');
  19. edad.setAttribute('name','edad');
  20. edad.setAttribute('value','Ingrese su edad aqui.');
  21.  
  22. var p1 = document.createElement('p');
  23. var p2 = document.createElement('p');
  24. var p3 = document.createElement('p');
  25. var p4 = document.createElement('p');
  26. var p5 = document.createElement('p');
  27. var p6 = document.createElement('p');
  28.  
  29. p1.appendChild(document.createTextNode("Ingrese su email"));
  30. p1.appendChild(email);
  31. p2.appendChild(document.createTextNode("Ingrese su nick"));
  32. p2.appendChild(nick);
  33. p3.appendChild(document.createTextNode("Ingrese su nombre"));
  34. p3.appendChild(nombre);
  35. p4.appendChild(document.createTextNode("Ingrese su apellido"));
  36. p4.appendChild(apellido);
  37. p5.appendChild(document.createTextNode("Ingrese su edad"));
  38. p5.appendChild(edad);
  39. p6.appendChild(document.createTextNode("Ingrese su universidad"));
  40. p6.appendChild(universidad);
  41.  
  42. document.registrar.appendChild(p1);
  43. document.registrar.appendChild(p2);
  44. document.registrar.appendChild(p3);
  45. document.registrar.appendChild(p4);
  46. document.registrar.appendChild(p5);
  47. document.registrar.appendChild(p6);
  48. registrarseOn=true;
  49.                                        //Esta es la linea que me da problemas!
  50. document.registrar.removeChild(document.registrar.resitrarse);
  51. }
  52. }
  53. </script>

La parte del HTML que tendría que borrar seria:

Código
  1. <div id="form_registro">
  2. <form name="registrar" method="POST" action="registrar.php">
  3. <p>
  4. <input type="button" value="Me quiero registrar" name="registrarse" onclick= "mostrar_registro()">
  5. </p>
  6. </form>
  7. </div>

He intentado de varias formas como por ejemplo, primero consiguiendo el nodo mediante getElementById y despues pasandoselo como parametro al removeChild, sin embargo tampoco resulto, seguro que debe ser algo muy tonto que no estoy viendo. Si alguien tiene alguna info respecto al tema o puede ver el error que estoy cometiendo, se los agradecería.

Muchas gracias por detenerse a leer, saludos!
23  Sistemas Operativos / GNU/Linux / Pregunta sencilla sobre Working Set en: 1 Marzo 2012, 20:54 pm
Hola, he estado tratando de encontrar información sobre una duda que tengo acerca del tema del Working Set, sin resultados. Por ejemplo en algunos lugares dicen que el Working Set, es la cantidad necesaria de memoria para resolver un problema. No muy preciso. Para ilustrar mi duda expondré el siguiente ejemplo:

t 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
p 2 2 4 3 4 5 6 7 9 1   2   5  1   9   3   4   5  3   2  1   9

Suponiéndose que se tiene un landa igual a 4, y una cantidad de marcos o frames igual a 3, si se tiene un solo proceso que demanda las paginas ilustradas arriba, ¿El tamaño del Working set en el instante 13, es de 3? {1,2,5,1} -> {1,2,5}

Es simple, pero estoy confuso porque las definiciones que he visto de working set son un poco extrañas, sobre todo esa de "es la cantidad necesaria de memoria para resolver un problema", a mi parecer, si fuera asi, seria la suma de todas las referencias a paginas (sin repeticiones), pero eso me resulta un poco extraño.

Muchas gracias por detenerse a leer, saludos!
24  Programación / Programación C/C++ / Pregunta sencilla de memoria en C. en: 26 Febrero 2012, 19:35 pm
Hola, estoy tratando de hacer un ejemplo que muestre los segmentation fault, cuando uno aloca memoria para un arreglo y se va mas allá de este. Por ejemplo:
Código
  1. int main(int argc, char** argv)
  2. {
  3. int *vec1 = (int*) malloc (sizeof(int)*3);
  4. int *vec2 = (int*) calloc (3,sizeof(int));
  5. int *vec3 =  NULL;
  6. vec3 = (int*) realloc (vec3, sizeof(int)*3);
  7. int x;
  8. for (x=0; x<5; x++)
  9. {
  10. vec1[x]=x;
  11. }
  12. for (x=0; x<5; x++)
  13. {
  14. *(vec2+x)=x;
  15. }
  16. for (x=0; x<5; x++)
  17. {
  18. *(vec3+x)=x;
  19. }
  20. return 0;
  21. }

Pese a que aloque memoria para solo tres elementos, en cada vector, no me tira segmentetion fault, cuando pisa el 4to o 5to elemento del arreglo, ¿Que significa?, ¿Estoy haciendo algo mal sin darme cuenta?, ¿Aloque memoria de mas sin darme cuenta?
25  Programación / Programación C/C++ / funcion System(const char* aString); ¿Se puede guerdar el valor de respuesta? en: 25 Febrero 2012, 23:03 pm
Hola, estoy implementando un grafo en C, donde cada uno de los nodos es un proceso del sistema y sus adyacentes son sus procesos hijos. Para esto estaba pensando usar la función System, pero System solo devuelve un Integer que es el valor de respuesta de éxito o fracaso de la ejecución del comando. ¿Se puede de alguna forma o con otra función copiar los resultados del interprete de comandos en un String?

Muchas gracias por detenerse a leer, saludos!
26  Programación / Programación General / Pregunta sobre herencia en SmallTalk en: 20 Febrero 2012, 22:32 pm
Hola, tengo una duda acerca de herencia en SmallTalk.
Supongamos lo siguiente: Tenemos una clase A, con atributos x e y, disponemos de los métodos #x:unValor, #y:otroValor, #x e #y. Es decir de los métodos para establecer y obtener los valores de los atributos. Ahora también hemos sobreescrito el new, de manera que no se pueda hacer referencia a él, algo como:
#new
Código:
^(self error: 'Debe usarse el constructor apropiado en esta clase').

Hemos creado el constructor de esta clase que sería algo como:
Código:
x:unValor y:otroValor
^(super new x:unValor; y:otroValor).

Ahora supongamos que creamos una clase hija B, con el atributo adicional z, y tambien creamos los métodos para obtener y establecer el valor del atributo z. Vamos a crear el constructor. Sobreescribimos el método #new, de la misma manera de antes y creamos el constructor. Quedaria de la siguiente manera:
Código:
x:unValor y:otroValor z:elUltimoValor
^((super x:unValor y:otroValor); z:elUltimoValor).

Mi duda es la siguiente: ¿Como esto puede funcionar?, es decir estamos utilizando un constructor de la clase padre, por lo tanto
Código:
super x:unValor y:otroValor
nos devuelve una instancia de la clase A, y la clase A no tiene porque entender el mensaje z, si bien lo implementa sus hijos, no lo implementa el padre así que no tendría porque conocer ese mensaje.

¿Tienen alguna idea de que podría ser lo que no estoy viendo?, ¿Obvie algo del POO?, ¿Hay algo que hice que no debí haber hecho?, ¿Sobreescribir el #new?

Muchas gracias por detenerse a leer.
27  Programación / Programación General / Algoritmo para un ejercicio; ¿Doble dijkstra? en: 16 Febrero 2012, 16:29 pm
Hola, tengo un compañero en la facultad que fue a dar un parcial de Algoritmos y Estructuras de Datos, mi compañero esta cursando una cursada con promoción por lo que los problemas que les toman son mucho mas difíciles. El otro día me estaba comentando el problema que les tomaron y me pareció bastante curioso y quería ver si sus opiniones concuerdan con la mía en cuanto a la resolución del problema.
El problema era el siguiente: "Alfredo y Omar se encuentran en la ciudad de la esperanza, hace años que no se ven y quieren reencontrarse, Alfredo tiene 25 años y Omar, 40. La ciudad de la esperanza es una ciudad muy particular, ya que tiene calles que solo pueden ser recorridas por mayores de 30 años y otras calles que solo pueden ser recorridas por menores de 30 años (o que tengan 30 años). Las calles también tienen la característica de que algunas se recorren en un sentido y otras, en otro. Implemente un algoritmo que les permita a Alfredo y Omar, encontrarse en un punto de la ciudad que sea el mínimo camino hecho para encontrarse."
Osea tenemos dos personas paradas en dos puntos de un grafo y hay que encontrar un camino para que ambos se encuentren en el grafo que sea el mínimo que tengan que hacer.
Mi idea para resolverlo, explicada muy por arriba, seria, básicamente, hacer un dijkstra de ambos puntos del punto A (Alfredo) al punto O (Omar), modificado para que se pueda adaptar a las particularidades de la ciudad esperanza, luego hacer un dijkstra del punto O al punto A, y ver si coinciden, si no coinciden tendria que buscar el segundo camino mínimo del punto O al punto A que coincida, y así sucesivamente hasta que encuentre uno que coincida. Pero creo que esta idea es un poco, excesivamente complicada, de seguro debe haber un metodo mas sencillo, estos dos tienen que encontrarse en algún punto de la ciudad que sea el punto mas cercano para ambos, ¿pero como determinamos este punto?

Muchas gracias por detenerse a leer.
28  Foros Generales / Dudas Generales / Haciendo un CV: ¿Como especificarian ustedes sus conocimientos? en: 15 Febrero 2012, 05:48 am
Hola, mi pregunta es bastante sencilla; el otro día me encontraba preparando un CV para presentar para una pasantía, y quería saber, a su criterio, ¿cuales consideran que son los conocimientos básicos de cada lenguaje?. Por ejemplo yo puse en uno Php básico (Conexión a bases de datos, desarrollo de medidas de seguridad, ... ) y me quede en blanco, lo mismo me sucedió con Java, al ponerme a pensar, si se lo básico de cada lenguaje de programación, se conectar a una base de datos en php, realizar logins de usuarios, realizar webs tipo foros (www.dijkstraeasteregg.com.ar), utilizar javascript, y en el caso de java, también se usar bases de datos de forma local con firebird, hacer programas de gestión sencillos, como puede ser un programa de gestión de una inmobiliaria, pero desde mi humilde punto de vista uno nunca termina de aprender del "todo" un lenguaje de programación, por eso le pregunto a ustedes, ¿Cuales creen que son los conocimientos minimos para decir que uno sabe "Php basico" o "Java basico"?. Añado que por ejemplo yo considero avanzado el uso de frameworks en php, por ejemplo (corrijan me si me equivoco).
Saludos y muchas gracias por detenerse a leer.
29  Programación / Programación General / Ingenieria de Software: Preguntas particulares... en: 7 Febrero 2012, 05:45 am
Hola me he topado con algunos ejercicios particulares de casos de uso y diagrama de flujo de datos (DFD) y tengo mis propias interpretaciones sobre los enunciados, generalmente son sencillos, pero algunos me generan dudas y pienso que otra persona pensaría distinto, por lo que quiero comprobar mis suposiciones con quien quiera y ver si nuestros puntos de vista difieren. Por ejemplo:

Casos de uso:

Se desea modelar un sistema que controle una máquina para reciclar latas, botellas y cajas de botellas.
El sistema registra cuántos elementos un usuario coloca en la máquina e imprime un recibo con el valor de dichos elementos junto con el total que se le debe pagar al usuario.
El sistema también es utilizado por un operador que desea conocer el número de elementos de cada tipo que se han introducido durante el día. El operador también debe poder actualizar los valores de los elementos.

Este es sencillo, primero tendríamos a dos actores; el usuario y el operador. Los casos de uso son bastante sencillos, esta el caso en el que un usuario introduce elementos a reciclar (que se puede explotar), el caso en el que se imprime el ticket, y por el lado del operador, tenemos el caso en el que el operador consulta la cantidad de elementos de cada tipo registrados en el día y el caso en el que los actualiza.

Este enunciado aunque muy sencillo me hace pensar; ¿Sería correcto explotar el caso de uso "Reciclar basura" del actor "Usuario" de manera que tengamos el caso de uso "Reciclar basura" y además 3 casos de uso que lo extiendan (<extend>) "Reciclar latas", "Reciclar botellas" y "Reciclar cajas"?. Desde el punto de vista de la definición de las asociaciones y cuando es correcto usarlas y cuando no, esta idea me parece correcta. Sin embargo cuando pienso en los pasos elementales que voy a tener que describir en el escenario, pienso que van a ser muy pocos y los mismos, solo diferente uno de otro, en que uno va a decir "Paso 1. Se valida que la botella ingresada este sana" y en otro "Paso 1. Se valida que la lata ingresada este sana", por decirlo así. ¿Ustedes que piensan?, ¿Sería mejor dejar un solo caso de uso llamado "Reciclar basura" o seria mejor explotarlo, extendiéndolo con otros 3 casos?

Osea, ¿cual de los dos les parece mejor?
A.
 
B.
 

En otro ejemplo

Se desea desarrollar un sistema para utilizar en un consultorio médico. El sistema debe realizar el manejo de pacientes, turnos e historias clínicas.
Los pacientes pueden sacar turno llamando por teléfono o acercándose al consultorio. Para ello el paciente comunica a la secretaria el médico y día que quiere atenderse. La secretaria busca en el sistema los horarios libres para el día y médico indicado y se lo comunica al paciente para que este último decida en qué horario desea asistir a la visita.
En caso de que no exista horario libre el sistema debe notificarlo. Además es importante recalcar que si el paciente no existe en el sistema al momento de solicitar el turno la secretaria debe darlo de alta ingresando sus datos personales (nombre, fecha de nacimiento, domicilio) y obra social.
Cuando el paciente asiste al turno el médico revisa al paciente e ingresa al sistema los síntomas, diagnóstico y tratamiento.
Un paciente puede cancelar un turno de la misma forma que lo solicita (por teléfono o en persona).
Además el médico tiene la posibilidad de obtener un listado de todas las consultas que tuvo un determinado paciente.

En este ejercicio en particular casi todos los casos de uso se me hacen transparentes, sin embargo, creo que hay un actor "trampa", el paciente. Si bien el paciente aparece en el enunciado, el nunca interactúa directamente con el sistema, es la secretaria la que lo hace, por lo que me parece que no debería ir en el diagrama. Otra trampa que me parece que hay es el caso en el que dice "el paciente se puede acercar a solicitar un turno de dos maneras; prensentandose ante la secretaria o llamando por teléfono", yo creo que un alumno con poca experiencia en casos de uso, miraría esto y diría: "claro, como existe la posibilidad de que el paciente reserve un turno de dos maneras, esto significa que tenemos un caso de uso "Reservar turno" y dos casos de uso "Reservar turno por teléfono" y "Reservar turno presentandose" que extienden al primer caso de uso mencionado". A mi esto me parece incorrecto creo que hay un solo caso de uso y la manera de realizarlo seria la siguiente:


Y en un ultimo ejemplo:
Se desea modelar un sistema de pago de cuotas en un gimnasio.
Las cuotas se pagan mensualmente y sus montos varían según la disciplina (aparatos, bicicleta y gimnasia aeróbica) y la cantidad de veces por semana que va a asistir (1 a 5).
Al ingresar un nuevo cliente al gimnasio debe abonar una matrícula que también depende de la disciplina y la cantidad de veces que desea asistir. Un cliente puede ser dado de baja del sistema.
Se sistema debe permitirle al empleado realizar las siguientes operaciones:
 Consultar los montos de la matrícula y la cuota para una disciplina.
 Registrar el ingreso de un nuevo cliente.
 Consultar el "estado de cuenta" de un cliente.
 Registrar el pago de cuotas de un cliente.
 Eliminar los clientes morosos.
Mensualmente se envía automáticamente un correo a los socios del gimnasio con
novedades.


En este la única interrogante que me puede venir a la mente es; Este ultimo párrafo, yo lo representaría como un caso de uso "Enviar correos" que sea una asociación con el actor "Socio", puesto que una asociación bilateral (es decir, una linea sin flecha), implica que el primer paso elemental en el escenario del caso de uso, sera llevado a cabo por el sistema, y en efecto, el que da el primer paso es el sistema, ¿me equivoco?.

Yo lo haría de la siguiente manera:


Bueno si han llegado hasta aquí, gracias por detenerse a leer!
Cualquier critica es bienvenida, Saludos!
30  Programación / Programación General / Ingenieria de Software: ¿Herramientas que permitan verificar?, ¿Existen? en: 4 Febrero 2012, 21:51 pm
Hola, hace un tiempo que estoy buscando una herramienta de modelado para realizar diversos diagramas (diagramas de flujos de datos, diagramas de transición de estados, etc.) y que permita verificar la correctitud de los mismos. Actualmente uso lápiz y papel, y luego lo paso, para que quede mas prolijo por Umbrello (actualmente también estoy buscando una herramienta de la misma naturaleza, pero mas potente xD). ¿Conocen de alguna herramienta así?, la ingeniería de software se me ha hecho la materia mas aburrida de las que he cursado, ya que en cada libro que consulto proponen diferentes representaciones para los distintos diagramas o diferentes agregados, solo coincidiendo en algunos axiomas básicos de la materia. Por eso ando buscando una herramienta que me permita verificar la consistencia de los ejercicios.

Muchas gracias por detenerse a leer.

Saludos!
Páginas: 1 2 [3] 4 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines