Hace unos meses adquirí una Mac mini con el nuevo procesador de Apple Sillicon (M1). Estaba buscando remplazar mi Mac mini anterior y cuando vi que sacaron nuevos equipos con el chip M1 que en las pruebas de rendimiento superaban a la mayoría de procesadores, no producían mucho calor (vivo en un lugar caliente ) y por lo tanto no eran equipos ruidosos.

¿Que tienen de distinto los chips M1 y cual adquirir?

Los chips de Apple Sillicon (M1) son diseñados por la misma Apple. Utilizan la arquitectura ARM a diferencia de x86 que era la utilizada por AMD e Intel (quien proveía procesadores a Apple desde el 2005).

Esto significa que utilizan otra instrucciones, por lo tanto los programas deben ser compilados para esta arquitectura. Pero tiene como ventaja que los equipos con ARM se diseñan para consumir menos energía y actualmente poseen gran rendimiento.

El chip de Apple Sillicon (M1)
El chip de Apple Sillicon (M1)

Apple Sillicon (M1) para el desarrollo web

Respecto a la compatibilidad de aplicaciones, macOS ofrece Rosseta 2. Una aplicación que traduce el código de x86 a ARM permitiendo ejecutar cualquier aplicación previa sin problemas. Respecto al rendimiento, obviamente es menos al nativo pero igual están a la par con los equipos anteriores de Apple con procesadores Intel.

Sin embargo, a estas alturas la mayoría de aplicaciones ofrecen compatibilidad para el Apple Sillicon (M1). Por lo que podrás trabajar sin problemas como si estuvieses en otro equipo.

Editores o IDEs

Actualmente los principales IDEs para programación web ofrecen compatibilidad nativa. El primero en probar fue Sublime Text 4 que es el mas rápido que usado. Xcode como es el propio de Apple también es rápido pero casi no me gusta para desarrollo web. Visual Studio Code también ofrece version nativa que funciona muy rápido al igual que la suite de Jet Brains.

Lo único que se debe tener cuidado es con instalar la versión para ARM y no la de x86. Ya que todos estos editores ofrecen ambas versiones y a pesar que la versión de x86 corre en tu equipo. No lo hará de forma nativa y es muy lento.

Compatibilidad con lenguajes de programación

macOS ofrece versiones nativas de lenguajes com Ruby, PHP, entre otros. Sin embargo, puedes conseguir versiones nativas de Rust, Go, PHP, Ruby, JavaScript (con Node) y usarlas sin problemas. Si usas lenguajes interpretados, el código será igual entre arquitecturas así que no habrá problemas al momento de ejecutar o desarrollar tus aplicaciones. En nodeJS tuve que compilar algunos módulos para que quedaran nativos para que funcionara en mis proyectos, pero creo que otro sistemas operativos también hace eso la primera vez.

Docker

Docker requiere de Linux para funcionar, en macOS Big Sur ofrecen algo llamado Virtualization Framework que sirve para correr otros sistemas como Linux en un hypervisor. Docker desde la version 3.3 ofrece soporte para equipos con Apple Sillicon (M1). Desde que actualicé a la versión 4 no he tenido problemas siguiendo estas recomendaciones:

  • Uso las imágenes de mis contenedores en versiones de ARM para mejorar la velocidad. Algunos contenedores como el de Mailcatch, solo tienen para x86 y lo uso sin problemas.
  • Usar qemu como método de virtualización para tener 100% de estabilidad. Yo uso Virtualization Network y a veces falla al hacer operaciones pesadas con la base de datos.
  • La imagen oficial de MySQL no está para ARM y uso MariaDB en ARM. Siempre que intente usar MySQL inclusive con la emulación falla, desconozco la causa y por eso lo dejé de usar.

Pero en general funciona bien, estable y hasta los momentos no ha afectado mi trabajo.

Homebrew y aplicaciones del sistema

Te recomiendo visitar Does it ARM para buscar si el software corre en tu equipo. Aunque no he tenido problemas de compatibilidad. Suelo instalar las aplicaciones del sistema a través Homebrew y este separa las versiones de x86 y ARM por separado, así que si ofrece versión nativa se instala esa, si no, usará la arquitectura de x86. Todo esto funciona de forma transparente así que no habrá que intervenir.

Recomendaciones finales

Me parece que los equipos con Apple Sillicon (M1) son buenos para el desarrollo web, la relación costo/rendimiento es muy buena, gran compatibilidad con las aplicaciones existentes de macOS, gran potencia, poco consumo de energía y ningún ruido en el hardware. Hacen de estos unos equipos una buena compra para el desarrollo web.

Por ahora, la única limitación que veo es la cantidad de RAM, actualmente un máximo de 16GB, esta cantidad compartida con el chip de vídeo puede ser muy poco para algunos usuarios y probablemente deseen esperar por la siguiente generación de equipos con Apple Sillicon. Sin embargo, debido a la velocidad de los discos, al usar el área de intercambio o swap, la velocidad sigue siendo muy alta por lo que si necesitas mas RAM la velocidad sigue siendo muy potente, pero no es lo recomendable.

Respecto al disco duro, no me preocupa. Tengo una portátil con un disco duro SSD de menor calidad y hasta los momentos me ha durado 7 años, estoy seguro que esos me durarán mucho mas. Ademas he tomado medidas como no indexar ciertos archivos para aumentar el rendimiento y vida útil del disco duro.

En fin, si buscas un equipo con buen costo/rendimiento para realizar desarrollo web y prefieres usar macOS. Te recomiendo las computadoras con Apple Sillicon (M1). No tendrás problemas de compatibilidad con las aplicaciones existentes y el rendimiento será muy bueno.

Si compraste un equipo o vas a hacerlo, ¡Bienvenido(a) a la arquitectura ARM!

La entrada ¿Sirve una Mac con Apple Sillicon (M1) para el desarrollo web? se publicó primero en El blog de Skatox.

Hoy se celebra el día del programador y programadora por ser el día 100 (en hexadecimal) del año. Y este año, te comparto 3 grandes canciones geek sobre la recursividad, desbordamiento de pila y optimización de la cola (conceptos básicos sobre la ejecución de código recursivo).

Las canciones sobre el desbordamiento de pila (Stack Overflow)

Disfruta de las canciones con un fondo musical de Disney. Éstas canciones fueron creadas e interpretadas porAnjana Vakil y Natalia Margolis para la conferencia !!Con del 2019 para entreteneros y aprender sobre funciones de pila, sobre todo, el famoso error conocido como StackOverflow. De hecho, de ahí viene el nombre de la famosa página para responder dudas a programadores. Así que sin mas preámbulos haz clic en reproducir y disfruta del video.

Si te gustó, recuerda compartilo en las redes para que otros lo descubran o deja tu comentario sobre lo que opinas de este vídeo.

Y recuerda evitar que tus funciones recursivas produzcan desbordamiento de pila 😉

La entrada ¡Feliz día del programador(a)+! se publicó primero en El blog de Skatox.

Es sabido que las monedas virtuales han llegado para quedarse tanto en el mundo financiero como en el mundo político y cada vez son más los inversores que deciden volcarse a este instrumento digital. Ahora bien, el interés por las criptomonedas ha superado las expectativas y llega a actores inesperados como es el caso de la histórica planta hidroeléctrica Albany Engineering Corp., de la ciudad de Nueva York. Aplicando los sobrantes de energía producida, decidieron volcarlo a la minería de Bitcoin y otras divisas. ¿Será un modelo a replicar por otras empresas?

Siempre es bueno hacer un breve ejercicio mental e imaginar posibles escenarios. Por ejemplo: ¿hubiéramos imaginado hace apenas unas décadas que Bitcoin hoy marcaría el ritmo del sector financiero sino también productivo a nivel mundial? La primera de las criptomonedas, que data del año 2009 y que nació de forma 100% digital, sigue dando que hablar luego de vivir un 2020 histórico, en el que rompió todas las cifras de rendimiento aún en un año marcado por la crisis de la pandemia.

En esa misma dirección, cada día surge una noticia relacionada a diversos sectores que empiezan a apostar por las criptomonedas, brindando un fuerte espaldarazo a este activo que ha sabido surfear críticas de pesos pesados desde su nacimiento. En esa dirección, debemos mencionar el caso de Albany Engineering Corp, una histórica planta hidroeléctrica de la ciudad de Nueva York que se encuentra en funcionamiento desde el año 1897. De acuerdo a lo señalado por Jim Besha, director ejecutivo de la firma, el excedente de energía eléctrica generada será destinado para minar criptomonedas, algo inédito en la historia del sector.

La explicación de este fenómeno puede encontrarse en la naturaleza misma de las criptomonedas: la minería de ellas es un procedimiento que consume una enorme cantidad de electricidad, lo que la deposita fuera del alcance de las personas promedio. Incluso, el debate medioambiental se ha puesto en el medio de la escena al pensar si no es necesario pensar en energías renovables que puedan alimentar esta función sin poner en peligro al planeta en una etapa crucial para nuestros destinos como humanidad. Desde Albany Engineering Corp. señalaron que ellos fueron pioneros en el uso de energía renovable, por lo que ahora pueden aprovecharla para mejorar el capital de la empresa.

Cabe destacar que el propio director ejecutivo de la empresa subrayó que la misma no ha cambiado de actividad y que la producción de energía sigue siendo el motor principal de las actividades de Albany Engineering Corp., las criptomonedas son una actividad secundaria que cumple dos grandes objetivos: en primer término, como ya hemos destacado, mejorar la situación financiera de la firma, y por el otro estudiar a largo plazo qué rendimientos brinda el uso de energías renovables a la hora de minar Bitcoin. A la espera de las primeras

La entrada Cambios de paradigmas: una histórica central de energía decide invertir en criptomonedas se publicó primero en El blog de Skatox.