Rodrigo Borrego Bernabé - Freelance Software Developer



Añadiendo a Sublime Text una tecla rápida para “Word Wrap”

Category : breves · No Comments · by Nov 6th, 2013
Añadiendo a Sublime Text una tecla rápida para “Word Wrap”

[ { “keys”: [“ctrl+shift+w”], “command”: “toggle_setting”, “args”: {“setting”: “word_wrap”}} ] ¡Ahhh!

Cumplir con el trámite del IVA desde UBUNTU

Category : Uncategorized · (13) Comments · by Oct 20th, 2013
Cumplir con el trámite del IVA desde UBUNTU

Como todos los trimestres hasta ahora me dispongo a cumplir con la Agencia Tributaria. Por primera vez no tengo la…

No incorporar todas las categorías en la portada de WordPress

Category : Programación, Wordpress · No Comments · by Jul 19th, 2013

A veces es posible que te interese que no aparezcan todas las categorías de artículos en la portada de tu web hecha con WordPress, por ejemplo porque tienes una categoría especial para otro apartado, o por mil razones más.

En ese caso solo tienes que añadir un pequeño filtro que puedes incorporar en el functions.php o en algún otro lugar que consideres más adecuado.

function exclude_category_in_home($query){
if ( $query->is_home || ($query->is_feed && $query->query_vars[‘category_name’]==”) ) {
$query->set(‘cat’,’-19′);
}
return $query;
}
add_filter(‘pre_get_posts’,’exclude_category_in_home’);

¿Dónde está tu cliente?

Category : breves · No Comments · by May 19th, 2013

Estado de un cliente en una web

Que reaparezca el menú superior en SonataAdmin

Category : breves, Programación, Symfony · No Comments · by May 3rd, 2013

En las últimas versiones del Bundle para Symfony 2 de administración “SonataAdmin” el comportamiento de seguridad ha cambiado.

Esto puede haber hecho que el menú superior, donde aparecen las diferentes entidades de administración en un desplegable quede oculto.

Para que se muestre debes darse al usuario el permiso ROLE_SONATA_ADMIN

Englobando elementos flotantes

Category : HTML/CSS, Programación · No Comments · by Nov 28th, 2012

En el mundo ideal de las CSS -¿será con CCS3?- no será necesario maquetar utilizando la propiedad “float”, al menos no para la disposición en pantalla -layout-. Pero mientras tanto, los que nos dedicamos a esto del frontend development (manera de darnos autobombo) hemos tenido que recurrir a dicha propiedad más de una vez.

Y cuando la utilizamos, a menudo, ocurre un desagradable comportamiento.

Esto es la capa contenedora

Y esta la hija, flotante

¿Por qué la capa contenedora no contiene a la hija? Es más, este mismo párrafo debería aparecer en una nueva linea. ¿Es un bug de los navegadores? No, es una feature de las CSS. En la especificación de la W3C el comportamiento de float está descrito así:

Content flows down the right side of a left-floated box and down the left side of a right-floated box … Since a float is not in the flow, non-positioned block boxes created before and after the float box flow vertically as if the float didn’t exist.

El primer método que utilicé para resolver esto fue usar la propiedad overflow:

.myclass {
  overflow: hidden;
  overflow: auto;
}

Sin embargo este método presenta un efecto secundario no deseable casi de inmediato, pues los elementos hijos pueden cortarse o aparecer barras de desplazamiento por posicionamiento, márgenes, etc. Esta solución la reservaría para entornos determinados, donde no aparezca ese problema. Cuidado, a mí se me ha dado hasta por seleccionar un enlace con un tabulador, donde el navegador añade un borde y ese borde hacía que aparecieran las barras de desplazamiento.

El buen método

Nicolas Gallagher, aunque no fue quien me descubrió el método, es quien ha dado con la solución más optimizada y que funciona en todos los navegadores y que yo aconsejo: consiste en añadir la clase clearfix (puedes ponerle otro nombre, obviamente) al contenedor, siendo las CSS de esta clase las siguientes:

.clearfix:before,
.clearfix:after {
 content: " ";
 display: table;
}
.clearfix:after {
 clear: both;
}
/* For IE 6/7 only */
.clearfix {
 *zoom: 1;
}
Esto es la capa contenedora

Y esta la hija, flotante

Error en Symfony: You need to enable either the SQLite or PDO_SQLite extension for the profiler to run properly.

Category : breves, Programación, Symfony · No Comments · by Jun 18th, 2012
You need to enable either the SQLite or PDO_SQLite extension for the profiler to run properly.
Si tras instalar un proyecto nuevo en Symfony 2 lo lanzas en el navegador y aparece el error del cuadro anterior necesitarás instalar las extensiones que te piden. Para ello:
apt-get install php5-sqlite
 y reinicia Apache
sudo apache2ctl restart

SQLite3::exec(): database is locked error

Category : Programación, Symfony · No Comments · by Jan 31st, 2012

Si comenzando a utilizar Symfony2 trabajáis en una mezcla de Windows y Linux que unís mediante Samba, quizás os hayáis encontrado con el siguiente error nada más comenzar:

Warning: SQLite3::exec(): database is locked

Realmente no podemos arreglarlo, puesto que la gestión de permisos de Samba no le gusta a SQLite, pero podemos evitarlo (‘workaround’, que dirían) cambiando el directorio donde se crean ciertos ficheros. Abrimos el archivo ‘app/config/config.yml’ y escribimos la siguiente configuración:

parameters:
  kernel.cache_dir: '/tmp/sf-test'

Fuente: http://www.kitpages.fr/fr/cms/21/symfony2-sqlite3-et-samba

UPDATE: Parece que con la versión 2.0.12 esto ya no funciona y debes incluir en app/AppKernel.php

public function getCacheDir()
 {
 //return $this->rootDir . '/my_cache/' . $this->environment;
 return '/tmp/sf2'.$this->environment;
 }

Buscar en Gmail por múltiples etiquetas

Category : breves · No Comments · by Sep 1st, 2011

A menudo lo necesito y siempre se me olvida cómo hacerlo y lo que se puede y no se puede hacer. Así que aquí lo resumo

Todas las etiquetas (AND):

l:personal l:deporte

Que se puede combinar con la búsqueda normal:

l:personal l:deporte sábado

buscaría los mensajes con ‘sabado’ y las etiquetas ‘personal’ y ‘deporte’

Alguna de las etiquetas (OR)

l:personal OR l:deporte

Cambiar el orden de los listados de sfDoctrineRoute

Category : Programación, Symfony · No Comments · by Aug 17th, 2011

En el controlador (actions.class.php) tenemos un método para el listado de elementos:

  public function executeIndex(sfWebRequest $request)
  {
    $this->items= $this->getRoute()->getObjects();
  }

Si queremos modificar el comportamiento, por ejemplo el orden en el que se muestran esos listados debemos modificar el routing.yml

item:
  class: sfDoctrineRouteCollection
  options:
    [...]
    model_methods:
      list:            getListOrdered

Y en itemTable.class.php añadir el siguiente método (por ejemplo para ordenar por el año)

    public static function getListOrdered()
    {
        return ItemTable::getInstance()->createQuery('e')->orderBy('year DESC')->execute();
    }