sisè / segona

Soy Víctor Rodríguez, programador web freelance con más de 10 años de experiencia

Turn Off Number Input Spinners

¿Os habeis dado cuenta que Chrome (o los navegadores Webkit) ponen unos botones (flechitas) a los imputs numéricos?

Aquí un truco, que no hay que olvidar, para que no vuelvan a aparecer nunca más!!

input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}

Seen on css-tricks.

:P

Feliç Diada!!

Por cuarto año consecutivo (2012, 2013, 2014 y 2015) una manifestación ha servido para demostrar que en Catalunya hay una masa social que desea la independencia. Con el pasado 9N (2,3 millones de votos en una “simple” encuesta) suman cinco las ocasiones en las que se movilizan mas de 1 millón de ciudadanos pidiendo que se les escuche. 

¿Y que hemos obtenido del gobierno de Madrid? Un no tras otro. Me gustaría que por una vez escucharan al pueblo. Pero eso parece misión imposible viniendo del PP y un presidente que prefiere dejar pasar el tiempo a solucionar los problemas que se le presentan. 

El próximo 27 se vota con aire plebiscitario quien gobernará en Catalunya. 

Me gustaría que fueran más los partidos que ven en la independencia la manera de cambiar y ganar en dignidad y autogobierno. En lugar de ver las elecciones como derrotar a Artur Mas o mantenerlo en el poder, podrían ver la oportunidad con otros ojos. La tercera vía, la mejora fiscal, o como quieran llamarla hace años que se pidió. El referendum también se ha solicitado estos últimos años. Es lo que pretenden pedir ahora. Incluso el federalismo viene de la época de Pasqual Maragall como President de la Generalitat (el tripartito, si).

Entonces, ¿por qué va a cambiar la respuesta ahora? Porque ¿”podemos”? ¿Seguro? Lo siento pero ya no quiero depender de la aprobación de Madrid. 

Quiero la independencia para Catalunya. 

Nuevo diseño de rodriguez/ortega y Ringo Starr

El día que Ringo Starr cumple 75 años publico el nuevo diseño de mi página web rodriguez/ortega.

El diseño ha sido creado por Vanessa Badia que ha hecho un trabajo estupendo. “Muchas grracias amija!!”

JQuery, Sass, Coffeescript, Bootstrap, Grunt y Bower al rescate!

JQuery y Bootstrap son librerías que no necesitan presentación. Bootstrap te ayuda a maquetar para todos los dispositivos y JQuery te hace la vida más fácil cuando necesitas javascript.

Sass (CSS with superpowers) para crear los estilos de una manera más cómoda y ordenada, Coffeescript para crear el JavaScript, Grunt (The JavaScript Task Runner) para compilarlo todo y Bower (A package manager for the web) para gestionar las dependencias del proyecto, me han servido para aprender y mejorar en cuestiones que no acabo de dominar dentro de lo que es la maquetación.

Espero que os guste el resultado: rodriguez/ortega

Un poco de .htaccess y redirecciones

Hace un par de días me llegó está petición:

Administro una web sin CMS donde tenemos que añadir unas páginas a modo de Landings.
Cada página nueva es un archivo .PHP dentro de la carpeta /landings
Por SEO queremos que la URL visible sea /cat/nom-de-la-landing
Por orden interno de la página queremos intentar no haber de mover los archivos .php de las landings a la carpeta /cat/

¿Cómo lo ves? ¿Es posible hacerlo con PHP i htaccess?

Y aquí está el pequeño script .htaccess que hace falta para solucionar el problema:

Options -Indexes +FollowSymLinks
RewriteEngine On 
RewriteBase / 

RewriteRule ^cat/(.*) landings/$1.php [L]

Así tendremos que:

www.example.com/cat/nom-de-la-landing

irá a servir:

/landings/nom-de-la-landing.php

Hasta otra!

UPDATE 1: 27/03/2015 17:46

¿Qué pasa si queremos mostrar otras pàginas dentro de la carpeta /cat?

Pues que hay que añadir la siguiente directriz justo encima de la regla de redireccionamiento a la carpeta landings:

RewriteCond %{REQUEST_FILENAME} !-s

Lo que hace es servir la pàgina solicitada al servidor si existe en la ruta pedida.

Así nos quedará el siguiente fichero .htaccess final:

Options -Indexes +FollowSymLinks
RewriteEngine On 
RewriteBase / 

RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^cat/(.*) landings/$1.php [L]

Ahora :P

UPDATE 2: 08/04/2015 15:16

¿Y si queremos añadir nuevos idiomas a las landings? Por ejemplo, para el español, añadir urls tales como /esp/nombre-de-la-landing

Pues modificamos la relga de la siguiente manera (Recordar que las reglas se configuran con expresiones reguleras regulares.)

Options -Indexes +FollowSymLinks
RewriteEngine On 
RewriteBase / 

RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(cat|esp)/(.*) landings/$2.php [L]

Si además para ordenar un poco todo el tinglado de páginas landings las separamos por sus respectivos idiomas, podemos tener una estructura de carpetas tal que:

/landings/cat/nom-de-la-landing.php
/landings/esp/nombre-de-la-landing.php

Y la regla de la siguiente manera:

Options -Indexes +FollowSymLinks
RewriteEngine On 
RewriteBase / 

RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(cat|esp)/(.*) landings/$1/$2.php [L]

:P

Sobre rake tasks en Rails 4

Ayer aprendí un par de cosillas sobre la creación de tareas en Rails 4, y para no olvidar… Apuntado queda.

Acceder al modelo de la aplicación

Para acceder al modelo de la aplicación sólo debemos hacer que la tarea sea dependiente del entorno de ejecución:

task task_name: :environment do |t|
  # You can use your model from here
end

La parte interesante aquí es :environment. Este pequeño código hace toda la magia necesaria para poder acceder a nuestro modelo, sin esto no funciona. Haz la prueba.

Una explicación un poquito más correcta es que a las tareas les puedes pasar un array de dependencias. Es lo que hacemos al añadir :environment detrás del nombre de la tarea en formato clave: :valor (vaya, un hash).

Pasar parámetros

Hay dos maneras de pasar parámetros (que yo conozca). La oficial, según la guía de Rails es la siguiente:

task :task_name, [:arg_1] do |t, args|
  # You can use args from here
end

Para ejecutar esta tarea debes hacerlo así:

$ bin/rake "task_name[value 1]" # entire argument string should be quoted

Encomillar el nombre de la tarea y pasar los parámetros entre corchetes ([]) no es muy bonito, estética pura claro. Así que busqué otra forma y la encontré. Se le pueden pasar los parámetros como variables de entorno. Así:

task task_name: :environment do |t|
  arg_1 = ENV['arg_1']
  # You can use arg_1 from here
end

Ten en cuenta que debes hacerla dependiente del entorno de ejecución, si no lo haces, cagada pastoret… Ahora la llamda cambia de la siguiente manera:

$ bin/rake task_name arg_1=Value

Es simple y un poco más claro de leer.