The Eternal Castle [REMASTERED] – Nintendo Switch

08/09/2020
Artículo original

The Eternal Castle [REMASTERED] es un juego con un estilo visual bastante particular. Los gráficos se limitan a 2-bit emulando las viejas tarjetas CGA de IBM con hasta 4 colores a la vez en pantalla. Esta limitación técnica hace que los gráficos sean espectaculares, logrando resultados súper detallados que generan un ambiente único. El juego y sus escenarios transmiten mucho, algunas partes asustan más que otras y nuestro personaje va a pasar por desesperanza, opresión y miedo, y todo esto con muy pocos píxeles. Hay varias animaciones rotoscópicas que se ven increíbles. Empecé a jugarlo en modo portátil y se ve excelente. Pero ver esos gráficos retro pixelados en la pantalla grande de la TV está genial. La música acompaña muy bien, con temas retro synthwave que capturan la época de los 80’s. La banda sonora merece una escuchada. En momentos que tiene que ser tenebrosa lo es, y cuando tiene que ser más dinámica también. De a ratos nos acompaña únicamente el sonido ambiente que también ayuda a mantenernos inmersos en el mundo surreal al que nos transporta esta aventura. Es un juego de plataformas y acción, donde tenemos que defendernos a puños y patadas o con armas que [...]

The post The Eternal Castle [REMASTERED] - Nintendo Switch first appeared on Picando Código.

Hyrule Warriors: Age of Calamity – Nintendo Switch

08/09/2020
Artículo original

Nintendo anunció de la nada un título nuevo en el universo de La Leyenda de Zelda. A primera vista parecía contenido descargable para Hyrule Warriors, pero no, se trata de un juego completamente nuevo en esa misma serie – Hyrule Warriors: Age of Calamity. Lo más interesante es que va a ser una precuela de The Legend Of Zelda: Breath Of The Wild. Va a contar la historia de Zelda, los 4 campeones y el Rey de Hyrule 100 años antes de los eventos de Breath Of the Wild. Me resultó interesante cómo Koei-Tecmo “se ganó” este título. El primer juego de Hyrule Warriors salió para Nintendo Wii U en 2014 como un spin-off de la serie. El equipo de desarrollo eligió Zelda para un crossover entre Dynasty Warriors y Nintendo. Le presentaron el concepto a Eiji Aonuma -productor de los juegos de Zelda en Nintendo- quien venía intentando romper un poco con las tradiciones de la saga (algo que quedó demostrado con Breath Of The Wild). Nintendo y Aonuma confiaron en Koei Tecmo y el título tuvo muy buenas ventas (relativamente, el Wii U no fue una consola muy exitosa). Fue acompañado de contenido descargable, una versión para Nintendo [...]

The post Hyrule Warriors: Age of Calamity - Nintendo Switch first appeared on Picando Código.

China bloquea el acceso a Scratch, la plataforma de enseñanza de programación para niños del MIT, por alojar "contenido antichino"

07/09/2020
Artículo original

China bloquea el acceso a Scratch, la plataforma de enseñanza de programación para niños del MIT, por alojar

Scratch es un lenguaje de programación visual desarrollado por el MIT con el fin de introducir a los niños en la programación informática. Su interfaz, basada en coloridos bloques que se unen a modo de puzle, esconde una herramienta mucho más potente de lo que parece.

Y quizá por eso sea uno de los recursos favoritos de los educadores de todo el mundo para enseñar a los niños a programar. Pero hay alguien que no comparte su entusiasmo: el gobierno chino.

Presente en los libros de texto, inaccesible en Internet

Recientemente, las autoridades del gigante asiático habrían bloqueado el acceso al sitio web de Scratch: el 14 de agosto, según un usuario de la plataforma, o el día 20, según Greatfire.org, una ONG que monitoriza la censura de Internet en China. Por ahora, eso sí, nada dificulta el uso de la versión de escritorio.

Los datos del MIT indicaban que hasta 3 millones de menores chinos venían usando Scratch para aprender programación. Se utiliza, incluso, en libros de texto oficiales de primaria y en diversos concursos de programación, según explica Anqi Zhou, director ejecutivo de Dream Codes True.

Parece ser que el motivo de la polémica decisión de las autoridades radica en los informes de que Projects on Scratch (el repositorio de proyectos desarrollados por los propios usuarios de la plataforma) contendría "numeroso contenido humillante y difamatorio sobre China".

A eso, además se le se suma que en la página de registro de los usuarios aparecen "Hong Kong", "Macao" y "Taiwán" como 'países', lo que consideran una promoción de las reivindicaciones independentistas en un momento en el que aún está fresco el recuerdo de las manifestaciones antichinas de Hong Kong.

La prensa china ya se ha hecho eco de las críticas de las autoridades y del sector educativo de China contra Scratch por la difusión de esta clase de contenidos, pero no está claro si el bloqueo tiene vocación de permanencia o es un mero toque de atención al MIT para que cambie sus políticas al respecto.

Imagen | Captura de pantalla extraída del sitio web China.com.cn

Microsoft cerrará Visual Studio Codespaces en febrero de 2021, en favor de su IDE hermano: GitHub Codespaces

07/09/2020
Artículo original

Microsoft cerrará Visual Studio Codespaces en febrero de 2021, en favor de su IDE hermano: GitHub Codespaces

Sólo hace 10 meses desde que Microsoft lanzó la preview pública de Visual Studio Online, la versión web de su famoso IDE Visual Studio que permitía a cualquier usuario con conexión a Internet y una cuenta Microsoft probar gratuitamente esta herramienta alojada en la nube.

Visual Studio Online permitía registrar nuestros propios entornos de desarrollo autohospedados sin coste económico, pero también crear, sobre la base de Azure, entornos de desarrollo totalmente hospedados y administrados de pago.

Dos Codespaces

Más tarde, el pasado mes de mayo, Microsoft realizó dos anuncios: el cambio de nombre de Visual Studio Online por Visual Studio Codespaces, y el lanzamiento de GitHub Codespaces... una IDE basado en el anterior, con la única diferencia de que en este caso estaría integrado en la plataforma GitHub.

Cuatro meses han estado coexistiendo ambas plataformas, hasta que Microsoft ha confirmado lo que muchos ya se imaginaban: que dicha coexistencia estaba confundiendo a los usuarios y resultaba redundante, y que en este pueblo sólo hay espacio para un IDE online basado en Visual Studio.

Adiós, Visual Studio Codespaces

Finalmente, GitHub Codespaces ha sido el ganador del duelo: ésta será la plataforma que absorba a su rival y aúne todas las funcionalidades de ambas en un mismo lugar: Visual Studio Codespaces dejará de prestar servicio a partir de febrero de 2021, aunque ya desde noviembre dejará de recibir nuevos usuarios.

De modo que sus usuarios están invitados a abandonar el barco y subirse al de GitHub Codespaces… aunque, eso sí, no contarán con ninguna migración automatizada para ello. Además, Microsoft aún no ha aclarado nada sobre los precios que deberán pagar los usuarios del nuevo servicio (GitHub Codespaces está actualmente en estado de beta gratuita).

Pero, ¿Qué ocurre si venías usando Visual Code Studio pero no trabajabas con repositorios GitHub? Absolutamente nada: aunque requerirá algunos pasos extra de configuración, los desarrolladores seguirán pudiendo usar sus repositorios de Azure o BitBucket (por ejemplo) cuando trabajen con GitHub Codespaces.

Vía | Microsoft

Así se convirtió Kotlin en el lenguaje de referencia para los desarrolladores en Android

05/09/2020
Artículo original

Así se convirtió Kotlin en el lenguaje de referencia para los desarrolladores en Android

Kotlin se ha convertido en uno de los lenguajes de programación con mayor crecimiento en GitHub, y el número de personas que han tenido que trabajar con código Kotlin ha pasado de 3,5 a 5,8 a lo largo del último año; sumemos a eso ser uno de los cinco más queridos por los desarrolladores que usan Stack Overflow.

Pero, más allá de eso, el gran logro de este lenguaje nacido hace sólo cuatro años ha sido desbancar al vetusto pero popular lenguaje Java, habiendo conquistado el corazón incluso de los creadores de Android: en mayo de 2019, Google declaró a Kotlin su lenguaje de programación preferido para el desarrollo de aplicaciones Android.

Y no es sólo cosa de Google ni de miles de aficionados a la programación: las grandes compañías están eligiendo también pasarse a Kotlin para desarrollar sus aplicaciones: Duolingo, Pinterest, Uber, Evernote, Square... en total el 70% de las 1000 apps más usadas de la Play Store están desarrolladas en el lenguaje desarrollado por JetBrains.

Simplicidad, interoperabilidad, rendimiento y gestión de excepciones

Kotlin comparte una característica con otros jóvenes lenguajes que están ganando popularidad en estos últimos años, como Python: la apuesta por simplificar la sintaxis sin sacrificar para ello la funcionalidad.

Siendo el desarrollo de apps un sector que sigue necesitando una gran aportación de capital humano a lo largo y ancho del mundo, esta simplicidad ayuda a dotarle de popularidad frente a opciones como C++ y Java.

Según algunas estimaciones, recurrir a Kotlin puede llegar a reducir en un 40% el número de líneas de código frente a su equivalente en Java, en parte porque es capaz de expresar de manera más concisa lo que desea que haga el dispositivo.

Además, otra gran ventaja de Kotlin es que es capaz de afrontar mejor uno de los grandes problemas a la hora de programar en Java: las llamadas excepciones de puntero nulo, que se producen cuando se intenta usar una referencia que no apunta a ningún lugar de la memoria y que son capaces de bloquear aplicaciones.

Pero incluso así, un lenguaje como Kotlin habría tenido muy difícil desbancar a Java cuando gran parte del código escrito para Android ya se encontraba escrito en dicho lenguaje. Ahí es donde entra en juego la interoperabilidad total entre ambos lenguajes; según podemos leer en kotlinlang.org,

"El código Java existente se puede llamar desde Kotlin de una manera natural, y el código Kotlin también se puede utilizar desde Java sin problemas".

Eso está facilitando que cada vez el código escrito en Kotlin tenga que recurrir menos a bibliotecas escritas en Java, permitiendo utilizar un Kotlin puro que se ejecuta con más soltura que aquel que incluye código Java heredado porque puede prescindir del JVM y recurrir a compilar para LLVM (la máquina virtual de bajo nivel).

De este modo, se borran de un plumazo los impedimentos que pudiera haber para subirse al barco de Kotlin, ya sea con proyectos nuevos o con aquellos que lleven tiempo en desarrollo.

Además, Kotlin no es una amenaza para Java únicamente en el ámbito Android, sino que es un lenguaje de propósito general, que ha experimentado un gran crecimiento también en ámbitos como el desarrollo del lado del servidor o la ciencia de datos... y que ahora se dispone a asaltar también iOS, gracias al lanzamiento, hace menos de una semana, de una herramienta denominada Kotlin Multiplatform Mobile.

Vía | GadgetsNow

Microsoft y la NASA lanzan tres cursos para enseñar cómo usar Python y machine learning en las misiones espaciales

04/09/2020
Artículo original

Microsoft y la NASA lanzan tres cursos para enseñar cómo usar Python y machine learning en las misiones espaciales

La exploración espacial es un campo que ha inspirado a miles de científicos para formarse con el objetivo de aportar su granito de arena a la hora de ampliar las fronteras de nuestro conocimiento sobre el universo. También en el campo de la computación.

Por ello, Microsoft y la NASA han unido esfuerzos y acaban de anunciar el lanzamiento conjunto de una serie de cursos online destinados a formar a aquellos se inician en la programación a usar el lenguaje Python y algoritmos de machine learning… para tareas relacionadas con el ámbito de la NASA: desde clasificar rocas espaciales a predecir las condiciones meteorológicas durante el lanzamiento de los cohetes.

Este trayecto formativo nos irá enseñando conceptos básicos sobre qué es un lenguaje de programación, o sobre cómo podemos usar el editor Visual Studio Code de Microsoft, instalar extensiones para Python o ejecutar un Jupyter notebook desde dicho editor.

Es decir, todo lo necesario para empezar a trabajar en un proyecto de machine learning. Pero no nos engañemos: el curso no nos enseñará cómo codifican en Python los ingenieros de la NASA, sino que aporta ideas de cómo Python podría ser útil para afrontar algunos desafíos reales de la exploración espacial.

Primer módulo: Introducción a Python para la exploración espacial

En el módulo de 'Introducción a Python para la exploración espacial', compuesto de ocho unidades, encontraremos información sobre el programa Artemis de la NASA (que tiene como objetivo aterrizar a la primera mujer en la Luna en 2024) y sobre sus principales sistemas tecnológicos (de comunicación, de lanzamiento, de exploración lunar, etc.).

Este primer módulo no ofrecerá mucha información sobre cómo programar en Python, pero sí explica el importante papel que tienen los ingenieros informáticos en estas misiones, gracias a su papel en el diseño y uso de diversas máquinas:

"Decidir cómo programar un robot para recoger muestras de roca, recopilar metadatos y no perturbar el área de muestra, no es algo trivial, más aún si tenemos en cuenta que los programadores no podrán probar los robots en un entorno verdaderamente preciso antes de enviarlos a la misión".

Segundo módulo: Clasificar rocas espaciales mediante Python e inteligencia artificial

El módulo 'Clasificar rocas espaciales mediante Python e inteligencia artificial' también está compuesto de ocho unidades, y requiere ya de cierta familiaridad con Python y la ciencia de datos, pues detalla las principales bibliotecas de análisis de datos y visualización de datos para este lenguaje (como PyTorch), además de vincularlo todo a los servicios de IA de Azure.

Durante este módulo, los estudiantes aprenderán cómo diseñar un modelo de inteligencia artificial capaz de clasificar diferentes tipos de rocas espaciales a partir de fotos aleatorias.

Tercer módulo: Predecir retrasos en el lanzamiento de cohetes con machine learning

Compuesto de sólo tres unidades, 'Predecir retrasos en el lanzamiento de cohetes con machine learning' nos enseña qué tipos de algoritmos son los más adecuados para diferentes tipos de análisis, desde clasificar imágenes a generar recomendaciones, además de ofrecer más información sobre la creación de modelos de aprendizaje automático. El objetivo principal de este modulo es, según Microsoft,

"Emocionar a los estudiantes y hacer que tengan curiosidad por descubrir cómo el machine learning podría ayudar a resolver otros problemas, tanto en el descubrimiento del espacio como en diferentes aspectos de la vida".

Vía | TechRepublic

Cómo crear un botón de menú hamburguesa solo con CSS (sin imágenes ni JavaScript)

01/09/2020
Artículo original

En este post aprenderemos a hacer un botón para un menú hamburguesa que cambiará de icono entre las clásicas tres rayitas y un aspa (vamos, una "X") alternativamente cada vez que hagamos clic.

Aquí puedes verlo en acción para que te hagas una idea:

Y todo esto sin usar imágenes ni JavaScript. ¿Magia? ¿Brujería? No, CSS.

De hecho, este botón lo podríamos aprovechar para usarlo con este menú escamoteable, también sin JavaScript, que ya vimos en otro post.

Este botón, en realidad, no es un botón. Usaremos un input del tipo check para "guardar el estado" y su label para mostrar los iconos.

¿Cómo va a funcionar este botón?

El plan es este:

  • Gracias al seudoelemento :checked sabremos si el input está marcado o no

  • Con los seudoelementos :before y :after de su label construiremos las tres rayas

  • Por defecto estarán las tres rayas, y si el input está :checked se convertirán en un aspa

Pasamos a construirlo con HMTL y CSS

Este sería el HTML de nuestro botón:

<input id="abrir-cerrar" name="abrir-cerrar" type="checkbox" value="" />
<label for="abrir-cerrar" class="toggle-button"></label>

A través de CSS escondemos el input y le damos estilos al label:

    input#abrir-cerrar { 
        visibility:hidden;
        position: absolute;
        top: -9999px;
    }
    
    .toggle-button {
        display:block;
        width:50px;
        height:50px;
        border:1px solid black;
        position:relative;
        cursor: pointer;
        box-sizing: border-box;
    }

Ahora nos toca retocar los seudoelementos :before y :after del label para dibujar las tres rayitas.

Al :before le asignamos aproximadamente una altura de 1/4 del total de la altura del label y usamos el borde superior e inferior. En el :after simplemente le damos una altura de 1 px y nos apoyamos en su color de fondo.

Además, a ambos le aplicamos ya una transición para que el cambio de estado sea suave:

    .toggle-button:before, .toggle-button:after {
        position:absolute;
        display:block;
        content:" ";
        width: calc(100% / 2);               
        box-sizing: border-box;
        left: calc(100% / 4);
        transition: all 0.2s ease-out;
    }

    .toggle-button:before {
        top: calc(100% / 4);
        height:calc(100% / 4);
        border-top:1px solid black;
        border-bottom:1px solid black;
        background-color: transparent;
    }

    .toggle-button:after {
        height:1px;
        background-color:black;
        bottom:calc(100% / 4);
    }

El comportamiento del botón

Un pequeño recordatorio: las buenas prácticas aconsejan que el comportamiento se maneje siempre con JavaScript, pero el objeto de este post es mostrar la posibilidad de hacerlo simplemente con CSS. Usa este ejemplo bajo tu responsabilidad.

Cuando el input está :checked (o sea, hemos hecho clic sobre él), modificamos el :after y le damos una altura de 1 px y color de fondo como el del :before, les aplicamos una transformación para girarlos 45º en distinto sentido y los posicionamos centrados verticalmente:

    input#abrir-cerrar:checked + .toggle-button:before, input#abrir-cerrar:checked + .toggle-button:after {
        top:calc(100% / 2);
        height:1px;
        border-bottom:0;
    }

    input#abrir-cerrar:checked + .toggle-button:before {
        transform: rotate(45deg); 
    }

    input#abrir-cerrar:checked + .toggle-button:after {
        transform: rotate(-45deg);
    }

Cabe decir que podríamos hacer una versión más sencilla con dos rayas en vez de tres si al :before le aplicamos por defecto una altura de 1 px y color de fondo como en el :after.

Adicionalmente, podemos introducir un par de span dentro del label que nos ayudarán a mostrar un tooltip y mejoraremos la accesibilidad.

Nuestro HTML quedaría finalmente así:

    <input id="abrir-cerrar" name="abrir-cerrar" type="checkbox" value="" />
    <label for="abrir-cerrar" class="toggle-button">
        <span class="cerrar" title="Cerrar">Cerrar</span>
        <span class="abrir" title="Abrir">Abrir</span>
    </label>

Junto con este CSS para posicionar, mostrar y ocultar los span según nos convenga:

    .abrir, .cerrar { 
        position:absolute;
        top:0;
        right:0;
        bottom:0;
        left:0;
        text-indent: -9999px;
    }

    .abrir {
        display:block;
    }

    .cerrar {
        display:none;
    }

    input#abrir-cerrar:checked + .toggle-button .abrir {
        display:none;
    }

    input#abrir-cerrar:checked + .toggle-button .cerrar {
        display:block;
    }

Ejemplo descargable y más allá

Si quieres probar el ejemplo completo, lo puedes descargar en este enlace.

A partir de aquí puedes hacer múltiples variantes a tu gusto o necesidad para adaptarlo al diseño de tu web. Por ejemplo, en vez de mostrar los tooltips del title, podrías mostrar directamente el contenido de los span.

¿Cómo? ¿Que estás empezando con HTML y CSS y no sabes bien como adaptar el ejemplo? No te preocupes, este curso de HTML y CSS se encargará de que entres en la materia con paso firme.

Y si ya sabes HTML y CSS pero lo que quieres es ponerte al día en las últimas técnicas, este otro curso de maquetación web responsive es justo lo que necesitas.

Espero que te resulte útil el ejemplo de este post. Y si tienes dudas o sugerencias, puedes dejarlas en los comentarios.

Ex-Zodiac – Shooter 3D con gráficos poligonales inspirado en los clásicos de los 90’s ahora en Kickstarter

28/08/2020
Artículo original

Hace un tiempo escribía en el blog sobre Ex-Zodiac, un juego inspirado en Star Fox original escrito en Godot. Desde entonces he ido siguiendo su desarrollo y estoy muy contento de ver que hay un plan para completar su desarrollo y financiarlo a través de Kickstarter. Ex-Zodiac es un juego shooter con gráficos estilizados que evocan juegos 3D de principios de los 90’s. La protagonista Kyuu lucha para liberar los mundos del Sistema Estelar Sanzaru, invadido por la organización terrorista intergaláctica conocida como Zodiac. Ya hay un demo disponible que podemos descargar en Steam, y en lo que va de desarrollo se puede ver el potencial y lo divertido que viene siendo el juego. Características generales: – Estilo visual retro, colorido y con pocos polígonos emulando los juegos de la época. – 12 niveles principales (más áreas secretas y caminos alternativos). – Varias rutas para completar el juego. – Jefes gigantes al final de cada nivel, cada uno pilotado por un miembro de Zodiac. – Banda sonora estilo 16-bit por +TEK combinando FM y síntesis wavetable. Su desarrollador es Ben Hickling quien viene trabajando en él hace más de 2 años en su tiempo libre. El objetivo del Kickstarter es [...]

The post Ex-Zodiac - Shooter 3D con gráficos poligonales inspirado en los clásicos de los 90's ahora en Kickstarter first appeared on Picando Código.

Actualización a Montevideo Bicis con datos de accidentes 2019

28/08/2020
Artículo original

Montevideo Bicis es un sitio web que presenta información “objetiva” para gente que quiera circular en bicicleta en Montevideo. Aprovecha Datos Abiertos de la Intendencia de Montevideo y y UNASEV. Recientemente UNASEV liberó los datos de accidentes de tránsito de 2019, así que el sitio está actualizado con los datos de accidentes de tránsito hasta 2019. También corregí un error en el JavaScript del comportamiento de los botones de “Datos completos”. Ahora se muestran bien las tablas con los datos completos de todos los años. Hay información desde 2012 hasta 2019, y mientras sigan abriendo los datos, seguiré actualizando. Aproveché la actualización también para hacer algunas mejoras en el código, más que nada en cuanto a legibilidad para que me sea más fácil de mantener. En algún momento hasta le dedicaré un tiempo más para eliminar todo lo que va quedando del “Hackathon Driven Development” que le dio vida. Estaciones Movete El sitio incluye un mapa con información también de datos abiertos de la Intendencia de Montevideo. Uno de los datos son las estaciones Movete, estaciones de préstamo de bicicletas públicas en Montevideo. Lamentablemente me enteré que este servicio dejó de funcionar. En parte lo atribuyen a la reducción importante [...]

The post Actualización a Montevideo Bicis con datos de accidentes 2019 first appeared on Picando Código.

¿Mock a EntiityManager es posible con Spring?

26/08/2020
Artículo original

Hola buenas tardes a todos.

Hay una duda que tengo y es referente a la forma en que debo inyectar EntityManager dentro de una clase Test, para ello estoy utilizando JUnit y Mockito.

por ejemplo:
ClaseRepositoryImpl => Es la clase que quiero testear
EntityManager => Es lo que necesito falsear

public class ClaseRepositoryImplTest{
    @InjectMocks
    public ClaseRepositoryImpl cr;
   
    @Mock
    public EntityManager em;

    @Before
    public void setUp(){
        MockitoAnnotations.initMocks(this);
    }

        @Test
    public void getCatalogoEjemploTest() {
        List<Ejemplo> listado = this.getCatalogoEjemplo();  //Tengo un método private que me devuelve una Lista de Objetos de tipo Ejemplo
        String nameStoreProcedure = "SP_GET_CAT_EJEMPLO";
       
        Query query = entityManager.createStoredProcedureQuery(nameStoreProcedure, Ejemplo.class);
        Mockito.when(query.getResultList()).thenReturn(listado);
    }

}

leer más

Página Anterior Página Siguiente