/images/avatar.png

Más locura con Git

Hay un lindo tutorial interactivo para aprender a usar Git este Carpentry, recomendado desde el GitHub de Software Carpentry. Me gustó también el video Git for ages 4 and up (no entendí nada la presentación del expositor, pero el resto sí).

Al sitio interactivo llegué desde Astropy, en particular de la página How to make a code contribution, que parece que vale la pena leer, porque explica el workflow que utilizan, cosa que no había encontrado hasta ahora (que te expliquen cómo es la secuencia de acciones de un trabajo, su lógica, los trucos, puede ahorrar muchos problemas asociados con la inexperiencia).

Tutorial sobre control de versiones (parte 2)

Indice del Tutorial

  • Parte 1. Cómo armar un repositorio local
  • Parte 2. Cómo subir el repositorio local al remoto
  • Parte 3. Cómo colaborar en un mismo repositorio remoto
  • Parte 4. Cómo resolver conflictos

Para ver las versiones (en inglés) en las cuales se basa este tutorial, podés visitar la página de Software Carpentry

Armar un proyecto (repositorio) en GitHub

Para subir el repositorio local a GitHub es indispensable tener una cuenta allí (que es gratis, así que a relajarse y disfrutar). Es bastante intuitivo el modo de crear un repositorio. Pero pongo un par de imágenes, a modo de muestra.

Emacs y restructuredText

Estuve escribiendo algunas entradas para el blog y encontré algunas cosas que vale la pena recordar, que quedan anotadas aca.

El modo abbrev tendría que desactivarlo globalmente porque cada vez que escribo la palabra "con" (en modo restructuredText) y hago un espacio me lo expande a un texto que no deseo (content...). Se desactiva con M-x abbrev-mode. Mejor aún, encontré cómo editar la lista de abreviaturas. Es así: M-x list-abbrevs y se abre un buffer con las abreviaturas, que se puede editar. Ver de paso "Using Emacs Abbrev Mode for Abbreviation para un facil tutorial sobre el uso elegante de abbrev-mode.

Tutorial sobre control de versiones (parte 1)

En el sitio de Software Carpentry hay un buen tutorial sobre el uso de sistemas de control de versiones. Estos apuntes son prácticamente la traducción de esas instrucciones.

Indice del Tutorial

  • Parte 1. Cómo armar un repositorio local
  • Parte 2. Cómo subir el repositorio local al remoto
  • Parte 3. Cómo colaborar en un mismo repositorio remoto
  • Parte 4. Cómo resolver conflictos

Para ver las versiones (en inglés) en las cuales se basa este tutorial, podés visitar la página de Software Carpentry

De jpg a pdf

Encontré una muy sencilla aplicación para convertir archivos de imágenes. Si bien tiene mucha potencia, porque puede hacer mucho más, yo la usé para convertir imágenes en páginas de un archivo pdf.

Se necesita tener instalado un paquete llamado imagemagick. Para instalarlo desde un terminal dependerá de la distribución, suele ser así:

1
2
3
$ sudo urpmi imagemagick             # desde mageia
$ sudo apt-get install imagemagick   # desde ubuntu, mint, etc
$ sudo yum install imagemagick       # desde fedora

Luego, para usarlo, también desde un terminal y en el directorio donde están guardadas las imágenes, se ejecuta convert (parece que no es lo único que instala imagemagick):

Grabacion de screencasts para tutoriales de YouTube

Actualización (Feb-2017): es muy facil usar el programa OBS Studio para grabar en la computadora tanto la pantalla como la webcam, micrófono, etc. Funciona en Linux, Window$ y Mac.


Empecé a grabar tutoriales para usar IPython Notebook. Traté de hacerlo con la aplicación recordMyDesktop, pero el modo de seleccionar la parte de la pantalla a grabar resulta muy imprecisa, es practicamente imposible determinar la región con precisión.

Luego encontré este buen tutorial: Creating Screencasts in Linux. Ahí hay dos datos importantes:

Instalando IPython en Mageia

Para instalar IPython en Mageia, sin tener privilegios de root hay que cumplir con los siguientes pasos:

  • Contar con privilegios de root para poder correr el instalador
  • Hay que instalar PIP
  • Con PIP instalar IPython

Trabajar como root:

Conviene agregar el usuario a la lista de usuarios con privilegios para ejecutar sudo. Las instrucciones están en Configuring sudo de Mageia. Históricamente en UNIX este es el grupo Wheels.

Primero hay que crear el archivo /etc/sudoers.d/01wheel

Keybindings conflictivos en Emacs

Desde que empecé a usar Emacs probé dos grandes paquetes para facilitar su uso. Uno ha sido Ergoemacs, que es buenísimo porque remapea todos los accesos rápidos de teclado para poder usarlos de forma más simple e intuitiva (por ejemplo: C-x C-f, que “visitaba” un archivo, pasa a ser C-o, que es el comando stándard para "abrir archivo" en casi todos los programas actuales). Sin embargo, luego encontré buenas funcionalidades en otro llamado Prelude. Estando sólo activo este último (ya que hay conflictos con ergoemacs) tuve el siguiente problema:

A punto para Lisp

Cuando empecé a leer Practical Common Lisp, de Peter Seibel, tras escuchar el reportaje de Sacha Chua a Bozhidar Batsov, tuve algunos inconvenientes para poder instalar Lisp en mi compu, hasta que encontré el tutorial Installing Common Lisp. Estas notas resumen la información del video (sus instrucciones se muestran en un entorno Windows mientras que mi transcripción es para Linux), para poder instalar un Lisp en cualquier máquina con Emacs:

Primer snippet

Un snippet ejemplar

Este es el primer snippet diseñado para automatizar el encabezado de las paginas hechas en restructuredText, para facilitarme la escritura de este blog. Hay mucha ayuda en la página de Capitao Morte (supongo que es su autor).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# -*- mode: snippet; require-final-newline: nil -*-
# name: encabezado
# key: enc
# expand-env: ((yas-indent-line 'fixed))
# --

:---
title: "${1:titulo}"
:date: ${2:2014}-{3:10}-{4:31} {5:10:00}
:category: ${6:$$(yas-choose-value '("blog" "politica" "salud" "tecnicismos"))}
:tags: $7
---
:author: Diego Efe
:excerpt: $1

$0

En la linea 14 la instrucción $0 se agregó porque en algún lado decía que suele ponerse para indicar el lugar de salida cuando se termina de ejecutar el snippet.