Reemplazar texto en un fichero

Noviembre 7, 2009 por luixal

El viernes, trabajando en la distribución de Vidium, me encontré con un problemilla que no sabía como solucionar y que se va a quedar aquí para cuando se me olvide ;)

Lo que tenía que hacer era que Apache no mostrara los ficheros de un directorio cuando no hay un fichero index.loquesea. Ésto se hace (en apache2) eliminando Indexes de las opciones en el fichero /etc/apache2/sites-available/default (a menos que tengas definidos hosts virtuales).

Ahora bien, para que la cosa se hiciera automáticamente desde la instalación de la distribución tenía que hacerlo con un comando o vía shell script, como soy muy vago, preferí invertir un ratejo en buscar algún comando que hiciera ésto porque me parecía algo bastante trivial que alguien tendría que haberse encontrado antes y así es. Podemos solucionarlo con el comando sed. Vamos a ver un par de ejemplos:

Si queremos reemplazar en el fichero “fichero”, la cadena “vieja” por “nueva” utilizaremos un comando como éste:

sed -i ’s/vieja/nueva/g’ fichero

Yo en mi caso, lo que quería era eliminar la cadena “Indexes” así que utilicé algo como ésto:

sed -i ’s/Indexes//g’ /etc/apache2/sites-available/default

Seguramente se podrá utilizar una expresión regular para borrar en vez de sustituir por una cadena vacía, pero ya os lo he dicho, soy un vago :P

El comando sed permite hacer un montón de cosas, así que si queréis echarle un vistazo más a fondo podéis mirar éstos links:
Sed – An Introduction and Tutorial
A small tutorial about sed

Presentaciones del Futuro

Octubre 23, 2009 por luixal

Éstos últimos días me estoy tragando un montón de presentaciones, sobre todo en el máster y alguna más que he visto por ahí suelta y justo ayer caí en un detalle que he visto en un post de Maestros del Web (Consejos prácticos para impresionar con tu start-up). Según comentan ellos el punto está en que “Ya no es 1995 y el PowerPoint no te ayudará a dejar una buena impresión”, algo que comparto al 100%.

Si bien una presentación en PowerPoint (y lo mismo opino para el Impress de OpenOffice) se puede maquear mediante imágenes y alguna animación que quede bien, lo que ahora llama la atención son los diseños en plan “web 2.0″. Si sabemos ésto, ¿por qué seguimos haciendo las presentaciones sobre PowerPoint/Impress?

Seguramente la primera respuesta será que son lo único que hay pensado para las presentaciones y que hacerlas con otras cosas más modernas lleva mucho más trabajo. Y seguramente la segunda respuesta recaerá en que las presentaciones no las hace alguien técnico que, con suerte, sabe manejar el PowerPoint. Las formas de hacer todo en ésta vida se parecen, sobre todo en temas de organización, así que, mi propuesta para una presentación que realmente impresione sería la siguiente: Que dicho no-técnico diseñé la presentación, con papel y boli, que lleve esos bocetos al técnico que se va a encargar de hacer realidad la idea que tiene para su presentación y le explique la idea. Desde mi punto de vista, ese técnico sería un diseñador web, con mucho conocimiento de ajax/javascript y css. Después de ésto sólo tienes que llegar a donde quieres hacer la presentación, ni siquiera tienes que llevar tu portatil o un pendrive, sólo abrir un navegador, apuntar a la dirección de la presentación, poner el navegador a pantalla completa y deleitar a la audiencia.

Piensa en el valor añadido, yo no bajo documentos con presentaciones, miro por la web a ver que información me gusta y si no me convence lo que veo ahí, me marcho a buscar otro producto, ¿de verdad quieres que pase ésto con tú producto?

Extensiones para Firefox

Octubre 18, 2009 por luixal

Aquí vamos con algunas extensiones nuevas para firefox que he empezado a usar, algunas ya muy conocidas, pero que todavía no había empezado a usar:

  • Delicious Bookmarks: Conocida por todos, te permite mantener los favoritos en Delicious, de forma que los podemos tener sincronizados comodamente los marcadores entre, por ejemplo en mi caso, el portatil y el sobremesa de casa ;)
  • Morning Coffee: Seguro que todos abrimos ciertas pestañas todos los días, ésta extensión nos permite hacer exactamente eso, tener un botón que al pulsarlo nos abrirá esas pestañas. Además, permite configurarlo según qué día de la semana sea, por si lo fines de semana nos dedicamos a leer otras cosas ;)
  • PermaTabs Mod: Ésta extensión nos permité marcar ciertas pestañas como “permanentes”, de forma que no podamos cerrarlas por accidente y estén siempre abiertas. Perfecto para las herramientas que tenemos abiertas de conituno, en mi caso, GMail, GCalendar y GDocs :D
  • User Agent Switcher: El nombre lo dice todo, nos permite cambiar el agente de usuario que envía el navegador al solicitar la página al servidor. Más sencillamente, podemos marcar el agente de usuario de iPhone y el servidor pensará que estamos solicitando la página desde el móvil. ¿su utilidad? Ultimamente me estoy metiendo en el mundillo del desarrollo web y quiero desarrollar sitios para móviles (android), de ésta forma puedo probarlo directamente desde el ordenador sin tener que hacer las pruebas con el móvil.
  • Tab Mix Plus: Ésta no la he probado demasiado, pero nos da más opciones a la hora de trabajar con las pestañas.

Y nada más, que os aprovechen! :D

Fuentes Embebidas con @font-face

Octubre 8, 2009 por luixal

Sigo metiéndole un poco a lo de desarrollo web, así que sigo soltando tips, más bien chustillas porque no es que se me dé demasiado bien (estoy demasiado acostumbrado a desarrollar siempre aplicaciones para ejecución en local o cliente/servidor), pero la de hoy es interesante.

Yo soy de los que cuando tienen que hacer un un header para el blog, página web o similar, busca una fuente molona, pilla el Gimp, escribe el nombre del blog, le mete un par de filtros, juega un poco con los colores, lo exporta a png y lo coloca hay en medio bien grande ;)

¿y todo eso por qué? Pues porque si lo meto en html y le digo que use esa fuente pero el visitante no la tiene entre sus fuentes, lo que va a ver es un esperpento de Arial a gran escala (literalmente xD). Gracias a un simple @font-face en nuestro CSS podemos solucionar ésto de un plumazo. Lo de los filtros y demás “maestría” artística va a ser que no, pero eso lo añadía porque “ya que había que hacer una imagen…” xDDDD

Al tema, lo primero que haremos será declarar nuestra fuente en el fichero CSS tal que así:

@font-face {
font-family: “Old Stamper”;
src: local(“Old Stamper”), url(./old_stamper.ttf) format(“truetype”);
}

Depués, una vez definida la fuente la aplicaremos donde sea necesaria, para nuestro ejemplo en todo el body:

body {
font-family: “Old Stamper”;
}

una vez hecho ésto sólo tenemos que generar un html que tire de ese CSS y muestre algo de texto, por ejemplo:

<head>
<title>Embedded Font Typo Testing</title>
<link rel=”stylesheet” type=”text/css” href=”view.css” media=”all”>
</head>
<body>
<div align=”center”>Embedded Font Typo Testing</div>
</body>

Hay que tener en cuenta los navegadores que lo soportan y sus versiones: Firefox 3.5, Safari 3+ y 4+, IE 7+ (en IE6+ se puede aplicar también, con el formato de fuente .eot y haciendo un apaño pero… como que paso :P ) y Opera (no puedo asegurar a partir de qué versión, pero la actual lo soporta).

Así se ve mi ejemplo (en un navegador que no lo soporta y en uno que si, firefox 3.0.x y opera 10):

 

Así que nada, espero ver páginas más chulas a partir de ahora!! Si queréis más información sobre @font-face os dejo un par de posts más completos: @font-face in Depth de User Agent Man (del que he sacado lo básico para éste post) y otro de CSSBlog.

Software Variado (I)

Octubre 8, 2009 por luixal

Una de éstas entradas para recordad ciertas aplicaciones que algún día podrían venirme bien:

CherryTree: Una aplicación para tomar notas basadas en jerarquías. Ya sé que una buena herramienta para tomar notas es tomboy, pero quizás ésta la veo más adecuada para tomar notas sobre algo que quieres llevar más organizado.

HomePage | .deb

gWakeOnLan: Herramienta para gnome con la que podremos encender máquinas a través de la red, siempre que tengan soporte para WakeOnLan y tengamos la MAC de la tarjeta de red.

HomePage | .deb

Grsync: Interfaz gráfico para sincronizar datos mediante grsync.

HomePage

Ejecter: Aplicación residente (con icono en el tray) que nos permite desmontar unidades de una forma muy cómoda.

Homepage

Sobre cómo NO educar

Septiembre 27, 2009 por luixal

Aviso para los que siempre ven posts de tono “técnico”, éste post no va en esa línea, es más sobre la sociedad y la educación.

Hoy he estado leyendo los periódicos de tirada nacional, y mira que hacía tiempo que no leía yo por internet nada que no fuera técnico o contenidos sobre la blogosfera, redes sociales y demás temas. Total, que me he encontrado con ésta noticia en el periódico ABC (ojo, cito el periódico como fuente de la noticia, soy apolítico) titulada “Pegué a mi padre, no aguantaba órdenes”. El percal que hay montado hoy en día sobre los jóvenes agresivos, los problemas en casa que llegan a las manos entre padres e hijos, amenazas, denuncias entre padres e hijos, etc… no sé como calificarlo, pero me parece que se sale del tiesto.

De todas formas, lo más “heavy” viene cuando lees los comentarios. Me ha hecho especialmente gracia éste, que pego a continuación (y lo tabulo, coloco y puntúo un poco porque leerlo como estaba fué un infierno):

El popular juez de menores de Granada, Emilio Calatayud, conocido por sus sentencias educativas y orientadoras, ha publicado un libro “Reflexiones de un juez de menores” (Dauro) en el que inserta un “Decálogo para formar un delincuente “. Es muy interesante. Dice así:

  1. Comience desde la infancia dando a su hijo todo lo que pida. Así crecerá convencido de que el mundo entero le pertenece.
  2. No se preocupe por su educación ética o espiritual. Espere a que alcance la mayoría de edad para que pueda decidir libremente.
  3. Cuando diga palabrotas, ríaselas. Esto lo animará a hacer cosas más graciosas.
  4. No le regañe ni le diga que está mal algo de lo que hace. Podría crearle complejos de culpabilidad.
  5. Recoja todo lo que él deja tirado: libros, zapatos, ropa, juguetes. Así se acostumbrará a cargar la responsabilidad sobre los demás.
  6. Déjele leer todo lo que caiga en sus manos. Cuide de que sus platos, cubiertos y vasos estén esterilizados, pero no de que su mente se llene de basura.
  7. Riña a menudo con su cónyuge en presencia del niño, así a él no le dolerá demasiado el día en que la familia, quizá por su propia conducta, quede destrozada para siempre.
  8. Dele todo el dinero que quiera gastar. No vaya a sospechar que para disponer del mismo es necesario trabajar.
  9. Satisfaga todos sus deseos, apetitos, comodidades y placeres. El sacrificio y la austeridad podrían producirle frustraciones.
  10. Póngase de su parte en cualquier conflicto que tenga con sus profesores y vecinos. Piense que todos ellos tienen prejuicios contra su hijo y que de verdad quieren fastidiarlo.

Vale, en la mayoría de puntos puedo estar deacuerdo (con matices) pero tampoco soy padre y tampoco habré presenciado tantos problemas entre padres e hijos como éste señor pero… joder, éste tío podría juntar en su persona a Franco y a la Inquisición. Para mi que éste hombre, más que “conocido por sus sentencias educativas y orientadoras” es conocido por “sus sentencias que tranquilizan a los padres”.

Vamos a ver, porque viniendo de alguien como un juez, tildado de educador y orientador hay cosas que no me cuadran:

El punto 2. Me supongo que éste tío es católico y se refiere a que hay que bautizar al niño y obligarle a hacer la comunión y la confirmación porque sino va a ser un delicuente gracias a la influencia de satanás. Estoy de acuerdo al 100% en lo de inculcar unos valores éticos, pero no en lo de inculcar unos valores religiosos. Ojo, estoy a favor de enseñarle qué es la religión, qué es la fé y demás temas relacionados con la religión, pero no voy a inculcarle unas creencias si o si. De hecho, cuando digo “enseñarle qué es la religión” me refiero a explicarle que es una religión y todas las que existen, que las conozca, si él decide que quiere pertenecer a una de ellas, adelante, será su elección y las creencias que decide abrazar. Estoy casi seguro de que si a éste juez le pregunto “Mira, mi mujer y yo somos musulmanes y no sabemos si inculcarle a nuestro hijo nuestras creencias o dejarle que conozca la religión y que él decida si quiere ser musulmán, católico, judío o lo que sea”, fijo que dice que le enseñemos la iglesia católica para que pueda decidirse por la mejor. Total, que para mi “educar” no tiene nada que ver con inculcar las creencias de una religión en particular a un niño que no puede entender de qué le estás hablando.

El punto 6. Haaaaaaaay con el punto sexto… que fácil lo hace el señor juez. No vayamos a dejar que nuestros hijos lean lo que quieran y hablemos después con ellos para intercambiar puntos de vista, enseñárles que él puede sacar su opinión desde su punto de vista y nosotros la nuestra desde el nuestro y que ambos tenemos derecho a opinar una cosa u otra y que eso no tiene porqué ser un problema. No, claro que no, eso sería educar. La idea del juez es mejor, si yo soy de derechas, voy a dejarle que lea sólamente periódicos de derechas, vamos a capar en el router todos los contenidos que no sean de derechas y a aislarle del resto de opiniones. Así, con un poco de suerte, el niño será un borrego que no entenderá nada, incapaz de aprender y que estará cerrado a intercambiar opiniones. Un claro producto de la censura, que viene a ser lo que invita a hacer éste sexo punto. Es más, cuando alguien quiera darle un punto de vista distinto al suyo tendremos un buen lío montado porque “nosotros, los pérez, siempre tenemos razón. Es así y punto. Y los que no piensan como nosotros son unos gilipollas.”.

Ojalá ese comentario que he leido fuera sólo la opinión del que puso el comentario, y no un extracto de un libro escrito por un juez, que son esas personas que toman decisiones en última instancia, cuando dos partes con ideas distintas no consiguen entenderse. Espero que se vea la ironía.

PD: Si alguien mira el resto de comentarios de la noticia, la mayoría gritan “es que no les podemos educar porque las leyes y la sociedad no nos dejan pegarles”. Es muy triste también que la mayoría de la gente que debería estar educando a sus hijos piensen que sólo lo pueden hacer a través de “la letra con sangre entra”, pero para mí, al lado de que un juez piense así, lo demás me parece hasta normal.

SshMenu

Septiembre 25, 2009 por luixal

Pues eso, un “must have” para cualquiera que tenga que administrar máquinas de forma remota ;)

Me gusta sobretodo que se pueda gestionar desde el mismo applet el tema de la clave pública/privada para evitar tener que meter la contraseña cada vez que quiero conectar. OJO, ésto no tiene porqué ser una grieta en la seguridad…. de hecho puede ser casi lo contrario, es como todo, de ésta manera puedo quitar el acceso por contraseña “humanamente recordable” por sólo la clave RSA… ¿el contrapunto? Que como alguien consiga acceso a éste escritorio o a ésta cuenta…. lo flipas ;)

Bases de datos. ¿Borrado o “Borrado”?

Septiembre 25, 2009 por luixal

Por si lo de borrado y “borrado” no queda muy claro, estoy hablando de borrado físico y borrado lógico. Más específicamente en el campo de las bases (en nuestros discos duros ya depende el tema del sistema de fichero que usemos y como lo tengamos configurado :P )

Llevo un par de días poniéndome al día con los feeds y hoy me ha tocado éste post de dos ideas en el que hablan de éstos dos tipos de borrados al trabajar sobre base de datos. En el artículo se dan argumentaciones de sobra para evitar el borrado físico y optar por el borrado lógico, es decir, ocultar esos datos en vez de eliminarlos definitivamente. El primer contrapunto que se me ocurrió fué lo que dice el primer comentario del post, la LOPD y sus normas sobre qué datos se pueden guardar y cuales no porque, aunque los estés “ocultando” a los usuarios esos datos siguen almacenados ahí y te puedes llevar un marrón. Y más si nos metemos en algún ejemplo tan de moda como las redes sociales donde hay datos muy sensibles.

La solución que proponen es basarse en estados, es decir, los datos no sólo pueden “estar o no estar” en la base de datos, sino que pueden estar en distintos estados (toma agujero de gusano redundancia), por ejemplo: activo, inactivo, obsoleto, borrado, etc… Supongo que ésto palía en gran medida el problema de las inconsistencias en una base de datos (donde puede darse el caso de que tengamos que “borrar” ciertos datos, pero tengamos que conservar otros que “dependen” de esos datos).

Una de las soluciones que me encontré en una aplicación en la que estaba trabajando era el uso de fechas. Al principio me extrañó tener tantos campos de fechas en cada tabla, pero hablando con quien diseñó la base de datos me explicó que esos campos de fechas indicaban el “tiempo de vida” de esa información. Así no sólo sabíamos “cuando” una información “existía” o no sino que además teníamos la información adicional de saber durante cuánto tiempo y cuándo existió esa información (un poco hetéreo pero si lo aplicas, por ejemplo, a productos en venta, empleados, etc… empieza a coger sentido).

Me gustaría que aportáseis información adicional a ésto, ¿conocéis otras soluciones aplicables? ¿sabéis cuáles se usan más?

Seleccionando colores: gPick

Septiembre 25, 2009 por luixal
Yo no hago demasiadas cosas de diseño, pero si que a veces hago alguna web por ahí suelta y tengo que tocar algún CSS. Para mi es un verdadero suplicio elegir los colores. Más bien el abanico de colores, porque me puede gustar como queda, por ejemplo, el verde con el gris (como tengo ahora en mi escritorio) pero… ¿y el resto de tonos? Los que selecciono a mano no suelen gustarme.

Ahí es donde entran las aplicaciones como gPick, que hay muchas, pero ésta me ha gustado especialmente y me parece que está muy trabajada.

gPick me soluciona la papeleta de dos cosas que hago a menudo cuando toco CSS, miro alguna plantilla y… “anda, como mola ese color!”, con ese gPick tu pasas el puntero por encima, pulsas el espacio y ya tienes ese color en tu paleta, con su valor en hexadecimal y todo lo que te haga falta.

Por si ésto no bastara, cuando ya he elegido dos colores que me gustan para el tono del diseño, puedo generar una gama de colores basados en esos según distintos patrones, que no sé muy bien de que van (ya he dicho que de diseño ni pajolera tengo :P ).

Vamos, que el programita es majo. Todavía no está en los repositorios así que os dejo los enlaces a los debs y la página de downloads. También la página principal del proyecto, ojo, es recomendable ver el vídeo de cómo se usa que especialmente intuitivo al principio no es xD

Página principal gpick
Paquete deb 32bits
Paquete deb 64bits
Página de descargas

El Futuro de las Comunicaciones

Septiembre 10, 2009 por luixal

Justamente ahora, que estoy viendo la Keynote de Motorola y Android, es cuando salen esas conversaciones trascendentales con los colegas. Las frase típica es algo así como “lo que hay que hacer es montar una operadora y sangrar a los clientes para forrarte”. La verdad es que hoy en día es lo que pasa, pero… ¿realmente las telecos tienen un futuro tan brillante?

Yo como veo el futuro es así de claro. Yo contrato una conexión y pago UNA conexión. A ver si nos entendemos, según lo veo yo, habrá unos cuantos cambios en el futuro:

  • Los teléfonos fijos, así como las conexiones de datos basadas en una línea fija dejarán de existir.
  • Pagaremos al mes una cantidad fija. Todo irá sobre una sóla conexión de datos móvil.
  • No tendremos esa conexión “capada” de ninguna forma. Y aquí incluyo el hecho de que tendremos una única conexión a cada persona. Nada de evitar el tethering, nada de cobrar más si se hacen llamadas IP.
  • Las operadoras tendrán que llevarse muy bien con los bancos. En el futuro serán la principal forma de pago para casi todo.

Vale si, parece muy… improbable (digamoslo así) pero de verdad pienso que la primera teleco que ofrezca ésto se llevará el gato al agua y tendrá una gran ventaja sobre las demás. Básicamente yo, incluso llegaría a pagar la “permanencia” para cambiarme.