Me ha parecido muy interesante esta reflexión en un artículo de Rodolfo Carpintier (las negritas son mías):
Cada sesión de éstas [reunión con emprendedores entusiasmados] es una
bendición en este país que sigue mirándose al ombligo y en donde las
portadas de los periódicos están dedicadas a las actuaciones de chorizos
de mayor o menor calado -al parecer, vende más la porquería- en vez de
sacar a nuevos modelos de emprendedores que es lo que necesitamos para
generar empleo y afrontar el Siglo XXI de otra manera.
El público en general odia a la gente de las altas esferas que se forran
con chanchullos, pero lo ven algo lejano, inaccesible. Pero, ¿y si los
medios no se hiciesen eco de estas basuras en la portada -si acaso sólo
en alguna escueta nota en el interior? ¿Y si en su lugar las portadas fuesen para emprendedores de éxito, para nuevos negocios que ha montado el
vecino del 5º? ¿La gente vería más viable el llevar a cabo su idea y así
generar negocio y empleo?
La prensa, escrita o visual, tiene un gran poder sobre la masa pública. Actualmente lo que nos muestra día sí y día también es que unos pocos se pegan la gran vida y de vez en cuando trincan a alguno. Si en lugar de tanta basura las portadas mostrasen que es posible emprender, que crear un negocio es viable y no una utopía al alcance sólo de unos pocos, ¿podríamos ver un cambio en la actitud general hacia el emprendimiento?.
Hoy en día la conversación de bar típica habla del político corrupto o del empresario del pelotazo ladrillero, pero tal vez cambiando las portadas la convesación de la barra derivaría hacia el chico aquel que montó una agencia de viajes en internet, o el agricultor sesentón que empezó a vender naranjas directamente al consumidor. Y tal vez, de esa forma se iría introduciendo en el imaginario colectivo algo más positivo que la mierda que vemos a diario, una imagen más constructiva del mundo, donde si alguien tiene una idea de negocio sienta que no es utópica y la gente a su alrededor le apoye en lugar de ponérselo negro.
Ante la previsible aprobación dentro de unas horas de la polémica «Ley Sinde», los periodistas, bloggers, usuarios, profesionales y creadores de Internet seguimos manifestando, como hicimos en el Manifiesto en defensa de los derechos fundamentales en Internet de 2 de diciembre de 2009, nuestra firme oposición a una norma que incluye modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet.
En principio no parece de recibo que un Gobierno en funciones adopte esta decisión en su último o uno de sus últimos Consejos de Ministros.
Sería doblemente grave que se confirmaran las presiones ejercidas por EEUU, a través de su embajada en Madrid, como revelaron los cables de Wikileaks, por lo que insistimos en estos razonamientos:
Los que nos dedicamos al desarrollo web tendemos a usar IDEs pero acabamos tecleando mucho código HTML. ¿No hay alguna forma de hacer más cómodo el escribir HTML y CSS? Sí, hay una forma, y es espectacular: Zen Coding.
Zen Coding es una extensión para los IDEs y editores de código más conocidos: Aptana/Eclipse, Visual Studio, Netbeans, Coda, TextMate, Komodo, Notepad++, Dreamweaver, Ultraedit, BBEdit... que se basa en la expansión de expresiones para autocompletar código HTML, XML y XSL. Basta con instalar el plugin en nuestro IDE favorito y escribir la estructura que deseamos usando una sintaxis muy similar a los selectores CSS. Así, para escribir toda la estructura de un menú en HTML bastaría con escribir:
div#dvContainer>div#dvHeader>div.dvUser+div#dvMenu>ul#ulMenu>li.liMenuItem*4
Lo que, una vez expandido, da como resultado:
<div id="dvContainer">
<div id="dvHeader">
<div class="dvUser"></div>
<div id="dvMenu">
<ul id="ulMenu">
<li class="liMenuItem"></li>
<li class="liMenuItem"></li>
<li class="liMenuItem"></li>
<li class="liMenuItem"></li>
</ul>
</div>
</div>
</div>
Cualquier desarrollador web puede escribir selectores CSS a gran velocidad, así que, ¿por qué no dejar de teclear docenas de etiquetas HTML y que ese trabajo lo haga nuestro IDE?
Las posibilidades de Zen Coding son inmensas, es lo suficientemente flexible como para escribir casi cualquier estructura que necesitemos:
div#dvContainer>div#dvHeader>(div.dvUser+div#dvMenu>ul#ulMenu>li.liMenuItem*5)+div#dvContent>form#fLogin[name=loginform method=post action]>fieldset>(label[for=login]{Usuario}+input[type=tex name=login])+(label[for=pass]{Password}+input[type=tex name=pass])+input[type=submit]
Y por supuesto, no sólo para HTML, ya que podemos generar cualquier estructura XML:
libraries>library#id$*5>address[type]+tlf[type]
Así que, baja el plugin para tu IDE e instálalo, y deja de teclear etiquetas eternamente; deja que tu IDE haga el trabajo sucio.
Fantástico truco de Steve Adams. Con cron podemos programar tareas por horas, días, semanalmente, mensualmente... pero, ¿cómo programar una tarea para que se ejecute cada dos semanas?
#----+-----+-----+-----+-----+------------------------------------------------- #min |hour |day |month|day |command # | |of mn| |of wk| #----+-----+-----+-----+-----+------------------------------------------------- 03 04 * * 4 expr `date +%W` % 2 >/dev/null || script_a_ejecutar
El comando comprueba si la semana actual es par o impar, y ejecuta el comando en caso de ser par.
En caso de querer ejecutar el comando sólo en las semanas impares, para evitar el error de cron por un valor de retorno distinto a cero, se debe usar:
expr `date +%W` % 2 >/dev/null && run_my_script || true
Cuando estamos haciendo un boceto de web o diseñando una nueva web pero aún no tenemos material del cliente solemos usar imágenes de stock para rellenar los huecos, lo que se llaman placeholder images. Pero hay una forma más cómoda: usar servicios de imágenes automáticas, basta con poner el src de la img apuntando a uno de estos servicios para tener imágenes aleatorias acordes a nuestro diseño. Conozco dos servicios así:
Con un nombre que recuerda al conocido Lorem Ipsum, Lorem Pixum nos devuelve una imagen aleatoria del tamaño indicado, con la ventaja de que podemos pedir además una temática concreta. Por ejemplo:
src="http://lorempixum.com/400/200/sports/1/Texto de la imagen"
La sintaxis de la ULR es:
http://lorempixum.com/ANCHO/ALTO/CATEGORÍA/ID/TEXTO
siendo todos los parámetros opcionales. En categorías, podemos elegir entre abstract, animals, city, food, nightlife, fashion, people, nature, sports, technics y transport.
La otra opción es más simple pero también muy útil. Placehold.it nos permite insertar una imagen plana con el tamaño escrito en ella. Si Lorem Pixum es ideal para diseño terminados a falta de material por parte del cliente, Placehold.it es perfecto para bocetos. Basta con llamar a la URL pasándole el tamaño deseado:
src="http://placehold.it/350x309"
La sintaxis de la URL es:
http://placehold.it/TAMAÑO/COLORFONDO/COLORTEXTO.TIPO&text=TEXTO
Siendo todos opcionales excepto el tamaño. El tamaño puede ser de la forma ANCHOXALTO o sólo ANCHO, en cuyo caso la imagen será un cuadrado. Los colores de fondo y texto van en hexadecimal, por ejemplo, 99FF99. El texto debe ponerse siempre al final de la URL y los espacios cambiarse por el símbolo '+'. El tipo puede ser .jpg, .gif o .png (por defecto es GIF) y puede ponerse detrás de cualquier otro parámetro aunque por claridad es mejor ponerlo al final. Un ejemplo más elaborado sería:
src="http://placehold.it/430x285/99FF99/22CC00.jpg&text=Probando+Placehold.it"

Con estos dos servicios de imágenes de relleno podemos acelerar el trabajo con bocetos y diseños de webs al no tener que andar buscando imágenes, recortando... ya que nos permiten insertar imágenes de cualquier tamaño sin salir de nuestro editor de código favorito.
Me acaba de ocurrir: tengo un listado de ficheros en un archivo, un fichero por línea, y debo hacer un paquete con ellos. Así que pruebo lo obvio:
$ tar zcf fichero.tgz < lista_ficheros tar: Rechazo cobarde a crear un archivo vacío
Sorpresa, a tar no le gusta recibir la lista de ficheros a empaquetar "en columna", sino que los espera "en fila". Parecía trivial fusionar todas las líneas del listado de ficheros en una sola, pero al final me llevó un rato, así que lo anoto aquí para futuras referencias:
$ echo `cat lista_ficheros` >> lista_ficheros_linea $ tar zcf fichero.tgz `cat lista_ficheros_linea`
Esto funcionará si el fichero con la lista de archivos no contiene líneas en blanco. Si es el caso, basta con filtrar caracteres:
$ echo `cat lista_ficheros | cut -f2 | grep ".${X}"` >> lista_ficheros_linea
$ tar zcf fichero.tgz `cat lista_ficheros_linea`
A veces tenemos un equipo que se cuelga frecuentemente o que tiene errores extraños y que no podemos aislar. En estos casos hay que mirar con sospecha a la RAM, ya que es probable que sea la causa del problema. Soluciones como Memtest86+ son de sobra conocidas, pero, ¿y si no podemos arrancar con un disco de inicio para ejecutar Memtest? ¿Por ejemplo, en un servidor VPS?
Según la Wikipedia: La tecnología S.M.A.R.T. acrónimo de Self Monitoring Analysis and Reporting Technology consiste en la capacidad de detección de fallos del disco duro. La detección con anticipación de los fallos en la superficie permite al usuario el poder realizar una copia de su contenido, o reemplazar el disco, antes de que se produzca una pérdida de datos irrecuperable.
En Linux lo tenemos muy sencillo para monitorizar cómodamente nuestro disco. Lo primero, instalar el conjunto de herramientas SMART:
$ sudo apt-get install smartmontools
Y comprobar que nuestro disco es compatible y que tenemos SMART activado en la BIOS del equipo:
$ sudo smartctl -a /dev/sda
Este comando nos devolverá una larga lista de información que muestra los valores actuales de salud de nuestro disco. Por ahora sólo interesa que no devuelva un error de Device does not support SMART, en otra anotación trataré esta información y para qué nos sirve.
Si hemos obtenido la información, sin ese mensaje de error, es que el disco es compatible y tenemos SMART activado en la BIOS, así que pasamos al último paso: instalar un monitor que nos avise en caso de que se detecte la posibilidad de algún futuro problema en el disco. Haremos esto con smart-notifier, un pequeño programita que lee la información de smartmontools en el inicio del sistema y si detecta algún valor peligroso nos avisa.
$ sudo apt-get install smart-notifier
Para que smartmontools se ejecute al incio del sistema, descomentamos una línea en /etc/default/smartmontools:
$ sudo vi /etc/default/smartmontools start_smartd=yes
Y ya sólo nos quedaría añadir el ejecutable /usr/bin/smart-notifier para que se ejecute al iniciar nuestra sesión gráfica. Esto se hace de forma distinta en KDE, Gnome, Xfce... por lo que no lo anoto aquí.
Una vez añadido, cada vez que arranquemos el equipo se ejecutará el demonio smartd que monitorizará los datos de salud del disco duro, y smart-notifier nos avisará con una ventana en caso de detectar algún problema.
Para estar seguros del funcionamiento, nada mejor que hacer una prueba, editando /etc/smartd.conf y añadiendo el parámetro -M test a la línea DEVICESCAN dejando el resto de la línea igual, por ejemplo:
$ sudo vi /etc/smartd.conf DEVICESCAN -m root -d sat -M test -M exec /usr/share/smartmontools/smartd-runner
Al reiniciar el demonio smartd debería aparecernos un error de prueba:
$ sudo /etc/init.d/smartmontools restart

Para terminar, quitamos el parámetro -M test que acabamos de poner, reiniciamos de nuevo el demonio smartd y listo, ya podemos estar un poco más tranquilos al respecto de la pérdida de nuestros datos.
Esta web
http://alvaroremesal.net
, su contenido, texto e imágenes está licenciado bajo una
Licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 España.