Archivo: Programación | Picando Código - Part 4

Mini Pique: Ejecutar Emacs sin cargar los archivos de inicialización

Lunes, 22 de marzo de 2021
Mini piques

Cuando Emacs inicia, intenta cargar un programa Lisp de un archivo de inicialización (o archivos init). Generalmente se usa ~/.emacs.d/init.el o el directorio ~/.emacs. A veces metiendo mano en este archivo podemos romper algo, y al iniciar Emacs nuevamente alguna cosa puede no funcionar como antes. En esos casos puede resultar conveniente ejecutar Emacs sin cargar nuestros archivos de inicialización. Para eso podemos usar el parámetro -q o --no-init-file: $ emacs -q Más información: Emacs Initial Options

Código inteligente y el inmortal Hulk

Martes, 16 de marzo de 2021
The Immortal Hulk #34

Hace un tiempo leyendo The Immortal Hulk #34 por Al Ewing, me encontré con los siguientes paneles: Traducción: Esta es la entrada quién sabe cuánto del diario. Estamos de nuevo en la vieja máquina de escribir. No puedo hacer que nada más funcione. La grabadora de pensamiento, la sintetizadora de comida... ni siquiera la TV. El gamma desapareció y el viejo Sam Stern no recuerda cómo usar los aparatos lujosos del Líder. Porque la "mente más grande" no era lo suficientemente inteligente para hacerlos fáciles de usar. El Líder era demasiado inteligente para ser inteligente. Me gusta encontrar cosas de […]

eBooks: Humble Book Bundle - Aprende más código por No Starch Press

Martes, 16 de marzo de 2021
Humble Book Bundle: Learn You More Code por No Starch Press

Humble Bundle tiene un nuevo paquete de eBooks llamado Learn You More Code. Con eBooks sobre código y programación, shell scripts, Java, C++, Linux, Rust y más. Los ebooks están disponibles en formatos PDF, MOBI y ePUB, por lo que pueden ser leídos en casi cualquier dispositivo. Como se acostumbra en los paquetes Humble Bundle, además de elegir el precio, podemos elegir dónde destinamos el dinero que pagamos, incluyendo una organización de beneficencia. Pagando el mínimo de USD 1 o más, obtenemos: Think Like a Programmer: An Introduction to Creative Problem Solving Python Playground: Geeky Projects for the Curious Programmer […]

Mini pique - Tmux: renumerar ventanas abiertas

Jueves, 11 de marzo de 2021
Mini piques

Las ventanas en tmux están numeradas. Generalmente voy abriendo ventanas nuevas a cada rato. Cuando cierro esas ventanas, la numeración queda toda desajustada, dependiendo qué número de ventana cerré. Esto me desorienta un poco al crear una ventana nueva, porque se va a crear al lado de la ventana con el número superior en el conjunto de ventanas con los números más bajos. Generalmente esperaría que se cree como la ventana con el número más grande a la derecha de todas las demás. Para resolver este asunto, está la opción de mover ventana - move-window: move-window [-ardk] [-s src-window] [-t […]

Enlaces sobre Ruby Febrero 2021

Lunes, 1 de marzo de 2021
Ruby

A raíz de la saga de posts 7 días en el Picandoverso, he ido recolectando y publicando varios enlaces sobre Ruby y cosas relacionadas al lenguaje de programación diseñado para la felicidad de quienes lo programan. Acá están compilados los enlaces Ruby de esos posts y alguna cosa más 🙌🏻 RubyGalaxy es un meetup online para entusiastas de Ruby de todo el mundo. Estuve en el meetup del jueves pasado y estuvo muy bueno, recomiendo unirse y seguirlos en Twitch. También pueden seguir @TheRubyGalaxy en Twitter. AppSignal publicó un artículo sobre tipado estático en Ruby 3. Explica las diferencias entre […]

Elastic 7.11: Nuevas versiones de clientes Ruby para Elastic Enterprise Search y Elasticsearch

Jueves, 11 de febrero de 2021
Elastic 7.11

Ayer miércoles 10 de febrero se publicó la versión 7.11 del stack Elastic. El stack se publica en conjunto, así que tenemos versión 7.11 de Elasticsearch, Kibana, Logstash, Elastic Enterprise Search, y demás productos de la familia Elastic. En el equipo de clientes desarrollamos los clientes oficiales para Elasticsearch y Enterprise Search, y generalmente publicamos las versiones compatibles con la versión nueva el mismo día o dentro de las primeras 24 a 48 horas. Cada nueva versión "menor" incorpora un montón de cambios increíbles. Pueden leer más de lo que se agrega en esta versión en el blog post en […]

ci_ui - interfaz gráfica de usuario para ci_uy en Ruby

Jueves, 28 de enero de 2021
ci_ui

La gema Ruby ci_uy, el validador de números de Cédulas de Identidad Uruguaya, me ha servido mucho como ejercicio para practicar y aprender cosas nuevas en programación. Ya usé el algoritmo para programar y empaquetar código en Rust, Crystal y Go. Es lo suficientemente simple como para escribirlo en un lenguaje que recién estoy aprendiendo, pero también termina teniendo una utilidad final. Y ya tengo los tests hechos, es sólo cuestión de portarlos a otros lenguajes 🤪 Algo que estaba pendiente y tenía ganas de desarrollar desde hace mucho tiempo era una interfaz gráfica de escritorio (ya existe una versión […]

Mini pique - Rake

Jueves, 21 de enero de 2021
Mini piques

En rake: Cuando usamos rake -T para listar las tareas rake, se muestra sólo la primera oración de la descripción de cada tarea. Pero usando rake -D podemos ver la descripción completa.

Mini pique - Tmux: Nombrar ventanas

Jueves, 14 de enero de 2021
Mini piques

Desde que empecé a usar tmux, es una de las herramientas esenciales en mi día a día. De a poco he ido aprendiendo más cosas, y esto es algo que me ha sido bastante útil. Esto es el comando para renombrar una ventana que me ayuda a ver en la pestaña de tmux qué hay en esa terminal. Tenemos que usar el atajo de teclado que tengamos configurado como prefijo (por defecto Ctrl + b) seguido de la coma: Ctrl b , En mi caso tengo el prefijo mapeado a Ctrl + a porque acostumbrado a Emacs me es mucho […]

Mini pique - Ruby Enumerable#tally

Jueves, 10 de diciembre de 2020
Mini piques

¡Ruby es genial! 😁 Esta función está disponible a partir de Ruby 2.7.0: Enumerable#tally - Hace la cuenta de una colección, e.g., cuenta las ocurrencias de cada elemento. Devuelve un hash con los elementos de la colección como llaves y la cuenta correspondiente como valores: > coleccion = ['verde', 'rojo', 'azul', 'verde', 'violeta', 'amarillo', 'verde', 'rojo', 'verde'] => ["verde", "rojo", "azul", "verde", "violeta", "amarillo", "verde", "rojo", "verde"] > coleccion.tally => {"verde"=>4, "rojo"=>2, "azul"=>1, "violeta"=>1, "amarillo"=>1}> coleccion = ['verde', 'rojo', 'azul', 'verde', 'violeta', 'amarillo', 'verde', 'rojo', 'verde'] => ["verde", "rojo", "azul", "verde", "violeta", "amarillo", "verde", "rojo", "verde"] > coleccion.tally => {"verde"=>4, […]

Elastic Enterprise Search - cliente oficial en Ruby

Lunes, 7 de diciembre de 2020
Elastic Enterprise Search Ruby

Uno de los proyectos súper interesantes en los que estuve trabajando durante mi primer año en Elastic es el cliente oficial para Elastic Enterprise Search. Fue mi primer proyecto de cero, y una experiencia excelente. Trabajé en conjunto con el equipo de Enterprise Search, aprendí un montón de esos servicios y la recepción fue súper positiva. Gracias a esto también empecé a dar mis primeras charlas en inglés. Participé de una charla en ElasticON Global junto a dos compañeros de equipo. Hablamos sobre el trabajo que hemos venido haciendo en el equipo, y en mi parte hablé de Enterprise Search […]

Mini pique - Ruby 3: Hash#except

Jueves, 3 de diciembre de 2020
Mini piques

Algo nuevo que se viene en Ruby 3, Hash#except, un método que nos devuelve un hash nuevo con todas las llaves menos las que pasamos como parámetro: head :001 > data = {name: "Fernando", age: 35, height: 175} => {:name=>"Fernando", :age=>35, :height=>175} head :002 > data.except(:age) => {:name=>"Fernando", :height=>175}head :001 > data = {name: "Fernando", age: 35, height: 175} => {:name=>"Fernando", :age=>35, :height=>175} head :002 > data.except(:age) => {:name=>"Fernando", :height=>175} Fuente.

Nuevos validadores de Cédula de Identidad Uruguaya: Prolog y Rust

Martes, 15 de septiembre de 2020
Validador de Cédulas de Identidad Uruguaya

Se siguen agregando versiones en más lenguajes del validador de cédulas de identidad. Gracias a Bruno Cattáneo, tenemos una versión nueva en Prolog. Pueden ver el código fuente y ejemplos de cómo usarlo en el enlace. Inspirado por la versión de Bruno, finalmente me puse a escribir una versión que hacía tiempo quería escribir: Rust. El código para validar la cédula es lo suficientemente simple como para probar un lenguaje de programación nuevo. Hace tiempo que quería entrarle a Rust, así que fue una buena excusa. Me costó un poco, aprendí algo de Rust en el camino, pero tendría que […]

Private GitHub Header - Extensión de Firefox para diferenciar repositorios privados y públicos

Miércoles, 29 de julio de 2020
GitHub

La única pista visual que tenemos de que un respositorio sea privado en GitHub es una etiqueta al lado del nombre. Para quienes pasamos mucho tiempo trabajando en GitHub, a veces corremos el riesgo de pensar que un grupo acotado de personas va a ver un mensaje, y podemos estar trabajando en un repositorio público sin darnos cuenta (y viceversa). Greg Back, colega en Elastic, desarrolló esta extensión para Firefox que cambia el color del encabezado en la web de GitHub para que sea más claro: Private GitHub Header. La extensión se puede instalar desde el sitio web de Firefox […]

Se acerca RuboCop 1.0

Miércoles, 27 de mayo de 2020
RuboCop

RuboCop es la herramienta de facto para analizar y formatear código en Ruby. Con miras de publicar la versión 1.0, Bozhidar Batsov -autor de Rubocop-, realizó una encuesta a la comunidad Ruby. RuboCop viene con un montón de valores por defecto, y la idea de la encuesta era medir lo que se viene usando para entender qué valores por defecto valía la pena cambiar basados en su uso y la frustración o satisfacción de la comunidad. En los últimos años se había evitado cambiar valores por defecto en un esfuerzo por contener la fricción durante actualizaciones de RuboCop. Pero con […]

Toasty!