Contenido

Por casa llevábamos un tiempo debatiendo cual era exactamente la forma y la cantidad en que impuestos y seguridad social se deducían de los salarios a medida que estos aumentaban. (Estoy hablando del Reino Unido, por cierto).

Todas estas dudas han quedado despejadas por fin. El otro día Jesús encontró una calculadora de impuestos sobre la renta, y he usado esta, junto con la API de Google Charts, para mostrar gráficamente la evolución de la recaudación.

En la tabla se muestran, de abajo a arriba: cuanto se va en seguridad social (National Insurance), impuesto sobre la renta (Pay As You Earn - PAYE) y el la suma de ambos.

Hala, duda despejada :)

28

7 enero, 2008 - 16:27

El número 28 es:

  • 1 + 2 + 3 + 4 + 5 + 6 + 7
  • Divisible entre 1, 2, 4, 7 y 14
  • Un número perfecto: 1 + 2 + 4 + 7 +14 = 28.
  • El número atómico del níquel, al cual tengo alergia cutánea.
  • El periodo aproximado de traslación de la Luna (en días) y Saturno (en años)

Y hasta aquí puedo leer...

No me he podido resistir; es una de mis canciones favoritas:

CodeIgniter

7 noviembre, 2007 - 00:03

CodeIgniter es un framework de desarrollo web en PHP. Hace poco lo he estado usando para un par de proyectos muy pequeños, y he sacado algunas conclusiones.

En su sitio web se describe como un framework con:

  • bajo uso de recursos
  • rendimiento excepcional
  • altamente compatible con gran variedad de versiones y configuraciones de PHP
  • y algunas cosas más...

Lo que describe, me creo que es verdad (no me he puesto a hacer pruebas de rendimiento), pero tiene un precio: CodeIgniter sacrifica la facilidad de escribir código en favor de las cualidades anteriormente citadas. Que nadie se espere que CodeIgniter sirva como un Ruby on Rails en versión PHP. Para eso están CakePHP u otros. En lugar de esto, quien lo elija debe hacerlo porque tiene que trabajar en un entorno que realmente (pero de verdad) requiera el rendimiento/compatibilidad descrito arriba.

Nada más empezar a desarrollar la primera aplicación, apareció la primera "cosa extraña" de CodeIgniter: no hay una convención para "layouts", código HTML común a varias páginas y que conforma el esqueleto al que se añade el contenido. Para añadirlos encontré un par de soluciones, ambas basadas en el uso de los hooks que el CodeIgniter provee para alterar el flujo de la ejecución:

Lo siguiente que me extrañó fué no se puede acceder a los argumentos de un GET. CodeIgniter los elimina en nombre de la seguridad o no sé que otra estupidez. Esto me parece un defecto muy gordo y que no se sostiene de ninguna forma, ya que ni siquiera sirve como sacrificio para conseguir rendimiento o algo así. Por el contrario, más bien se gasta más tiempo eliminándolos que no haciéndolo.

En un hilo de los foros oficiales expongo (en inglés) mi punto de vista al respecto del trato de los argumentos GET. En el mismo hilo, un contertulio ofrece una solución al problema, de nuevo apoyada en los "hooks" de CodeIgniter.

Lo siguiente que me encontré fué la ausencia de una implementación de Active Record. Aunque en la documentación se pretende llamar como tal a su biblioteca de acceso a la base de datos, la realidad es bien distinta. CodeIgniter no proporciona una abstracción de la base de datos más allá de la propocionada por bibliotecas tradicionales, tales como ADOdb (y ni eso, porque esta librería ya incorpora Active Record). Ya puede decir la documentación lo que quiera.

Otro detallito es que la base de datos, los modelos, los "helpers" y las bibliotecas varias hay que cargarlas explícitamente cada vez que se vayan a usar, lo cual en un proyecto mediano puede empezar a tocar la moral, y en uno grande no quiero ni pensarlo. También vi que algunas cosas como, por ejemplo, cargar la base de datos en el constructor del modelo, directamente no funcionan. Esto puede hacer que más de uno se tire de los pelos en cuanto el proyecto crezca un poco.

Algún detallito más había, pero los de arriba me parecen los más sobresalientes. Todo lo descrito se debe a que el framework está orientado a tener el máximo rendimiento en la mayor variedad posible de entornos. Todo, excepto lo del GET, que me parece absurdo, pero bueno, por lo menos se puede arreglar.

En definitiva, si realmente tienes unos recursos muy limitados, CodeIgniter es una opción a barajar. En cualquier otro caso, busca otra opción, que hay bastantes disponibles para PHP.

Para abajo con el scroll

26 abril, 2007 - 00:25

Problema que ya me he encontrado un par de veces creando aplicaciones Ajax: tener una zona de pantalla con scroll vertical en la que ir soltando texto, forzando al scroll a permanecer abajo (aunque sólo si estaba abajo previamente).

La solución la he sacado del código fuente de Firebug Lite. Consiste en lo siguiente. Cada vez que se añada contenido al area objetivo:

  1. Determinar si el scroll está abajo.
  2. Insertar el contenido deseado.
  3. Mover el scroll al fondo si estaba así en el primer paso.

El problema es conseguir código Javascript portable para los pasos 1 y 3. Para el primer paso, hay que hacer:

var isScrolledToBottom = target.scrollTop + target.offsetHeight >= target.scrollHeight;

Y para el segundo:

if (isScrolledToBottom) {
	target.scrollTop = target.scrollHeight - target.offsetHeight;
}

Y así de fácil. Dejo un ejemplo demostrativo aquí debajo, con el código Javascript incrustado en la página, para rápida referencia:

Aquí van a empezar a salir lineas

Clickair.com: compras inseguras

8 marzo, 2007 - 00:52

Actualización (10 de Octubre, 2007): el error de seguridad de que se habla en esta anotación ya ha sido arreglado por Clickair. De todas formas, es bueno tenerlo en cuenta por si se ve en el futuro, tanto en el citado como en otro sitio web.

Clickair: muy bien, muy barato, muy bonito; pero en su página web se olvidan de la seguridad. Si usas la página de clickair para comprar un billetes de avión, tras elegir los vuelos verás un aviso más o menos así (dependiendo del idioma y el navegador):

En clickair.com, la autenticidad del certificado SSL no se puede verificar

Esto quiere decir que la página web NO es segura y no deberías dar los datos de tu tarjeta de crédito. Podría haber alguien espiando, puesto que la seguridad de la transferencia no ha sido asegurada correctamente por Clickair.

Repito: no des los datos de tu tarjeta de crédito en la web de Clickair. Ni en ninguna otra que muestre una advertencia similar.

Si quieres comprar un billete, hazlo por teléfono. Como me indica tripu en el comentario #2, tampoco es seguro usar el número dado en la propia web, ya que podría ser falso debido a una suplantación de la página. Búsca en las páginas amarillas el número correcto. Eso sí, te costará 7€ más por viaje y persona.

Actualización (8 de Marzo, 13:55): Internet Explorer 6 sobre Windows me verifica el certificado en otra prueba. También me dicen que el Firefox 2.0 de Ubuntu tampoco tiene problema. Ojo, esto no significa que haya que ignorar el aviso cuando aparece.

Claves

17 febrero, 2007 - 14:31

Anoche estuve hablando con mi amigo Salva sobre los passwords que uso. Yo le comentaba que no tengo una clave universal que uso en todas partes, ni tampoco una clave diferente para todos y cada uno de las situaciones en las que necesito una. Mi solución intermedia, supongo que al igual que mucha otra gente, es usar varias claves que se repiten en varios sitios.

Entonces eché cuentas y me di cuenta de que tengo al menos 11 claves distintas por ahí.

No sé a la gente, pero a mi me parecen muchas... No me había dado cuenta de cuantas tenía. Si me hubieran preguntado hubiera dicho 4 o 5.

Anda, decidme alguno cómo lo haceis vosotros, a ver si me entero de si soy raro o no.

Soy un maniático de los ciclos de carga de las baterías. En su día tuve varias malas experiencias con baterías que dejaron de cargar bien después de demasiado poco tiempo, así que ahora tengo mucho cuidado. Cargo durante mucho tiempo (normalmente por la noche) y no vuelvo al cargador hasta eliminar el último amperio. Con mi móvil soy especialmente pesado, de hecho.

Es por eso que me ha interesado el artículo Todo lo que debes saber sobre las baterías de litio (+ ó -), al que he llegado vía Menéame.

El artículo, aparte de explicar lo que indica en el título, me desmiente algunos mitos que tenía. Eso suponiendo que sea 100% correcto ;) , que espero que sí. Si se me jode alguna batería a partir de ahora, ya me vengaré :P .

27

7 enero, 2007 - 14:53

El número 27 es:

Y hoy, me toca.

Comentarios desactivados

19 noviembre, 2006 - 16:53

Estoy últimamente bajo un ataque de spammers, así que he clausurados los comentarios de este blog hasta que me ponga a solucionar esto.

Actualización: hala. Comentarios moderados a partir de ahora. El que diga algo tendrá que esperas a que yo lo acepte.