La virgulilla en JavaScript

Categorías: Programación Web
Como me estoy leyendo algunas partes de You Don't Know JavaScript, acabo de toparme con una cosita que me ha encantado, y es rápido y fácil: usar la virgulilla (~) en JavaScript: Básicamente, ese operador es el bitwise not, y saltándonos los detalles técnicos, simplemente decir que lo podemos utilizar para comprobar si un valor numérico es diferente de -1, así que he aquí algunos ejemplos que son equivalentes:

Lee Mas →

Cómo hacer un cherry-pick sin descargar todo el histórico de un proyecto en GitHub

Categorías: Control de versiones Programación
Primero, el contexto: quería abrir este backport a OCB 9.0, pero había clonado así: $ git clone --depth 100 --branch 9.0 https://github.com/OCA/OCB.git El problema ahora es que para hacer cherry-pick del commit correspondiente en Odoo 10.0, hubiera necesitado mucho tiempo descargando todo ese árbol de código, que es considerablemente grande. Es por eso que usé un par de herramientas que nos dan git y GitHub para estos menesteres: En cuanto a GitHub, para cada commit o pull request, siempre podemos añadir a la URL:

Lee Mas →

Cómo usar autosquash en Git

Categorías: Control de versiones Programación
Cuando uno trabaja en una rama de desarrollo con git, es bastante habitual que haya que cambiar multitud de detalles hasta que se mezcla en la rama principal. A veces lo que estás desarrollando incluye varios commits lógicos, pero se acaban diluyendo entre multitud de "quitar basura", "wip", "typo", "PR review", etc. Para que luego se quede el historial limpio, normalmente se hará un rebase manual, pero en tales circunstancias es un rollo.

Lee Mas →

Por qué usaba Atom y me he cambiado a Visual Studio Code

Categorías: Opinión Programación
Llevo menos de 1 semana trabajando con VSCode y... ¡por fin he encontrado mi editor definitivo! Un poco de historia... Hmm... haciendo memoria, veo que ya encontré el editor de texto definitivo hace unos cuantos años: Enki. Pero definitivamente no era el definitivo. Hace menos años empecé con Atom. Para mí fue amor a primera vista: unas tecnologías atractivas (Electron, CoffeeScript/ECMAScript, CSON...), completamente hackeable, una comunidad grande y activa, pensado para trabajar principalmente con el teclado, con una gran empresa detrás (GitHub) que garantiza su mantenibilidad a largo plazo.

Lee Mas →

Usa Trickle para limitar el ancho de banda de un proceso

Categorías: Administración de sistemas GNU/Linux Programación Redes Web
Imagina que necesitas emular una situación en la que alguien intenta acceder a tu página web pero tiene un ancho de banda muy poco ancho; pues con Trickle es facilísimo: Trickle permite limitar el ancho de banda de cualquier proceso. Por ejemplo, abramos Firefox con un ancho de banda de subida de 100 KB/s y una descarga de 500KB/s: $ trickle -u 100 -d 500 firefox Ya puedes comprobar cómo se ve el mundo a esa velocidad.

Lee Mas →

Crear un servidor HTTP para depuración en 1 comando

Categorías: Administración de sistemas GNU/Linux Programación Redes Web
Simplemente responderá con un 200 OK hasta que lo detengas con Ctrl+C, y devolverá la fecha y hora en que se ha levantado el servidor. Ojo, el comando usa sintaxis de Fish: $ while true; echo -e 'HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\n'(date) | nc -vl $PORT; end Es bastante útil a la hora de depurar proxies.

Cómo actualizar un backport modificado con Git

Categorías: Control de versiones Programación
Bueno, esta tarea es bastante compleja, y no se me ocurren muchos ejemplos teóricos, así que vamos con un caso real. Como muchos sabréis, soy miembro activo de la OCA y un contribuyente habitual a Odoo. Una de las novedades de Odoo 9.0 fue el módulo website_slides, que fue backporteado por la comunidad a Odoo 8.0. Sin embargo, desde que se realizó el backport hasta el día de hoy, el módulo ha recibido varios parches upstream 9.

Lee Mas →

Autoinstalador de paquetes en Fedora

Categorías: Administración de sistemas Curiosidades Empaquetado de software GNU/Linux Programación
No sé si esto está disponible en otras distribuciones, pero es una pasada. Escribes un comando, y si no encuentra el paquete que lo ejecuta, te lo instala automáticamente: No sé qué paquete será el encargado de hacer esto... si alguien me puede iluminar, le estaré muy agradecido. En el ejemplo se usa mi querida shell Fish, pero he comprobado que con Bash también funciona.

¿Realmente hace falta la cabecera de la licencia en cada fichero de código fuente?

Categorías: Opinión Programación
Antes que nada, IANAL. Prosigamos. Las instrucciones para usar una licencia GPL te dicen que debes incluir un comentario gigante como cabecera de cada fichero de tu código fuente, tal que así: This file is part of Foobar. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> Foobar is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Lee Mas →

Transferir código entre repositorios, con archivos renombrados

Categorías: Control de versiones Opinión Programación Tutoriales
Recientemente tuve que hacer una transferencia de código fuente algo complicada. Tenía que transferir un addon de Odoo desde un repositorio a otro completamente diferente: En el repositorio Antiun/antiun-odoo-addons, el módulo fue creado como crm_department. Más tarde se renombró a crm_partner_department para evitar conflictos con un módulo llamado crm_department de la OCA. Ahora yo tenía que moverlo al repositorio OCA/partner-contact renombrándolo a partner_contact_department (aparte de otros cambios que no vienen a cuento).

Lee Mas →