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


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 [334] 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 ... 436
3331  Foros Generales / Noticias / Re: Mientras un juez les absuelve, otro condena a pagar 150 euros a los que .... en: 19 Enero 2018, 02:40 am
Cuando descargas por torrent, los seeders a los que pides datos saben tu IP y dado que pides unos datos especificos, tambien saben lo que estas descargado.
Luego quieres decir que ellos mismos estaban compartiendo contenido ilegal... ¿y el jueza les deja a ellos 'libres', por delatar a los otros, no?.

Informarse sobre el protocolo P2P no estaria mal.
Huy... :-X

Píntalo como quieras, pero descubrirlo, supone que han hecho algo ilegal...
3332  Foros Generales / Noticias / Re: Ubisoft alaba la superioridad del PC pero se olvida de sus downgrades a favor... en: 18 Enero 2018, 16:43 pm
Queda fuera de toda duda en la superioridad de un PC respecto a consolas o móviles, pero no las tiene todas consigo... el móvil ha ganado terreno, gracias exclusivamente a dos cosas: su pequeño tamaño y facilidad de uso (a costa de casi nulo control sobre el terminal (sin acabar con un root)).
Aparte los móviles no han parado de ganar potencia y velocidad en su procesadores, en cambio el almacenamiento sigue siendo lamentablemente pésimo... cuando supere el terabyte de almacenamiento interno, será otro cantar.

La versatilidad del móvil pudiéndolo llevar de aquí para allá, es su punto fuerte... pero ¿a qué ningún programador programa las aplicaciones Android en un móvil?.

El PC la verdad es que se ha quedado estancado, desde que salió el puerto PCIE, y empezaron a salir tarjetas gráficas (muy molonas, sí pero) que por sí mismas consumían de 400w. para arriba y 'darle' de comer al PC, se convirtió en un lastre en la factura d ela luz, y viendo que la dirección no iba a cambiar... todo se ha ido envolviendo en una nebulosa, de la que no parece acabar de salir.
¿Altas prestaciones?. Sí, peor solo si no te vas a gastar el sueldo en pagar la factura de la luz. Frente a eso, el gasto energético de un móvil es de risa.

En fin, parece que los fabricantes de PC, no saben jugar al póquer y noc tienen interés en ganar, porque la estrategia que siguen es una estrategia perdedora. Andando en el tiempo, quizás a la vuelta de 2 lustros, las empresas podrían tener opciones para usar tablets económicas, y potentes... y entonces el nicho 'fuerte' de los fabricantes (aparte de los 'jugones'), se habrá liquidado.

Al móvil, todavía le queda un as en la manga para satisfacer a los jugones y es añadir un terminal para la salida de vídeo, para que puedan conectarlo, por ejemplo a la tele (¿¿¿quién duda que jugar en una pantalla grande es una experiencia inmensamente más satisfactoria que en 4-5 pulgadas???).
3333  Foros Generales / Noticias / Re: YouTube contra los vídeos del 'Tide Pod challenge', si comes cápsulas de ... en: 18 Enero 2018, 16:29 pm
No entiendo a la gente que se 'envenena' a propósito, sin más motivación que querer parecer 'fuera de control' ante sus amigos...

En la adolescencia suelen hacerse muchas tonterías, pero en general es por ir más allá sin conocer lo que hay detrás... en cambio detrás de un envenenamiento no cabe rastro de duda...
3334  Foros Generales / Noticias / Re: Hay quien dice poder convertirte en programador desde cero en 10 semanas en: 18 Enero 2018, 16:26 pm
Supongo que se refieren a eso de juntar 4 programas en uno mediante otro y decir que eres programador porque has reunido piezas sueltas y las hecho trabajar en orden.

Si eso es ser programador, entonces las amas de casa que montan y desmontan la cafetera, son mecánicos, que les den un título.
3335  Foros Generales / Noticias / Re: 10 días de Bitcoin,aprende gratis lo básico sobre la criptomoneda del momento... en: 18 Enero 2018, 16:24 pm
De momento, pese a que el Bitcoin, no pare de subir, está sirviendo para hacer lo opuesto a lo que se había ideado en el diseño durante su creación-aparición: La especulación monetaria.

Su origen se fundaba en gran medida en librarnos de la especulación bancaria y ahora existe una especulación descontrolada con las propias monedas virtuales. La decisión de quién, cómo y porqué decide el cambio de dichas monedas, de seguir así tirarán por tierra toda esperanza de futuro en las monedas virtuales.

Falta saber únicamente quiénes están detrás de todo ello, ¿acaso los propios sistemas bancarios en la sombra?, ¿delincuentes profesionales y mafias internacionales?, ¿países bananeros regidos por dictadores?...

En fin, el tiro ha salido por la culata, como se suele decir en estos casos...
3336  Foros Generales / Noticias / Re: Kaspersky Lab descubre un spyware para Android activo desde hace años en: 18 Enero 2018, 16:16 pm
Me parece altamente sospechoso, que desde que el gobierno de USA decidiera retirar del gobierno el uso de soluciones Kaspersky de seguridad, Kaspersky, no para de anunciar virus por doquier...

O bien, ya los conocían desde hace tiempo y se los guardaban para ¿para qué?.
O bien, la aparición de dichos virus, tiene su origen en el propio Kaspersky...

¿Quién duda de aquello, de que el que te da la medicina, no quiere en realidad que te cures con una pastilla, que prefiere que estés enfermo de por vida y dependiente de 4 pastillas diarias (una pastilla no le otorga beneficios, una vida dependeinte de 4 pastillas diarias, lo hace millonario)?...
¿...y un antivirus de dudosa reputación va a ser distinto, cuando la demostración (por una acusación) es harto improbable???
3337  Foros Generales / Noticias / Re: Mientras un juez les absuelve, otro condena a pagar 150 euros a los que .... en: 18 Enero 2018, 16:10 pm
mmm...
...y digo yo, ¿cómo ha sabido el abogado de la acusación qué IPs, habían descargado algo, y además cómo sabían que era tal o cual película?. No cabe otra que haciendo algo ilegal, cosa que al parecer el juez no ha tenido en cuenta.


"Cuando el lobo y el zorro duermen juntos, las gallinas lo tienen J0D12..."
3338  Programación / Programación General / Re: Identificar metodos en OOP en: 18 Enero 2018, 04:04 am
Más o menos ya te respondí... pero me extiendo con más detalle (en alguna parte, no con todo que es muy largo)

Debes crear una clase que es una colección de análisis, que son internas al objeto clínica.

El médico cuando solicita un análisis, lo crea 'vacío', con los datos del paciente y que se análisis se desea y se inserta en la colección de análisis, con el estado adecuado, y deja en cola del laboratorio un objeto 'notificación', que el laboratorio usará para rescatar la analítica y genera el objeto 'citacion' para citar al paciente. El laboratorio, cuando reciba el objeto notificacion, sabrá que debe hacer con ella, rescatando el objeto analítica creada por el médico, donde constan los datos de lo que se solicita, quien lo solicita y para quien se solicita, ****

Entonces el laboratorio dará la cita al paciente, actualiza el estado del objeto análisis (que pasa a fase 'citado') y encola en la agenda del laboratorio, para el día de la cita, la entrega de muestras-extracción,etc.. , cuando las muestras se hayan realizado, se actualiza de nuevo el estado del análisis y ahora ese análisis pasa a la agenda del laboratorio. Cuando el laboratorio procese la muestra, vuelve a actualizar el análisis, ahora además de cambiar el estado, rellena los datos del resultado de la analítica, y el sistema genera otro objeto citación (en el objeto clínica, o médico depende de quien gestiones las citaciones como te dije en el mensaje anterior) para el paciente (ahora para que acuda al médico), y una vez citado a consulta, se actualiza de nuevo los datos de estado del análisis, y se deposita en la agenda del médico para el día de la citación.

Cuando llegue el día de la citación, el médico consulta su agenda y con el id del análisis haría una consulta al análisis... es todo privado, el paciente es un objeto, pero dentro de la clínica, físicamente el paciente no tiene acceso a nada, tan solo se le cita, interacciona con personas... tampoco estaría mal una 'web' de la clínica para consultas, haciendo login y usando su "id de paciente", para revisar sus citaciones, etc...

Así escribiendo sobre la marcha, la cascada de sucesos con los objetos podría ser algo como esto:

Código:
paciente p= Clinica.Login(string idPaciente)
citacion c = Clinica.PedirCita(paciente p, especialista e, motivo m)
Motivo podría ser un objeto, un valor enumerado o un simple string con o sin formato.
Al pedirCita, lo que hará esa función puede variar si es atendido por personal humano o  es automático. Si se atiende exclusivamente por personal humano, se encola y cuando los operarios de la clínica lleguen a esa petición, llamarán al paciente para concertar día y hora. si es automático, lo lógico es que sacara una ventana con un calendario para elegir día y hora (posibilidad de cambiar mes), desactivando horas ocupadas y tachando días que no se pasa consulta.

Pongamos que el usuario ya rellenó dichos datos, pués ahora se crea un objeto citación y se guarda en la coleccion de citas, se pasa una entrada del íd de cita a la agenda del médico para el día y hora concertada. Retomando desde atrás...

El paciente solicitar una cita en la clínica para el especialista deseado, en una fecha elegible (entre las libres)
Código:
Buleano = Funcion SolicitarCita(string idPaciente) 
    paciente p= Clinica.Login(string idPaciente)
    Si (p.Estado=ErrorLogin) luego
        // indicar el motivo del error, fallo en id paciente no resgistrado, etc...
        Devolver FALSE
    Fin si

    citacion c = Clinica.PedirCita(paciente p, especialista e, motivo m)
    Si (c.estado=EsperandoSeleccionFecha) luego
        calendario f = = Clinica.Medicos(Especialista e).GetCalendario //selecciona el calendario disponible para el médico/especialista
        f.ShowCalendario  // se muestra la ventana al usuario para que elija la fecha.
        Si (f.Estado=FechaSeleccionada) luego // otro estado posible sería Cancelado.
            c.fecha = f.fecha // copia la fecha elegida a la citación
            Clinica.Citaciones.Add(citacion c)    // añade la citación a la colección de citaciones
            Clinica.Medicos(especialista e).Agenda.add(c.fecha, Id p.IdPaciente)  //asienta la cita en la agenda del especialista
            Devolver TRUE
        sino
            // cancelado, el paciente desisitó de seleccionar fecha. Es raro que aquí ocurriera un problema, pero podría pasar, por ejmplo un problrma temporal con el espacialista/médico.
            Devolver FALSE
        fin si
    sino
        // cancelado o algún problema responder según corresponda
        devolver FALSE
    fin si
fin funcion

Tras la citación... y llega el día ...damos por hecho que el médico tiene su programa permanentemente abierto, pero vamos al punto donde toma la citación del paciente de su agenda.

El especialista pulsará en un botón similar a: "Siguiente Cita" y el botón haría algo similar a esto:
Código:
Funcion BotonSiguienteCita_Click
    citacion c = Agenda.Next
    paciente p = Clinica.GetPacienteById(c.IdPaciente)
    // mostrar en la ventana certos datos de la cita y el paciente, por ejemplo:
    textboxNombrePaciente.Texto = p.Nombre + p.Apellidos
    textboxMotivo.Text = c.Motivo
    textboxFecha.Text = c.fecha.Tostring
    textboxDuracionConsulta= c.Duracion.ToString // según el tipo de consulta puede requerir x minutos.... el médico debe gestionar su tiempo, procurando ajustarse a ello... exacto nunca va a ser, pero le ayudará...
    // el especialista, o la enfermera si dispone de ella entonces lee el nombre apellidos, verifica la hora y el tiempo que puede dedicar, lee el motivo de consulta y acto seguido llama al paciente... que se supone que acude
   // incluso podría proveerse un sistema de TextToSpeech, conectado a un altavoz:
    tts.Talk("Se llama al señor" + textboxNombrePaciente.Texto + "acuda a la consulta nº" + medico.Room + "del Dr." + medico.Alias)
Fin funcion
Si el paciente no entra, lo vuelve a llamar, si no comparece, lo deja (no lo elimina d ela agenda), si la clínica tolera cierta flexibilidad, tovadía podría atenderlo más atarde, mediante un botón no de "siguiente Cita", si no de "cita por nombre", que muestra el listado con al menos dos columnas,  el nombre de los pacientes y hora de la cita. Es posible que el médic o vaya adelantado sobre el horario y por tanto haya pacientes que aún no hayan legado, o que uno se retrase, pero al atender al siguien te, el retrasado puede ocupar el puesto del que es atendido...

Damos por hecho que el médico le atiende, y pongamos que al final le tiene que pedir una analiítica...

Código:
funcion BotonSolicitarAnalitica_Click
    analitica a = ElegirYRellenarAnalitica  // se elige el tipo de analítica y se rellenan los datos
    Si (a.Estado = creado) luego  // Si no hubo problemas, ni se canceló, etc...
        string IdAnalitica = Clinica.Analiticas.Add(a)    // se añade a la colección de analíticas de la clínica, y devuelve un Id, usado para identificarlo en la colección.
        notificacion n = Clinica.GenerarNotificacion(origen="medico", destino="laboratorio", Id=IdAnalitica) // una notificación es para enviar eventos de un objeto a otro,
        // se indica un origen y un destino y tendrá más campos, unos genericos y otros específicos,
        // un Id que representa el id de una colección de donde se debe rescatar el objeto que versa la notificación
        n.ColeccionId= "analitica"
        n.Motivo = "citacion muestras"
        n.Urgente = FALSE
        n.Destino.Notificar(n)  // genera un evento en el objeto destino (el laboratorio), que encola la notificación, a la espera de que los operarios puedan atenderla.
    fin si
fin funcion
El evento notificar, entrega la notificación, que contiene el objeto remitente (en el ejemplo Medicos), para saber de donde procede, luego se acompaña de otros datos. Por eejmplo como se acompaña de un Id, debe sabersea que colección pertenece el id, por eso el miembro ColeccionId, lo aclara, tomarán de la colección:
Código:
Analitica a = Clinica.Analiticas.GetById(n.Id)
el motivo aclara que se está pidiendo al laboratorio, que realicen una citación para extracción/recogida de uestras la paciente que figura en la analítica, solicitada por el médico. Datos que figuran en la analítica...

El objeto Medico, Laboratorio, Clinica, etc... tienen todos un evento o método Notificar(notificacion n), así es posible hacer notificaciones que se encolan de unos a otros. Si es Urgente, al meterse en la cola, antecede a todos los no urgentes en la colección.
Código:
Evento Notificar(notificacion n)
    string idNotifica = Laboratorio.Notificaciones.Add(n, n.Urgente)   // se añade la notificación en la cola de notificaciones.
    // Notificaciones es una agenda no preparada, con horario, cuando se atiende una se retira y se atiende la siguiente, sin horario específico.
   // tiene a diferencia d ela Agenda, una variacion en el método ADD, la colección mantiene  un índice señalando donde terminan las urgentes, s
fin evento

Añadiendo una notificación a  una colección (se ha supuesto una colección basada en una lista enlazada).
éste sería un método de la colección 'notificaciones', diferentes objetos mantienen una colección de este tipo...
Código:
string = Funcion Add(notificacion n, buleano urgente)
    n.IdNotifica = Hash(n, GlobalItems)
    GlobalItems +=1
   
    Si (urgente = TRUE) luego
        entero k = IndexUrgentes
        notificacion u= Notificaciones.GetByIndex(k)
        n.Siguiente = u.Siguiente
        n.Siguiente.Anterior= n
        u.Siguiente = n
        n.Anterior = u

        IndexUrgentes += 1
    sino
        notificacion u = Notificaciones.Ultima
        u.Siguiente = n
        n.Anterior = u
        Notificaciones.Ultima = n
    fin si

    Items +=1
   
    Devolver n.IdNotifica
fin funcion

Eliminado una notificación de una colección...
Código:
Buleano = Funcion Delete(entero Index)
    notificacion n
    Si (Index = 0) luego
        n = Primera
        Primera = n.Siguiente
        n.Siguiente.Anterior = nada
        n.Siguiente = nada       
    oSi (Index= (Items-1)) luego
       n = Ultima
       Ultima = n.Anterior
       n.Anterior.Siguiente = nada
       n.Anterior = nada
    sino
        Si (index>0) y (index < Items) luego
            k=1
            n= Primera.Siguiente
            Mientras k < index
                n = n.Siguiente
            Repetir

            n.Anterior.Siguiente = n.Siguiente
            n.Siguiente.Anterior = n.Anterior
            n.Siguiente = nada
            n.Anterior = nada
        sino
            Devolver FALSE
        fin si
    fin si

    Si (n.Urgente = TRUE) luego
        IndexUrgentes -=1           
    fin si
    Items -=1   
    n = nada

    Devolver TRUE
fin funcion

Alguien en el laboratorio, reclama la siguiente notificación, para procesarla....
Código:
funcion BotonSiguienteNotificacion_Click
    Si (Items >0) luego
        notificacion n = Notificaciones.Primera       
        Notificaciones.Eliminar(0) // se elimina de la colección, pero reside aún, gracia a al referencia 'n'
        DespacharNotificacion(n)
    sino
        mensaje "no quedan notificaciones pendientes..."
    fin si
fin funcion

Ejemplo de una función que despacha notificaciones, en este caso para el laboratorio...
Según el tipo de notificación se abrirá una ventana que se rellena con los datos procedente de la notificación...
Se va a lo rápido asumiendo que las funciones invocadas serealizan desde interfaz de usuario en general... luego aquí son 'pasos'...
Código:
funcion DespacharNotificacion(notificacion n)
    Seleccionar n.ColeccionId
        caso "analitica"
            analitica a = Clinica.Analiticas.GetById(n.Id)
            Selecionar n.Motivo
                caso "citacion muestras", "citacion entregas"                   
                       paciente p = Clinica.Pacientes.GetById(a.IdPaciente)
                       Seleccionar n.Contacto
                           caso "email"
                               fecha f = Laboratorio.Agenda.GetPrimeraFechaLibreParaMuestras                               
                               rellenarEmail(p.email, textoCitacion, f)
                               enviarEmail
                           caso "telefono"                             
                               calendario f = Laboratorio.ShowAgenda //se abre una ventana con fechas que un operario ve si está libre y la propone al paciente                               
                               llamadaTelefono(p.TelefonoDecontacto, textoCitacion, f)  // se informa por teléfono de la fecha de la
cita para recogida de muestras.
                                Hacer
                                       f= Calendario.OtraFechaLibre
                                Mientras paciente no acepte f
                           caso "carta", "mensajero"
                               fecha f = Laboratorio.Agenda.GetPrimeraFechaLibreParaMuestras                               
                               rellenarCarta(p.direccion, p.Nombre + p.Apellidos, textoCitacion, f)
                               Si (n.Contacto= "carta") luego
                                    EntregarCartaEnBuzon  // la carta se introduce en un buzón de correos, se supone que la fecha tiene un plazo mayor que elde entrega de la carta.
                               sino
                                    Llamaramensajero
                                    EntregarCartaAMensajero // un mensajero lleva la carta al domicilio del paciente. 
                               fin si
                       Fin seleccion
                caso "analizar"
                    // se lleva a cabo la analítica por el operario correpondiente, quien al término actualiza los datos que correpondan en la analítica.
                caso ...
                    ...
                ... más casos
            fin seleccion
            a.fecha = f
            a.Estado = citado

        caso "citacion"
            citacion c = Clinica.Citaciones.GetById(n.id)
            ...
        caso "medico"
            medico m = Clinica.Medicos.GetById(n.Id)
            ...
        caso "..."
            ....
        .....
    fin seleccionar

    n.Eliminar
fin funcion

Se elige el tipo de analítica y se rellenan los datos
Código:
Analitica a = Funcion ElegirYRellenarAnalitica
    Analitica a= Clinica.ShowTiposDeAnalitica  //muestra al médico una lista con los tipos de analíticas disponibles, el médico elige la que corresponda
    Si (a.Estado=NoCancelado) luego
        a.ShowRellenarDatosSolicitud  // una ventana emergente con los datos específicos que deben rellenarse,
        // algunos serán elegibles haciendo click en sus casillas,
        // otros lo rellenará a mano
        // y otros se pueden hacer por código, como los siguientes:
        a.IdMedico = m.IdMedico   // m es el objeto medico del que se loguea cuando prende su ordenador.
        a.IdPaciente = p.IdPaciente
        ... // más cosas
        a.Estado = creado
        Devolver a   
    fin si
fin funcion

Esta función sería del objeto clinica.
Código:
notificacion n = Funcion GenerarNotificacion(string origen, string destino, string Id)
     notificacion n

     Seleccionar origen
          Si origen = medico luego
              n.origen = Medicos  // objeto medicos.
          oSi origen = "laboratorio" luego
              n.Origen = Laboratorio  // si hubiera varios, sería la colección.
          oSi origen = ....
              n.Origen = ....
          ...
          fin si
    fin seleccion

    Seleccionar destino
          Si destino = "medico" luego
              n.Destino = Medicos  // objeto medicos.
          oSi destino = "laboratorio" luego
              n.Destino = Laboratorio  // si hubiera varios, sería la colección.
          oSi destino = ....
              n.Destino = ....
          ...
          fin si
    fin seleccion

    n.Id = Id
    n.Fecha = Ahora
   
    Devolver n
Fin funcion

Y aquí lo dejo de momento.... todo el pseudocódigo expuesto, cumple solo el primer párrafo del comienzo (4 líneas), resolver todo (los otros párrafos) con este escaso pero significativo nivel de detalle, me llevaría 2 ó 3 horas... Creo que debieras ser capaz de seguir tú, ya, desde aquí...

Ten en cuenta que a medida que lo vas planteando en pseudocódigo, vas viendo la luz, el camino a seguir... sale solo y acabas corrigiendo pequeños errores en los conceptos previos... también date cuenta que cuando pases a nivel de código, es fácil que vuelvas a cambiar algo que en pseudocódigo se veía bien, por algo que en el lenguaje es más cómodo, dominas mejor, etc... y como te dije puede ser mucho más complejo (por extenso), o sencillo (por breve), por eso la fase previa de análisis de requisitos, es clave para avanzar en la senda que te reclaman... y no profundizar en una jungla si no te lo piden.
3339  Programación / Programación C/C++ / Re: Libro sobre POO en: 18 Enero 2018, 02:04 am
Nada como un libro en papel para aprender a fondo...

En c#
450páginas aprox. https://www.ebay.es/itm/Curso-de-Programacion-orientada-a-objetos-con-C-Net/152864290113?hash=item23976bf541:g:FLIAAOSwp-RaWa8M
500páginas aprox. https://www.ebay.es/itm/PROGRAMACIoN-ORIENTADA-A-OBJETOS-CON-VISUAL-C-2015-Y-ADO-NET-4-6/152788588470?hash=item2392e8d7b6:g:SvEAAOSwlAZaVjnv
420páginas aprox. http://www.ebay.es/itm/Aprender-la-programacion-orientada-a-objetos-con-el-lenguaje-C-LIBRO-NUEVO/282423595698?hash=item41c1c212b2:g:q8QAAOSwTM5Y5iPA

En C++
650páginas aprox. https://www.ebay.es/itm/Programacion-Orientada-a-Objetos-con-C-4-Edicion/173092978500?hash=item284d253f44:g:a3oAAOSwZA1aWGG~

Si puedes apañarte en inglés los hay mucho más baratos... solo es cuestión de buscar.
3340  Programación / Programación C/C++ / Re: Duda sobre letras convertidas a Hex en: 18 Enero 2018, 01:50 am
Prueba primero con solo 2 caracteres, y si falla, invierte el orden y si falla considera si el texto requiere 1 o 2 bytes por carácter...
Páginas: 1 ... 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 [334] 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 ... 436
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines