Conoce los beneficios de contratar a una mujer programadora

Es sumamente rentable involucrar a las mujeres en el mundo tecnológico. Así lo indican datos de ONU Mujeres, desde donde aseguran que la presencia femenina activa en el trabajo cambia la estructura económica de los países y su PIB aumenta.

En la misma línea, y de acuerdo a estimaciones del Ministerio de Economía, el PIB de Chile aumentaría en casi 1%  si se atrae a 100.000 mujeres al mercado laboral.

Andrea Armijo, directora de Capital Humano de Fundación Kodea, señala a que los testimonios de las empresas que han contratado mujeres programadoras coinciden en que ellas destacan por su empatía, trabajo en equipo, influencia, orientación al logro, planificación y también por desarrollar las habilidades técnicas necesarias rápidamente.

“Hacer de la industria tecnológica un sector más inclusivo va en la dirección correcta. Ahora lo que necesitamos es que la apuesta que hacen estas programadoras tenga un puesto de trabajo abierto que sea sostenible en el tiempo y que se las sume como una más al equipo, porque son profesionales productivas en el corto plazo y que quieren seguir aprendiendo”, destaca.

iniciativas en Chile

Fundación Kodea no es la única instancia que tiene como una de sus metas la incorporación de mujeres en las filas de las empresas tecnológicas. Existen otras organizaciones cuya misión es empoderar mujeres en el mundo de la programación, según consigna “El Mercurio”.

Una de ellas es Laboratoria, la cual recientemente anunció que, además de la capacitación que brinda a sus alumnas, han creado una plataforma de selección de talento. En ella, posibles empleadores pueden encontrar los perfiles de sus Front End Developers, Prototypers y UX Designers egresadas que se encuentran listas para iniciar su carrera en el sector tech.

“La transformación digital necesita equipos que la hagan realidad y que sepan “aprender a aprender”, por eso nuestro programa se especializa en desarrollar los skills del futuro que las empresas necesitan para competir en la era digital”.

Otra de las iniciativas es “Jóvenes Programadores”, del Programa BiblioRedes de la Dirección de Bibliotecas, Archivos y Museos (DIBAM). Esta iniciativa ha beneficiado a más de 20.000 personas, muchas de estas mujeres, desde el 2014.

Recopilación De Información Utilizando El Harvester En Kali Linux

Hoy aprenderemos sobre la recopilación de información utilizando Harvester en Kali Linux. Una buena recopilación de información puede marcar la diferencia entre una prueba de penetración exitosa y una que no ha podido proporcionar el máximo beneficio al cliente.

TheHarvester ha sido desarrollado en Python por Christian Martorella. Es una herramienta que nos proporciona información sobre cuentas de correo electrónico, nombres de usuario y nombres de host / subdominios de diferentes fuentes públicas como motores de búsqueda y servidor de claves PGP.

Esta herramienta está diseñada para ayudar al probador de penetración en una etapa anterior; Es efectivo, simple y fácil de usar. Las fuentes admitidas son:

Google – correos electrónicos, subdominios

Perfiles de Google: nombres de empleados

Búsqueda de Bing: correos electrónicos, subdominios / nombres de host, hosts virtuales

Servidores Pgp: correos electrónicos, subdominios / nombres de host

LinkedIn: nombres de empleados

Exalead – correos electrónicos, subdominio / nombres de host

Nuevas características:

Retrasos de tiempo entre solicitudes

Exportación de resultados XML

Buscar un dominio en todas las fuentes

Empecemos,

Si está utilizando Kali Linux, abra la terminal y escriba theharvester

De lo contrario, se puede descargar fácilmente desde aquí: https://github.com/laramies/theHarvester

Simplemente descárguelo y extráigalo

Proporcione permiso de ejecución a: theHarvester.py por [chmod 755 theHavester.py]

Luego simplemente ejecute  ./theharvester

Verás algo similar a esto:

Aquí estoy usando Kali Linux.

Simplemente puede usar el comando theHarvester -d [url] -l 300 -b [nombre del motor de búsqueda]

Por ejemplo: theHarvester -d sixthstartech.com -l 300 -b google

Lo que resultará como en la siguiente captura de pantalla:

Método: 2

Para obtener toda la información sobre el sitio web, puede usar el comando como:

theHarvester -d sixthstartech.com -l 300 -b todos

Lo que resultará como:

Método: 3

Para guardar el resultado en un archivo HTML, puede usar la opción –f seguida de un nombre de archivo,

Ejemplo:

theHarvester.py -d sixthstartech.com -l 300 -b todo -f prueba

El resultado en archivo HTML:

¡Eso es todo y espero que esto te haya ayudado!

El programador creó un montón de guiones para automatizar su vida

Crear scripts para automatizar ciertas cosas no es nada nuevo para los programadores. De hecho, dicha automatización se ha convertido en aplicaciones como IFTTT en las que ciertas tareas en nuestros teléfonos también se pueden automatizar, sin embargo, ¿hasta dónde llegaría para automatizar su vida? Resulta que un programador quiere automatizar todo , incluso preparar una taza de café para enviar mensajes de texto a su esposa.

El programador recientemente compartió esos scripts en Github y si usted es un programador que busca entrar en esto, algunos de ellos son bastante divertidos pero bastante útiles. Según el póster Nihad Abbasov, descubrió estos guiones después de que uno de los compañeros de trabajo se fue a un nuevo trabajo y descubrió que había guiones para todo tipo de cosas.

Por ejemplo, había un script que envía mensajes de texto a la esposa del programador de que llegaría tarde al trabajo seguido de un motivo seleccionado al azar de una lista predeterminada. Este script se ejecutará cada vez que inicie sesión en su computadora después de las 9 p.m. Hay otro script que busca el nombre de un cliente en particular que no le gusta, y dado que este cliente siempre pide lo mismo, el script automáticamente transfiere la base de datos del cliente a la última copia de seguridad.

Hay otro que envía excusas a su jefe, diciendo que está enfermo y que trabajará desde su casa, siempre y cuando no haya iniciado sesión en los servidores de la compañía a las 8:45 a.m. Incluso hay un guión que hace que la máquina de café de la compañía comience a prepararle un café con leche y espere 24 segundos antes de verterlo en una taza, porque aparentemente eso es lo que le toma caminar hasta la máquina.

Si desea ver los guiones, consulte Github para obtener más detalles. Mientras tanto, ¿alguno de nuestros lectores de programación tiene guiones novedosos como estos?

Flappy Bird escrito en 90 líneas de código python

Flappy Bird es un juego que no necesita presentación alguna, pero si te cojo con la guardia bajada, decirte que es un juego para móviles que se lanzó en mayo de 2013. A finales de enero del 2014 se convirtió en el juego más descargado de la iOS App Store. Según su autor el juego llegó a generar 50.000 dólares diarios en publicidad y ventas.

El juego empezó a recibir críticas sobre su dificultad e incluso plagiarismo y su autor de forma sorprendente lo borró tanto de la App Store como de Google play.

A partir de ese momento el juego incluso ganó más publicidad y se empezaron a reproducir versiones del mismo para distintas plataformas. He aquí la razón de esta entrada. Una reproducción de dicho juego escrito en python y con un total de 90 líneas de código.

Aquí tenéis un vídeo a cámara ligera de la creación del mismo, en la que el autor de esta versión del juego dice que lo creó en una hora y diez minutos.

Huawei presenta HarmonyOS su nuevo sistema operativo

Huawei ha presentado HarmonyOS como un reemplazo para Android si la guerra comercial entre China y Estados Unidos continúa escalando, pero el sistema operativo también tiene mayores ambiciones.

El gigante tecnológico chino continúa encontrándose en el fuego cruzado entre China y los EE. UU. En su disputa comercial en curso. Si bien Estados Unidos es un pequeño mercado para dispositivos Huawei, el fabricante ha utilizado casi exclusivamente software, hardware y estándares estadounidenses para alcanzar su posición como el segundo mayor fabricante de teléfonos inteligentes.

A principios de este año, la administración de EE. UU. Colocó a Huawei en una ‘lista de entidades’ que impide que las empresas estadounidenses hagan negocios con una empresa sin permiso previo. Las empresas estadounidenses anunciaron rápidamente el cumplimiento de la decisión y Huawei perdió temporalmente asociaciones con Google, Qualcomm, Broadcom, Intel, WiFi Alliance, SD Association, Bluetooth SIG y otros.

Los informes sugieren que Huawei aumentó el ritmo de desarrollo de un sistema operativo en el que ha estado trabajando desde alrededor de 2012. Huawei comenzó a registrar marcas registradas en todo el mundo para ‘HarmonyOS’ el mes pasado, y hoy presentó oficialmente el nuevo sistema operativo en la Conferencia de Desarrolladores de Huawei en Dongguan.

HarmonyOS parece tener similitudes con la visión original de Microsoft para que Windows 10 sea escalable en dispositivos como teléfonos inteligentes, dispositivos portátiles, televisores inteligentes y más. Android mismo tuvo esa visión en un momento, pero desde entonces se ha fragmentado.

Richard Yu, CEO de Huawei, dijo que la capacidad de trabajar en varias plataformas y dispositivos lo hace “completamente diferente de Android e iOS”, al tiempo que agrega que el proyecto será completamente de código abierto.

Huawei destaca cuatro características técnicas distintas de HarmonyOS:

1. Seamless: primer sistema operativo de dispositivo con arquitectura distribuida, que ofrece una experiencia perfecta en todos los dispositivos

Al adoptar la arquitectura distribuida y la tecnología de bus virtual distribuido, HarmonyOS ofrece una plataforma de comunicaciones compartidas, gestión de datos distribuidos, programación de tareas distribuidas y periféricos virtuales. Con HarmonyOS, los desarrolladores de aplicaciones no tendrán que lidiar con la tecnología subyacente para aplicaciones distribuidas, lo que les permitirá centrarse en su propia lógica de servicio individual. Desarrollar aplicaciones distribuidas será más fácil que nunca. Las aplicaciones creadas en HarmonyOS pueden ejecutarse en diferentes dispositivos al tiempo que brindan una experiencia fluida y colaborativa en todos los escenarios.

2. Suave: motor de latencia determinista e IPC de alto rendimiento

HarmonyOS abordará los desafíos de bajo rendimiento con un motor de latencia determinista y una comunicación entre procesos (IPC) de alto rendimiento. El motor de latencia determinista establece las prioridades de ejecución de tareas y los límites de tiempo para la programación anticipada. Los recursos gravitarán hacia tareas con prioridades más altas, reduciendo la latencia de respuesta de las aplicaciones en un 25.7%. El microkernel puede hacer que el rendimiento de IPC sea hasta cinco veces más eficiente que los sistemas existentes.

3. Seguro: arquitectura de microkernel que reestructura la seguridad y la confiabilidad desde cero

HarmonyOS utiliza un nuevo diseño de microkernel que presenta seguridad mejorada y baja latencia. Este microkernel fue diseñado para simplificar las funciones del kernel, implementar tantos servicios del sistema como sea posible en modo de usuario fuera del kernel y agregar protección de seguridad mutua. El microkernel en sí solo proporciona los servicios más básicos, como la programación de subprocesos y el IPC.

El diseño de microkernel de Harmony OS utiliza métodos de verificación formales para remodelar la seguridad y la confiabilidad desde cero en un Entorno de ejecución confiable (TEE). Los métodos de verificación formal son un enfoque matemático efectivo para validar la corrección del sistema desde la fuente, mientras que los métodos de verificación tradicionales, como la verificación funcional y la simulación de ataque, se limitan a escenarios limitados. Los métodos formales, por el contrario, pueden usar modelos de datos para verificar todas las rutas de ejecución de software.

HarmonyOS es el primer sistema operativo que utiliza la verificación formal en el TEE del dispositivo, lo que mejora significativamente la seguridad. Además, debido a que el microkernel HarmonyOS tiene mucho menos código (aproximadamente una milésima parte de la cantidad del kernel de Linux), la probabilidad de ataque se reduce considerablemente.

4. Unificado: el IDE multidispositivo permite que las aplicaciones se desarrollen una vez y se implementen en varios dispositivos

Desarrollado por un IDE de múltiples dispositivos, una compilación unificada en varios idiomas y un kit de arquitectura distribuida, HarmonyOS puede adaptarse automáticamente a diferentes controles e interacciones de diseño de pantalla, y admite tanto el control de arrastrar y soltar como la programación visual orientada a la vista previa. Esto permite a los desarrolladores crear más eficientemente aplicaciones que se ejecutan en múltiples dispositivos. Con un IDE multidispositivo, los desarrolladores pueden codificar sus aplicaciones una vez e implementarlas en múltiples dispositivos, creando un ecosistema estrechamente integrado en todos los dispositivos de los usuarios.

El compilador HUAWEI ARK es el primer compilador estático que puede funcionar a la par con la máquina virtual de Android, lo que permite a los desarrolladores compilar una amplia gama de idiomas avanzados en código de máquina en un único entorno unificado. Al admitir la compilación unificada en varios idiomas, el compilador HUAWEI ARK ayudará a los desarrolladores a mejorar en gran medida su productividad.

Queda por ver si el intento de Huawei de unificar dispositivos bajo un único sistema operativo tiene más éxito que los intentos anteriores, pero algunos en la industria son escépticos sobre la capacidad de HarmonyOS para reemplazar Android.

Jan Vidar Krey, Jefe de Desarrollo de Promon, comentó:

“HarmonyOS no está basado en Android, pero eventualmente tendrá cierta compatibilidad con Android. Las palabras clave aquí son ‘eventual’ y ‘algunas’, y es mi preocupación que esto resulte en problemas importantes para Huawei, con los usuarios definitivamente perdiendo el acceso a muchas, si no a todas, sus aplicaciones. La reacción de esto será feroz, y es poco probable que la compañía se recupere desde un punto de vista de reputación. 

Sabemos que la compatibilidad con Android es muy difícil de lograr, siendo BlackBerry un excelente ejemplo. BlackBerry trató de lograr la compatibilidad, pero al final, el resultado fue terrible para el usuario final. El Android de Amazon ya es una versión “diferente” que los desarrolladores de aplicaciones generalmente ignoran. En el caso de Huawei, su compatibilidad con Android no será lo suficientemente buena, por lo que las aplicaciones pueden funcionar parcialmente o no funcionar en el peor de los casos. 

HamonyOS también causará dolores de cabeza a los desarrolladores de aplicaciones que deberán enfocarse en el sistema operativo por separado, agregando costos y esfuerzos de prueba. Esto se aplica tanto a las aplicaciones y juegos inéditos como a los existentes. Si bien las nuevas aplicaciones se pueden adaptar, esto dependería de los incentivos para hacerlo para este sistema operativo. Existe un paralelo histórico con el Windows Phone de Microsoft, que finalmente falló porque los usuarios no tenían acceso a las mismas aplicaciones disponibles en iPhones y dispositivos que se ejecutan en Android. 

En términos de seguridad, debemos acreditar a Huawei. Harmony OS tendrá Trusted Execution Environment (TEE) en todos los dispositivos para mantener la seguridad de los datos, y no permitirá el acceso de root. 

Pero los problemas que causará, para usuarios finales y desarrolladores, significarán que HarmonyOS podría ser la muerte de Huawei “.

Junto con el TEE, Huawei también debe ser acreditado por hacer que HarmonyOS sea de código abierto. La capacidad de inspeccionar el código del sistema operativo debería ayudar a reducir algunos de los temores de seguridad en la empresa.

A principios de este año, en defensa de su socio de Android, Google argumentó ante la administración Trump que prohibir a Huawei lo obligaría a crear una alternativa a Android que está “en mayor riesgo de ser pirateado, sobre todo por China”.

El medio de comunicación chino Global Times informó que se lanzaría con HarmonyOS un teléfono inteligente dirigido al extremo bajo a medio del mercado entre octubre y diciembre.

El próximo teléfono inteligente principal más importante de Huawei, el Mate 30 Pro, está configurado para continuar usando Android.

Los 10 principales riesgos de invertir en Bitcoin (y cómo evitarlos)

La moneda virtual se considera el futuro del intercambio monetario. El comercio de bienes en línea con una moneda global ciertamente parece un método que podría acelerar el comercio sin las complicaciones de una moneda nacional.

Bitcoin es, con mucho, la moneda más exitosa en la actualidad, pero con cualquier nueva frontera, seguramente habrá algunos obstáculos. A pesar de la reciente popularidad de bitcoin, existen algunos riesgos graves cuando se trata de invertir en criptomonedas.

Con tanta gente corriendo para invertir, es importante estar al tanto de las preocupaciones que rodean a este nuevo mercado. Aquí están los 10 riesgos principales de la inversión de bitcoin y cómo evitar quedar atrapado en ellos.

10. El mercado volátil y fluctuante

El precio de bitcoin cambia constantemente. A partir del 6 de noviembre de 2018, un bitcoin valía $ 6,461.01. Si compraste un bitcoin el 17 de diciembre de 2017, el precio superó los $ 20,000. Días después, el 24, los compradores no podían vender su inversión por más de $ 14,626. El mercado de bitcoins se mueve constantemente de un lado a otro. Con un mercado tan impredecible, no se sabe si obtendrá un retorno de su inversión. Para evitar una pérdida masiva, vigile atentamente el mercado. Hacer pequeñas inversiones; serán más beneficiosos a largo plazo.

9. Cybertheft

La criptomoneda se basa en la tecnología, lo que deja esta inversión abierta a los ataques cibernéticos. La piratería es un riesgo grave, ya que no hay forma de recuperar sus bitcoins perdidos o robados. Muchos informes sugieren que muchos compradores pierden sus inversiones en intercambios y pérdidas mineras. Es más probable que los intercambios sean pirateados, incluso si tiene la protección de una billetera inteligente. Además, si tiene una billetera y olvida o extravía su llave, rara vez hay una forma de recuperar sus monedas. Investigue cuidadosamente sus billeteras de criptomonedas para asegurarse de tener la opción más confiable.

8. Fraude

Además de la piratería, hay una buena cantidad de fraude en el mercado de bitcoins. Los compradores y vendedores buscan intercambiar bitcoins en línea, pero debido a su creciente popularidad, algunos de estos intercambios pueden ser falsos. La Oficina de Protección de Finanzas del Consumidor y la Comisión de Bolsa y Valores han advertido contra estas transacciones en las que los inversores desprevenidos son engañados de sus bitcoins en intercambios fraudulentos. Esta falta de seguridad crea un gran riesgo para los inversores. Si bien los sistemas se han creado para hacer frente a estos problemas, la seguridad sigue siendo un gran problema.

7. Poca o ninguna regulación

Actualmente, el mercado de bitcoins está operando sin ninguna regulación importante. El gobierno no tiene una postura clara sobre la criptomoneda; El mercado es demasiado nuevo. No está sujeto a impuestos, lo que puede hacerlo atractivo como una oportunidad de inversión. Sin embargo, la falta de impuestos podría generar problemas si Bitcoin se presenta como competencia por la moneda del gobierno. A partir de ahora, la criptomoneda no es una moneda ampliamente aceptada, pero el futuro está en constante cambio. No se sabe cuál podría ser el estado del mercado de bitcoins dentro de unos años.

6. Confianza tecnológica

Bitcoin es un intercambio en línea que depende de la tecnología. Las monedas se extraen digitalmente, se intercambian a través de una billetera inteligente y se controlan mediante varios sistemas. Sin esa tecnología, la criptomoneda no vale nada. A diferencia de otras formas de moneda o inversión, no existe una garantía física que lo respalde. Con oro, bienes raíces, bonos o fondos mutuos, usted posee algo que puede intercambiarse. Con una moneda que está 100% basada en la tecnología, los propietarios de bitcoins son más vulnerables a las amenazas cibernéticas, el fraude en línea y un sistema que se puede cerrar.

5. Retención de bloque

Los nuevos bitcoins se crean resolviendo ecuaciones matemáticas llamadas “bloques”, que se crean cada vez que hay un intercambio de bitcoins en línea. Un grupo de minería puede usar el poder computacional para extraer un bloque y ocultarlo a los mineros honestos en lugar de informar el nuevo bloque a la red. Esencialmente, esta es una manera para que unos pocos seleccionados cosechen los beneficios, mientras que otros se quedan sin nada.

4. Uso limitado

Bitcoin puede ser un paso hacia un nuevo intercambio monetario; Sin embargo, hay pocas empresas que lo acepten como una forma viable de moneda. Actualmente, algunas tiendas en línea, incluidas Overstock, Newegg y Monoprix, permiten intercambios de criptomonedas. Además, los propietarios de bitcoins pueden usar sus fondos para viajar con compañías como AirBaltic, Air Lituanica y CheapAir.com. Desafortunadamente, muchas compañías no reconocen bitcoin como un intercambio legítimo.

3. Pérdida financiera

Bitcoin se conoce como un esquema Ponzi, con personas en la cima que se benefician de la ignorancia de los demás. A medida que más personas compran bitcoin, se crea una economía de burbujas. Cuando estalle la burbuja, Bitcoin se volverá esencialmente inútil; Habrá muchas personas aferradas a la criptomoneda, con la intención de vender, pero no podrán descargar. No hay retorno de la inversión, lo que puede equivaler a una pérdida financiera muy dolorosa

2. ¿Moneda u oportunidad de inversión?

La criptomoneda podría ser un efectivo cambio de moneda en línea; sin embargo, los compradores compran bitcoins con la intención de invertir tanto como lo harían con acciones. Algunos incluso piensan que Bitcoin es una sólida oportunidad de inversión para la jubilación. Con un mercado en constante cambio, sin regulación y sin garantías físicas, los inversores pueden terminar perdiendo todo lo que invierten. Si bien Bitcoin podría dar sus frutos, la mejor manera de abordar esta inversión es con precaución. Pequeñas inversiones y pequeños pasos cubrirán más terreno.

1. Tecnología joven

La criptomoneda sigue siendo una tecnología muy joven. Bitcoin surgió hace aproximadamente 10 años, y aún no se ha convertido en algo sólido. Con tantos cambios ocurridos en los últimos años, no se sabe cómo evolucionará el mercado. Bitcoin como lo conocemos puede volverse inútil en el futuro. La mejor manera de abordar esta nueva oportunidad de inversión es con precaución y diligencia debida. Siga los pasos para asegurar sus fondos y prepárese para el futuro del mercado.

La información proporcionada aquí no es una inversión, impuestos o asesoramiento financiero. Debe consultar con un profesional con licencia para obtener asesoramiento sobre su situación específica.

GrandCrab: historia del ransomware de principio a fin

Fue en enero de 2018 cuando se detectaron las primeras muestras de un Ransomware-as-a-Service (RaaS), que llamaron GrandCrab. No solo fue uno de los primeros en ser ofrecido como servicio, sino que también fue en cobrar usando DASH, una de las criptomonedas que se han diseñado pensando en mejorar el anonimato y la privacidad de sus usuarios.

Estas características fueron las que rápidamente hicieron que GrandCrab pasara a ser uno de los ransomware con mayor numero de detecciones en el mundo, logrando en dos meses cerca de 50.000 víctimas y más de 600.000 dolares cobrados en rescates.

Sin embargo, errores en la programación del malware permitían recuperar los datos secuestrados usando una copia de la llave de descifrado que, por error, el desarrollador dejaba en el equipo víctima, con lo que se generó la primera herramienta pública para la recuperación de los datos. Esto no sirvió durante mucho tiempo, pues el equipo de desarrollo de GrandCrab, realizó unas actualizaciones al código e inutilizaron esta herramienta.

Este nivel de gestión por parte de los cibercriminales, significó una especial atención de varias empresas de anti-malware, que empezaron una carrera para detectar todas las variaciones y mecanismos de evasión de anti-malware. De esta manera, se han generado más de 5 versiones del malware hasta la fecha, donde los delincuentes declaran que ya no mantendrán las actualizaciones en el sistema y el FBI hace públicas las llaves maestras de descifrado, ganando esta guerra.

Evolución de las versiones

En la primera versión, los desarrolladores de GrandCrab usaban una única llave de cifrado y varios “exploits kits” para distribuirse. Cuando llegaban a una maquina víctima, se copiaban a si mismos en el folder %appdata%| Microsoft inyectando el comando nslookup.exe para generar una conexión con el C&C en los dominios grandcrab.bit.

Ese dominio, al no ser controlado por la ICANN, entregaba un nivel superior de privacidad al atacante, que en conjunto con su fácil uso, lo convirtió rápidamente en el RaaS preferido en DarkNet, no obstante, su reinado duro solo un par de meses, cuando investigadores descubrieron que copiaba la llave de descifrado en la misma maquina víctima.

Esto generó que, una semana después de publicar la herramienta de descifrado, se lanzara la segunda versión con un nuevo y mejorado algoritmo de cifrado, colocando .CRAB como extensión a los archivos secuestrados.

Pero no fue la única mejora, pues los dominios del C&C fueron modificados y aunque el dominio superior continuaba siendo .bit, estos cambiaban en varias muestras. Además, el método de propagación usado en esta versión fue a través de correos SPAM, aumentando así el numero de víctimas.

Un mes después, se publicó la versión 3 con dos mejoras significativas. La primera generaba una presión sicológica más fuerte a sus víctimas, al cambiar el fondo de escritorio por un mensaje donde le avisaba que su información había sido secuestrada. La segunda mejora, fue colocar una llave en el registry de windows que le permitía auto-ejecutarse y ganar así persistencia en la maquina.

Pero en Julio de 2018, a tan solo 6 meses de su detección inicial, se hizo publica la cuarta versión, que sin duda era la que mejores avances técnicos demostraba, pues incluía uno de los algoritmos de cifrado más eficiente y rápido que se ha desarrollado, llamado Tiny Encryption Algorithm (TEA) y volvio a cambiar su mecanismo de dispersión, usando falsos sistemas de crackeo de software. Así cuando un usuario descargaba un mecanismo para quitar la seguridad de algún software, realmente estaba descargando la nueva versión de este ransomware.

En noviembre se detectó la versión denominada 5.0.4, la cual cambio la forma de propagación, usando campañas de SPAM, ataques de fuerza bruta al servicio de RPD, aprovechando fallos en los sitios web y usando kit de exploits. Además, crea un archivo de instrucciones que la víctima debe seguir para pagar el rescate.

Para celebrar el aniversario, se hizo pública la versión 5.1, que modificaba el procedimiento del pago, pues en el archivo que se creaba se solicitaba instalar el navegador TOR y acceder a una URL especifica, donde se encontraba la billetera a la que se tenia que hacer el pago del rescate. Pero esta versión no duro mucho y a menos de un mes fue actualizado por la versión 5.2.

Versión que mejoraba el proceso de cifrado y que, en el fondo de escritorio, además de colocar su tradicional fondo negro con letras rojas para indicar la ruta del documento donde estaba el proceso, se colocaba un mensaje que decía “Atrápame si puedes”.

La solución encontrada

Tras un año y medio de funcionamiento y más de 1,2 millones de víctimas en todo el mundo, especialmente en América Latina, en junio de 2019 los desarrolladores de GrandCrab publicaron en un foro de DarkNet que difunde RaaS, que ya no iban a continuar con el proyecto y que todas las víctimas tenian dos meses para pagar, sino iban a perder sus archivos para siempre, pues iban a borrar todas las llaves.

Pero el 15 de Julio el FBI hizo publicó que tenía las llaves maestras de descifrado de las versiones 4 y superiores de este malware, a través de un comunicado oficialque indica que las llaves se trabajaron en colaboración con BitDefender y que iban a ser publicadas en el proyecto nomoreransom.org.

Este fue un trabajo en conjunto de más de nueve fuerzas de gobiernos, quienes, como indico el FBI en su comunicado, pusieron a disposición las llaves maestras  en la página web de NoMoreRansom para que cualquier usuario afectado por alguna versión de este ransomware pueda recuperar sus archivos.

Sin embargo, la afectación ya ha sido de mucho tiempo para estas víctimas, por lo que se deben continuar con medidas que permitan salvaguardar información sensible y con los respaldos verificados para poder restaurar en caso de un incidente, sin pagar a los secuestradores.

30 CURSOS DE GOOGLE GRATUITOS ONLINE CON CERTIFICADO

Si estás buscando adquirir o mejorar tu competencias digitales para crecer en tu carrera profesional, o hacer crecer tu negocio, estos cursos de Google gratuitos te serán de gran ayuda en tu formación.

Estos cursos de Google están disponibles en dos plataformas del gigante informático: Actívate y Garage Digital

¿Cuáles son sus beneficios? Son totalmente gratis, puedes obtener un certificado por cada curso que hagas y aprenderás de una de las empresas digitales más exitosas de todos los tiempos, por no decir que la mejor.

En la primera parte encontrarás cursos de Google, completos y gratuitos de marketing digital, productividad, desarrollo web y emprendimiento.

En la segunda, cursos o lecciones que se enfocan en temas más específicas, si lo que estás buscando es especializarte en una temática.

30 Cursos gratuitos ofrecidos por Google con certificado

1. Curso online de Marketing Digital

Aprende las herramientas básicas de Marketing digital para mejorar tu perfil profesional. Incluye contenidos sobre fundamentos de tecnología y mundo digital, SEO, SEM, comercio electrónico, marketing en redes sociales y dispositivos móviles, analítica web y emprendimiento.

Además, aprende cómo hacer un plan de negocio en caso de que quieras crear tu propia empresa.

Acceder al curso

2. Curso online de Analítica Web

Con este tipo de cursos de Google gratuito aprenderás a interpretar y analizar los datos de tráfico de tu sitio web. Descubre qué contenido es el más visitado y despierta mayor interés entre tus usuarios o clientes.

Conoce cuál es el promedio de visitas por página y con todo ello diseña tu nuevo plan comercial. Incluye certificado por la Escuela de Organización Industrial y desarrollado en colaboración con Red.es.

Acceder al curso

3. Curso online de Comercio Electrónico

Transforma un negocio tradicional en un negocio online o lanza al mundo de Internet tu propia idea. Descubre cómo comprar y vender productos y servicios en la red. Rompe fronteras con este curso gratuito y llega a nuevos clientes.

Acceder al curso

4. Curso online de Desarrollo de Apps

Aprende las habilidades y conceptos básicos para crear aplicaciones para dispositivos móviles. Este curso de Google te presenta los principios esenciales que deben inspirar la creación de estas aplicaciones, y así enfocar bien su diseño y programación desde el principio.

Acceder al curso

5. Curso online de Desarrollo Web (Parte I)

Con este curso gratuito te introducirás en el diseño de páginas web de manera profesional. Aprenderás cómo nació la Web y cómo ha llegado a ser lo que es hoy. Serás capaz de crear páginas web correctas de manera profesional utilizando HTML5.

Acceder al curso

6. Curso online de Desarrollo Web (Parte II)

Con este curso gratuito continuarás introduciéndote en el diseño de páginas web. En esta segunda parte completarás tu formación con el lenguaje CSS para poder realizar webs completas de manera profesional.

Acceder al curso

7. Curso online de Productividad Personal

Conoce las herramientas y procesos que te ayudarán a ser más productivo a la hora de buscar trabajo o desarrollar un proyecto con este tipo de cursos de Google.

Aprenderás aspectos relacionados con la gestión del tiempo, marca personal, reputación online, generación de ideas, etc.

Acceder al curso

8. Itinerario online de Emprendimiento

¿Tienes un proyecto y no sabes por dónde empezar? Este itinerario gratuito te introducirá en el mundo del emprendimiento de una manera amena, a la vez que descubrirás cómo convertir tus ideas en realidad.

Acceder al curso

Lecciones especializadas

9. Oportunidades del mundo online

El mundo ya es digital. Descubre las tendencias del mercado y lo que puedes esperar con estos cursos de Google. Adicionalmente, aquí te dejamos 12 trabajos para ganar dinero desde casa.

Acceder a la lección

10. Haz que te encuentren en los buscadores

En esta lección aprende los secretos de la optimización para motores de búsqueda (SEO). Lo cual te ayudará a que los usuarios te encuentren cuando hagan una búsqueda en Internet sobre tus productos o servicios.

Acceder a la lección

11. Saca partido de los buscadores

Aprende cómo aplicar los principios de SEO para aumentar la visibilidad de tu negocio y que por tanto, se beneficie de ello.

Acceder a la lección

12. Descubre el mundo de los buscadores

Descubre cómo funcionan los buscadores, por qué son importantes, cómo van a impactar en tu negocio y por qué son clave para tu éxito en Internet.

Acceder a la lección

13. Promociónate en los buscadores

Descubre los conceptos básicos del marketing en buscadores (SEM) y así darte a conocer entre las personas que buscan exactamente lo que tú ofreces?

Acceder a la lección

14. Mejora tus campañas en buscadores

Ahora que conoces los conceptos básicos sobre las búsquedas de pago, descubre cómo sacar el máximo partido a cada euro que gastes mediante anuncios más inteligentes y dirigidos.

Acceder a la lección

15. Descubre la analítica web

Este tipo de cursos de Google te enseña a clasificar los datos para responder a las necesidades reales de tu negocio y poder medir el alcance de tus acciones en Internet.

Acceder a la lección

16. Ten éxito con la analítica web

Aprende cómo puedes aplicar los conceptos básicos del análisis de datos en beneficio de tu negocio.

Acceder a la lección

17. Crea tu tienda online

Todo lo que necesitas saber sobre el comercio electrónico y lo que puede suponer para tu negocio.

Acceder a la lección

18. Internacionaliza tu negocio

Todo lo que necesitas saber para expandirte internacionalmente: desde el estudio de mercado hasta la traducción del contenido con el fin de vender tus productos o servicios en todo el mundo a través Internet.

Acceder a la lección

19. Vende más a través de Internet

Aprende a optimizar, promocionar y utilizar el retargeting para tu tienda online.

Acceder a la lección

20. Conecta a través del correo electrónico

Afianza la relación con tus clientes y consigue convencer a clientes potenciales a través del marketing por correo electrónico.

Acceder a la lección

21. Promociónate de forma local

Tanto si tu negocio dispone de sede física como si se trata de un servicio local, encuentra la manera de utilizar Internet para llegar a los clientes de tu zona. Te dejamos 20 franquicias baratas para emprender tu negocio.

Acceder a la lección

22. Descubre las posibilidades del mundo móvil

Aprende a utilizar la Web para celulares y sus aplicaciones para llegar exclusivamente a los clientes adecuados.

Acceder a la lección

23. Promociónate en las redes sociales

Las redes sociales sirven para mucho más que para compartir fotos de gatos y para hacer saber que te gustan las fotos de bebés. Descubre todas las formas de utilizarlas en beneficio de tu negocio.

Acceder a la lección

24. Haz que tus clientes locales te encuentren online

Cuando estamos fuera de casa utilizamos el celular para todo. Descubre las formas de sacarle partido a esta oportunidad única y atraer a nuevos clientes.

Acceder a la lección

25. Saca partido a los smartphones

Este tipo de cursos de Google te enseñará cómo llegar a más clientes a través de teléfonos celulares: del SEO a la búsqueda para celulares, pasando por los videos y por la publicidad de display.

Acceder a la lección

26. Saca el máximo partido a tus videos

Descubre las enormes posibilidades que te brindan los videos para llegar a tus clientes, interactuar con ellos y hacer crecer tu negocio.

Acceder a la lección

27. Profundiza en la publicidad de display

Todo lo que necesitas saber para crear campañas inteligentes de anuncios de display que llamen la atención y atraigan más clientes a tu negocio.

Acceder a la lección

28. Primeros pasos para el éxito online

Internet te ofrece muchas maneras de promocionar tanto a tu negocio como a ti mismo. Descubre cómo funcionan todos los canales digitales.

Acceder a la lección

 29. Entra de lleno en las redes sociales

Aprende de la gestión de tus perfiles en las redes sociales, cómo promocionarte en ellas, cómo medir el alcance de tus acciones y lo que debes y no debes hacer en los diferentes medios.

Acceder a la lección

30. Anúnciate en otros sitios web

Descubre la publicidad de display: qué es, dónde aparece y cómo los anunciantes pueden controlar quién la visualiza.

 Acceder a la lección

Entre los casos de éxito de estos cursos de Google, se presenta la historia de Ana, quien luego de ser despedida de su trabajo decidió aprender cómo emprender un negocio y creó Somos Oceano.

¿Cómo convertir cadenas de formato de fecha a fecha en PHP?

Siempre que necesite convertir el formato de fecha de cadena a fecha como m / d / Y, Ymd, dmY, etc. en php. podemos convertir fácilmente el formato de fecha específico de fecha de cadena en php. utilizaremos date () para convertir la fecha de cadena en formato. También podemos establecer la zona horaria antes de convertir la fecha de cadena a fecha en el ejemplo de php.

En este ejemplo, le daré una forma muy simple de convertir la fecha de cadena php en formato de fecha. Te di dos ejemplos para entender cómo harás la conversión de formato de fecha de cadena php. También se agregó la salida de ese ejemplo de php.

Entonces, veamos ambos ejemplos. Puedes entender cómo funciona.

Ejemplo:

<? php  	    $ myStringDate = "1564079400" ;       date_default_timezone_set ( 'Asia / Kolkata' );       $ newDateFormat = date ( 'm / d / Y' , $ myStringDate );      print_r ( $ newDateFormat );?>

Salida:

26/07/2019

Ejemplo 2

<? php  	    $ myStringDate = strtotime ( '26 -07-2019 ' );      $ newDateFormat = date ( 'm / d / Y' , $ myStringDate );      print_r ( $ newDateFormat );  ?>
26/07/2019

Espero que te pueda ayudar ..

TUTORIAL CREANDO UN SISTEMA DE COMENTARIOS CON LARAVEL

Un sistema de comentarios es un requisito principal para el sitio web del blog o cualquier sitio web tutorial. en esta publicación quiero compartir con ustedes cómo crear un sistema de comentarios en la aplicación laravel 5.7. La mayoría de los desarrolladores buscan un buen paquete para el sistema de comentarios, pero si está usando laravel 5, entonces puede hacerlo con un sistema de comentarios anidado mediante una relación de base de datos.

crearemos un sistema de comentarios muy simple con el que puede agregar comentarios y reproducirlos para comentar. Utilizaremos la relación laravel para el sistema de comentarios y lo hará rápido. También puede mejorar con agregar comentarios, editar comentarios, eliminar comandos y reproducir comentarios con ajax si lo desea.

Después de seguir este tutorial, no necesita usar ningún complemento adicional para comentarios como disqus, etc. en su sitio web.

En este ejemplo, crearemos una tabla de publicaciones y una tabla de comentarios utilizando la migración. puede crear una nueva publicación y en la página de detalles de la publicación puede agregar comentarios. crearemos laravel auth, crearemos archivos de migración, controlador, modelo y blade. solo necesita seguir algunos pasos para obtener un sistema de comentarios en vivo con su sitio web.

Página de detalles de la publicación:

Publicar página:

Paso 1: Instale Laravel 5.7

En primer lugar, necesitamos obtener una nueva versión de la aplicación Laravel 5.7 utilizando el siguiente comando, así que abra el terminal O el símbolo del sistema y ejecute el siguiente comando:

compositor create-project --prefer-dist laravel / laravel blog

Paso 2: actualizar la configuración de la base de datos

En el segundo paso, haremos la configuración de la base de datos, por ejemplo, nombre de la base de datos, nombre de usuario, contraseña, etc. para nuestra aplicación de laravel 5.7. Así que abramos el archivo .env y completemos todos los detalles como a continuación:

DB_CONNECTION = mysqlDB_HOST = 127.0 . 0.1DB _PORT = 3306DB _DATABASE = aquí el nombre de su base de datos ( blog )DB_USERNAME = aquí nombre de usuario de la base de datos ( root )DB_PASSWORD = aquí contraseña de la base de datos ( root )

Paso 3: Crear una publicación y tabla de comentarios

Vamos a crear un sistema de comentarios desde cero. así que tenemos que crear la migración para la tabla de “publicaciones” y “comentarios” usando el comando Laravel 5.7 php artisan, así que primero comience el siguiente comando:

php artesanal make: migración create_posts_comments_table

Después de este comando, encontrará un archivo en la siguiente ruta “base de datos / migraciones” y deberá colocar el siguiente código en su archivo de migración para crear tablas.

<? php
  
use Illuminate \ Support \ Facades \ Schema ; 
use Illuminate \ Database \ Schema \ Blueprint ; 
use Illuminate \ Database \ Migrations \ Migration ; 
  
La clase CreatePostsCommentsTable extiende la migración   
{
    / **
     * Ejecuta las migraciones.
     * *
     * @return void
     * /
    función pública up () 
    {
        Schema :: create ( 'posts' , function ( Blueprint $ table ) {   
            $ tabla -> incrementos ( 'id' );
            $ tabla -> cadena ( 'título' );
            $ tabla -> texto ( 'cuerpo' );
            $ tabla -> marcas de tiempo ();
            $ tabla -> softDeletes ();
        });
   
        Schema :: create ( 'comments' , function ( Blueprint $ table ) {   
            $ tabla -> incrementos ( 'id' );
            $ tabla -> entero ( 'user_id' ) -> unsigned ();
            $ tabla -> entero ( 'post_id' ) -> unsigned ();
            $ tabla -> entero ( 'parent_id' ) -> unsigned () -> nullable ();
            $ tabla -> texto ( 'cuerpo' );
            $ tabla -> marcas de tiempo ();
            $ tabla -> softDeletes ();
        });
    }
   
    / **
     * Revertir las migraciones.
     * *
     * @return void
     * /
    función pública abajo () 
    {
        Esquema :: dropIfExists ( 'publicaciones' );
        Schema :: dropIfExists ( 'comentarios' );
    }
}

Ahora debe ejecutar esta migración siguiendo el comando:

php artesanal migrar





Paso 4: crear autenticación

en este paso, necesitamos crear un andamio de autenticación laravel usando el comando auth. Laravel proporciona autenticación de usuario predeterminada. así que simplemente ejecuta el siguiente comando:

php artesanal hacer: auth

Paso 5: crear modelo

En este paso, necesitamos crear publicaciones y comentarios modelo para cada tabla. También necesitamos hacer un código para la relación de laravel para comentarios, respuestas, usuario. Entonces cree ambos modelos como abajo.

Ejecute el siguiente comando para crear el modelo de publicación:

marca artesanal php: modelo Post

app / Post.php

<? php
  
aplicación de espacio de nombres ; 
  
use Illuminate \ Database \ Eloquent \ Model ; 
use Illuminate \ Database \ Eloquent \ SoftDeletes ; 
  
clase Post extiende modelo   
{
    usar SoftDeletes ; 
  
    Protegido $ date = [ 'deleted_at' ]; 
  
    / **
     * Los atributos que son asignables en masa.
     * *
     * @var array
     * /
    protected $ fillable = [ 'título' , 'cuerpo' ];  
   
    / **
     * El tiene muchas relaciones
     * *
     * @var array
     * /
    comentarios de funciones públicas () 
    {
        return $ this -> hasMany ( Comentario :: clase ) -> whereNull ( 'parent_id' );
    }
}

Ejecute el siguiente comando para crear un modelo de comentario:

marca artesanal php: modelo Comentario

app / Comment.php

<? php
  
aplicación de espacio de nombres ; 
  
use Illuminate \ Database \ Eloquent \ Model ; 
use Illuminate \ Database \ Eloquent \ SoftDeletes ; 
  
Clase Comentario extiende Modelo   
{
    usar SoftDeletes ; 
   
    Protegido $ date = [ 'deleted_at' ]; 
   
    / **
     * Los atributos que son asignables en masa.
     * *
     * @var array
     * /
    protected $ fillable = [ 'user_id' , 'post_id' , 'parent_id' , 'body' ];    
   
    / **
     * El pertenece a la relación
     * *
     * @var array
     * /
    usuario de la función pública () 
    {
        devuelve $ this -> belongTo ( Usuario :: clase );
    }
   
    / **
     * El tiene muchas relaciones
     * *
     * @var array
     * /
    respuestas de funciones públicas () 
    {
        return $ this -> hasMany ( Comentario :: clase , 'parent_id' ); 
    }
}

Paso 6: Crear controlador

En este paso, ahora deberíamos crear un nuevo controlador como PostController y CommentController. Entonces ejecute el siguiente comando y cree un nuevo controlador. debajo del controlador para crear un controlador de recursos.

Crear Post Controller usando el siguiente comando:

marca artesanal php: controlador PostController

aplicación / Http / Controladores

<? php
   
aplicación de espacio de nombres \ Http \ Controllers ; 
   
use Illuminate \ Http \ Request ; 
use App \ Post ; 
   
clase PostController extiende Controlador   
{
    / **
     * Mostrar una lista del recurso.
     * *
     * @return \ Illuminate \ Http \ Response
     * /
    índice de función pública () 
    {
        $ posts = Post :: all (); 
    
        vista de retorno ( 'posts.index' , compact ( 'posts' ));
    }
   
    / **
     * Mostrar el formulario para crear un nuevo recurso.
     * *
     * @return \ Illuminate \ Http \ Response
     * /
    función pública create () 
    {
        vista de retorno ( 'posts.create' );
    }
    
    / **
     * Almacene un recurso recién creado en el almacenamiento.
     * *
     * @param \ Illuminate \ Http \ Request $ request
     * @return \ Illuminate \ Http \ Response
     * /
    tienda de funciones públicas ( Solicitud $ solicitud ) 
    {
    	$ solicitud -> validar ([
            'title' => 'requerido' ,
            'body' => 'requerido' ,
        ]);
    
        Post :: create ( $ request -> all ());
    
        return redirect () -> route ( 'posts.index' );
    }
    
    / **
     * Mostrar el formulario para crear un nuevo recurso.
     * *
     * @return \ Illuminate \ Http \ Response
     * /
    función pública show ( $ id ) 
    {
    	$ post = Post :: find ( $ id ); 
        vista de retorno ( 'posts.show' , compact ( 'post' ));
    }
}

Crear Post Controller usando el siguiente comando:

php artisan make: controller CommentController

app / Http / CommentController

<? php
   
aplicación de espacio de nombres \ Http \ Controllers ; 
   
use Illuminate \ Http \ Request ; 
use App \ Comment ; 
   
clase CommentController extiende el controlador   
{
    / **
     * Almacene un recurso recién creado en el almacenamiento.
     * *
     * @param \ Illuminate \ Http \ Request $ request
     * @return \ Illuminate \ Http \ Response
     * /
    tienda de funciones públicas ( Solicitud $ solicitud ) 
    {
    	$ solicitud -> validar ([
            'body' => 'requerido' ,
        ]);
   
        $ input = $ request -> all ();
        $ input [ 'user_id' ] = auth () -> user () -> id ; 
    
        Comentario :: crear ( $ input );
   
        volver atrás ();
    }
}

Paso 7: crear archivos Blade

En el ultimo paso. En este paso tenemos que crear solo archivos Blade. Así que principalmente tenemos que crear un archivo de diseño y luego crear una nueva carpeta de “publicaciones” y luego crear archivos blade para el sistema de comentarios. Entonces, finalmente, debe crear el siguiente archivo blade:

1) index.blade.php

2) show.blade.php

3) create.blade.php

4) commentsDisplay.blade.php

resources / views / posts / index.blade.php

@extends ('layouts.app')
   
@section ('contenido')
<div class = "container" > 
    <div class = "row justify-content-center" > 
        <div class = "col-md-12" > 
            <h1> Administrar publicaciones </h1>
            <a href = "{{ route('posts.create') }}" class = "btn btn-success" style = "float: right"> Crear mensaje </a>   
            <table class = "table table -bordered" > 
                <thead>
                    <th width = "80px" > Id </th> 
                    <th> Título </th>
                    <th width = "150px" > Acción </th> 
                </thead>
                <cuerpo>
                @foreach ($ publicaciones como $ publicación)
                <tr>
                    <td> {{$ post-> id}} </td>
                    <td> {{$ post-> title}} </td>
                    <td>
                        <a href = "{{ route('posts.show', $post-> id)}} "class =" btn btn-primary "> Ver publicación </a> 
                    </td>
                </tr>
                @endforeach
                </tbody>
   
            </table>
        </div>
    </div>
</div>
@endsection

recursos / vistas / posts / show.blade.php

@extends ('layouts.app')
   
@section ('contenido')
<div class = "container" > 
    <div class = "row justify-content-center" > 
        <div class = "col-md-8" > 
            <div class = "tarjeta" > 
                <div class = "card-body" > 
                    <h3 class = "text-center text-success" > ItSolutionStuff.com </h3> 
                    <br/>
                    <h2> {{$ post-> title}} </h2>
                    <p>
                        {{$ post-> body}}
                    </p>
                    <hr /> 
                    <h4> Mostrar comentarios </h4>
  
                    @include ('posts.commentsDisplay', ['comentarios' => $ post-> comentarios, 'post_id' => $ post-> id])
   
                    <hr /> 
                    <h4> Añadir comentario </h4>
                    <form method = "post" action = "{{route ('comments.store')}}" >  
                        @csrf
                        <div class = "form-group" > 
                            <textarea class = "form-control" name = "body" > </textarea>  
                            <input type = "hidden" name = "post_id" value = "{{$ post-> id}}" />   
                        </div>
                        <div class = "form-group" > 
                            <input type = "submit" class = "btn btn-success" value = "Agregar comentario" />    
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

recursos / vistas / publicaciones / create.blade.php

@extends ('layouts.app')
   
@section ('contenido')
<div class = "container" > 
    <div class = "row justify-content-center" > 
        <div class = "col-md-8" > 
            <div class = "tarjeta" > 
                <div class = "card-header" > Crear publicación </div> 
                <div class = "card-body" > 
                    <form method = "post" action = "{{route ('posts.store')}}" >  
                        <div class = "form-group" > 
                            @csrf
                            <label class = "label" > Título de la publicación: </label> 
                            <input type = "text" name = "title" class = "form-control" required />    
                        </div>
                        <div class = "form-group" > 
                            <label class = "label" > Cuerpo del mensaje: </label> 
                            <textarea name = "body" rows = "10" cols = "30" class = "control de formulario" requerido > </textarea>     
                        </div>
                        <div class = "form-group" > 
                            <input type = "submit" class = "btn btn-success" />   
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

resources / views / posts / commentsDisplay.blade.php

@foreach ($ comentarios como $ comentario)
    <div class = "display-comment" @ if ($ comment - > parent_id! = null) style = "margin-left: 40px;" @endif> 
        <strong> {{$ comentario-> usuario-> nombre}} </strong>
        <p> {{$ comentario-> cuerpo}} </p>
        <a href = "" id = "reply"> </a>  
        <form method = "post" action = "{{route ('comments.store')}}" >  
            @csrf
            <div class = "form-group" > 
                <input type = "text" name = "body" class = "form-control" />    
                <input type = "hidden" name = "post_id" value = "{{$ post_id}}" />    
                <input type = "hidden" name = "parent_id" value = "{{$ comment-> id}}" />   
            </div>
            <div class = "form-group" > 
                <input type = "submit" class = "btn btn-warning" value = "Responder" />    
            </div>
        </form>
        @include ('posts.commentsDisplay', ['comentarios' => $ comentario-> respuestas])
    </div>
@endforeach

Ahora estamos listos para ejecutar nuestro ejemplo de aplicación del sistema de comentarios con laravel 5.7, así que ejecute el siguiente comando para una ejecución rápida:

servicio artesanal php