Hace ya unos cuantos meses escribí para Linux+ un artículo sobre esto que os comento hoy, una introducción al desarrollo de aplicaciones web con Mono. Concretamente fue en el número de febrero. Ha pasado el tiempo y la editorial ha tornado sus miras hacia un entorno más abierto. Primero fue el lanzamiento de la revista en formato PDF y de distribución gratuita (antes era de papel y costaba unos cuantos euros) y ahora han lanzado un blog, llamado Revista Linux, donde irán publicando los artículos más relevantes de la revista en formato post, lo que seguro que tanto vosotros como los motores de búsqueda lo agradeceréis.
Linux y la fragmentación: sí, ocurre – El blog de Diego Calleja

Sí, no soy un fanático de Mac, ni de iPhone, ni iPad, pero si un seguidor de sus productos y uno que se da cuenta cómo terceros lo ponen cada vez más fácil para crear aplicaciones para iPhone a golpe de ratón, nada de programación, ni de instalaciones.

Tecnológicamente hablando se trata de algo revolucionario, desde la plataforma que han creado en AppWhirl nos es posible crear aplicaciones para iPhone gráficamente y sin ningún conocimiento especial. No permite grandes configuraciones, pero me parece algo novedoso y que quería compartir con vosotros.
Según cuenta Edulix en su blog, conocido mío y sobre todo compañero de Danigm en SUGUS, es posible que la Dirección General de Policía y la Guardia Civil estén cometiendo una infracción de la licencia GPL al publicar el código fuente del paquete pckcs1 sin indicar licencia alguna, por lo que según la ley española se reservan todos los derechos. Sin embargo, este paquete está preparado para ser añadido “al paquete opensc que se encuentra bajo licencia LGPL, una licencia cuya naturaleza es vírica y por tanto fuerza a que obras derivadas como la vuestra deban estar bajo una licencia LGPL-compatible“.

Chiste copiado vilmente de un comentario de meneame, por gromenawer.
Aquí os dejo mi cheat sheet, o pequeño manual de referencia, personal sobre Bash. Faltan cosas pero creo que he cubierto lo más básico. Espero que os guste. 😉
Para escribir en Bash puedes hacerlo directamente desde la consola/terminal de GNU/Linux, sin embargo, su mayor potencia radica en poder escribir ‘scripts’ y ejecutar piezas de código para automatizar tareas. Aquí muestro paso a paso un ejemplo.
Abre tu editor de textos favoritos y escribe el siguiente código.
#!/bin/bash echo "Hola mundo"
Guárdalo como holamundo.sh (la extensión no importa pero ésta es renococida por muchos editores de texto) .
Para lanzar el ‘script’ Bash, dále permisos de ejecución. Para ello escribe en tu terminal/consola de comandos:
chmod u+x holamundo.sh
Recuerda ejecutar este comando y los siguientes en la misma carpeta/directorio donde se encuentra holamundo.sh
Lanza el ‘script’ ejecutando en tu terminal/consola:
./holamundo.sh
Si no ha habido ningún problema se ejecutará el ‘script’ de Bash mostrando la frase “Hola mundo”.
Aquí se mostrarán las características de dicho intérprete de comandos o shell de GNU. Recuerda que los comandos son las acciones a ejecutar desde la consola/terminal Linux. En la siguiente sección hay una recopilación de ellos.
Los comentarios en Bash se hacen línea a línea con el símbolo #.
#!/bin/bash # # Hola Mundo comentado # echo "Hola mundo"
Las variables no tienen tipo, es decir, una variable puede contener una cadena, un número, etc. sin necesidad de definirlo.
La sintaxis es:
nombre_variable=valor_variable
Es obligatorio no dejar espacios antes o despues del simbolo ‘=’ ya que sino Bash interpretaría la variable como un comando Linux.
Para acceder a una variable simplemente escribe como prefijo $ en el nombre de la variable.
echo $varname
Un ejemplo sencillo:
#!/bin/bash # Asignación y salida de variables mivariable="Me llamo Nacho" echo $mivariable
Cuando ejecutas desde tu terminal/consola tienes la posibilidad de pasarle más argumentos. Por ejemplo:
./miScript.sh hola 4
Para recoger estos valores escribe $ y a continuación el número de posición del argumento pasado. El primer argumento tiene valor $1, que sería ‘hola’, y el segundo argumento sería $2, en el ejemplo sería el número 4. La variable $0 es el propio nombre del archivo.
#!/bin/bash # # Paso de variables # echo "Tu primer argumento es" $1 echo "Tu segundo argumento es" $2
También hay que destacar que $? guarda el valor de salida del último comando ejecutado. $* almacena todos los argumentos y $# es el número de argumentos pasados.
Los condicionales y bucles se rigen mediante la evaluación de una expresión. Por eso lo primero es saber cómo programar en Bash las evaluaciones de una expresión.
La evaluación de una expresión da como resultado verdadero o falso. Si la comparación o evaluación de la expresión es verdadera se ejecutará el bucle o la condicional, si es falsa la evaluación no se ejecutará.
En Bash, la sintaxis es la siguiente:
test expresión
ó
[ expresión ]
Un ejemplo de expresión sería [ 3 -eq 5 ] que comprueba si el valor 3 es igual a 5. Como es incorrecto, el valor que devuelve es falso. Los símbolos [ y ] tienen que estar obligatoriamente separados por un espacio.
numero1 -eq numero2: Devuelve verdadero si 'numero1' es igual a 'numero2'. numero1 -ge numero2: Devuelve verdadero si 'numero1' es igual o mayor a 'numero2'. numero1 -gt numero2: Devuelve verdadero si 'numero1' es mayor a 'numero2'. numero1 -le numero2: Devuelve verdadero si 'numero1' es igual o menor a 'numero2'. numero1 -lt numero2: Devuelve verdadero si 'numero1' es menor a 'numero2'. numero1 -ne numero2: Devuelve verdadero si 'numero1' no es igual a 'numero2'.

La semana pasada, dándome una vuelta por el blog oficial de Google, me encontré con una entrada en la que hablaban de la imagen que encabeza este post. Sí, se venden sudaderas de gmail.
Desde que empezó este servicio de correo a mediados del año 2004 nada me ha hecho dudar de sus capacidades ni de buscar cualquier otra alternativa, de hecho lo uso en mi cuenta personal y para administrar mis dominios personales (transfieriendo los registros MX desde mi servidor DNS). Y sí, si sois de los que pensáis como yo, creo que poco vais a tardar en haceros con una vestimenta tan particular. Personalmente me parece una idea de negocio muy buena.
Cuando me refiero a no usar enlaces, me refiero a no usar enlaces al fichero en sí, por ejemplo: https://www.linuxhispano.net/logo.jpg sino a algo así como http://www.dominio.com/obtener_fichero.php?id_fichero=100.
¿Con qué idea podemos querer utilizar esto? Además de ocultar algo más de nuestra estructura interna, que siempre viene bien, es útil saber cómo descargar ficheros de este modo para tener un mayor control sobre el flujo, de forma que podamos comprobar rol de la persona que descarga, acceder a una base de datos para obtener el fichero de un campo BLOB o culaquier otro tratamiento que queramos hacer.
Para ello con PHP y suponiendo que tenemos el fichero ya accesible en disco (si está almacenado en una BBDD una solución podría ser crear un temporal mientras tanto), sólo tendremos que hacer lo siguiente:
header('Content-Description: File Transfer');
header("Content-Type: application/force-download");
header('Content-Disposition: attachment; filename='.basename($ruta));
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . obtenerTamanhoFichero($ruta));
readfile($ruta);
exit;
Utilizo una funcion obtenerTamanhoFichero que ahora os presentaré porque la función equivalente de PHP en ocasiones no funciona correctamente. Por cierto, el fichero en cuestión estará en la ruta indicada por la variable correspondiente, $ruta.
function obtenerTamanhoFichero ($url) { if (substr($url,0,4)=='http') { $x = array_change_key_case(get_headers($url, 1),CASE_LOWER); if ( strcasecmp($x[0], 'HTTP/1.1 200 OK') != 0 ) { $x = $x['content-length'][1]; } else { $x = $x['content-length']; } } else { $x = @filesize($url); } return $x; }
Papercuts y Chrome Notepad, 2 extensiones de Chrome para sincronizar tus notas entre ordenadores diferentes – Ubuntu Life