Publicado Ruby 2.7.3

01/05/2021
Artículo original

Ruby 2.7.3 ha sido publicado.

Esta versión incluye arreglos a fallas de seguridad. Por favor revise detalles en los los siguientes enlaces.

Ver detalles en la bitácora de contribuciones

Descargas

  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.bz2

    SIZE: 14792727
    SHA1: 4f4a47465b48a91d43fb557b70e47d79f6727a29
    SHA256: 3e90e5a41d4df90e19c307ab0fb41789992c0b0128e6bbaa669b89ed44a0b68b
    SHA512: e9236138be3e61380140f2e0d42f8fb82ad8f5219d454de2f6c2ec546bb208acc8b0f2020f23e6446660d2b3b9ae873cdd8298471f166a5f1efba8e80b05e746
    
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.gz

    SIZE: 16912725
    SHA1: 1fef38fbb31134e6e14df63ee6ce673e118d64ce
    SHA256: 8925a95e31d8f2c81749025a52a544ea1d05dad18794e6828709268b92e55338
    SHA512: 1d036d08016351e8f9e7506a6abaf490fe226cf2ff9c2f9df582b57bff22a960dbaf271a8a167ac09f864613b9b8b14191bb79f8a6900ad5ca24131ecf571d54
    
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.xz

    SIZE: 12073568
    SHA1: ce3d5203d5ab734df01e602c05f68f25249dc3e0
    SHA256: 5e91d1650857d43cd6852e05ac54683351e9c301811ee0bef43a67c4605e7db1
    SHA512: b755d418b3bab2f9f6a8893afd13869269f17065643dde78b9e85ae3538a6d0617893db6e9c3908e00a40c7577a5c912a7c822d8f245cdcfb857be76dfb66c1e
    
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.zip

    SIZE: 20697429
    SHA1: 384cd3a915ad666d7f6b51b2babbe08285433202
    SHA256: 42b56a95e9016bee468af00db49456ee4720d3f9916dda726cdaf83597158376
    SHA512: 527c8ba425b75f13b5837863735811d00b4af49132df13c65fe71a6e04a83d3780a5b2b54b43a95f5b33592f3d689da3f18cefbecef86bcdb0c5e5fc51c7b037
    

Comentarios de la versión

Muchos contribuyentes, desarrolladores, y usuarios que proveyeron reportes de fallas nos ayudaron a completar esta versión. Gracias por sus contribuciones.

Publicado por nagachika el 2021-04-05
Traducción de vtamara

Publicado Ruby 3.0.1

01/05/2021
Artículo original

Ruby 3.0.1 ha sido ha publicado

Esta versión incluye arreglos a fallas de seguridad. Por favor revise detalles en los los siguientes enlaces.

Ver detalles en la bitácora de contribuciones

Descargas

  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.1.tar.gz

    SIZE: 19664598
    SHA1: 60c72f3e501a3be9616385cad3e48bc89d6150a1
    SHA256: 369825db2199f6aeef16b408df6a04ebaddb664fb9af0ec8c686b0ce7ab77727
    SHA512: cb81db2c9b698cf8159b2ca6507f4c7f171e4eb387f5730c4b658ed632b7900a169808e6fbec0ee80598d937030ad5d9c56b63a2a339373ec5d9e1c06b7661d0
    
  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.1.tar.xz

    SIZE: 14486780
    SHA1: 3c5443960fe860ff7055bc02a4793140b9fb9b28
    SHA256: d06bccd382d03724b69f674bc46cd6957ba08ed07522694ce44b9e8ffc9c48e2
    SHA512: 97d2e883656060846b304368d9d836e2f3ef39859c36171c9398a0573818e4ed75bfd7460f901a9553f7f53518c505327a66e74f83704a881469f5ac61fe13d7
    
  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.1.zip

    SIZE: 24014727
    SHA1: 311164da8f68abb58f8590356bf492fc2ab80192
    SHA256: c8703c33904c79613a41a750cc62d210c3c57fec0728476d66b0a9031a499d68
    SHA512: 395cdbd7fd42f0d2b42208c390db7ac2ed8d3e247d9b7fdaa43347a815b108a3680cbebf2ab8f05ec468ff02c832e2f3c1399e616f0f3e3016f6a6e894811b01
    

Comentarios de la versión

Muchos contribuyentes, desarrolladores, y usuarios que proveyeron reportes de fallas nos ayudaron a completar esta versión. Gracias por sus contribuciones.

Publicado por naruse el 2021-04-05
Traducción de vtamara

Noticias de programación para programadores ocupados #17: última semana de abril de 2021

01/05/2021
Artículo original

[youtube:JRLCwIcnl7Q]

Enlaces mencionados esta semana:

 

 

JavaScript ya tiene casi 14 millones de programadores, pero es Rust el lenguaje de programación que más ha crecido el último año

30/04/2021
Artículo original

JavaScript ya tiene casi 14 millones de programadores, pero es Rust el lenguaje de programación que más ha crecido el último año

JavaScript es de lejos el lenguaje de programación más popular de la actualidad, Python es el que le sigue más de cerca, mientras que otros menos veteranos como Rust y Lua son los lenguajes que tienen las comunidades de mayor crecimiento en el último año.

Estos son algunos de los datos del último informe de Developer Economics, el programa de investigación independiente sobre programadores potenciado por SlashData, que acaba de publicar la vigésima edición del State of the Developer Nation. En el nos cuentan sobre los resultados de sus encuestas entre noviembre de 2020 y febrero 2021 y las tendencias clave del momento en el mundo de la programación.

Se estima que hay más de 24 millones de desarrolladores activos en el mundo

Tamano De Las Comunidades De Lenguajes De Programacion Q1 2021 Tamaño de las diferentes comunidades de lenguajes de programación durante primer trimestre de 2021 - SlashData State of the Developer Nation 20th Edition

La vigésima edición de Developer Economics llegó a más de 19.000 encuestados de 155 países de todo el mundo, incluidos los principales hotspots de desarrollo de aplicaciones y aprendizaje automático, como EE. UU., China, India, Israel, Reino Unido y Rusia, y que se extienden hasta Kenia, Brasil y Jordania.

La encuesta en línea se tradujo a ocho idiomas además del inglés: chino simplificado, chino tradicional, español, portugués, vietnamita, ruso, japonés y coreano, y quienes respondieron van desde menores de 18 años hasta mayores de 55. El 79% fueron hombres, 20% mujeres y el resto no especificó genero.

Entre los datos más interesantes que fueron obtenidos tenemos:

  • Estiman que para el primer trimestre de 2021 hay unos 24,3 millones de desarrolladores activos en todo el mundo.
  • JavaScript es el lenguaje de programación más popular con bastante diferencia, con casi 14 millones de desarrolladores que lo utilizan en todo el mundo.
  • Más de 4,5 millones de desarrolladores se unieron a la comunidad de JavaScript en los últimos tres años, el mayor crecimiento en términos absolutos de todos los lenguajes.
  • Incluso en sectores sectores en los que JavaScript no está entre las principales opciones de los desarrolladores, como la ciencia de los datos o el desarrollo embebido, cerca de una cuarta parte de los desarrolladores lo utilizan en sus proyectos.
  • Desde que superó a Java en popularidad a principios de 2020, Python ha permanecido como el segundo lenguaje más adoptado con algo más de 10M de usuarios.
  • El lenguaje preferido por Google para el desarrollo de Android, Kotlin, ha crecido más del doble desde finales de 2017.
  • Rust y Lua fueron las dos comunidades que más crecieron en los últimos 12 meses. Aunque siguen siendo lenguajes de nicho, con comunidades más pequeñas de poco más de un millón de programadores cada una.
  • Java sigue siendo la piedra angular del ecosistema de aplicaciones móviles (Android) y uno de los lenguajes de propósito general más importantes. Desde finales de 2017 casi 2.5 millones de desarrolladores se han unido a la comunidad de Java que ya tiene 9.4 millones.

El informe habla también sobre tecnologías emergentes, los campos del aprendizaje automático, la inteligencia artificial y la ciencia de datos, y hasta entrevistaron a los desarrolladores sobre los efectos de la pandemia en sus flujos de trabajo y aprendizaje. Si quieres leerlo completo, puedes acceder a sus 48 páginas desde este enlace.

{"videoId":"x7ziu8u","autoplay":true,"title":"Las matemáticas no se me dan mal, quiero aprender a programar CAPTCHA 2x04"}
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Rust se consolida como lenguaje de programación: Facebook se suma a su fundación y Microsoft lanza 'Rust for Windows'

30/04/2021
Artículo original

Rust se consolida como lenguaje de programación: Facebook se suma a su fundación y Microsoft lanza 'Rust for Windows'

"Rust es más grande que Mozilla", afirmaba en agosto de 2020 Steve Klabnik, uno de los responsables del desarrollo de Rust, cuando se supo que la situación económica de Mozilla iba a obligar a conformar una Fundación Rust independiente.

Eso quedó confirmado el pasado mes de febrero, cuando Mozilla anunció la puesta en marcha de dicha Fundación... de la mano de Google, Microsoft, Huawei y AWS. Y ahora, tres meses después, Facebook se suma también al equipo.

En palabras de Joel Marcey, responsable del ecosistema open source de Facebook y, desde ahora, miembro de la directiva de la Fundación Rust,

"Nos unimos a la Fundación Rust para ayudar a mejorar y hacer crecer un lenguaje que se ha vuelto muy valioso tanto para nosotros como los desarrolladores de todo el mundo.

Esperamos colaborar con los otros miembros de la fundación y con la comunidad de Rust para convertir éste en un lenguaje mainstream".

Así se subió Facebook al tren de Rust

Facebook empezó a usar Rust en 2016, cuando decidió reescribir los dos proyectos (Mononoke y Mercurial) que conforman su backend de control de cambios de código fuente. Fue entonces una decisión arriesgada, porque requería que el equipo aprendiese a usar un nuevo lenguaje después de haber invertido largas horas en desarrollar los proyectos en otros lenguajes más usados.

En el caso de Mononoke, habían decidido dejar de lado C++ por razones de estabilidad; en el de Mercurial, preferían abandonar el Python de las versiones previas en favor de un lenguaje compilado, por razones de seguridad. Y se decidieron por recurrir al lenguaje creado por Mozilla.

¿El motivo? La capacidad de Rust para detectar errores importantes en tiempo de compilación en lugar de tener que esperar a tener el software en producción, un aspecto fundamental que consideraron que haría rentable la transición a largo plazo.

Pudo haber quedado en un mero experimento para un par de proyectos muy concretos de la compañía, pero la notable mejora de rendimiento que se apreció en el software desarrollado en Rust aumentó también su popularidad dentro de la compañía.

Más tarde, también confió en Rust para desarrollar algunas funciones centrales de su criptodivisa Libra, de nuevo gracias a las garantías que ofrecía en el apartado de la seguridad. En palabras de Ben Maurer, responsable tecnológico de Novi (la filial de Facebook encargada del desarrollo de Libra),

"Durante el año pasado, descubrimos que aunque Rust tiene una alta curva de aprendizaje, es una inversión que ha dado sus frutos. Rust ha ayudado a Libra a construir una implementación limpia de blockchain".

También fue en 2020 cuando Facebook creó un equipo específicamente dedicado a Rust dentro de su unidad de lenguajes de programación. Una de sus tareas es garantizar la interoperabilidad segura de Rust con el código C++ ya desarrollado.

"Tenemos una gran cantidad de código C++ que es necesario para comunicarnos con los sistemas back-end en los que se basan nuestros servicios [y] necesitamos que los desarrolladores puedan utilizar estas bibliotecas de forma segura y sencilla desde Rust sin sacrificar los beneficios que ofrece Rust".

Microsoft presenta 'Rust for Windows'

{"videoId":"x80zq3n","autoplay":true,"title":"Rust for Windows"}

Pero el apoyo por parte de Facebook a la Fundación Rust no es la única novedad que ha traído la semana en lo relativo a este prometedor y pujante lenguaje: Microsoft también anunció hace unos días el lanzamiento de 'Rust for Windows', que no sólo ofrece un 'crate' (componente) que permite al software desarrollado en Rust comunicarse con cualquier API de Windows, sino que lo acompaña de todo un pack de herramientas para desarrollar con Rust en Windows.

La versión para Windows del compilador de Rust está disponible en la web de este último, pero si vamos a usar 'Rust for Windows' necesitaremos usarlo conjuntamente con Visual Studio o con Visual Studio Code (acompañado, en este último caso, de las extensiones Rust-Analyzer y CodeLLDB).

Sin embargo, dado que estos componentes aún están en fase de desarrollo, en ocasiones los usuarios se verán obligados a salir fuera de su entorno de desarrollo habitual: los nuevos proyectos deben crearse desde Cargo (el gestor de paquetes de Rust), utilizando instrucciones en línea de comandos.

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

JavaScript tiene una comunidad de casi 14 millones de programadores, más de la mitad de todos los desarrolladores en el mundo

30/04/2021
Artículo original

JavaScript tiene una comunidad de casi 14 millones de programadores, más de la mitad de todos los desarrolladores en el mundo

JavaScript es de lejos el lenguaje de programación más popular de la actualidad, Python es el que le sigue más de cerca, mientras que otros menos veteranos como Rust y Lua son los lenguajes que tienen las comunidades de mayor crecimiento en el último año.

Estos son algunos de los datos del último informe de Developer Economics, el programa de investigación independiente sobre programadores potenciado por SlashData, que acaba de publicar la vigésima edición del State of the Developer Nation. En el nos cuentan sobre los resultados de sus encuestas entre noviembre de 2020 y febrero 2021 y las tendencias clave del momento en el mundo de la programación.

Se estima que hay más de 24 millones de desarrolladores activos en el mundo

Tamano De Las Comunidades De Lenguajes De Programacion Q1 2021 Tamaño de las diferentes comunidades de lenguajes de programación durante primer trimestre de 2021 - SlashData State of the Developer Nation 20th Edition

La vigésima edición de Developer Economics llegó a más de 19.000 encuestados de 155 países de todo el mundo, incluidos los principales hotspots de desarrollo de aplicaciones y aprendizaje automático, como EE. UU., China, India, Israel, Reino Unido y Rusia, y que se extienden hasta Kenia, Brasil y Jordania.

La encuesta en línea se tradujo a ocho idiomas además del inglés: chino simplificado, chino tradicional, español, portugués, vietnamita, ruso, japonés y coreano, y quienes respondieron van desde menores de 18 años hasta mayores de 55. El 79% fueron hombres, 20% mujeres y el resto no especificó genero.

Entre los datos más interesantes que fueron obtenidos tenemos:

  • Estiman que para el primer trimestre de 2021 hay unos 24,3 millones de desarrolladores activos en todo el mundo.
  • JavaScript es el lenguaje de programación más popular con bastante diferencia, con casi 14 millones de desarrolladores que lo utilizan en todo el mundo.
  • Más de 4,5 millones de desarrolladores se unieron a la comunidad de JavaScript en los últimos tres años, el mayor crecimiento en términos absolutos de todos los lenguajes.
  • Incluso en sectores sectores en los que JavaScript no está entre las principales opciones de los desarrolladores, como la ciencia de los datos o el desarrollo embebido, cerca de una cuarta parte de los desarrolladores lo utilizan en sus proyectos.
  • Desde que superó a Java en popularidad a principios de 2020, Python ha permanecido como el segundo lenguaje más adoptado con algo más de 10M de usuarios.
  • El lenguaje preferido por Google para el desarrollo de Android, Kotlin, ha crecido más del doble desde finales de 2017.
  • Rust y Lua fueron las dos comunidades que más crecieron en los últimos 12 meses. Aunque siguen siendo lenguajes de nicho, con comunidades más pequeñas de poco más de un millón de programadores cada una.
  • Java sigue siendo la piedra angular del ecosistema de aplicaciones móviles (Android) y uno de los lenguajes de propósito general más importantes. Desde finales de 2017 casi 2.5 millones de desarrolladores se han unido a la comunidad de Java que ya tiene 9.4 millones.

El informe habla también sobre tecnologías emergentes, los campos del aprendizaje automático, la inteligencia artificial y la ciencia de datos, y hasta entrevistaron a los desarrolladores sobre los efectos de la pandemia en sus flujos de trabajo y aprendizaje. Si quieres leerlo completo, puedes acceder a sus 48 páginas desde este enlace.

{"videoId":"x7ziu8u","autoplay":true,"title":"Las matemáticas no se me dan mal, quiero aprender a programar CAPTCHA 2x04"}
(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

Por qué migrar de Navision (o Microsoft Dynamics Nav) a Business Central

30/04/2021
Artículo original

Imagen ornamental

Business Central es el ERP de Microsoft heredero directo de Navision y de Microsoft Dynamics Nav, y todas las empresas que están usando estos dos últimos deberán migrar de Navision a Business Central en los próximos 2 o 3 años si no quieren quedarse sin soporte.

Recientemente hemos mantenido una charla sobre esto con José Ángel López Aguilar (especialista en ERPs de Microsoft y autor y tutor de nuestro curso de Business Central y migración desde Navision) y en este post te apuntamos alguna de las claves sobre la migración y de las mejoras que supone el pasar de trabajar con Navision o Microsoft Dynamics Nav a Business Central.

[youtube:ODRQ_3RALMY]

En primer lugar, cabe destacar que Business Central tiene servicios web, tiene un cliente Web, API REST... Disponer de Business Central te abre todo un mundo tecnológico de conectividad e integración con otros sistemas. Esto se traduce en poder trabajar desde cualquier sitio, ya sea con un ordenador como con un móvil o una tablet.

Actualmente, actualizar de una versión de Business Central a la siguiente es muy sencillo (si trabajas con extensiones y lenguaje AL), pero actualizar desde Navision/Nav no era tan fácil por la forma en que se distribuían los parches y porque los desarrollos que se hacían sobre estas plataformas eran muy intrusivos con el código de la aplicación estándar.

Debido a esto, hay una gran cantidad de empresas que en su momento no le no veían ninguna ventaja a actualizarse y se han ido quedando atrás en versiones obsoletas de Navision, pero ahora van a tener que dar un gran salto tecnológico para ponerse al día.

Estas empresas que se han quedado atrás se están empezando a dar cuenta de que tienen problemas severos para integrarse con Power BI, con Excel o simplemente para extraer KPIs básicos. Tareas sencillas que en el moderno Business Central prácticamente se realizan con un simple clic. Por ejemplo, las versiones anteriores a Navision 2017 ni siquiera disponen de una API rest.

Si sale cualquier parche nuevo de Microsoft, por alguna novedad contable o por cualquier otra razón, un cliente Dynamics NAV 2018 (por ejemplo) ya se ha quedado sin poder actualizar desde 2018, excepto en el caso disponer del soporte extendido. Pero este tipo de soporte solo aplica para actualizaciones de seguridad y conlleva un importante coste adicional.

Al no tener soporte real, ante cualquier cambio tendrán que tirar de consultoría de su partner de confianza (que también le cobrará las horas, obviamente) y que en muchos casos le hará un desarrollo que no será más que un parche temporal porque la migración será igualmente inevitable a medio plazo.

Queda claro, pues, que para estas empresas el trabajar con versiones obsoletas de Navision como ERP les está suponiendo un agujero negro de dinero, recursos y productividad. Y por si todo esto no fuese suficiente, ante la pandemia de la COVID-19 se han encontrado con que no podían disfrutar de la flexibilidad de la conectividad remota de las versiones modernas de Business Central.

El reto de migrar Navision a Business Central

En Business Central se programa de forma totalmente distinta a Navision así que, si te encargas del mantenimiento o te han encargado la migración de un antiguo ERP montado en Navision/Nav y necesitas ponerte al día, recuerda que tenemos un curso pensado específicamente para tu situación y, además, es bonificable. Tanto si tienes que formarte tú como si necesitas formar un equipo en Business Central,  esta es la mejor opción.

Y si eres un desarrollador web buscando un campo de especialización con gran presente y mucho más futuro, no te lo pienses, Business Central puede ser tu gran oportunidad. Además, hoy en día desarrollar para un ERP como Business Central ya no supone una limitación a la hora usar las últimas tecnologías web y especializarse no significa que te vayas a estancar, siempre podrás volver a otros tipos de aplicaciones web.

Siete días en el Picandoverso – Abril 4: No Control

28/04/2021
Artículo original

Es la primera vez desde que empecé esta serie de posts de “Siete días” en que no hay otros posts entre medio de uno y el siguiente. Pero esa era la idea original, que me forzara a escribir al menos un post a la semana con este resumen. Y este mes se cumplió con la edición número 14, ¡catorce semanas de repasos! Vengo con bastantes proyectos en el trabajo y de a poco volviendo a socializar más en el MundoReal™. De a poco van abriendo más cosas en Escocia y he vuelto a ver más amigos, así que por ese […]

El post Siete días en el Picandoverso – Abril 4: No Control fue publicado originalmente en Picando Código.

Expulsado de la Play Store el IDE JavaScript más usado en Android: sus creadores dicen que sólo pudieron (intentar) explicarse ante bots

27/04/2021
Artículo original

Expulsado de la Play Store el IDE JavaScript más usado en Android: sus creadores dicen que sólo pudieron (intentar) explicarse ante bots

DroidScript es un IDE que permite el desarrollo simplificado de aplicaciones nativas de Android utilizando únicamente JavaScript. Se trata de una herramienta popular para usos tanto profesionales como educativos (acumula más de un millón de descargas) y con una comunidad de usuarios muy activa...

...pero hace dos semanas sus usuarios descubrieron que la aplicación había dejado de estar disponible en la Play Store. Por decisión de la propia Google, y ante la sorpresa de sus desarrolladores.

No Esto es lo que ve el usuario que trata de acceder al perfil de DroidScript en la Google Play Store.

"Google ha dictaminado que DroidScript es malware y nos ha acusado de fraude publicitario", explicaba hace tres días Dave Hurren, principal responsable del desarrollo de la app, en la lista de correo oficial de DroidScript. "No hace falta decir que estamos bastante cabreados y atónitos por una acusación como esa".

El email de Hurren prosigue explicando que ellos han apelado contra la expulsión, defendido su inocencia y solicitado explicaciones a Google. Pero sin éxito:

"¡Google no nos va a escuchar ni a explicarnos qué hemos hecho mal! Esto afectará a mucha gente".

El desprecio que dicen haber recibido de manos "del equipo de soporte de Google y de sus bots" les ha convencido de que no les queda otro remedio que recurrir a la comunidad para que haga ruido en las redes, y convencer así a Google para que trate a DroidScript de una forma más justa.

Cuando las tiendas de apps transmiten imagen de arbitrariedad...

Todo comenzó cuando el equipo desarrollador recibió un e-mail advirtiendo de la desactivación de su cuenta de AdMob (la red publicitaria que Google ofrece a los desarrolladores para monetizar las apps).

¿El motivo alegado? La supuesta detección de "accesos inverosímiles", que indicarían un intento por parte de Hurren y su equipo de estafar a Google.

A continuación, sus creadores decidieron actualizar DroidScript con una nueva versión que eliminaba el único banner publicitario de la app (incluido hace un año con el mero fin de contribuir al mantenimiento del proyecto).

No sirvió de nada: Google terminó borrando la app de su tienda el pasado 7 de abril.

{"videoId":"x7ziu8u","autoplay":true,"title":"Las matemáticas no se me dan mal, quiero aprender a programar"}

Hurren sospecha que el problema radica en que un "grupo ruso" pudo intentar "clonar" su aplicación, aunque también ve posible un simple caso de 'falso positivo': la IA de Google podría no haber visto con buenos ojos una app que consulta de manera constante todas las API de Android posibles.

El desarrollador afirma que le gustaría poder compartir estas sospechas con Google y debatir el tema poniendo datos encima de la mesa, estando abierto a tomar todas las medidas que estimen convenientes.

El problema es que no ha sido capaz de contactar con ningún responsable de Google. De hecho, cree que hasta ahora los largos emails que han recibido desde la compañía son producto de meros bots, no de empleados humanos.

Vía | The Register

(function() { window._JS_MODULES = window._JS_MODULES || {}; var headElement = document.getElementsByTagName('head')[0]; if (_JS_MODULES.instagram) { var instagramScript = document.createElement('script'); instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js'; instagramScript.async = true; instagramScript.defer = true; headElement.appendChild(instagramScript); } })();

En qué se diferencia un archivo .jar de uno .war en Java

27/04/2021
Artículo original

Cuando creas una aplicación Java, hasta la más sencilla, sueles terminar con unos cuantos archivos .java con el código de tus clases además de otros archivos de recursos y auxiliares que forman parte de la aplicación. Si la aplicación es grande, podemos estar hablando de cientos o miles de archivos. Si tú o tu equipo sois ordenados, podéis (y debéis) organizarlas de manera que sean fácilmente identificables y "encontrables". Pero aun así, a la hora de distribuir la aplicación, moverla entre entornos, almacenarla en repositorios Maven... tener todos esos archivos así "sueltos", no es lo más conveniente.

Es por este motivo que la plataforma Java ofrece la capacidad de empaquetar las aplicaciones en un único archivo que facilita su gestión. Existen diversas formas de empaquetar las aplicaciones Java, pero las dos más comunes son en forma de archivos con las extensiones .jar y .war, que se denominan respectivamente archivos JAR (Java ARchive) y archivos WAR (Web Application Resource).

Se trata de archivos comprimidos con el archiconocido formato ZIP, por lo que podemos abrirlos e incluso crearlos con cualquier compresor común. Pero Java tiene una herramienta específica para gestionarlos: jar.exe que se encarga de crear el archivo con la estructura y los contenidos adecuados.

También existen muchas otras herramientas que crean este tipo de archivos de manera automática, como por ejemplo las herramientas de build como Maven, Ant o Gradle.

Archivos JAR de Java

Un archivo .jar es un archivo comprimido que contiene una estructura de archivos .class (tus clases compiladas), las librerías y los recursos que necesita tu aplicación para funcionar. Además, contendrá metadatos con información sobre sus contenidos, como por ejemplo cuál es la clase principal que se usará para ejecutar la aplicación.

Se empaqueta en este formato para distribuirla de manera sencilla y cómoda.

La siguiente animación muestra los contenidos de un archivo JAR de una aplicación real, abierto con el gestor de archivos comprimidos 7-ZIP en mi equipo:

Animación que muestra algunas carpeta de un archivo .jar

Como ves, contiene una carpeta META-INF con un archivo llamado MANIFEST.MF. Este es el que contiene los metadatos de la aplicación, con cuestiones como los datos del desarrollador, su versión, el iniciador de la aplicación o los paquetes de los que depende y que se deben importar (este es de una conocida aplicación de escritorio para chats y telefonía, Jitsi Desktop):

El contenido del MANIFEST.MF

Además, contiene tantas carpetas como extensiones de paquetes Java existan. Es decir, por ejemplo, si tenemos una clase Java que pertenece al paquete com.miempresa.utils, existirá una carpeta de primer nivel com, dentro de esta otra llamada miempresa y a su vez otra llamada utils, con las clases compiladas y otros recursos de ese paquete, tal y como se ve en la animación anterior.

Los archivos .jar se pueden ejecutar desde la línea de comandos usando el modificador -jar de Java, así:

java -jar miAplicacion.jar

Archivos WAR de Java

Los archivos WAR son unos tipos de JAR especiales para empaquetar aplicaciones Web. También tienen el manifiesto para los metadatos, pero la estructura interna es diferente. Disponen de una carpeta llamada WEB-INF que contiene los archivos de la aplicación Web (aunque algunos pueden estar en la raíz también) y un archivo web.xml con información sobre la misma y con cuestiones como, qué URLs se corresponden con qué elementos de código, las dependencias o ciertas variables entre otras cosas. Si solo hay archivos .jsp, podemos prescindir de ese archivo XML.

Un ejemplo de estructura típico podría ser:

META-INF/
  |___ MANIFEST.MF
WEB-INF/
  |___ web.xml
  |___ jsp/
        |___ holamundo.jsp
  |___ classes/
  		|___ application.properties
        |___ *.class  //Archivos de clases
        |___ lib/
              |___ *.jar //Otros archivos .jar de librerías
index.html
hola.jsp

Pudiendo incluir también archivos de imágenes, JavaScript, CSS, vídeos... y todo lo que la aplicación Web necesite.

Como vemos, por tanto, la primera diferencia con los archivos JAR es que la estructura de los archivos WAR es muy diferente a la de estos.

Además, al ser archivos específicos para aplicaciones Web, no los podemos ejecutar desde la línea de comandos como los .jar, sino que necesitaremos utilizar un servidor de aplicaciones, como Tomcat, JBoss o Weblogic, para ejecutar la aplicación.

Para construirlo se usa también jar.exe y lo pueden producir las mismas herramientas de build también, eso sí.

Página Anterior Página Siguiente