EDICIóN GENERAL
--193560--

--193560--

En menéame desde junio de 2010

6,00 Karma
62K Ranking
Enviadas
Publicadas
Comentarios
Notas

Relatos desconocidos de Merlin y el Rey Arturo han sido descubiertos escondidos en textos medievales [ENG] [24]

  1. #11 Se dice "ha habido".

El gobierno holandés dice que más de 250 compañías hablan sobre la reubicación en los Países Bajos [ing] [9]

  1. #0 el titular no tiene sentido.

La hija de Carlos Sainz sufre una agresión de un taxista mientras iba en Uber [63]

  1. #7 #9 con que se pongan a dar vueltas por el carril exterior de las rotondas lo tienen fácil para colapsar muchas de las vías principales. Con 4 o 5 taxis por rotonda yo creo que les basta.
    CC #17: si te colapsan las vías, del transporte público solo se salvan metros y tal vez tranvías.

Casi 500.000 dólares en moneda Ethereum Classic ha sido robada reescribiendo su cadena de bloques -ENG- [147]

  1. #115 Es trivial, pero esa aplicación no lo hace, por lo menos en la demo.
    Y aunque lo hiciese, eso no resuelve el problema de asegurar que el voto sea único.
  1. #111 he encontrado la cita del paper, pero de momento no he encontrado el paper completo.

    Sin embargo he encontrado otro que evalúa 4 métodos de pago, incluyendo el que dices. En la descripción del sistema dice:
    "In addition, the bank certifies a user’s identity (v), which is blinded by a one-way hash function (g) so that the real customer identity will not be revealed to the broker at redemption."

    El anonimato es de cara al que cobra. No al sistema. El banco sabe quién ha pagado y quien ha cobrado. En un sistema de votación es necesario que el voto dea completamente anónimo.

    Lo más que he encontrado hasta ahora sobre voto electrónico viable son sistemas basados en firma de anillo. Y tiene unas limitaciones tremendas. Por ejemplo creo recordar que había que votar en orden de suscripción y si alguien suscrito no votaba, la votación era inservible. También había que hacer algún apaño para que el último en votar no pudiese decidir su voto en función del resultado. Y escalaba muy mal; no recuerdo ni si se podría aplicar a nivel de mesa electoral.
  1. #106 de hecho si el sistema no comprueba (y permite verificar) la unicidad, ¿cómo garantiza que el hash no se lo ha dado a nadie más?
    Si en unas elecciones se puede elegir entre X e y, Ana vota X y recibe el hash 1, Blas vota X y recibe el hash 1 y Carlos vota X y recibe el hash 1. Resultado de las elecciones: Y gana con 2 votos y X se queda con un voto. Ana. Blas y Carlos comprueban sus respectivos resguardos y todo está en orden.
    O la demos es muy pobre o el sistema es de juguete.
  1. #107 ¿Usabas firma de anillo o que algoritmo utilizabas?
  1. #106 si la gestión de la unicidad no está integrada con la anonimicidad y la integridad no creo que se puedan garantizar las tres.
  1. #89 he votado en la demo que tienen. No me ha pedido ningún tipo de autenticación, así que no parece tener en cuenta la unicidad del voto. De hecho en la documentación que he leído solo hacen hincapié en el anonimato y en la integridad.
  1. #41 es que son tres los requisitos del voto: unicidad, anonimicidad e integridad. Y lo que no se puede es satisfacer los tres a la vez.
    Si ignoras la unicidad, sí que es posible implementar un sistema que satisfaga los requisitos de anonimicidad e integridad.
  1. #24 perdón, es la firma de anillo, no e grupo. Hay una importante diferencia.
    en.m.wikipedia.org/wiki/Ring_signature
  1. #18 el tercer pilar que te falta es la unicidad, es decir, que una persona solo pueda emitir un voto válido.

    Por otra parte, con firmas de grupo sí se puede conseguir. El problema es que no escala, así que es aplicable solamente a grupos pequeños.
    en.m.wikipedia.org/wiki/Group_signature

¿Por qué odiamos tanto el impuesto de sucesiones? [143]

  1. #23 si te cobran dos veces el impuesto de sucesiones deberías reclamar.

Dependencia tecnológica: ¿qué pasaría si se fuera la luz? [125]

  1. Para los que os guste los podcasts, "el gran apagón":
    www.podiumpodcast.com/el-gran-apagon/

Canadá debate si los bebés de los turistas deben tener derecho a la nacionalidad [93]

  1. #84 seguramente. Iba más dirigido a la parte que decias de quedarse apatrida.
  1. #48 si tu eres español, será español por sangre, independientemente de donde nazca.

ONLYOFFICE lanza nueva versión de su aplicación de escritorio [8]

  1. A mi el interfaz ribbon no me gusta nada, y me gustaría poder desactivarla. Menos mal que ya apenas tengo que usar el office.

Carlsen intenta dar el Mate Pastor y acaba perdiendo | Mundial de Ajedrez Rápido 2018 [7]

  1. #4 ¿Quieres decir que también hubieses perdido?

La muerte del 3G se retrasa 2 años: no hay suficientes antenas 4G [94]

  1. #35 cuando apagen el 3G te dejará de funcionar :roll:

Tráfico quiere regular por decreto ley el patinete [225]

  1. Ya que se ponen, que regulen también el uso de las rotondas.

Los cursos de Machine Learning que utiliza Amazon internamente ahora son gratis y para todo el mundo [112]

  1. #107 sin benchmarks para el caso concreto que tuvieses tú no te puedo decir.
    Pero hay varias cosas que hay que tener en cuenta:
    Construir un std:: string alloca memoria y hace una copia del char* original, así que puede tener una penalización. Por otra parte todas las implementaciones modernas de std:: string hacen uso del small string optimization, por lo que una implementación en c++ puede ser más rápida que una en c.
    El método c_str, siendo de una clase templarizada, lo más probable es que el compilador lo meta inline y no añada nada de overhead.
    En c++17 dependiendo del caso se puede usar un string_view, que ahorraría la copia y la alocación.

    Pero la ventaja principal de std::string sobre char* es que evita problemas.
    Si tienes esta función en c:
    const char * getname();
    no sabes si tienes que llamar a free o no, salvo que leas la documentación o vayas al código de la función.
    En c++ std:: string getname(); o std::string_view getname(); no tienen ese problema. No te tienes que preocupar de liberar la memoria y la implementación de c++ no tiene por qué ser menos eficiente que la de c.
  1. #105 bien, pero eso no son castings.
  1. #100 En primer lugar, std::string se puede construir implícitamente de un char * y ofrece los métodos data y c_str para obtener su char* /const char*. También tienes la opción de trabajar entonces la parte de C++ directamente con el char*. Yo lo que suelo hacer en esos casos es hacer un wrapper, para abstraerme de esos problemas (en mi experiencia son más abundantes los const_cast y los reinterpret_cast de void* porque las librerías en C se pasan por el forro el const correctness y el type safety brilla por su ausencia).

    En segundo lugar eso es como decir que en Java/C#/ python tienes que estar con JNI/pinvoke/cython porque hay una librería que solo está en C.
  1. #98 El patrón fundamental que creo que hay que saber en C++ es RAII. Si lo usas consistentemente te olvidas de los "memory leaks". Desgraciadamente los "dangling pointers" siguen siendo un problema. RAII es parecido al "using" the C# o al "with" de python, pero aplica a todos los recursos (memoria, ficheros, locks, transacciones).
    Todavía hay mucho código viejo que es más bien C con clases, pero poco a poco se van imponiendo los patrones propios de C++.

    El segundo punto es familiarizarse con la STL, incluso aunque no puedas usarla por restricciones del proyecto. Verás que aquí hay un montón de Chase RAIi como string, vector, fstream, unique_lock... En cppreference.com hay documentación buena, normalmente con ejemplos.

    También puedes ver los vídeos de CppCon, CppNow o Meeting C++. Hay más conferencias, y casi todas suben los vídeos a YouTube. El problema es que hay muchos, y es complicado diferenciar la paja de los buenos (aunque el nivel suele ser muy bueno) y sobre todo los vídeos básicos de los avanzados. Hay un vídeo de Kate Gregory que se llama"stop teaching C" qué seguramente te pueda dar más pistas de por dónde tirar.

    Y que conste que me parece que C++ tiene muchos problemas, especialmente con los templates y la metaprogramación (no por el lenguaje en sí, si no por lo que la gente se puede llegar a flipar). También es un lenguaje con un montón de corner cases y casos raros. De hecho, ahora que lo pienso, igual es mejor que te quedes en C xD (pero mira lo de RAII).

    También puedes echarle un vistazo a Rust. Es C++ bien hecho.
« anterior1

menéame