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ú

Temas - Eleкtro

#46
Las siguientes imágenes corresponden a un análisis de un disco duro nuevo ( https://foro.elhacker.net/hardware/iquestse_puede_falsificar_el_numero_de_inicios_de_un_hdd-t490195.0.html ), conectado en mi PC por primera vez y antes de haberle asignado el formato MBR/GPT y formatearlo...

Necesito de alguien con la suficiente experiencia en análisis de hardware/discos duros para que me diga si es normal que el valor de "Tasa de errores de lectura" sea 26. Para una persona sin experiencia en el sector resulta muy raro que el valor no sea cero. ¿debería ser cero?.

Y, ¿sería este valor un motivo coherente y suficiente para devolver el producto?.



Sin haber hecho practicamente nada de uso del disco duro, el valor en crudo sigue aumentando...




#47
Buenas.

Les pongo en situación, estaba yo navegando por Amazon y me encontré estos dos productos:

Seagate Ironwolf 6 TB
https://www.amazon.es/Seagate-IronWolf-Disco-Interno-Sistemas/dp/B0767P5BYT

Seagate Barracuda 6 TB
https://www.amazon.es/Seagate-Barracuda-6TB-6000GB-Serial/dp/B075WX2TKM

Como pueden comprobar, ambos están practicamente al mismo precio, y yo al ver ese Ironwolf tan baratito no he dudado en comprarlo, ya que es mucho mejor en prestaciones que el modelo Barracuda y por eso debería costar más, aproximadamente 220 € según he leido (250 € el modelo Pro)...

Aquí es donde me surge la duda, porque nadie regala algo a cambio de nada... me refiero, la diferencia en el precio de ese Ironwolf no pinta muy bien... aunque siempre puede ser que realmente sean discos nuevos cuyo vendedor ha bajado el precio por no poder venderlos a su precio real, que se los quiera quitar de encima o algo así... quien sabe... le doy el beneficio de la duda hasta cierto punto.

En fin. He acudido al servicio de Amazon a ver si se trataba de un error en el precio, o si el producto no era totálmente nuevo, y me han dicho que el precio bien, pero que ellos no me pueden confirmar si realmente es nuevo o no al tratarse de un "vendedor externo" (supongo que se refieren a cualquier vendedor que no sea el mismo Amazon, por que el disco ese lo vende directamente la compañía Seagate).

El caso es que mañana tendré en mi posesión ese disco duro de Seagate, el modelo Ironwolf, y lo primero que haré será pasarle el Crystal Disk Info para comprobar el número de inicios del disco duro, para ver si es realmente nuevo.

Y por ese motivo les pregutno si es posible con alguna herramienta informática falsificar (modificar) el número de inicios de un HDD, por que de ser posible entonces creo que mejor no me la juego y cancelo el pedido antes de que sea demasiado tarde para cancelarlo... aunque siempre puedo devolver el producto durante el periodo de reflexión, pero así me quito de "papeleos" innecesarios. Recordemos que el vendedor del producto es Seagate, supongo que ellos pueden disponer de herramientas que un usuario normal no podría (por muy profesional que este fuese) para modificar los records de su hardware...

Es que por ese precio el Ironwolf solo hay dos posibilidades: 1. el disco NO es nuevo pero te lo quieren hacer pasar como nuevo, o 2. el disco SI que es nuevo y simplemente el vendedor quiere venderlo cuanto antes y por eso ha bajado el precio, pero este se me hace muy raro por que entonces por lógica el modelo Barracuda debería haber bajado de precio también... de lo contrario es que a ver quien es el tonto que se compra un Barracuda teniendo un Ironwolf al mismo precio, no se si se me entiende, no parece una buena estrategia comercial para venderte el producto...

Gracias por leer.
#48
.NET Assembly Info

.NET Assembly Info es una extensión de shell de Windows para ensamblados .NET.

Esta extensión de shell puede ayudarle a obtener información básica de un ensamblado .NET (archivos .dll y .exe) mediante el menú: Archivo -> Propiedades.

Observe las siguientes capturas de pantalla para conocer la información que se puede obtener. Futuras actualizaciones de este software podrán incluir otras características interesantes.




Capturas de pantalla:












Requisitos de Instalación:

- .NET Framework 4.7




Librerías de terceros usadas en el desarrollo de este proyecto:

- Un extracto parcial, pequeño y gratuito del código fuente de ElektroKit Framework for .NET.
 ( Si desean apoyarme, comprando esa libreria sería una forma genial. :D )

- SharpShell
- System.Collections.Immutable
- System.Reflection.Metadata





Descarga:

La descarga incluye el código fuente, y un instalador.



Que lo disfruten.
#49
Me he quedado flipando al escuchar el siguiente video, aunque es cierto que estamos muy acostumbrados a escuchar este efecto en video juegos, pero una cosa son video juegos, y otra esto...

...poneros unos auriculares o no entendereis nada. :P




"¿Qué es la Música 8D y por qué se ha hecho viral? ¡En este vídeo no sólo os explico cómo funciona y os enseño los mejores ejemplos, sino que creamos la nuestra propia!"

[youtube=640,360]https://www.youtube.com/watch?v=e6Ekz7ZDV-w[/youtube]

PD: por favor, que no venga el listo de turno a decir que esto no tiene nada de 8 dimensiones  :¬¬ eso es algo que ya se explica en el video. :P




Bonus tracks:

DILBAR 8D
[youtube=640,360]https://www.youtube.com/watch?v=4TqbKF_REHc[/youtube]

TRAP DEL TERRAPLANISMO en 8D
[youtube=640,360]https://www.youtube.com/watch?v=Mb2gw7O43ww[/youtube]




Super hidden papu bonus track:

COMO HACER COMPLEXTRO
[youtube=640,360]https://www.youtube.com/watch?v=Vjna-4xa9vk[/youtube]
#50
Jim Bridenstine, administrador de la NASA, grabó un video en la Plaza Roja durante su visita a Moscú y lo publicó este lunes en su cuenta de Twitter sorprendiendo a sus suscriptores con imágenes que pretendían ser ejemplo de la cooperación entre EE.UU. y Rusia en la exploración espacial, como las de la misión Apollo-Soyuz de 1975. El problema, sin embargo, fue que el primer acoplamiento entre las dos potencias, el llamado 'apretón de manos' en el espacio, fue mostrado en su versión reconstruida en Lego.



El ""error"" lo notó de inmediato el editor espacial del portal Ars Technica, Eric Berger. En su respuesta, Bridenstine pareció aceptar la crítica con humor y atribuyó a "lo reducido del presupuesto" la elección de la imagen de una nave de Lego.

Aunque el presupuesto de 18.400 millones de dólares de la NASA es sin duda suficiente para comprar un par de fotografías antiguas, la financiación de la agencia ha disminuido en comparación con la que recibía el siglo pasado durante la época de la carrera espacial.

"Nuestros países no se alinean en todo y nuestros intereses son a veces divergentes, pero siempre hemos podido cooperar en el espacio, y eso es importante para EE.UU. y es importante para Rusia", dijo Bridenstine, que escribió que tiene previsto reunirse con el director de la corporación espacial rusa Roscosmos, Dmitri Rogozin.

Bridenstine admitió la metedura de pata y se excusó aduciendo limitaciones de presupuesto.




Fuente de la noticia:

Video original de Jim Bridenstine en Twitter:

Respuesta de Jim Bridenstine a la pillada o demostración de su ""error"":

Fuente original del concepto de la Soyuz hecha con Lego, creado por Luis Peña:

Video random (ojo, bastante conspiranoico) comentando la noticia:
[youtube=640,360]https://www.youtube.com/watch?v=-pO29uBlzR8&feature=em-uploademail[/youtube]
(desde el minuto 0:00 hasta el 2:30 aprox.)

...quiero aclarar que no apoyo la difusión de contenido del personaje este el Oliver Ibañez, es un excremento humano con patas, pero lamentablemente no encontré nada mejor que compartir en Español, y de todas formas ahí en el video está expuesta toda la información de la noticia a pesar de la evidente imparcialidad del chaval este, pero creo que es normal, ¿como vamos a ser imparciales a estas alturas con los cientos y cientos fakes de NASA?.




Error lo llaman en NASA, yo más bien digo que nos intentan tomar el pelo como a retrasados metiéndonos cualquier fake de fotografía, y si cuela, cuela.

Directamente no se han molestado ni en hacer CGI, han cogido la imagen tal cual del Flicker de Luis Peña y no le han cambiado ni el fondo del espacio, es lamentable...

 

Y luego algunas personas aquí presentes aun tienen los cojones de seguir diciendo que en NASA son profesionales y sus diseñadores no la cagarían con este tipo de "errores" tan evidentes y demostrables en muchas de sus fotografias, "errores" que van desde recortes y/o manchurrones negros para censurar cosas, hasta falsificar objetos como satélites espaciales con CGI o fotografías que directamente están hechas con Lego, aun dicen que eso es cosa de conspiranoicos que buscan fallos donde en realidad no los hay y blah blah blah...

En fin. Un saludo!
#53
Hola, pues otra vez tengo un problema con un bicho...

Realmente no se si tengo una plaga, pero he visto muchos.

El caso es que en la cocína dejé una tortilla de patata precocinada en un plato, y se ha podrido (están los lados negros), al ir a tirarla a la basura me percato de que la comida (el plato, y cerca/fuera del plato) estaba llena de unos bichos diminutos, de unos 3 -4 mm, al principio pensé que eran crias de cucarachas ya que eran marrones y tenian la misma forma que una cucaracha vista desde arriba, pero se movian de una forma distinta y un poco rara, era un movimiento rápido y constante pero haciendo muchas pausas en el recorrido, no se cuantas patas tenía pero yo diría que 2 o 3 a cada lado, y de repente uno de los bichos echó a volar para posarse en un tarro de cristal cercano, como si se tratase de un mosca (no son cucarachas voladoras, ni tampoco mosquitos ni moscas), y ahí ya dije: ¡¿pero esto que coño es?!

Entonces, ¿sabrían decirme el nombre de algún bicho que de cerca se pueda confundir facilmente con una cria de cucaracha, marrón, con las alas recogidas (tipo cucaracha), que vuela con la agilidad y altura y velocidad de una mosca, que camina rápido pero hace muchas pausas en su recorrido, y que sea típico encontrarlo en la cocina acudiendo a la comida en mal estado?.

Estoy algo preocupado por que vuelan y no se si pican ni tampoco si son portadores de enfermedades. Había unos 8 o 10 bichos de esos en el plato, intenté atrapar uno con un vaso de cristal para analizarlo visualmente por fuera, pero no fui capaz, son rápidos, no dejaban de moverse y salían volando por cualquier movimiento brusco por mi parte.

Ah, y no vi que tuvieran antenas, quizás es que sean muy pequeñas, no lo se, pero yo creo que no tienen. Sigue habiendo alguna en la cocina, están como más esparcidas ahora, y alguna escondida. Paso de acercarme demasiado para verlas de cerca.

He intentado buscar bichos en Google con esas características y solo he encontrado escarabajos/gorgojos, pero son lentos y no vuelvan con la agilidad de una mosca. De todas formas aquí os dejo una imagen de uno de estos gorgojos que encontré (pero como ya digo este tipo de bicho NO ES, insisto):



¿Qué puede ser?.
#54
ElektroPictureBox




Les traigo un control de usuario que he extraído del framework comercial ElektroKit para programadores de .NET (si desean comprarlo lo pueden encontrar en mi firma de usuario. ¡Gracias!).
El nombre de este control es ElektroPictureBox, tiene las mismas funcionalidades que un PictureBox además de funcionalidades adicionales para hacer zoom, con barras de scroll vertical y horizontal, permitir la selección de un área de la imagen mostrada, y algunas cositas más...





El código fuente incluye el control de usuario, documentación .NET y una sencilla aplicación de muestra para probar su funcionamiento.
Además también incluye miembros originales y reutilizables del código fuente del framework comercial ElektroKit...
...una mínima parte que fue necesaria añadir para el desarrollo y distribución de este control de usuario.

Pueden descargarlo aquí:



Espero que les sirva y les agrade el aporte. :)
¡Saludos!.
#56
Buenas. Resulta que el otro día vi un mosquito GIGANTE en el baño y me acojoné bastante, desde entonces estoy tratando de buscar información para tener conocimiento de qué tipo de bicho fue eso que vi, y que hacer (que precauciones tomar) en caso de volverlo a ver...

Vivo en Valencia, en la ciudad, y aquí por lo general no se suelen ver bichos voladores así de grandes en las casas, al menos que yo sepa...

Os describo lo sucedido: estando en el baño giré la vista y vi un bicho muy grande en la pared, fijé mi atención sobre aquél bicho y me pude percatar de que era volador, parecía un mosquito, el bicho era totalmente de color negro, tenía unas patas ENORMES (2 o 3 patas a cada lado, no recuerdo con exactitud) que que medían 3 o 5 veces su abdomen, y tenía un par de antenas y una trompa de aprox. 1 cm o 2 cm de longitud, lo más curioso es que el bicho no dejaba de mover la trompa de forma muy inquieta como si estuviera succionando alimento de la pared o buscando algo, no lo se, pero ese movimiento tan "hiperactivo" me llamó mucho la atención, me quedé mirando por varios segundos los movimientos de la trompa del bicho intentando entender que narices estaba haciendo y tratando de averiguar que tipo de mosquito era, intenté fijarme en las alas pero no las conseguí discernir bien del resto del cuerpo por que como ya digo el movimiento de la trompa llamaba mi atención así que no pude concentrarme bien (el bicho no movía ninguna otra parte del cuerpo, ni las patas, estaba quieto pero movía mucho la trompa, y las antenas un poquito), entonces de repente el bicho alzó al vuelo y yo me fui por patas aterrorizado xD, por cierto el bicho volaba lento y mal (tal que un mosquito), pero me quedé alucinando y también algo preocupado por que jamás había visto un mosquito de esa embergadura y me entró algo de miedo por pensar que pudiera contagiarme alguna enfermedad mortal...

Para que os hagáis una idea mejor, vi algo parecido a esto de aquí abajo pero de 5 cm de longitud más o menos...



con respecto a la forma y posición de las alas no estoy realmente seguro, como ya dije no conseguí verlas bien, no se si por que el bicho las tenía recogidas o por mi nerviosismo.




Bien, pasemos a la investigación. Según esta imagen, supuestamente el tamaño máximo de un mosquito son... ¿25 mm?:



sin embargo, el mosquito que yo vi tenía aprox. unos 4-5 cm de longitud incluyendo las patas. Era exageradamente grande en comparación con un mosquito normal que apenas ni se les ve el cuerpo de cerca, este se veía muy grande incluso desde un par de metros de distancia.

Soy consciente de que existe una especie de dípteros conocidos como Zancudos o Típulas ( https://es.wikipedia.org/wiki/Tipula ), los cuales al parecer tienen el mismo tamaño y la misma forma de las patas que el bicho que yo vi, sin embargo estos bichos no pican por que no tienen trompa para picar, entonces, ¿que tipo de insecto-mosquito gigante es lo que yo vi, alguien lo sabe?.

Saludos.
#57
DWM Thumbnail User Control




Les traigo un original control de usuario que he extraído del framework comercial ElektroKit para programadores de .NET (si desean comprarlo lo pueden encontrar en mi firma de usuario. ¡Gracias!).
El nombre de este control es ElektroDwmThumbnail y sirve para crear una ventana de previsualización en tiempo real de la ventana que queramos, un espejo.
Si no lo han entendido bien entonces miren el siguiente video y no les quedará duda alguna de su funcionalidad...





Ejemplo de uso en C#:
Código (csharp) [Seleccionar]
// Register a DWM thumbnail for the main window of Notepad process.
Process pr = Process.GetProcessesByName("Notepad").SingleOrDefault();
IntPtr? hWnd = pr?.MainWindowHandle;
ElektroDwmThumbnail1.RegisterThumbnail(hWnd);

// Unregister the DWM thumbnail.
ElektroDwmThumbnail1.UnregisterThumbnail();


Ejemplo de uso en VB.NET:
Código (vbnet) [Seleccionar]
' Register a DWM thumbnail for the main window of Notepad process.
Dim pr As Process = Process.GetProcessesByName("Notepad").SingleOrDefault()
Dim hWnd As IntPtr? = pr?.MainWindowHandle
ElektroDwmThumbnail1.RegisterThumbnail(hWnd)

' Unregister the DWM thumbnail.
ElektroDwmThumbnail1.UnregisterThumbnail()





El código fuente incluye el control de usuario, documentación .NET y una sencilla aplicación de muestra para probar su funcionamiento.
Además también incluye miembros originales y reutilizables del código fuente del framework comercial ElektroKit...
...una mínima parte que fue necesaria añadir para el desarrollo y distribución de este control de usuario.

Pueden descargarlo aquí:



Espero que les sirva y les agrade el aporte. :)
¡Saludos!.
#59
Durante los últimos dos meses aproximadamente, la actividad del movimiento terraplanista ha tomado cierta intensidad en España debido a que, a raiz de un comentario público que hizo el astronauta español Pedro Duque para dar a conocer su opinión, han salido varios youtubers terraplanistas (los miserables de siempre, como Oliver Ibañez) a cuestionar el comentario de este astronauta en todos sus videos, tratando de reforzar su absurda hipótesis de La Tierra Plana acusando de mentiroso a este astronauta... y se ha ido generando polémica sobre Pedro Duque y estos conspiranoicos en todos los medios de comunicación.

No voy a explicar más a fondo lo sucedido, pueden investigar y seguro que encontrarán toda la información necesaria.

El caso es que me ha tocado la moral ver como el que quizás sea el youtuber español más conocido de Internet del mundo de la conspiración, Jose Luis Camacho, se ha apuntado al carro de intentar desprestigiar a Pedro Duque y ayer publicó un video en su canal en el que le invita a un debate en su canal de misterios y conspirapollas...

[youtube=640,360]https://www.youtube.com/watch?v=nFf-UlRAZMY[/youtube]

( a partir del minuto 11:58 )

...menudo sinvergüenza hijo de **** está hecho el J.L., es evidente que todo lo hace por el dinero y la famita de Youtube, este tio realmente cree tener la oportunidad de poder convencer a un famoso astronauta para invitarlo a su canal y así ganar dinero y visitas y salir en los periódicos... no es listo ni náh.

El problema es que J.L. es un gran manipulador de profesión y solamente espero que Pedro Duque no sea lo suficientemente ingenuo como para dejarse convencer y caer en su juego para debatir con este personaje del mundo de la conspiración, por que este tío no hace nada por la ciencia y el descubrimiento de la verdad, sino por la polémica de la desinformación y los ingresos que le genera, así que sería todo un espectáculo si el debate se llega a realizar.

¿Que opinan ustedes sobe el tema?.

Saludos
#60
Quiero compartir el siguiente video con ustedes, informáticos.

[youtube=640,360]https://www.youtube.com/watch?v=AHX6tHdQGiQ[/youtube]

El contenido del video no tiene pérdida, incluso si no saben Inglés recomiendo verlo con subtítulos para intentar enterarse un poco de algo, se quedarán sorprendidos al descubrir los secretos más íntimos y vergonzosos de la negligencia que aplican las compañías de impresoras más famosas en el funcionamiento de sus impresoras y sus cartuchos de tinta, los secretos que no quieren reconocer al público: la estafa de las impresoras (bueno, de sus cartuchos de tinta)

Pues eso, por un mundo mejor sin compañías excesivamente abariciosas que nos intentan tomar el pelo cada 2x3 ...y lo consiguen, siempre lo consiguen.

Saludos.
#62
ÍNDICE ACTUALIZADO EL 05/JULIO/2018




PREGUNTAS FRECUENTES

- ¿Por qué el índice está desordenado alfabéticamente?
Lo que puede parecer desorden alfabético es más bien un orden cronológico.

- ¿Por qué hay snippets repetidos?
No todos los nippets son mios, pero la inmensa mayoría sí, de ahí que para esta pregunta responda sobre mi mismo:
en principio no hay ninguno repetido, lo que ocurre es que a lo largo del tiempo he ido publicando actualizaciones/mejoras de códigos antiguos. De ahí mi preferencia por el orden cronológico.

- Al acceder a algunos enlaces del índice no veo el snippet al que debería corresponder y en su lugar me aparece otro snippet, ¿por qué?
Un único post puede contener varios snippets, asegúrate de mirarlo bien, en alguna parte de ese post debe estar el snippet al que corresponde el enlace del índice, ya sea al principio del post o al final.
#63
Me he dado cuenta de que en algunos buscadores de algunas páginas web, entre ellas foro.elhacker.net, se envian unos parámetros algo extraños (extraños para quien no entienda su propósito) y simplemente por curiosidad y para aprender algo nuevo pues me gustaría saber cual es el significado/propósito de estos parámetros...

Aquí les dejo el contenido parcial de un json donde se muestra algunos de esos parámetros y sus valores enviados:

                       {
   "name": "brd%5B148%5D",
   "value": "1"
},
{
   "name": "brd%5B168%5D",
   "value": "222"
},
{
   "name": "brd%5B25%5D",
   "value": "333"
},
{
   "name": "brd%5B169%5D",
   "value": "444"
},
{
   "name": "brd%5B34%5D",
   "value": "555"
},
{
   "name": "brd%5B26%5D",
   "value": "666"
},
{
   "name": "brd%5B1%5D",
   "value": "1"
},
{
   "name": "brd%5B28%5D",
   "value": "28"
},
{
   "name": "brd%5B141%5D",
   "value": "141"
},
{
   "name": "brd%5B144%5D",
   "value": "1424"
},
{
   "name": "brd%5B2%5D",
   "value": "2"
},
{
   "name": "brd%5B30%5D",
   "value": "380"
},
{
   "name": "brd%5B3%5D",
   "value": "3"
},
{
   "name": "brd%5B33%5D",
   "value": "363"
},
{
   "name": "brd%5B4%5D",
   "value": "43"
},
{
   "name": "brd%5B31%5D",
   "value": "31"
},
{
   "name": "brd%5B5%5D",
   "value": "35"
},
{
   "name": "brd%5B35%5D",
   "value": "35"
},
{
   "name": "brd%5B8%5D",
   "value": "8"
},
{
   "name": "brd%5B154%5D",
   "value": "999"
},
{
   "name": "brd%5B6%5D",
   "value": "6"
},
{
   "name": "brd%5B107%5D",
   "value": "107"
},
{
   "name": "brd%5B7%5D",
   "value": "7"
},
{
   "name": "brd%5B164%5D",
   "value": "444"
},
{
   "name": "brd%5B102%5D",
   "value": "102"
},
{
   "name": "brd%5B86%5D",
   "value": "222"
},
{
   "name": "brd%5B68%5D",
   "value": "68"
},
{
   "name": "brd%5B92%5D",
   "value": "888"
},
{
   "name": "brd%5B69%5D",
   "value": "555"
},
{
   "name": "brd%5B161%5D",
   "value": "161"
},
{
   "name": "brd%5B70%5D",
   "value": "70"
},
{
   "name": "brd%5B71%5D",
   "value": "71"
},
{
   "name": "brd%5B197%5D",
   "value": "197"
},
{
   "name": "brd%5B72%5D",
   "value": "111"
},
{
   "name": "brd%5B87%5D",
   "value": "222"
},
{
   "name": "brd%5B151%5D",
   "value": "151"
},
{
   "name": "brd%5B90%5D",
   "value": "222"
},
{
   "name": "brd%5B75%5D",
   "value": "75"
},
{
   "name": "brd%5B83%5D",
   "value": "222"
},
{
   "name": "brd%5B76%5D",
   "value": "76"
},
{
   "name": "brd%5B84%5D",
   "value": "777"
},
{
   "name": "brd%5B77%5D",
   "value": "222"
},
{
   "name": "brd%5B147%5D",
   "value": "111"
},
{
   "name": "brd%5B78%5D",
   "value": "78"
},
{
   "name": "brd%5B98%5D",
   "value": "111"
},
{
   "name": "brd%5B79%5D",
   "value": "79"
},
{
   "name": "brd%5B109%5D",
   "value": "222"
},
{
   "name": "brd%5B80%5D",
   "value": "80"
},
{
   "name": "brd%5B22%5D",
   "value": "22"
},
{
   "name": "brd%5B81%5D",
   "value": "333"
},
{
   "name": "brd%5B23%5D",
   "value": "23"
},
{
   "name": "brd%5B157%5D",
   "value": "555"
},
{
   "name": "brd%5B24%5D",
   "value": "24"
},
{
   "name": "brd%5B142%5D",
   "value": "777"
},
{
   "name": "brd%5B32%5D",
   "value": "32"
},


( bueno, los valores reales los he modificado no vaya a ser que los datos enviados resulten ser una serie de "metadatos" o algo raro que me pueda poner en compromiso contra amenazas de cualquier tipo, yo que se, por ser precavido. )

He notado que sucede lo mismo en ciertos buscadores de otras páginas (foros) que usan SMF, eso tienen en común pero realmente no se si eso tendrá algo que ver.

Saludos!
#64
Bueno, pues como dice el título, ¿alguien tiene idea de como cambiar el color de la fuente de texto de las pestañas de Firefox 62+?, repito, para Firefox 62, pues he estado probando personalizaciones CSS de todo tipo que supuestamente sirven para cambiar el color de texto de las pestañas, incluso temas visuales de terceros, pero al parecer ningún código es capaz de modificar el color de texto de las pestañas activas e inactivas en esta versión específica de Firefox, así que supongo que deben haber cambiado el nombre de algún miembro de la API...

Esto por ejemplo no me funciona:
/* Change color of selected tab text */
#TabsToolbar .tabbrowser-tab[selected] {
   color: red !important;
}


...lo que se cambia a color rojo no es precisamente el color del texto...

#65
Foro Libre / ¿Es la realidad una simulación?
29 Junio 2018, 02:47 AM
"La probabilidad de que NO estemos viviendo en una simulación es de una entre mil millones."

Esa frase fue dicha en 2016 por el inventor y empresario Elon Musk, quien es conocido por ser cofundador de PayPal, CEO de Tesla Motors y de SpaceX, la empresa privada espacial más importante del mundo, la cual busca explorar y colonizar Marte.

( fuente del copy&paste : https://steemit.com/spanish/@ibaf04/hipotesis-de-la-simulacion-o-como-varios-cientificos-creen-que-vivimos-en-una-realidad-inventada )




Les traigo varios videos interesantes que debaten y explican fundamentos sobre la hipótesis de la simulación del universo, conocida de forma vulgar como La Teoría de La Matrix (haciendo referencia al popular film Matrix del año 1999), la cual consiste en considerar la posibilidad de que la realidad en la que vivimos sea una simulación, tal que una simulación creada por super computadoras...

Aquí no van a encontrar nada Illuminati ni conspiranoico, advierto para que no se lleven una sorpresa, es todo científico. Todos los videos están con audio en Inglés y la mayoría también con subtítulos para que lo puedan entender bien.

Dejen su opinión sobre esta hipótesis de la simulación del universo, ¿ustedes creen que los humanos somos unos SIMS?.



Sin más, espero que los videos les parezcan entretenidos y les haya agradado este aporte...

Saludos!.




[youtube=320,180]https://www.youtube.com/watch?v=3CyN8rYdX6g[/youtube]     [youtube=320,180]https://www.youtube.com/watch?v=hmVOV7xvl58[/youtube]

[youtube=320,180]https://www.youtube.com/watch?v=tlTKTTt47WE[/youtube]     [youtube=320,180]https://www.youtube.com/watch?v=3d9i_0Ty7Cg[/youtube]

[youtube=320,180]https://www.youtube.com/watch?v=VqULEE7eY8M[/youtube]     [youtube=320,180]https://www.youtube.com/watch?v=aNoqWbsz8zs[/youtube]

[youtube=320,180]https://www.youtube.com/watch?v=lMBt_yfGKpU[/youtube]     [youtube=320,180]https://www.youtube.com/watch?v=vU6yCD_sEvU[/youtube]

[youtube=320,180]https://www.youtube.com/watch?v=Ah-vvVVgYmA[/youtube]     [youtube=320,180]https://www.youtube.com/watch?v=-DpgE_4lF9Y[/youtube]
#66
Bueno... esto es suna pequeña anécdota para que lo tengan en cuenta a la hora de elegir antivirus...

Acabo de instalarme la última versión de Avira, me apeteceía probarlo por que llevaba años sin usar Avira (por lo general uso Malwarebytes Anti Malware, el cual obviamente lo desinstalé antes de instalar Avira para evitar posibles conflictos), y resulta que me está dando tantos problemas que me va a tocar reinstalar Windows... o en su defecto usar un live-cd y eliminar todo lo relacionado con Avira, y esperar que eso funcione.

No se imaginan mi cara de sorpresa al abrir el desinstalador de Avira, darle al botón de desinstalar, y que éste me diga que no se puede desinstalar por que Avira Antivirus lo necesita, o algo así, absurdo e incomprensible, pero bueno, entonces me dispongo a cerrar los procesos de Avira, o mejor dicho matarlos, y los servicios de Avira, pero algunos no deja por permisos de usuario, todo esto para ver si era un problema de que Avira estaba en ejecución o algo, y entonces el desinstalador si que "funciona" despues de haber hecho esto, o al menos parece que desinstala Avira, y al final dice que se desinstaló correctamente... pero en realidad no desinstala una mierd@ ya que al próximo reinicio del sistema operativo el maldito Avira sigue ahí, de hecho, la carpeta de instalación de Avira tiene permisos especiales, así que el desinstalador no elimina ningún archivo de esa carpeta (en fin, no se para que narices distribuyen un desinstalador que no es capaz de desinstalar nada), y no puedo concederle permisos a mi usuario de forma ordinaria sobre los archivos de ese directorio como las miles de veces que lo he hecho en cualquier otra carpeta protegida... supongo que por alguna técnica de protección de Avira contra este tipo de ataques. Incluso he realizado una búsqueda y eliminación de todas las claves de registro relacionadas con Avira y todos los archivos de configuración del programa, con la intención de corromper el funcionamiento del programa, pero no ha servido para nada, Avira sigue ahí... en el próximo reinicio... dando por culo todo el rato.

...así que tengo un antivirus que no quiero, el cual no se puede desinstalar, ni tampoco desactivar del todo (los servicios en modo auto-ejecución).

Esto ha ocurrido en Windows 10 con Avira Antivirus Pro 15.0.36.180. Mejor no se instalen Avira por que podría pasarle lo que me ha pasado a mi...

Saludos!
#70
Este video me salió en las recomendaciones de youtube, y me entró curiosidad por que la miniatura nos puede recordar a un personaje bastante polémico del mundo de la conspirapolla y esas cosas... pero este video no tiene nada que ver con ese señor ni con esa perspectiva de ver las cosas.

En fin, el video está muy bien, así que os lo dejo por aquí para el que le pueda interesar:

[youtube=640,360]https://www.youtube.com/watch?v=eDDpTUDKpsk[/youtube]

PD: qué diferencia entre ver videos científicos así de instructivos, y ver videos de magufos iluminados que te hablan de dioses y la Matrix y estupideces semejantes para intentar darle explicación a las mismas cosas, ¿he?.

saludos!
#73
No es Skynet, pero poca broma con la nueva tecnología de inteligencia artificial de Google: Google Duplex capaz de realizar llamadas a hoteles, peluquerias, restaurantes y etc para pedir cita usando tu nombre, entre otras cosas...


No se hasta que punto la conversación que han mostrado será real, me refiero, la que coje el teléfono podría ser una actriz que además podría saber que palabras exactas debe usar para perfeccionar el tipo de respuestas y preguntas de la I.A, pero eso es lo de menos... lo importante aquí es que se trata de una especie de asistente personal en el móvil capaz de hacernos "recados" basados en voz (según estuve leyendo, el asistente de Google podía hacer tareas basadas en texto, pero creo que hasta ahora no podía usar una voz), como lo que pueden ver en el siguiente video, y es curioso que la conversación sea tan fluida y realista, es practicamente imposible sospechar ni distinguir en una conversación que se trata de una inteligencia artificial que usa una voz TTS...

[youtube=640,360]https://www.youtube.com/watch?v=pKVppdt_-B4[/youtube]

#75
Estuve observando este código aleatorio en GitHub: https://github.com/HearthSim/HDT-Voice/blob/master/HDT-Voice/HDTPlugin/Github.vb y a raíz de eso se me ocurrió la idea de implementar un sistema reutilizable y sofisticado (o al menos yo creo que lo es) para obtener las releases de GitHub, con lo que poder determinar si existe una nueva release y por ende nuestro programa debe actualizarse...

Para comenzar la implementación de dicho sistema declaré las siguientes clases: GitHubRelease, GitHubAsset y GitHubAuthor las cuales servirán para representar información de una release, un asset y un author/uploader. Y por último declaré una clase con nombre GitHubUtil en donde declaré varias funciones sincrónicas y asincrónicas para implementar las siguientes funcionalidades: obtener todas las releases de un repositorio, obtener la última release, obtener una release con versión específica, y comprobar si existe una versión más reciente (para actualizar nuestro programa).

Estoy seguro que les servirá para sus aplicaciones de código abierto y le podrán sacar varias utilidades con diferentes fines que se ajusten a sus necesidades...

Aquí lo tienen todo:

Código (vbnet) [Seleccionar]
Imports System
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
Imports System.Collections.Specialized
Imports System.ComponentModel
Imports System.IO
Imports System.Net
Imports System.Net.Mime
Imports System.Runtime.Serialization.Json
Imports System.Text
Imports System.Threading
Imports System.Threading.Tasks
Imports System.Web
Imports System.Xml


GitHubRelease.vb
Código (vbnet) [Seleccionar]
''' <summary>
''' Represents a release on GitHub.
''' </summary>
''' <seealso href="https://github.com"/>
Public NotInheritable Class GitHubRelease

   ''' <summary>
   ''' Gets the GitHub's unique identifier for this release.
   ''' </summary>
   Public ReadOnly Property Id As String

   ''' <summary>
   ''' Gets the release name.
   ''' </summary>
   Public ReadOnly Property Name As String

   ''' <summary>
   ''' Gets the release tag name.
   ''' </summary>
   Public ReadOnly Property TagName As String

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Gets the release version.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <remarks>
   ''' The version is derived from <see cref="GitHubRelease.TagName"/>, which should follow semantic versioning guidelines.
   ''' <para></para>
   ''' See for more info about semantic versioning:
   ''' <para></para>
   ''' <see href="https://semver.org/"/>
   ''' <para></para>
   ''' <see href="https://help.github.com/articles/about-releases/"/>
   ''' <para></para>
   ''' <see href="https://git-scm.com/book/en/v2/Git-Basics-Tagging"/>
   ''' </remarks>
   ''' ----------------------------------------------------------------------------------------------------
   Public ReadOnly Property Version As Version
       Get
           ' Remove prefixes and suffixes from tagname, like: "v1.0", "1.0-alpha" or "1.0-beta".
           Dim str As String = Me.TagName.ToLower().
                                          Trim("abcdefghijklmnopqrstuvwxyz !·$%&/()=?\|@#~'^*¨;:,.{}[]+".ToArray())

           Dim result As Version = Nothing
           Version.TryParse(str, result)
           Return result
       End Get
   End Property

   ''' <summary>
   ''' Gets the body, in MarkDown format.
   ''' </summary>
   Public ReadOnly Property Body As String

   ''' <summary>
   ''' Gets the commition target.
   ''' </summary>
   Public ReadOnly Property TargetCommitish As String

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the release page.
   ''' </summary>
   Public ReadOnly Property UriRelease As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the assets page of this release.
   ''' </summary>
   Public ReadOnly Property UriAssets As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the tarball of this release.
   ''' </summary>
   Public ReadOnly Property UriTarball As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the zipball of this release.
   ''' </summary>
   Public ReadOnly Property UriZipball As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the release page for a web-browser.
   ''' </summary>
   Public ReadOnly Property UriHtml As Uri

   ''' <summary>
   ''' Gets a value that determine whether this release is a draft.
   ''' </summary>
   Public ReadOnly Property IsDraft As Boolean

   ''' <summary>
   ''' Gets a value that determine whether this release is a pre-release.
   ''' </summary>
   Public ReadOnly Property IsPreRelease As Boolean

   ''' <summary>
   ''' Gets the creation datetime.
   ''' </summary>
   Public ReadOnly Property DateCreated As Date

   ''' <summary>
   ''' Gets the published datetime.
   ''' </summary>
   Public ReadOnly Property DatePublished As Date

   ''' <summary>
   ''' Gets the author of this release.
   ''' </summary>
   Public ReadOnly Property Author As GitHubAuthor

   ''' <summary>
   ''' Gets the assets of this release.
   ''' </summary>
   Public ReadOnly Property Assets As ReadOnlyCollection(Of GitHubAsset)

   ''' <summary>
   ''' Prevents a default instance of the <see cref="GitHubRelease"/> class from being created.
   ''' </summary>
   Private Sub New()
   End Sub

   ''' <summary>
   ''' Initializes a new instance of the <see cref="GitHubRelease"/> class.
   ''' </summary>
   ''' <param name="xml">
   ''' An <see cref="XElement"/> that contains the fields to parse.
   ''' <para></para>
   ''' See: <see href="https://api.github.com/repos/{user}/{repo}/releases"/>
   ''' </param>
   Public Sub New(ByVal xml As XElement)
       Me.Id = xml.<id>.Value
       Me.Name = xml.<name>.Value
       Me.TagName = xml.<tag_name>.Value
       Me.Body = xml.<body>.Value
       Me.TargetCommitish = xml.<target_commitish>.Value
       Me.UriRelease = New Uri(xml.<url>.Value, UriKind.Absolute)
       Me.UriAssets = New Uri(xml.<assets_url>.Value, UriKind.Absolute)
       Me.UriHtml = New Uri(xml.<html_url>.Value, UriKind.Absolute)
       Me.UriTarball = New Uri(xml.<tarball_url>.Value, UriKind.Absolute)
       Me.UriZipball = New Uri(xml.<zipball_url>.Value, UriKind.Absolute)
       Me.IsDraft = xml.<draft>.Value
       Me.IsPreRelease = xml.<prerelease>.Value
       Me.DateCreated = Date.Parse(xml.<created_at>.Value, CultureInfo.GetCultureInfo("en-US").DateTimeFormat)
       Me.DatePublished = Date.Parse(xml.<published_at>.Value, CultureInfo.GetCultureInfo("en-US").DateTimeFormat)
       Me.Author = New GitHubAuthor(xml.<author>.SingleOrDefault())

       Dim assets As New Collection(Of GitHubAsset)
       Dim elements As IEnumerable(Of XElement) = xml.<assets>.<item>
       For Each element As XElement In elements
           Dim asset As New GitHubAsset(element)
           assets.Add(asset)
       Next
       Me.Assets = New ReadOnlyCollection(Of GitHubAsset)(assets)
   End Sub

   ''' <summary>
   ''' Returns a <see cref="String"/> that represents this release.
   ''' </summary>
   ''' <returns>
   ''' A <see cref="String"/> that represents this release.
   ''' </returns>
   Public Overrides Function ToString() As String
       Dim kvPairs As New NameValueCollection(EqualityComparer(Of String).Default) From {
           {NameOf(Me.Id), Me.Id},
           {NameOf(Me.TagName), Me.TagName},
           {NameOf(Me.Name), Me.Name},
           {NameOf(Me.TargetCommitish), Me.TargetCommitish},
           {NameOf(Me.IsDraft), Me.IsDraft},
           {NameOf(Me.IsPreRelease), Me.IsPreRelease},
           {NameOf(Me.DateCreated), Me.DateCreated.ToString("MM/dd/yyyy HH:mm:ss")},
           {NameOf(Me.DatePublished), Me.DatePublished.ToString("MM/dd/yyyy HH:mm:ss")},
           {NameOf(Me.UriHtml), Me.UriHtml.AbsoluteUri}
       }

       Return String.Format("{{{0}}}", String.Join(", ", (From key In kvPairs.AllKeys, value In kvPairs.GetValues(key)
                                                          Select String.Format("{0}={1}", key, value))))
   End Function

   ''' <summary>
   ''' Implements the operator &lt;&gt;.
   ''' </summary>
   ''' <param name="release1">
   ''' The first <see cref="GitHubRelease"/>.
   ''' </param>
   ''' <param name="release2">
   ''' The second <see cref="GitHubRelease"/>.
   ''' </param>
   ''' <returns>
   ''' The result of the operator.
   ''' </returns>
   Public Shared Operator <>(ByVal release1 As GitHubRelease, ByVal release2 As GitHubRelease) As Boolean

       Return (release1.Id <> release2.Id)

   End Operator

   ''' <summary>
   ''' Implements the operator =.
   ''' </summary>
   ''' <param name="release1">
   ''' The first <see cref="GitHubRelease"/>.
   ''' </param>
   ''' <param name="release2">
   ''' The second <see cref="GitHubRelease"/>.
   ''' </param>
   ''' <returns>
   ''' The result of the operator.
   ''' </returns>
   Public Shared Operator =(ByVal release1 As GitHubRelease, ByVal release2 As GitHubRelease) As Boolean

       Return (release1.Id = release2.Id)

   End Operator

End Class


GitHubAsset.vb
Código (vbnet) [Seleccionar]
''' <summary>
''' Represents an asset of a release on GitHub.
''' </summary>
''' <seealso href="https://github.com"/>
Public NotInheritable Class GitHubAsset

   ''' <summary>
   ''' Gets the GitHub's unique identifier for this asset.
   ''' </summary>
   Public ReadOnly Property Id As String

   ''' <summary>
   ''' Gets the name of this asset.
   ''' </summary>
   Public ReadOnly Property Name As String

   ''' <summary>
   ''' Gets the label of this asset.
   ''' </summary>
   Public ReadOnly Property Label As String

   ''' <summary>
   ''' Gets the state of this asset.
   ''' </summary>
   Public ReadOnly Property State As String

   ''' <summary>
   ''' Gets the size of this asset, in bytes.
   ''' </summary>
   Public ReadOnly Property Size As Long

   ''' <summary>
   ''' Gets a value indicating how many times this asset was downloaded.
   ''' </summary>
   Public ReadOnly Property DownloadCount As Integer

   ''' <summary>
   ''' Gets the content-type of this asset.
   ''' </summary>
   Public ReadOnly Property ContentType As ContentType

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the page of this asset.
   ''' </summary>
   Public ReadOnly Property UriAsset As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the download page of this asset.
   ''' </summary>
   Public ReadOnly Property UriDownload As Uri

   ''' <summary>
   ''' Gets the creation datetime.
   ''' </summary>
   Public ReadOnly Property DateCreated As Date

   ''' <summary>
   ''' Gets the uploaded datetime.
   ''' </summary>
   Public ReadOnly Property DateUploaded As Date

   ''' <summary>
   ''' Gets the uploader of this asset.
   ''' </summary>
   Public ReadOnly Property Uploader As GitHubAuthor

   ''' <summary>
   ''' Prevents a default instance of the <see cref="GitHubAsset"/> class from being created.
   ''' </summary>
   Private Sub New()
   End Sub

   ''' <summary>
   ''' Initializes a new instance of the <see cref="GitHubAsset"/> class.
   ''' </summary>
   ''' <param name="xml">
   ''' An <see cref="XElement"/> that contains the fields to parse.
   ''' <para></para>
   ''' See: <see href="https://api.github.com/repos/{user}/{repo}/releases"/>
   ''' </param>
   Public Sub New(ByVal xml As XElement)
       Me.Id = xml.<id>.Value
       Me.Name = xml.<name>.Value
       Me.Label = xml.<label>.Value
       Me.State = xml.<state>.Value
       Me.Size = xml.<size>.Value
       Me.ContentType = New ContentType(xml.<content_type>.Value)
       Me.DownloadCount = xml.<download_count>.Value
       Me.DateCreated = Date.Parse(xml.<created_at>.Value, CultureInfo.GetCultureInfo("en-US").DateTimeFormat)
       Me.DateUploaded = Date.Parse(xml.<updated_at>.Value, CultureInfo.GetCultureInfo("en-US").DateTimeFormat)
       Me.UriAsset = New Uri(xml.<url>.Value, UriKind.Absolute)
       Me.UriDownload = New Uri(xml.<browser_download_url>.Value, UriKind.Absolute)
       Me.Uploader = New GitHubAuthor(xml.<uploader>.Single())
   End Sub

   ''' <summary>
   ''' Returns a <see cref="String"/> that represents this asset.
   ''' </summary>
   ''' <returns>
   ''' A <see cref="String"/> that represents this asset.
   ''' </returns>
   Public Overrides Function ToString() As String
       Dim kvPairs As New NameValueCollection(EqualityComparer(Of String).Default) From {
           {NameOf(Me.Id), Me.Id},
           {NameOf(Me.Name), Me.Name},
           {NameOf(Me.Label), Me.Label},
           {NameOf(Me.State), Me.State},
           {NameOf(Me.Size), Me.Size},
           {NameOf(Me.ContentType), Me.ContentType.ToString()},
           {NameOf(Me.DownloadCount), Me.DownloadCount},
           {NameOf(Me.DateCreated), Me.DateCreated.ToString("MM/dd/yyyy HH:mm:ss")},
           {NameOf(Me.DateUploaded), Me.DateUploaded.ToString("MM/dd/yyyy HH:mm:ss")},
           {NameOf(Me.UriDownload), Me.UriDownload.AbsoluteUri}
       }

       Return String.Format("{{{0}}}", String.Join(", ", (From key In kvPairs.AllKeys, value In kvPairs.GetValues(key)
                                                          Select String.Format("{0}={1}", key, value))))
   End Function

   ''' <summary>
   ''' Implements the operator &lt;&gt;.
   ''' </summary>
   ''' <param name="asset1">
   ''' The first <see cref="GitHubAsset"/>.
   ''' </param>
   ''' <param name="asset2">
   ''' The second <see cref="GitHubAsset"/>.
   ''' </param>
   ''' <returns>
   ''' The result of the operator.
   ''' </returns>
   Public Shared Operator <>(ByVal asset1 As GitHubAsset, ByVal asset2 As GitHubAsset) As Boolean

       Return (asset1.Id <> asset2.Id)

   End Operator

   ''' <summary>
   ''' Implements the operator =.
   ''' </summary>
   ''' <param name="asset1">
   ''' The first <see cref="GitHubAsset"/>.
   ''' </param>
   ''' <param name="asset2">
   ''' The second <see cref="GitHubAsset"/>.
   ''' </param>
   ''' <returns>
   ''' The result of the operator.
   ''' </returns>
   Public Shared Operator =(ByVal asset1 As GitHubAsset, ByVal asset2 As GitHubAsset) As Boolean

       Return (asset1.Id = asset2.Id)

   End Operator

End Class


GitHubAuthor.vb
Código (vbnet) [Seleccionar]
''' <summary>
''' Represents the author of a release or the uploader of an asset on GitHub.
''' </summary>
''' <seealso href="https://github.com"/>
Public NotInheritable Class GitHubAuthor

   ''' <summary>
   ''' Gets the GitHub's unique identifier for this author.
   ''' </summary>
   Public ReadOnly Property Id As String

   ''' <summary>
   ''' Gets the author name.
   ''' </summary>
   Public ReadOnly Property Name As String

   ''' <summary>
   ''' Gets the type of user.
   ''' </summary>
   Public ReadOnly Property [Type] As String

   ''' <summary>
   ''' Gets a value that determine whether this author is a site administrator.
   ''' </summary>
   Public ReadOnly Property IsSiteAdministrator As Boolean

   ''' <summary>
   ''' Gets the unique identifier of the Gravatar.
   ''' <para></para>
   ''' See for more info: <see href="https://gravatar.com/"/>
   ''' </summary>
   Public ReadOnly Property GravatarId As String

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the author page.
   ''' </summary>
   Public ReadOnly Property UriAuthor As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the avatar page of this author.
   ''' </summary>
   Public ReadOnly Property UriAvatar As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the followers page of this author.
   ''' </summary>
   Public ReadOnly Property UriFollowers As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the subscriptions page of this author.
   ''' </summary>
   Public ReadOnly Property UriSubscriptions As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the organizations page of this author.
   ''' </summary>
   Public ReadOnly Property UriOrganizations As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the repositories page of this author.
   ''' </summary>
   Public ReadOnly Property UriRepositories As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the received events page of this author.
   ''' </summary>
   Public ReadOnly Property UriReceivedEvents As Uri

   ''' <summary>
   ''' Gets an <see cref="Uri"/> that points to the author page for a web-browser.
   ''' </summary>
   Public ReadOnly Property UriHtml As Uri

   ''' <summary>
   ''' Prevents a default instance of the <see cref="GitHubAuthor"/> class from being created.
   ''' </summary>
   Private Sub New()
   End Sub

   ''' <summary>
   ''' Initializes a new instance of the <see cref="GitHubAuthor"/> class.
   ''' </summary>
   ''' <param name="xml">
   ''' An <see cref="XElement"/> that contains the fields to parse.
   ''' <para></para>
   ''' See: <see href="https://api.github.com/repos/{user}/{repo}/releases"/>
   ''' </param>
   Public Sub New(ByVal xml As XElement)
       Me.Id = xml.<id>.Value
       Me.Name = xml.<login>.Value
       Me.Type = xml.<type>.Value
       Me.IsSiteAdministrator = xml.<site_admin>.Value
       Me.GravatarId = xml.<gravatar_id>.Value
       Me.UriAuthor = New Uri(xml.<url>.Value, UriKind.Absolute)
       Me.UriAvatar = New Uri(xml.<avatar_url>.Value, UriKind.Absolute)
       Me.UriSubscriptions = New Uri(xml.<subscriptions_url>.Value, UriKind.Absolute)
       Me.UriOrganizations = New Uri(xml.<organizations_url>.Value, UriKind.Absolute)
       Me.UriRepositories = New Uri(xml.<repos_url>.Value, UriKind.Absolute)
       Me.UriReceivedEvents = New Uri(xml.<received_events_url>.Value, UriKind.Absolute)
       Me.UriHtml = New Uri(xml.<html_url>.Value, UriKind.Absolute)
   End Sub

   ''' <summary>
   ''' Returns a <see cref="String"/> that represents this author.
   ''' </summary>
   ''' <returns>
   ''' A <see cref="String"/> that represents this author.
   ''' </returns>
   Public Overrides Function ToString() As String
       Dim kvPairs As New NameValueCollection(EqualityComparer(Of String).Default) From {
           {NameOf(Me.Id), Me.Id},
           {NameOf(Me.Name), Me.Name},
           {NameOf(Me.Type), Me.Type},
           {NameOf(Me.IsSiteAdministrator), Me.IsSiteAdministrator},
           {NameOf(Me.UriHtml), Me.UriHtml.AbsoluteUri}
       }

       Return String.Format("{{{0}}}", String.Join(", ", (From key In kvPairs.AllKeys, value In kvPairs.GetValues(key)
                                                          Select String.Format("{0}={1}", key, value))))
   End Function

   ''' <summary>
   ''' Implements the operator &lt;&gt;.
   ''' </summary>
   ''' <param name="author1">
   ''' The first <see cref="GitHubAuthor"/>.
   ''' </param>
   ''' <param name="author2">
   ''' The second <see cref="GitHubAuthor"/>.
   ''' </param>
   ''' <returns>
   ''' The result of the operator.
   ''' </returns>
   Public Shared Operator <>(ByVal author1 As GitHubAuthor, ByVal author2 As GitHubAuthor) As Boolean

       Return (author1.Id <> author2.Id)

   End Operator

   ''' <summary>
   ''' Implements the operator =.
   ''' </summary>
   ''' <param name="author1">
   ''' The first <see cref="GitHubAuthor"/>.
   ''' </param>
   ''' <param name="author2">
   ''' The second <see cref="GitHubAuthor"/>.
   ''' </param>
   ''' <returns>
   ''' The result of the operator.
   ''' </returns>
   Public Shared Operator =(ByVal author1 As GitHubAuthor, ByVal author2 As GitHubAuthor) As Boolean

       Return (author1.Id = author2.Id)

   End Operator

End Class


GitHubUtil.vb
Código (vbnet) [Seleccionar]
Public NotInheritable Class GitHubUtil

#Region " Constructors "

   ''' <summary>
   ''' Prevents a default instance of the <see cref="GitHubUtil"/> class from being created.
   ''' </summary>
   Private Sub New()
   End Sub

#End Region

#Region " Public Methods "

   ''' <summary>
   ''' Asynchronously gets the releases from the specified repository on GitHub.
   ''' </summary>
   ''' <param name="userName">
   ''' The user name.
   ''' </param>
   ''' <param name="repositoryName">
   ''' The repository name.
   ''' </param>
   ''' <returns>
   ''' A <see cref="Task(Of ReadOnlyCollection(Of GitHubRelease))"/> containing the releases.
   ''' </returns>
   ''' <exception cref="HttpException">
   ''' JSON validation error.
   ''' </exception>
   Public Shared Async Function GetReleasesAsync(ByVal userName As String, ByVal repositoryName As String) As Task(Of ReadOnlyCollection(Of GitHubRelease))

       Dim uri As New Uri(String.Format("https://api.github.com/repos/{0}/{1}/releases", userName, repositoryName), UriKind.Absolute)

       Dim request As HttpWebRequest =  DirectCast(WebRequest.Create(uri), HttpWebRequest)
       request.UserAgent = userName

       Using response As WebResponse = Await request.GetResponseAsync(),
             sr As New StreamReader(response.GetResponseStream()),
             xmlReader As XmlDictionaryReader = JsonReaderWriterFactory.CreateJsonReader(sr.BaseStream, Encoding.UTF8, New XmlDictionaryReaderQuotas, Nothing)

           Dim xml As XElement = XElement.Load(xmlReader)
           If (xml.IsEmpty) Then
               Dim errMsg As String = String.Format("JSON validation error. ""{0}""", uri.ToString())
               Throw New HttpException(HttpStatusCode.NotFound, errMsg)
           End If

           Dim releases As New Collection(Of GitHubRelease)
           Dim elements As IEnumerable(Of XElement) = xml.<item>
           For Each element As XElement In elements
               Dim release As New GitHubRelease(element)
               releases.Add(release)
           Next

           Return New ReadOnlyCollection(Of GitHubRelease)(releases)

       End Using

   End Function

   ''' <summary>
   ''' Gets the releases from the specified repository on GitHub.
   ''' </summary>
   ''' <param name="userName">
   ''' The user name.
   ''' </param>
   ''' <param name="repositoryName">
   ''' The repository name.
   ''' </param>
   ''' <returns>
   ''' A <see cref="ReadOnlyCollection(Of GitHubRelease)"/> collection containing the releases.
   ''' </returns>
   Public Shared Function GetReleases(ByVal userName As String, ByVal repositoryName As String) As ReadOnlyCollection(Of GitHubRelease)

       Dim t As Task(Of ReadOnlyCollection(Of GitHubRelease)) = Task.Run(Function() GitHubUtil.GetReleases(userName, repositoryName))
       t.Wait(Timeout.Infinite)

       Return t.Result

   End Function

   ''' <summary>
   ''' Asynchronously gets a release that matches the specified version from the specified repository on GitHub.
   ''' </summary>
   ''' <param name="userName">
   ''' The user name.
   ''' </param>
   ''' <param name="repositoryName">
   ''' The repository name.
   ''' </param>
   ''' <param name="version">
   ''' The version of the release.
   ''' </param>
   ''' <returns>
   ''' The resulting <see cref="GitHubRelease"/>.
   ''' </returns>
   Public Shared Async Function GetReleaseAsync(ByVal userName As String, ByVal repositoryName As String, ByVal version As Version) As Task(Of GitHubRelease)

       Return (From release As GitHubRelease In Await GetReleasesAsync(userName, repositoryName)
               Where release.Version = version).
               DefaultIfEmpty(Nothing).
               SingleOrDefault()

   End Function

   ''' <summary>
   ''' Gets a release that matches the specified version from the specified repository on GitHub.
   ''' </summary>
   ''' <param name="userName">
   ''' The user name.
   ''' </param>
   ''' <param name="repositoryName">
   ''' The repository name.
   ''' </param>
   ''' <param name="version">
   ''' The version of the release.
   ''' </param>
   ''' <returns>
   ''' The resulting <see cref="GitHubRelease"/>.
   ''' </returns>
   Public Shared Function GetRelease(ByVal userName As String, ByVal repositoryName As String, ByVal version As Version) As GitHubRelease

       Dim t As Task(Of GitHubRelease) = Task.Run(Function() GitHubUtil.GetRelease(userName, repositoryName, version))
       t.Wait(Timeout.Infinite)

       Return t.Result

   End Function

   ''' <summary>
   ''' Asynchronously gets the latest release from the specified repository on GitHub.
   ''' </summary>
   ''' <param name="userName">
   ''' The user name.
   ''' </param>
   ''' <param name="repositoryName">
   ''' The repository name.
   ''' </param>
   ''' <returns>
   ''' The resulting <see cref="GitHubRelease"/>.
   ''' </returns>
   ''' <exception cref="HttpException">
   ''' JSON validation error.
   ''' </exception>
   Public Shared Async Function GetLatestReleaseAsync(ByVal userName As String, ByVal repositoryName As String) As Task(Of GitHubRelease)

       Dim uri As New Uri(String.Format("https://api.github.com/repos/{0}/{1}/releases/latest", userName, repositoryName), UriKind.Absolute)

       Dim request As HttpWebRequest = WebRequest.Create(uri)
       request.UserAgent = userName

       Using response As WebResponse = Await request.GetResponseAsync(),
             sr As New StreamReader(response.GetResponseStream()),
             xmlReader As XmlDictionaryReader = JsonReaderWriterFactory.CreateJsonReader(sr.BaseStream, Encoding.UTF8, New XmlDictionaryReaderQuotas, Nothing)

           Dim xml As XElement = XElement.Load(xmlReader)
           If (xml.IsEmpty) Then
               Dim errMsg As String = String.Format("JSON validation error. ""{0}""", uri.ToString())
               Throw New HttpException(HttpStatusCode.NotFound, errMsg)
           End If

           Return New GitHubRelease(xml)
       End Using

   End Function

   ''' <summary>
   ''' Gets the latest release from the specified repository on GitHub.
   ''' </summary>
   ''' <param name="userName">
   ''' The user name.
   ''' </param>
   ''' <param name="repositoryName">
   ''' The repository name.
   ''' </param>
   ''' <returns>
   ''' The resulting <see cref="GitHubRelease"/>.
   ''' </returns>
   Public Shared Function GetLatestRelease(ByVal userName As String, ByVal repositoryName As String) As GitHubRelease

       Dim t As Task(Of GitHubRelease) = Task.Run(Function() GitHubUtil.GetLatestReleaseAsync(userName, repositoryName))
       t.Wait(Timeout.Infinite)

       Return t.Result

   End Function

   ''' <summary>
   ''' Asynchronously gets a value that determine whether exists a new version available of the specified reository on GitHub.
   ''' </summary>
   ''' <param name="userName">
   ''' The user name.
   ''' </param>
   ''' <param name="repositoryName">
   ''' The repository name.
   ''' </param>
   ''' <param name="currentVersion">
   ''' The current version.
   ''' </param>
   ''' <returns>
   ''' <see langword="True"/> if exists a new version available on GitHub; otherwise, <see langword="False"/>.
   ''' </returns>
   Public Shared Async Function IsUpdateAvailableAsync(ByVal userName As String, ByVal repositoryName As String, ByVal currentVersion As Version) As Task(Of Boolean)

       Dim latestRelease As GitHubRelease = Await GitHubUtil.GetLatestReleaseAsync(userName, repositoryName)
       Return (latestRelease.Version > currentVersion)

   End Function

   ''' <summary>
   ''' Gets a value that determine whether exists a new version available of the specified reository on GitHub.
   ''' </summary>
   ''' <param name="userName">
   ''' The user name.
   ''' </param>
   ''' <param name="repositoryName">
   ''' The repository name.
   ''' </param>
   ''' <param name="currentVersion">
   ''' The current version.
   ''' </param>
   ''' <returns>
   ''' <see langword="True"/> if exists a new version available on GitHub; otherwise, <see langword="False"/>.
   ''' </returns>
   Public Shared Function IsUpdateAvailable(ByVal userName As String, ByVal repositoryName As String, ByVal currentVersion As Version) As Boolean

       Dim t As Task(Of Boolean) = Task.Run(Function() GitHubUtil.IsUpdateAvailableAsync(userName, repositoryName, currentVersion))
       t.Wait(Timeout.Infinite)

       Return t.Result

   End Function

#End Region

End Class
#77
Así es como se llama el título del siguiente video. ( perdón por el clickbait. :P )

Todo lo que explica este individuo a mi personálmente me parece la respuesta más lógica a muchos enigmas de la masonería, y por eso le concedo el beneficio de la duda y... que coño, puedo creerme todo lo que dice con bastante facilidad, por que todas las explicaciones resultan muy lógicas llegando a cobrar más sentido que cualquier otra explicación a las que ya todos nosotros estamos acostumbrados a escuchar... ya saben, cosas como por ejemplo "los masones son una sociedad secreta que conspira contra el mundo y le hacen culto a satán", etc., eso me parecen tonterías.

¿Y ustedes, que creen, puede que sea cierto lo que dice este individuo?. juzguen ustedes mismos...

[youtube=640,360]https://www.youtube.com/watch?v=mBXqV1TPJ18[/youtube]

Saludos!
#79
Buenas.

He desarrollado una pequeña colección de seis plugins para SmartBot, el famoso bot para el videojuego Hearthstone de Blizzard.

Si son usuarios registrados, aquí pueden encontrar todas mis publicaciones:


Si no son usuarios registrados entonces están perdiendo su tiempo leyendo este post por que no les sirve de mucho este aporte. :P

Aquí tienen el código fuente:



Saludos.
#80
Mi duda es simple pero requiero de una opinión experta, alguien que tenga un buen ojo analítico y buen detalle. Esta pregunta no la puede responder cualqueir persona conformista... lo siento por hacer esta brusca petición, pero así es como necesito que sea para mi bien estar.

El problema es que me he comprado un monitor LG 24MP58VQ-P por 143€, pero se ve como el culo.



Tengo intención de devolver el producto, y esta vez intentar adquirir un monitor que se vea bien. El presupuesto máximo son 300€ - 320€.

Los problemas de ese monitor son muchos, empezando por el más desagradable para mi: un tono de color amarillento insufrible, y casi imposible de eliminar del todo.

Aparte de eso, el monitor tiene mala definición, no entiendo por que, pero cuando hay una imagen en movimiento se vuelve borrosa la imagen, no es un efecto borroso extremo, pero lo suficiente borroso como para que sea molesto y no puedas llegar a ver bien ni intentar seguir con los ojos la imagen en movimiento. Se nota mucho, a pesar de que en la configuración del monitor activé al máximo la opción de "Tiempo de respuesta de imagen".




Pues bueno. Necesito un monitor que sea mejor, que para empezar no tenga un tono amarillo por defecto (o que al menos se pueda configurar/eliminar, vaya), sino blanco, que el color sea real, y las imágenes en movimiento se vean bien.

El tamaño del monitor que busco son 24 pulgadas, de 26 o 28 pues tampoco me voy a quejar. Y con una resolución widescreen tradicional, 1920x1080. No busco los 4K ni pantallas ultra-widescreen, pero si el monitor que supere a un LG 24MP58VQ-P tiene 4K y se ajusta al presupuesto pues tampoco le voy a hacer un feo, claro está. Lo importante es que se vea bien la imagen en el monitor, no con tono amarillento, con colores reales, y los objetos en movimiento no se vean borrosos.

No busco una pantalla orientada al gaming, de hecho no la busco orientada a nada en particular, simplemente para las cosas cotidianas, y programar con los ojos tranquilos, ver un poco de cine, y jugar algún juego de forma esporádica.

¿Alguien con experiencia puede aconsejarme un buen producto que se ajuste a mis requisitos?. No me hagan recomendaciones por recomendar, por favor, productos que hayan probado y sepan que se van a ver mejor que el LG 24MP58VQ-P.




Mi antiguo monitor, un LG Flatron E2350:



A pesar de que las especificaciones técnicas de un LG Flatron E2350 y un LG 24MP58VQ-P son practicamente iguales en todo excepto en el consumo de wattios y poco más, y que además hay una diferencia bastante generosa del año de lanzamiento de cada producto, no hay ni punto de comparación entre uno y el otro, entre lo bien que se ve la imagen en un antiguo LG Flatron E2350, y lo mal que se ve en el nuevo LG 24MP58VQ-P siendo sus especificacioens tecnicas identicas, insisto. (además de eso el LG Flatron es infinitamente más configurable)
Por es emotivo les pido que no me hagan recomendaciones basadas en especificaciones tecnicas de productos, sino en la experiencia personal.

Mi LG Flatron E2350 era un monitor exquisito, por eso me confié en la marca LG y me lancé de cabeza a comprarme el LG 24MP58VQ-P por su reducido precio, esperando encontrarme un buen producto, que al menos superase en calidad a mi antiguo monitor, pero no ha sido así en absoluto.

He dejado esta opinión en Amazon, donde adquirí el producto. Aquí pueden encontrar más detalles que les haga comprender mis necesidades de consumo...

CitarNo entiendo a los consumidres que ya han dado su opinión sobre el producto, incluyendo supuestos fotografos profesionales que dicen que este monitor es maravilloso comparandolo con otros.

Os daré una opinión humilde y sincera:

Para empezar, vengo de estar usando un LG Flatron E2350 durante los últimos años, me costó alrededor de 200€ si mal no recuerdo, y a pesar de tener ya su tiempo es infinitamente superior en todos los sentidos a este monitor. Me arrepiento de haber adquirido este monitor, ahora explico el por qué.

Nada más instalarlo y encender el monitor por primera vez, la temperatura de color por dejefcto obtiene un tono amarillento bastante desagradable para la vista, a menos que seas amante de las luces amarillas, yo prefiero una luz blanca. Los colores son amarillentos en general. Además de eso, el contraste está elevadisimo, el RGB es extremadamente intenso, y eso molesta a la vista.

La cantidad de opciones de configuración de brillo, color y definición son pésimas, a pesar de que llevo días intentando ajustar cada parámetro probando distintas combinaciones sin prisa pero sin pausa para intentar obtener un tono blanquecino, el color real, donde el blanco sea blanco... no amarillo, y el negro sea negro, es muy dificil lograrlo, tanto que aun sigo sin ser capaz de configurar correctamente el color para eliminar por completo ese tono amarillento del que hablé. Y los perfiles de color, por llamarlos de alguna manera, tan solo son 3, uno modo lector que te deja un tono todavía más amarillo si cabe, y otro perfil por nombre "cool" que deja un tono azulado muy intenso. Sencillamente horribles. La configuración de este monitor es una auténtica basura.

La definición de la imagen es mala, a pesar de lo que digan en otros comentarios otros clientes satisfechos, debe ser conformismo o que nunca han visto nada mejor. Realmente es una definición muy mala. Cuando la imagen de un video está en movimiento (por ejemplo una cara que se balancea de lado a lado) la imagen se vuelve borrosa, demasiado borrosa mientras el objeto está en movimiento, y esto no es algo que se arregle con las opciones de "super resolution" ni "sharpness" de la configuración del monitor.

El botón con el que enciendes/apagas y configuras el monitor (si, es un único botón para todo), tiene una pinta muy frágil, parece que vaya a romperse si lo usas más de dos veces. No inspira ninguna confianza.

Me esperaba algo mejor viniendo de la marca LG, más que nada por que como ya he dicho al principio, yo he estado usando un monitor LG Flatron E2350 durante los últimos 4 o 5 años, y le supera en todo, color, definición, opciones de configuración, etcétera. Esperaba que despues de tantos años, adquirir un producto de LG por un precio más o menos igual a mi antiguo monitor me ofreciese alguna ventaja, pero no ha sido así, es un producto decepcionante, y me estoy pensando seriamente devolverlo, por que solo me genera problemas en la visión.

Espero que este humilde y sincero comentario le haya servido a alguien. Gracias por leer.
#86
Recuerdo que en la película aparecía un niño enfermo que necesitaba ciertos cuidados muy especiales, el niño estaba aislado en una habitación sin salir de casa por que debido a su enfermedad necesitaba estar dentro de una especie de habitáculo de plástico raro que le servía para respirar aire "descontaminado"...

era algo parecido a un invernadero como este de aquí abajo, pero cuadrado, y transparente, hermético y de tamaño reducido por que como ya digo era para que viviera el niño en su interior, en una habitación de tamaño normal...



el caso es que si el niño salia al exterior y respiraba aire normal, se podía enfermar o morir.

No recuerdo NADA del argumento de la peli, tan solo lo que he explicado. Lo que si recuedo es que transcurría la vida del niño en esa habitación, mostraban como era pequeño y se iba haciendo cada vez más adulto, hasta que le dieron ganas de salir al exterior... pero no recuerdo si al final salió o no. Creo que la habitación del niño estaba llena de tubos raros que conectaban con el habitácluo de plástico para transmitirle el aire descontaminado.

nota: puede que algunos detalles mencionados no sean realmente como yo los creo recordar.

La película seguramente es de los 90 ya que es la época en la que la visualicé. Como mucho podría ser de mediados o finales de los '80...

¿alguien tiene alguna pista acerca del nombre de esa peli?.
#87
Buenas.

A veces me pregunto si hay una forma eficiente de buscar el título de una película en Inglés, en otro idioma. Es decir, si yo solo conozco el título de la película en Inglés, y se que ha sido comercializada en España pero no se cual es su título en Español, y tampcoo encuentro imágenes/posters en Español de esa película, ¿qué modo hay para averiguar el título en Español? (de España).

He pensado que a lo mejor en imdb.com debe haber algún modo para ver con qué título se comercializó "X" película en otros paises, pero no se si existe esa funcionalidad en esta página, no encuentro nada que me diga lo que quiero saber...

¿se les ocurre algún modo?.
#88
Quiero compartir con vosotros una reflexión personal que he tenido reciéntemente acerca de la espiritualidad, en particular acerca de la reencarnación... y que vosotros deis vuestra opinión sobre mi reflexión, o sobre el tema de la reencarnación en general, vaya.

Empecemos formulando la siguiente pregunta: ¿existe la reencarnación humana?. Bueno, quizás para determinar si existe la reencarnación primero debamos construir algunas bases lógicas y medianamente sólidas (a falta de pruebas observables ni reproducibles) con las que intentar analizar cuales son las posibilidades de que el "fenómeno" conocido como Reencarnación realmente se pueda llevar a cabo en un ser humano, entonces la pregunta cambiaría a ser: ¿es posible la reencarnación?, y mi conclusión es: NO

Antes se proseguir me gustaría aclarar un par de cosas, la primera es que no tengo creencias religiosas, no creo en un Dios anciano, barbudo y sentado en un trono en "el cielo", mientras ama y observa a los humanos, pero sin embargo si que creo firmemente en la existencia de un creador del universo al que no se si se le podría definir como una entidad inteligente, o como algo indefinible y no necesariamente atribuible al término de "entidad", y creo que cualquier persona puede comunicarse con ese creador a través de la voluntad del pensamiento (por voluntad me refiero a ejercer la intención de transmitirle tus pensamientos, otra cosa muy distinta ya sería ser respondidos o no serlo). Además de esto considero la posibilidad de que Jesús de Nazareth realmente haya existido, no lo creo ni lo dejo de creer, simplemente dejo abierta la posibilidad a falta de pruebas que puedan desmentir esta creencia tan popular entre la humanidad. Dudo hasta el punto de ser practicamente incrédulo hacia todo lo demás que esté relacionado con la religión (ángeles, demonios, cielo, infierno, etc) ya que son cosas imposibles de demostrar a ciencia cierta.
Lo segundo que quiero aclarar es que varios aspectos de mis creencias personales se basan en creencias espirituales, como por ejemplo la distinción entre cuerpo y alma, o el conocido fenómeno del viaje astral, aunque no por ello asumo ni doy por hecho que necesariamente tengan que ser fenómenos espirituales que la ciencia no pueda explicar algún día. y quien sabe si incluso reproducirlo por medios científicos

Bien, vamos con la conclusión de la que hablé al principio... ¿es posible la reencarnación?, no, al menos no en seres humanos, ¿y por qué no?, pues por la lógica de los números...
los números (la aritmética) siempre ha sido el mejor instrumento del que dispone la humanidad, capaz de demostrar "cualquier" cosa con la mayor de la exactitud que se ha conocido hasta la fecha... ya que todo en el universo "son números".

Considero que mi razón es muy simple y a su vez aplastantemente razonable, así que no debo andarme con más rodeos para explicar algo tan simple de entender: la reencarnación no es posible por que los números nos indican que en el hipotético caso de serlo, habrían más seres humanos que almas, o dicho de otro modo: habría cuerpos "vacíos", sin un alma reencarnada.

No es ningún misterio que la humanidad vive en una época de superpoblación, cada día aumenta en general la tasa de natalidad mundial, es por ello que en mi opinión la reencarnación no es un fenómeno posible en este mundo, ya que si aceptásemos que una persona al morir su alma "se eleva" para encarnarse en una nueva persona (en un feto apunto de nacer) entonces... ¿que ocurre con el resto de seres humanos que nacen al mismo tiempo, no hay reencarnación para ellos?, entonces que son, ¿robots con inteligencia artificial?.

Espero que se entienda lo que intento decir, pero por si acaso lo diré de otro modo: para que la reencarnación fuese posible, el número de reencarnaciones deberia ser igual al número de habitantes del planeta, cuando muere una persona nace otra y el alma se reencarnaría en esa nueva persona/vida, pero esto no es así, por cada persona que muere nacen 80 más, y no puede haber "personas sin alma" por lo tanto la reencarnación no es posible, no es real, no existe, o al menos estamos equivocados en el entendimiento de la misma.

Aparte de esta razón principal, muchos aspectos comunes de distintas filosofías que apoyan la creencia de la reencarnación siempre han sido muy convenientes, demasiado, hasta el punto en el que en mi opinión esas creencias deberían ser consideradas un insulto a la inteligencia, sin ir más lejos la afirmación de que si nosotros tenemos una vida de mierd@ si por ejemplo somos un individuo en estado vegetativo en la cama de un hospital pues no debemos sentir pena, debemos sonreir ya que hemos decidido reencarnar en esta persona vegetativa para sufrir, para que nos pasen estos males, en fin, "proceso evolutivo de consciencia" lo llaman algunos... creencia muy conveniente para gente que no sabe aceptar la realidad lo llamaría yo. No digo que no haya que sonreir e intentar disfrutar de lo que la vida nos ofrece aun en las peores circunstancias en las que nos podamos encontrar, pero llegando a esa conclusión por voluntad propia, no escudarse en la idea de que esto es lo que queremos que nos pase por que hemos reencarnado para sufrir... es absurdo.

Y vosotros, ¿qué pensais respecto a la reencarnación?, ¿estais de acuerdo con mi lógica?, ¿creeis que se me escapa algún detalle importante que a lo mejor he podido omitir?.

Saludos!
#89
FHM Crawler


Este tipo de programa se suele conocer como web-crawler o web-spider.

FHM Crawler es un simple programa para recolectar los enlaces de descarga del sitio web http://freehardmusic.com/,
el cual posee una base de datos gigantesca de álbumes de Rock y subgéneros.



Antes de seguir, me gustaría aclarar una cosa para los criticones y usuarios interesados en analizar el código fuente:

Si ven las imágenes del programa aquí abajo, se puede apreciar a simple vista que no me he esmerado más que lo justo y necesario en el diseño de la interfaz gráfica,
la disposición de los controles en la interfaz de usuario es fea, varias funcionalidades se podrían integrar a través de un menú contextual en el control ListView,
esto es como es, por que la intención fue crear una interfaz muy simple con el único objetivo de demostrar el uso del algoritmo-crawler que he desarrollado para esta página web. Esto lo hice para ustedes, no para mi, así que no me esmeré en la UI; y por ese mismo motivo también, esta será la única release que publicaré de este programa.

Además, a diferencia de como siempre hago cuando comparto un código fuente, en esta ocasión el código fuente lo comparto sin documentar (excepto la parte de mi librería comercial ElektroKit), esto tiene una sencilla razón, y es que solo desarrollé este algoritmo para utilizarlo una única vez y olvidarme de él para siempre (aun así, es un algoritmo robusto al menos en principio), así que no invertí esfuerzo en escribir documentación XML, pero creo que el código es lo suficientemente sencillo como para entenderlo por si mismo.

Por último, cabría mencionar que la aplicación hace uso de la conocida librería de terceros HtmlagilityPack para simplificar el parsing/análisis de datos del código fuente de la página web.




Imágenes










Vídeo





Descarga


Saludos!