Python: manejo básico de listas.

Declaración de la variable de tipo lista:
milista = list();

Añadir elemento a la lista:
milista.append('elemento')

Mostrar la lista al completo:
print milista

Mostrar el número de elementos que componen la lista:
len(milista)

Acceder al elemento de la lista en la posición n:
milista[n]

Ordenar los elementos de la lista:
milista.sort()

Ordenar los elementos de la lista en orden inverso:
milista.reverse()

Eliminar el primer elemento de la lista que coincida con x:
milista.remove(x)

Añadir un elemento en una posición concreta de la lista:
milista.insert(posicion,elemento)

Mostrar la posición de un elemento en la lista:
milista.index(elemento)

Python: manejo básico de cadenas.

En Python podemos utilizar tanto comillas simples ' ' como comillas dobles " " para indicar que el texto en su interior debe tratarse como una cadena. Para facilitar la distinción del código Python con el código HTML intercalado se suelen usar las comillas simples ' '.

Asignación:
cadena = 'cualquier texto'

Comparación:
cadena1 == cadena2

El carácter en la posición n:
cadena[n]
Conviene recordar que las posiciones empiezan en 0.

Los caracteres que van de la posición n a la m-1:
cadena[n:m]

Los caracteres que van desde el inicio de la cadena hasta la posición n-1:
cadena[:n]

Los caracteres que van desde la posiciones n hasta el final de la cadena:
cadena[n:]

Concatenar cadenas:
cadena3 = cadena1 + cadena2

Funciones especiales de la biblioteca String.

Búsqueda de una cadena dentro de otra.
cadena.find('hola')
Devuelve la posición de la primera coincidencia, ó -1 si cadena no contiene el texto buscado.

Concatenar una cadena con una variable de tipo entero:
cadena_destino = cadena + str(variable_entero)

La operación inversa, obtener el entero que hay dentro de una cadena se hace con int():
entero = int(cadena)

Conviene recordar que podemos consultar el tipo de cualquiera variable con type:
type(entero)
Devuelve <type 'int'>

Github: primeros pasos.

Para los que no lo conozcan, Github es un repositorio de git gratuito para que organices todos tus códigos fuente. Es gratuito, siempre en cuando tu código sea abierto. Si quieres tener repositorios con acceso restringido tendrás que pasar por caja ($7/mes aprox). Además de servirte como respaldo para tus proyectos, tiene algunas características sociales. Puedes hacer contactos, colaborar en proyectos de otros, etc. Por ahora me centraré en los básico. Crear un proyecto, subir y bajar código.
Sigo los pasos que indica el própio github.

touch README.md
Creo un archivo de README. Opcional, pero siempre recomendable.

git init
Inicializa un repositorio git en la ruta donde ejecutemos el comando.

git add README.md
Añade el archivo README a la lista de archivos controlados del repositorio. Es decir, que se modifica, crea ó borra cada vez que sincronices el repositorio.

git commit -m "first commit"
Sincroniza tu copia local con el repositorio.Si es la primera vez que usas git en tu máquina, es posible que aparezca algunos mensajes de error indicando que necesita algunos datos sobre tí. No hay problema. Sólo necesitamos modificar un par de variables "globales de git" para evitar esto.

git config --global user.name "tu nombre"
Indica tu nombre de usuario.

git config --global user.email you@example.com
Indica tu correo electrónico.

git commit --amend --reset-author
Hace un commit fijando tus dos cambios anteriores. Antes de enviar los datos te dará la posibilidad de cambiar el mensaje del commit, usando el editor nano. Basta con pulsar ctrl+o (salvar) y ctrl+x (salir), para continuar sin cambiar nada. Arreglado esto, ya podemos seguir.

git remote add origin https://github.com/[usuario en github]/[nombre del repositorio].git
Hasta ahora no hemos utilizado para nada github. Con esta orden, enlazamos nuestro repositorio con la copia gemela en github, a la que damos el nombre de origin.

git push -u origin master
Y con esto enviamos nuestra copia local al servidor.

Esto sólo es lo básico para empezar. En otro post, quizá, veremos los comandos más utilizados durante el desarrollo del proyecto.

Añadir un disco nuevo en linux.

Para añadir un disco nuevo a nuestro sistema linux sólo necesitamos dos comandos; fdisk y mkfs.
fdisk nos permite modficar la tabla de particiones; consultar, crear y borrar.
mkfs nos permite crear el sistema de ficheros que queramos en cada una de la particiones creadas para que nuestro sistema operativo pueda usarlas.
Comando imprescindibles:
fdisk -l muestra las tablas de particiones de todos los dispositivos conectados.
fdisk -l [dev] para ver la de un dispositivo concreto. ej: fdisk -l /dev/sdb
fdisk [dev] nos permite entrar en el menu de fdisk para realizar las operaciones necesarias. Pulsando m tendremos la ayuda.
Las opciones más importantes son:
q - salir sin guardar los cambios
w - escribir los cambios en la tabla de particiones (asegúrate bien antes, no hay vuelta atrás)
c - crear un partición
d - borrar una partición
p - mostrar la lista de particiones
Una vez que tenemos las particiones hechas y en su sitio, vamos con mkfs. Lo primero es decidir el sistema de ficheros queremos usar; ext2, ext3, ext4, swap, reiserfs, xfs, ... Cada uno tiene sus ventajas y sus inconvenientes. En este caso uso ext2 y supongo que la partición quiero formatear es la primera de mi disco nuevo. Según eso sólo te que ejecutar
mkfs.ext2 /dev/sdb1
... y en unos segundos, según el tamaño del disco, tendré mis disco nuevo preparado para usar.

Bash: caracteres especiales.

En bash se usan con frecuencia una serie de caracteres especiales que luego no salen tal cual en la consola. Todo el mundo, conoce \n para cambiar de línea, pero hay algunos más. Esta es la lista completa:

\a - beep de la consola
    se puede conseguir un control más avanzado con al aplicación beep (disponible en debian) -l [tiempo del beep] -f [frecuencia] y más
\b - retroceso
\e \E - escape (no ANSI C)
\f - form feed
\n - cambio de línea
\r - retorno de carro
\t - tabulación
\v - tabulación vertical
\\ - una barra invertida
\' - una comilla simple
\" - una comilla doble
\nnn - valor en octal
\xHH - valor en hexadecimal
\cx - control-x

Control de jobs linux; jobs, bg, fg.

Operaciones básicas para gestionar la ejecución de varias tareas de manera simultanea en linux.
Ejecutar en segundo plano:
 [comando] &
 ej: sleep 10 &
Consultar los trabajos en curso:
 jobs
 jobs -pl - lista de jobs (p mostrar pid, l lista)
Terminar un trabajo que se esta ejecutando en primer plano:
 ctrl+c
Pasar el trabajo de primer plano a segundo plano y dejarlo en pausa:
 ctrl+z
Redireccionar salida estandar. Es útil cuando tenemos trabajos ejecutándose en segundo plano y no queremos su salida aparezca en la consola.
 > /dev/null - descartar la salida
Parar un trabajo que se está ejecutando en segundo plano:
 kill -s 19 [pid] (señal 19 = SIGSTOP)
Reanudar un trabajo en segundo plano:
 bg [job_id]
Reanudar un trabajo en primer plano:
 % [id_job]
ó  fg [job_id]

Bienvenida.

Bienvenido a apuntes sueltos. Este blog no es más que un contenedor personal para organizar de trucos, recetar, manuales, y enlaces que he ido necesitado con el tiempo. En cualquier caso, espero que sea de utilidad para cualquiera que llegue a el por la gracia de Google.