“Wii es una videoconsola producida por Nintendo y estrenada el 19 de noviembre de 2006 en Norteamérica y el 8 de diciembre del mismo año en Europa. Perteneciente a la séptima generación de consolas,​ es la sucesora directa de Nintendo GameCube y compitió con la Xbox 360 de Microsoft y la PlayStation 3 de Sony. Nintendo afirmó que Wii está destinada a una audiencia más amplia a diferencia de las otras dos consolas.​ Desde su debut, la consola superó a sus competidoras en cuanto a ventas,​ y, en diciembre de 2009, rompió el récord como la consola más vendida en un solo mes en Estados Unidos.

La característica más distintiva de la consola es su mando inalámbrico, el Wii Remote, el cual puede usarse como un dispositivo de mano con el que se puede apuntar, además de poder detectar movimientos en un plano tridimensional. Otra de sus peculiaridades era el servicio WiiConnect24, que permitía recibir mensajes y actualizaciones a través de Internet en modo de espera.​ Adicionalmente, la consola puede sincronizarse con la portátil Nintendo DS, lo cual permite que Wii aproveche la pantalla táctil de la Nintendo DS como mando alternativo.”

Después de un poco de historia acá les dejo una pequeña lista de los mejores sitios para descargar los roms:

Si encuentras algún enlace roto, fraudulento o quieres sugerir algún sitio no dudes en colocarlo en los comentarios. Adicionalmente los enlaces no disponibles o que contengan malware se colocan como tachados temporalmente y si no se corrige el problema se eliminan en la siguiente actualización de la publicación.

Saludos…

Leer más

Leer más

Este año tuve la oportunidad de participar en el BrazilJS Conf del 2019. Para quienes no la conocen es la conferencia de JavaScript mas grande del mundo. Había enviado ponencia en las últimas 3 ediciones pero finalmente este año fui aceptado. Mis expectativas era que el evento iba a estar genial pero no sabía como era.

Cuando fui al escenario a realizar la prueba de sonido. Me sorprendí porque no sabía la magnitud del evento. El lugar contaba con puestos para 2000 asistentes y con 4 pantallas gigantes para mostrar la conferencia. Ademas que contaba con excelente organización para entretener a la audiencia y contar con 2 tarimas para no perder tiempo entre ponentes.

El formato de BrazilJS Conf 2019

El evento constaba de 3 días: el primero era de puros talleres y para los ponentes era el día de realizar pruebas. aquí tuve la oportunidad de ver un taller de Matías Johanson sobre el uso de redes neuronales en JavaScript, unas charlas de NIC Brazil y W3C sobre la des-centralización de la web. Pude entrar a una charla de marketing usando datos éticos, es decir, no obtenidos sin permisos de los usuarios o comprados a redes sociales. Me llamó la atención esta última porque no había pensado en que ahora el marketing se hace con datos robados de los usuarios.

El segundo día era el inicio real del evento. Me encantó que habían 2 tarimas, así cuando un ponente estaba por terminar el otro se preparaba y el cambio se hacía sin perder tiempo. También entre cada ponencia un grupo acústico tocaba la canción favorita del ponente entreteniendo la gente. El evento comenzó con un video introductorio de los organizadores, muy emotivo. Luego unas palabras de Jaydson Gomes sobre el trabajo realizado y lo que se esperaba allí. Pude entrar a varias charlas, todas muy buenas y algunas en inglés. Luego de finalizar el evento, varias asistentes organizaron una salida para compartir y conocernos mejor.

El último día seguía el mismo formato del anterior. Llegué un poco tarde por estar practicando mi charla y tenia que hacer una visita. Pero luego de dar mi charla pude disfrutar de todo el evento. En la sala de patrocinantes había un puesto para comprar camisetas donde aproveche y adquirí de VueJS y del evento. También habían unas barajitas con fotos de los ponentes del evento y podías pegarlos en un albúm. En los stands de patrocinios podías conversar con la gente de proyectos y ofertas laborales.

Mi ponencia sobre WebAssemby

Siempre que doy esta charla debo agregar contenido nuevo. Para este evento había agregado cosas nuevas como un demo de Doom 3, Google Keep, entre otros. Por eso no estaba preocupado por la calidad del contenido sino porque debía darla en inglés y no estoy acostumbrado a ello.

Traducí las láminas a portugués usando un traductor en línea. Posteriormente me ayudaron a acomodar algunos detalles. Me gustó ver a las personas emocionadas porque disfrutar el contenido escrito de mi conferencia en portugués. Recibí buenos comentarios en redes sociales sobre ello.

Miguel Useche hablando de Webassembly en el BrazilJS Conf del 2019
Mi auto-retrato antes de comenzar la ponencia. Noten la cantidad de gente, es la mitad porque del otro lado había más.

Creo que me fue bien. Estaba un poco nervioso por tener que hablar en inglés, ver las notas en español pero las láminas en portugués. Respecto a la cantidad de gente, era tanta que no era posible enfocarse en todos, así que no era un problema.

Miguel Useche hablando de Webassembly en el BrazilJS Conf del 2019
Miguel Useche hablando de Webassembly en el BrazilJS Conf del 2019

Palabras finales

BrazilJS Conf fue uno de los mejores evento que he estado. Una organización increíble, excelentes temas y conferencistas. El lugar estaba equipado con todo. La ciudad de Porto Alegre es muy bonita, la gente es demasiado amigable. La comida es excelente, sobre todo las carnes. Buenos dulces y chévere para conocer.

Si alguna vez les llama la atención ir a un BrazilJS Conf, no duden e ir.

La entrada Mi experiencia en el BrazilJS Conf de 2019 se publicó primero en El blog de Skatox.

Leer más

Si están utilizando Vuetify y desean un componente para mostrar notificaciones en vue.js. Verán que existe una llamado Snackbar que permite implementarlos. El problema de este componente es que requiere definirse en cada vista que hagamos en Vue (por la naturaleza de esta librería) y debemos crear un método para mostrarlo.

Esto es un problema en aplicaciones grandes, porque tendríamos código repetido y descentralizado. Gracias a Vuex podemos evitar este tipo de cosas. Por lo que te explicaré como crear notificaciones con vue.js con Vuex.

Definir opciones del Snackbar en Vuex

Primero vamos a definir en vuestro archivo store.js (o donde instancias Vuex.Store) un estado para tener la configuración por defecto del Snackbar. El estado permite almacenar los parámetros del Snackbar de forma global y poder ser accedida desde cualquier vista. Para ello en la sección de state agrega las siguientes opciones:

export default new Vuex.Store({
  state: {
    snackbar: {
      visible: false,
      color: "success",
      text: null,
      timeout: 10000,
      multiline: false
    },
    ...
    ...
  },

Luego en el mismo archivo, definimos una mutación. En Vuex las mutaciones son los métodos que nos permiten modificar un estado. Esta mutación la usaremos a lo largo de la aplicación para lanzar la notificación desde cualquier lado.

El primer parámetro siempre es el estado actual y el segundo el payload. Éste último es enviado cada vez que llamamos a la notificación con el fin de definir la apariencia. Por ejemplo, si ocurre un error podemos enviar los parámetros de que el tipo de notificación sea error y aparezca de color rojo.

En este ejemplo, agregué opciones para decidir si mostrarlo en multi-línea , elegir color, tiempo de duración, etc. Así que en la sección de mutaciones del store.js agrega:

mutations: {
    alert(state, payload) {
      state.snackbar.text = payload.text;
      state.snackbar.multiline = payload.text.length > 50;

      // Si es mas de 50 caracteres definirlo como multilinea
      if (payload.multiline) {
        state.snackbar.multiline = payload.multiline;
      }
   
      // Color para mensajes de error o éxito
      if (payload.color) {
        state.snackbar.color = payload.color;
      }

     // Tiempo de duración
      if (payload.timeout) {
        state.snackbar.timeout = payload.timeout;
      }
      state.snackbar.visible = true;
   },
   closeAlert(state) {
      state.snackbar.visible = false;
      state.snackbar.multiline = false;
      state.snackbar.text = null;
    },
}

También en esta sección de mutaciones agregué una mutación llamada closeAlert(state) para poder alterar la configuración del snackbar y hacer que se oculte.

Crear el componente de la notificación

Lo mas fácil es crear un componente para la notificaciones. Pues así no mezclas código y lo puedes ubicar en un sólo lugar para que se lance.

Este componente consta simplemente de un Snackbar cuyas opciones son extraídas de un dato llamado snackbar. Este dato es extraído del estado de Vuex definido previamente a través de una variable computada.

Aquí puedes ver el ejemplo de mi componente:

<template>
  <v -snackbar top="" v-model="snackbar.visible" :timeout="snackbar.timeout" :multi-line="snackbar.multiline === true" :color="snackbar.color">
    {{ snackbar.text }}
    </v><v -btn text="" dark="" @click="closeAlert">Close</v>
 
</template>
<script>
import { mapMutations } from "vuex";
export default {
  computed: {
    snackbar() {
      return this.$store.state.snackbar;
    }
  },
  methods: {
    ...mapMutations(["closeAlert"])
  }
};
</script>

Ahora, para implementar el cierre, importo las mutaciones de Vuex para tener acceso a la función closeAlert que definimos previamente. De esta forma al llamar a closeAlert (una mutación) modificará el estado de la variable visible, haciendo que se oculte.

Este component lo puedes colocar antes del cierre de tu v-app para que se pued mostrar en todas las páginas.

Crear las notificaciones en Vue.Js

Cada vez que desees mostrar una notificaciones en vuej.js, solo debes realizar un commit. El primer parámetro es el nombre de la mutación, en este caso alert y las opciones del snackbar la pasas como segundo parámetro.

Un ejemplo para una notificación de error sería algo como:

this.$store.commit("alert", {
  color: "error",
  text:
    "Could not load purchase order info. Status Code: " +
    response.status
});

¡Listo! Ahora podrás mostrar notificaciones con vue.js de forma centralizada a lo largo de tu aplicación.

La entrada Crear notificaciones en Vue.js con Vuetify 2.0 y Vuex se publicó primero en El blog de Skatox.

Leer más

Para los que no conocen a VIM, es una versión mejorada del editor de texto VI y es uno de los editores mas populares en las distribuciones Linux y es una herramienta que todo sysadmin debe conocer.

Un amigo me pidió hace unos días que lo ayudara a aprender esta herramienta, y en mi búsqueda de material para ofrecerle encontré esta joya y decidí compartirla.

https://anderrasovazquez.github.io/curso-de-vim/

Es un pequeño curso realizado por Ander Raso Vazquez con la finalidad de enseñar lo básico del uso de esta gran herramienta.

Espero que esta información les sea útil, saludos.

Leer más

It has been so long since I went to my last Fedora conference that to be honest, I was overwhelm. Having so many friends around who actually understand my love for open source and communities, was something that I needed. After 4 countries, I finally arrived to this lovely city that mesmerize me in every way. Budapest has become my favorite city in the world and I will take with me all my life everything that happened during FLOCK… I can literally say that my life changed here. I will try to make a resume of what happened at Flock, so please fetch yourself a drink and lets start.

Diversity and Inclusion: Expanding the concept and reaching ALL the community.

Timing not always seems perfect, but sometimes things work just as they should at the end. When I was named Diversity & Inclusion Advisory I didn’t knew that life would get in the middle and would ended up actually helping people after a bit more than 3 years. I’m glad I was able to catch up with this team who has been doing a fantastic job. I’ve been contributing with amazing people for years, and finally meeting my team, Amita, Justin, Jona and Bee, was like a dream come true.

Probably the best from FLOCK was to being able to record several members from our community who kindly accepted to say their names, the places where they come from and the language they speak, and create a small video showing how Diverse and Inclusive Fedora is. Produce a short 2min video in such a chaotic schedule is challenging enough, so after 3 hours of recording, and a rough 2:30hs of editing, I ended up finishing the render of the video just as I was plugin my laptop to the main stage… People usually don’t know how long it takes to do something like that, but I’m just glad everyone seemed to like it and that my laptop didn’t died in the process.

While working on the video, I was able to have small interviews with several folks from Fedora and got to ask them how comfortable they felt in the community. It was satisfactory to learn from them that the overall care we have take to make minorities feel more included has worked, however, it was a bit sad to learn how hard has been for our contributors to deal with burn out, how tired they are of putting fires out instead doing new projects and mainly getting a general sense of getting stuck into the same routine.

As our team says, our labor is not only to help with the diversity efforts for making everyone feel comfortable, but we also need to work more to include more effective ways to give people a sense of purpose, provide new challenges that put them on a fun path and give them the recognition they deserve. Fedora has always put a lot of effort into bringing new people to contribute, but I’ve seen that the old contributors are getting on a side because “everything is working” and we need to take care of that. They need the same attention (and I would dare to say that probably more) than new contributors do. At the end, is this amazing group of people who has to mentor new contributors. Feel free to reach me or any member of the Diversity and Inclusion Team if you feel that this words got your attention and you’re willing to share some thoughts. Anonymity is a top priority.

Marketing: You won't sell what you don't show.

I like to think that conferences like this have 3 parts: Friends, Knowledge and Memories. Meeting your old friends face to face or making new friends is what motivate us to enjoy this conferences. Knowledge is spread and connections between people from same and different projects are made allowing new ideas to flow… but Memories are what keep people motivated and active during the months or years before meeting again. In a world full of cameras and social networks, we sometimes forget that best moments are captured while people is concentrated in the first two items. If you want to get the real face of conferences you need to document it while people is not seeing, when people is making friends and sharing knowledge.

It was quite satisfactory to see the reaction of people at the Helia Conference Room once they saw the Flock resume video. Being able to show them how fun the last 4 days were, was a key point to conclude a fantastic experience. Filling the Social Networks with good quality pictures increased the attention into our community, and more people was willing to share their content so everyone could see the things we were doing. Having quality content is key to spread what we do. Having quality writers and proper localization will help us reach more fantastic people that will help us grow.

Lets never forget the importance of Memories. At the end, these are the ones we can look back and the best way to remind us why we contribute in projects like this. It’s not just the contributions we make, but also the connections we make.

Design: If it's not broken... build it from the scratch!

Who doesn’t like a bit of a challenge? After the “Survey no-Survey” (lets call it -interviews- so we don’t get into Legal) I did notice that there are several services that are working, but could be better. Meeting riecatnor and Tanvi was one of the highlights of FLOCK. Design team has always been a small group, but numbers aren’t exactly growing. Marie’s badges workshop ended up being a fantastic opportunity not just to check and close tickets, but brought a great discussion about how Badges are being used and where should we aim to. Having Renata there to conduct a small usability test with new and old contributors, help us identify some things that could be done better at Badges. We have no idea right now about the specifics, but I think great things will come for the Badges platform. Having friends at different team is probably what makes this community the best… so when pingou heard that we might do some changes to Badges, he and Xavier jumped in… we don’t even have a design or anything for it… but that’s when you realize that “is more fun (and productive) to build from the scratch instead just fixing old bugs”.

I’m trying to figure out if a badges simplification, both as in quantity and quality would be good for the overall behavior of the website, and probably going from pngs to svg’s and having a badge reduction could also make us have a faster website… so If you’re interested on helping us explore this ideas, come to the Badges channel (both irc and freenode) or just ping me wherever you see me.

Serious stuff goes here: Catching up with the new Fedora structure.

I used to knew the Fedora structure like the palm of my hand, but again timing isn’t perfect, and Fedora changed EVERYTHING as soon as I went into my maternity leave… I won’t lie that even if things look better on an organizational level, it has been harder than ever to get around how things work now. One of the hardest things I’ve always seen at Fedora resources is that we are so energetic into explaining how our process work, that we end up with more web pages explaining the same thing than we should. I hope someday this changes and it seems that we are on that path, but there’s still a lot of work to do there.

I wasn’t able to attend the Mindshare meeting since it collided with D&I, however, thx to telegram and an angel who helped me have a voice there, I was able to drop a couple of comments and get some answers. Time to divide the final part into sections:

– LATAM: It was really disappointing to learn that FUDcons stopped while I was on my break. Conferences like this are not just a fantastic opportunity to get things done faster since everyone is at the same place, but also a reward to the effort that our contributors put during a long year into having the community working smoothly. Latin America is a complex region due distances and that’s a fact, but it seemed a decision with no solid -communitary- arguments to just stop. LATAM people is worth the effort, and we will work on making them feel more included. Our diversity is awesome, recognition is needed but also guidance into taking the community to a level where we all feel like doing more.

– Burn out: Most of us who join a community do it for the challenge of doing new things and meeting new people who understands the geeky world we live in. But when you have to do the same thing for a couple of years (or even a decade), getting stuck into repetitive tasks tends to get you exhausted. I thought I was alone on that path, but seems that not. We did empathize on working towards helping our contributors into get new challenges that put them on that creative and joyful path once again, so a refreshment allows them to cope with the routine of supporting a community like Fedora. No easy task, but we can all make a good impact if we look to our sides and try to encourage our fellas.

Final thoughts

If you got here, thank you. Has been a long time since I had the opportunity to see my old friends, catch up with a community I love and learn everything that happened while I was afk being a mom. Sometimes I get the feeling that I’m jumping into things that might be done or already discussed, but if there’s something I’ve learn in so many years, is that new energy (even from old contributors), can shake things enough to make actual improvements.

NOTE: If you see yourself in a picture and want me to remove it or if you want to get a photo I took from you, just send me a message :)


This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

Leer más

Cuando PhpMyAdmin nos muestra el error 1146 y/o nos muestra una advertencia relacionada con controluser solo basta abrir el archivo /etc/phpmyadmin/config.inc.php con su editor favorito y modificar lo siguiente:

$cfg['Servers'][$i]['controluser'] = $dbuser;
$cfg['Servers'][$i]['controlpass'] = $dbpass;

Para que quede de la siguiente forma:

$cfg['Servers'][$i]['controluser'] = ''; //$dbuser;
$cfg['Servers'][$i]['controlpass'] = '': //$dbpass;

Guardamos el archivo, reiniciamos el servidor web y listo.

Espero que esta información les sea útil, saludos…

Leer más

Cuando ocurre un error de WordPress u obtenemos un error HTTP 500 en nuestra instalación (generalmente debido a un error de PHP). El primer paso para resolver el problema es leer el error para conocer que está ocurriendo. Sin embargo, muchos servicios de hosting desactivan mostrar los errores en pantalla para evitar mostrar errores en los sitios de los clientes (se ve mal visualmente). Otra razón para desactivarlo es para prevenir ataques debido a que el error muestre información oculta de la aplicación que pueda ser aprovechada para aprovechar vulnerabilidades.

En algunos casos, por motivos de rendimiento algunos servicios desactivan el almacenamiento de errores en segundo plano. Complicando la posibilidad de conocerlos y arreglarlos.

Cómo mostrar los errores de WordPress

WordPress posee un modo de depuración. Éste permite mostrar los errores de WordPress en la página o almacenarlos en un archivo.

Para activarlo, debes abrir el archivo /wp-config.php. Busca una sección donde puedes colocar constantes. Allí coloca las siguientes constantes:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);
@ini_set('display_errors', 0);

Ahora podrás ver los errores en pantalla, almacenados en el log e incluso forzando al servidor web a guardarlos. Simplemente chequea el error de WordPress. Soluciona y desactiva de nuevo el modo de depuración para volver la página a su estado original.

Espero que te sirva de ayuda. Si conoces otro método, no dudes en compartirlo. Y si deseas leer mas artículos de este tema. Puedes chequear mi categoría del blog dedicada a WordPress.

La entrada Ver los errores de WordPress en los hostings se publicó primero en El blog de Skatox.

Leer más

Network Time Protocol (NTP) es un protocolo de Internet para sincronizar los relojes de los sistemas informáticos a través del enrutamiento de paquetes en redes con latencia variable. NTP utiliza UDP como su capa de transporte, usando el puerto 123. Está diseñado para resistir los efectos de la latencia variable.

Para instalar NTP en Debian solo debe ejecutar el siguiente comando como root:

apt -y install ntp

Luego debe ejecutar el siguiente comando para ponerlo en marcha con la configuración por defecto:

systemctl enable ntp
systemctl start ntp

Para sincronizar el servidor con los proveedores de hora públicos ejecute lo siguiente:

ntpq -p

Normalmente no es necesario modificar la configuración que viene predeterminada pero si necesita hacerlo solo debe editar el archivo /etc/ntp.conf con su editor favorito.

Acá les dejo las direcciones de varios servidores publico:

  • pool.ntp.org (servidores aleatorios en todo el mundo)
  • europe.pool.ntp.org (servidores aleatorios en Europa)
  • it.pool.ntp.org (servidores aleatorios en Italia)

Espero que esta información les sea útil, saludos.

Mas información:

Leer más

Este es un error muy común a la hora de utilizar WSUS, incluso después de crear la GPO correspondiente y esto puede generar un gran dolor de cabeza en el administrador, muchas veces para corregirlo solo basta con ejecutar los siguientes comandos en el equipos que se desea registrar.

gpupdate /force
net start wuauserv
wuauclt /detectnow /register /reportnow /resetauthorization

Espero que esta información les sea útil, saludos…

Leer más