Ephemeron
Un blog efímero
miércoles, 24 de noviembre de 2010
lunes, 22 de noviembre de 2010
domingo, 21 de noviembre de 2010
CSS para un amigo
Estoy anotando por aquí todo lo que se me ocurre. Acabo de recordar que no tome nota del sistema de numeración que preparé para un amigo hace ya un tiempo. Anotémoslo aquí que ya no recuerdo que es lo que hice :D
Ya puestos he colocado una inútil numeración en los títulos de las entradas de este blog.
ol.commentlist {
counter-reset:com;
}
ol.commentlist > li > div > div > cite:before {
content:"[" counter(com) "] ";
counter-increment:com;
color:#008;
}
ul.children {
counter-reset:subcom;
}
ul.children cite:before {
counter-increment:subcom;
content:"["counter(com) "." counters(subcom,".") "] ";
color:#008;
}
Ya puestos he colocado una inútil numeración en los títulos de las entradas de este blog.
El criterio de divisibilidad entre 7
Es curioso que este criterio no aparezca en los libros siendo más fácil que el criterio de divisibilidad entre 11.
Un número es divisible entre 7 si y solo si la diferencia entre la parte entera del resultado de dividirlo entre 10 y el doble de su cifra de unidades lo es.
DemostrémosloSean n, p y q naturales tales que n=10·p+q y que q esté entre 0 y 9. Entonces
n = 0 (mod 7) equivale a 10·p+q = 0 (mod 7) equivale a 2·(10·p+q) = 2·0 (mod 7) es decir 20·p+2q = 0 (mod 7) que equivale a 20·p+2q-3·7·p= 0-3·7·p (mod 7) es decir -p+2q= 0 (mod 7) que equivale a p-2q = 0 (mod 7)
No todo es tan bonito como me parecía
Desgraciadamente las comillas en la plantilla son filtradas, es decir, tenemos limitaciones para trabajar en la plantilla. Pero al menos dichas limitaciones no existen en las entradas. Mientras esta entrada sea visible el lector verá un botón debajo del título del blog mediante el cual podrá eliminar a su gusto aquellos elementos que no le agraden, utilizando las teclas del cursor, el espacio y la b
¿Vemos la fuente encargada de colocar el botón?
La fuente del genial "invento" está http://erkie.github.com/asteroids.js
¿Vemos la fuente encargada de colocar el botón?
var erkie = document.createElement('SPAN');
erkie.style.padding="10px";
erkie.style.background="#aab";
erkie.style.cursor = 'move';
erkie.appendChild(
document.createTextNode('Manuel Antonio, si no te gusta lo que lees pulsa aquí')
);
erkie.onclick = function(){
var s = document.createElement('SCRIPT');
s.type='text/javascript'
document.body.appendChild(s);
s.src='http://erkie.github.com/asteroids.min.js';
}
document.body.getElementsByTagName('H1')[0].parentNode.appendChild(erkie);
La fuente del genial "invento" está http://erkie.github.com/asteroids.js
En esta historia Frodo es ECMAScript
Para expresar mi opinión sobre la introducción de los getters/setters en ECMAScript se me ocurrió este "cuento" que dejé en el blog de Angus. De paso probamos a ver si Blogger le pone pegas a meter un style en los tags, concretamente con uno de mis degradados de color.
It works! Blogger parece aceptar cualquier cosa. Empieza gustarme :D
Object.prototype.takeGiftFromSauron = function() {
function makeRingWraith() {
var me = this;
Object.getOwnPropertyNames(me).forEach(function(name){
if (name === 'Object') return;
var bag = Object.getOwnPropertyDescriptor(me,name);
if (bag.configurable) delete me[name];
else if (bag.writable) me[name] = null;
else alert('damn '+name+'!');
});
}
Object.defineProperty(this,'ring',{get:makeRingWraith});
return this;
}
var Frodo = Object.defineProperties({},{
'coins':{value:3,enumerable:true},
'soul': {value:'simple',enumerable:true,configurable:true},
'sword':{value:'elfic',enumerable:true,configurable:true},
'cape': {value:'brown',enumerable:true,writable:true}
});
// Frodo do you like this innocent ring?
Frodo.takeGiftFromSauron();
// Wear the ring Frodo!!
alert(Frodo.ring);
// Surprise! Little avaricious hobbit, where are your soul and your elfic sword?
It works! Blogger parece aceptar cualquier cosa. Empieza gustarme :D
¡Blogger no filtra los scripts!
No sólo funciona a nivel de la plantilla ... ¡puedes meter lo que quieras en las entradas!
Lenguajes inmaduros: Ruby
setter1 = proc { | x | y = x } # y is local here
y = 13
setter2 = proc { | x | y = x } # y is nonlocal here
setter1.call(99)
puts y # prints 13
setter2.call(77)
puts y # prints 77
Veamos lo que obtendríamos con la versión equivalente en Scheme
(define setter1 (lambda (x)(set! y x))) (define y 13) (define setter2 (lambda (x)(set! y x))) (setter1 99) (display y) ;; prints 99 (setter1 77) (display y) ;; prints 77
El comportamiento de Ruby es bastante desagradable. Los proc parecen capturar una instantánea del environment que ven en el momento de su creación. Es necesario comprobar si se comparten datos o no. La cuestión ¿tengo ganas de andar con este pobre lenguaje de nuevo?
Lo bueno de Blogger
Blogger es una plataforma de blogging que no me entusiasma, pero tiene algo que la hace destacar: puedes meter todo lo que quieras en la plantilla. Así que vamos a probar como va mi highligthter:
It works!
Debo mencionar que mi resaltador de codigo lo deje sin terminar hace dos años y que en aquellos momentos no funcionaba en Internet Explorer.
var sheet = null;
var all = true;
var selector = '.irrelevant';
var declaration = 'display:none';//'visibility:hidden';
var index;
window.onload = function() {
var filterButton = document.getElementById('filter');
filterButton.onclick = action;
sheet = document.styleSheets[0];
}
function insertRule() {
if (typeof sheet.insertRule !== 'function') {
index = sheet.addRule(selector,declaration,sheet.rules.length);
}
else {
index = sheet.insertRule(selector+' {'+declaration+'}',sheet.cssRules.length);
}
}
function deleteRule(){
if (typeof sheet.deleteRule !== 'function') {
index = sheet.removeRule(index);
}
else {
index = sheet.deleteRule(index);
}
}
function action(ev) {
if (all) {
insertRule();all=false;
}
else {
deleteRule();all=true;
}
}
It works!
Debo mencionar que mi resaltador de codigo lo deje sin terminar hace dos años y que en aquellos momentos no funcionaba en Internet Explorer.
sábado, 20 de noviembre de 2010
The boring buzzword
Han pasado ya cinco años desde que Tim O'Reilly publicara su célebre artículo What Is Web 2.0. Me resulta sorprendente que todavía sigamos utilizando ese pesado y obsoleto término como si aportara algo nuevo.
Suscribirse a:
Entradas (Atom)