Mantener la dirección original con Feedburner |
Es que, muchas veces, lo que muestran los lectores de feeds o enlaces en diferentes sitios, no es nuestra dirección de tipo:
http://vagabundia.blogspot.com/
sino algo como:
http://feeds.feedburner.com/Vagabundia
Peor aún, en las entradas individuales suelen verse cosas así:
http://feeds.feedburner.com/~r/Vagabundia/~3/437568548/y-otras-diez-plantillas-ms.html
Tal como explican, esto puede ser engorroso porque para acceder a la URL real hay que hacer click y abrir la página en el navegador y peor aún, un enlace externo al feed no tiene valor para sitios como Technorati ni es considera un backlink por Google.
Para hacer que las URLs de los feeds apunten al blog y no a Feedburner hay que ir a nuestra cuenta y en la primera pestaña Analize hay que hacer click en la última opción llamada Configure Stats (PRO) lo que nos abrirá una ventana como esta:

Haciendo esto, cambiamos las URLs y ambas coincidirán aunque perderemos el contador de clicks en los items de los feeds (nada es gratuito) aunque, este tipo de estadísticas no suele ser importante y difícilmente la hayamos mirado alguna vez
Y otras diez plantillas más |
Homero, el CSS y un trabajo increible |
Este Homero Simpson se crea con 307 líneas de código (14135 caracteres) y puede ser visualizado correctamente en casi todas las versiones de Internet Explorer, Opera, Firefox y Safari siempre que la fuente Verdana esté disponible.
¿Una pequeña muestra de ese código?
<div style="position: absolute; padding-left: 1.47em; padding-top: 5.4em;">
<div style="font-size: 0.66em; color: #000;">C</div>
</div>
<div style="position: absolute; padding-left: 1.62em; padding-top: 5.53em;">
<div style="font-size: 10px">
<div style="width: 2.2em; height: 2.2em; background-color: #FED90E;"></div>
</div>
</div>
Book Flip Slideshow |
El efecto puede ser definido como horizontal o vertical y cada imagen puede tener un enlace asociado. Para detener el slideshow basta colocar el puntero del ratón encima de una imagen.

<script type='text/javascript'>
// <![CDATA[
var Book_Image_Width = 250; // el ancho de las imágenes a utilizar
var Book_Image_Height = 350; // el alto de las imágenes a utilizar
var Book_Border = false; // si las imágenes tienen borde, ponemos true
var Book_Border_Color = "gray"; // es el color del borde
var Book_Speed = 15; // la velocidad del efecto
var Book_NextPage_Delay = 1500; // 1 segundo=1000
var Book_Vertical_Turn = 0; // si queremos que sea vertical, colocamos el valor de 1
// esta es la lista de las imágenes a ser mostradas (mínimo cuatro)
Book_Image_Sources=new Array(
// si no se quiere agregar un enlace, se deja en blanco ""
"URL_imagen1","URL_enlace1",
"URL_imagen2","",
"URL_imagen3","",
"URL_imagen4","URL_enlace4"
// la última imagen no debe terminar con una coma
);
var B_CrImg=Book_Image_Sources.length/2;
var B_LI, B_MI, B_RI, B_TI;
var B_Angle=0;
var B_MaxW;
var B_Direction=1;
var B_MSz;
var B_Stppd=false;
B_Pre_Img=new Array(Book_Image_Sources.length);
function ImageBook() {
if(document.getElementById) {
for(i=0;i
B_Pre_Img[i]=new Image();
B_Pre_Img[i].src=Book_Image_Sources[i];
}
Book_Div=document.getElementById("Book");
B_LI=document.createElement("img");Book_Div.appendChild(B_LI);
B_RI=document.createElement("img");Book_Div.appendChild(B_RI);
B_MI=document.createElement("img");Book_Div.appendChild(B_MI);
B_LI.style.position=B_MI.style.position=B_RI.style.position="absolute";
B_LI.style.zIndex=B_RI.style.zIndex=0;B_MI.style.zIndex=1;
B_LI.style.top=(Book_Vertical_Turn?Book_Image_Height+1:0)+"px";
B_LI.style.left=0+"px";
B_MI.style.top=0+"px";
B_MI.style.left=(Book_Vertical_Turn?0:Book_Image_Width+1)+"px";
B_RI.style.top=0+"px";
B_RI.style.left=(Book_Vertical_Turn?0:Book_Image_Width+1)+"px";
B_LI.style.height=Book_Image_Height+"px";
B_MI.style.height=Book_Image_Height+"px";
B_RI.style.height=Book_Image_Height+"px";
B_LI.style.width=Book_Image_Width+"px";
B_MI.style.width=Book_Image_Width+"px";
B_RI.style.width=Book_Image_Width+"px";
if(Book_Border) {
B_LI.style.borderStyle=B_MI.style.borderStyle=B_RI.style.borderStyle="solid";
B_LI.style.borderWidth=1+"px";
B_MI.style.borderWidth=1+"px";
B_RI.style.borderWidth=1+"px";
B_LI.style.borderColor=B_MI.style.borderColor=B_RI.style.borderColor=Book_Border_Color;
}
B_LI.src=B_Pre_Img[0].src;
B_LI.lnk=Book_Image_Sources[1];
B_MI.src=B_Pre_Img[2].src;
B_MI.lnk=Book_Image_Sources[3];
B_RI.src=B_Pre_Img[4].src;
B_RI.lnk=Book_Image_Sources[5];
B_LI.onclick=B_MI.onclick=B_RI.onclick=B_LdLnk;
B_LI.onmouseover=B_MI.onmouseover=B_RI.onmouseover=B_Stp;
B_LI.onmouseout=B_MI.onmouseout=B_RI.onmouseout=B_Rstrt;
BookImages();
}
}
function BookImages(){
if(!B_Stppd) {
if(Book_Vertical_Turn) {
B_MSz=Math.abs(Math.round(Math.cos(B_Angle)*Book_Image_Height));
MidOffset=!B_Direction?Book_Image_Height+1:Book_Image_Height-B_MSz;
B_MI.style.top=MidOffset+"px";
B_MI.style.height=B_MSz+"px"
} else {
B_MSz=Math.abs(Math.round(Math.cos(B_Angle)*Book_Image_Width));
MidOffset=B_Direction?Book_Image_Width+1:Book_Image_Width-B_MSz;
B_MI.style.left=MidOffset+"px";
B_MI.style.width=B_MSz+"px"}
B_Angle+=Book_Speed/720*Math.PI;
if(B_Angle>=Math.PI/2&&B_Direction) {
B_Direction=0;
if(B_CrImg==Book_Image_Sources.length)B_CrImg=0;
B_MI.src=B_Pre_Img[B_CrImg].src;
B_MI.lnk=Book_Image_Sources[B_CrImg+1];
B_CrImg+=2
}
if(B_Angle>=Math.PI) {
B_Direction=1;
B_TI=B_LI;
B_LI=B_MI;
B_MI=B_TI;
if(Book_Vertical_Turn)B_MI.style.top=0+"px";
else B_MI.style.left=Book_Image_Width+1+"px";
B_MI.src=B_RI.src;
B_MI.lnk=B_RI.lnk;
setTimeout("Book_Next_Delay()",Book_NextPage_Delay);
} else setTimeout("BookImages()",50);
} else setTimeout("BookImages()",50);
}
function Book_Next_Delay() {
if(B_CrImg==Book_Image_Sources.length)B_CrImg=0;
B_RI.src=B_Pre_Img[B_CrImg].src;
B_RI.lnk=Book_Image_Sources[B_CrImg+1];
B_MI.style.zIndex=2;
B_LI.style.zIndex=1;
B_Angle=0;
B_CrImg+=2;
setTimeout("BookImages()",50);
}
function B_LdLnk() {
if(this.lnk)window.location.href=this.lnk;
}
function B_Stp() {
B_Stppd=true;this.style.cursor=this.lnk?"pointer":"default";
}
function B_Rstrt() {
B_Stppd=false;
}
// ]]>
</script>
El código HTML es muy sencillo, donde queremos mostrarlo, colocamos lo siguiente (todo en una línea si se trata de un post):
<div id="Book" style="position:relative;">
<img src="URL_placeholder.gif" width="elAncho" height="elAlto">
</div>
<script type="text/javascript">ImageBook();</script>
elAncho es igual al doble del ancho de la imagen más cuatro
elAlto es igual al alto de la imagen más dos
Para un slideshow vertical:
elAncho es igual al alto de la imagen más dos
elAlto es igual al doble del alto de la imagen más cuatro

Crimen y castigo |
La noticia dice que días atrás, una mujer de Japón, 43 años, profesora de música, muy enojada luego del inesperado divorcio de su esposo virtual, en un un rapto de "locura temporal", asesinó al personaje de su ya ex-marido, un oficinista de 33 años.
Todo tomó estado público ya que la mujer utilizó la información de usuario de su amorcito (una hacker sencillita) para acceder al sitio y el hombre hizo la correspondiente denuncia policial que imagino que en algún momento seguirá su trámite judicial correspondiente , una vez que los policías se recuperen de los ataques de risa.
Mientras tanto, la mujer permanece arrestada, acusada de acceso ilegal, manipualción de datos y ... ¿avatarocidio? Sea como sea, enfrenta la posibilidad de ser sentenciada a cinco años de cárcel o a pagar una pequeña multa de cinco mil dólares.
Ampliar imágenes de manera sencilla |

<script type='text/javascript'>
var nW,nH,oH,oW;
function zoomToggle(iWideSmall,iHighSmall,iWideLarge,iHighLarge,whichImage){
oW=whichImage.style.width;oH=whichImage.style.height;
if((oW==iWideLarge)||(oH==iHighLarge)){
nW=iWideSmall;nH=iHighSmall;
}else{
nW=iWideLarge;nH=iHighLarge;
}
whichImage.style.width=nW;whichImage.style.height=nH;
}
</script>
<img src="URL_imagen" width="ancho1" height="alto1" onclick="zoomToggle('ancho1px','alto1px','ancho2px','alto2px',this);">
ancho1 y alto1 son el tamaño de la imagen inicial, la que vemos en la página y ancho2 y alto2 son el tamaño de la imagen amplaida, la que veremos al hacer click en la imagen.
La función puede usarse en cualquier imagen y en varias en la misma página.
Si bien lo razonable es que ancho1 y alto1 sean los mismos en los atributos de la imagen que en la función, nada impide que sean diferentes.
![]() | ![]() |
ScreenToaster: Creando screecasts online |

Como aún está en modo beta, para usarlo hay que esperar una invitación. Tardó un poco pero al fin ha llegado así que me he dedicado a ver de que se trata y realmente, pese a tener limitaciones, parece ser una buena herramienta y su uso es muy sencillo.
Una vez que entramos en nuestra cuenta, se cargará la aplicación Java por única vez y en todas las páginas del servicio veremos un botón que es el que nos permitirá comenzar a grabar. Click allí y en unos segundos nos indicará que tenemos dos opciones, oprimiendo Alt+S grabará la ventana completa y Alt+Shift+S grabará sólo un área. Para detener la grabación, usaremos la misma combinación de teclas: Alt+S.Así que nos ponemos en la ventana donde queremos comenzar y usamos la combinación de teclas. Si especificamos un área, aparecerá un selector para que definamos el espacio de la pantalla a grabar. De allí en adelante, hacemos cualquier cosa y cuando decidimos terminar, nuevamente usamos Alt+S y automáticamente nos enviará a una página donde podremos previsualizar lo grabado, colocarle un título y una descripción y, si queremos, lo guardamos haciendo click en Publish.


En nuestra página principal, tendremos siempre disponibles los videos creados así que podemos acceder a ellos en cualquier momento.
![]() | ![]() | ![]() |
| ENLACE | ENLACE | ENLACE |
Click para ver los videos. | ||
Grabar videos desde Firefox |

Al instalarse, se agrega un ícono con el que lanzamos las opciones de la aplicación. Podemos seleccionar grabar toda la pantalla o sólo el navegador; selecionar la calidad final y eventualmente, agregarle nuestra voz. De allí en adelante, se grabará todo lo que hagamos y un nuevo click terminará el proceso, dándonos la posibilidad de verlo o guardarlo como archivo AVI.
REFERENCIAS:

Somos lo que fuimos |

¿Qué es Blogger?
Blogger es una herramienta para la publicación de weblogs ... Uno escribe entradas y las envía para que sean publicadas ordenadas cronológicamente teniendo como resultado, un sitio web de diseño personal.
¿Cómo funciona? ¡Es magia! y es gratuito.
Blogger no es la excepción y la existencia de Internet Archive WaybackMAchine nos permite recorrer ese pasado cercano y darnos cuenta de lo mucho que ha cambiado o de lo poco que ha cambiado.Apenas nacemos ya somos parte del pasado. Prueben buscarse y encontarán cosas extrañas

Mostrando posts de cierta fecha |
Lo que se hace es sencillo; utilizar JavaScript para establecer una fecha determinada, crear una dirección URL y abrir esa página. Si hay posts en esa fecha, se mostrarán y si no los hay, claro, no se mostrará nada.
Creamos un Elemento HTML y allí ponemos el script:
<script type="text/javascript">
home_page = "http://nuestroSitio.blogspot.com/";
timezone = "-03:00";
function submitdate(){
year = document.selectdate.year.options[document.selectdate.year.selectedIndex].value;month = document.selectdate.month.options[document.selectdate.month.selectedIndex].value;day = document.selectdate.day.options[document.selectdate.day.selectedIndex].value;tmax = year+"-"+month+"-"+day+"T23:59:59"+timezone;
tmin = year+"-"+month+"-"+day+"T00:00:00"+timezone;
tlink = home_page+"search?updated-max="+encodeURIComponent(tmax)+"&updated-min="+encodeURIComponent(tmin)+"&max-results=20";
if(year=="" || month=="" || day=="") {
alert("Please select a right date!"); return false;
} else {
self.location.href=tlink;
}
}
</script>
home_page = "http://nuestroSitio.blogspot.com/";
timezone = "-03:00";
Luego, agregamos es el código HTML que pueden descargar de este archivo de texto
y cuyo esquema (es muy tedioso escribirlo todo) es el siguiente:<form id="buscarXfecha" name="selectdate"><span>Seleccione una fecha</span>
<select name="day">
<option value="" selected="selected">DIA</option>
<option value="01">1</option> ....... <option value="31">31</option>
</select>
<select name="month">
<option value="" selected="selected">MES</option>
<option value="01">ENE</option> ....... <option value="11">NOV</option>
<option value="12">DIC</option>
</select>
<select name="year">
<option value="" selected="selected">AÑO</option>
<option value="2007">2007</option><option value="2008">2008</option>
</select>
<input type="button" onclick="submitdate()" value="BUSCAR"/>
</form>
#buscarXfecha { /* el bloque del formulario */
background-color: #243240;
border: 1px solid #4D5B68;
margin: 0 auto;
padding: 5px 0 10px;
text-align: center;
width: 250px;
}
#buscarXfecha span { /* el texto indicativo superior */
color: #FFFFFF;
display:block;
margin-bottom: 5px;
}
#buscarXfecha select { /* los elementos con las opciones */
background-color: #CCC;
border: 2px solid #8D9BA8;
color: #000;
font-size: 11px;
width: 50px;
}
#buscarXfecha input { /* el botón de envio */
background-color: #CCC;
border: 2px solid #8D9BA8;
color: #000;
cursor: pointer;
font-size: 10px;
font-weight: bold;
}
Amores y desamores varios |
Un nombre = Un avatar |
Turn your name into a face hace eso que dice el nombre; traducido: Convierte un nombre en una cara.El sitio es una pequeña herramienta donde ingresamos el nombre y en función de un algoritmo, crea una imagen combinando 18 estilos de siluetas, ojos, nariz y boca, produciendo más de 100.000 avatares diferentes.
Bueno ... si el mio parece gracioso, ni se imaginen lo que pasa al poner otros nombre ...

REFERENCIAS:

Wallpapers (en negro) |
Feo como emoticón de GMail |
"Here on the Gmail team, we're always thinking of ways to help you communicate ... we present, in all their technicolor glory, emoticons in your mail ..." (The Official GMail Blog)
¿Seré yo el único que cree que son muy feos? 

Seguidores: Personalizar el gadget |
Colocarlo es muy sencillo, no tiene opciones de ninguna clase (excepto el título) y en principio, se adapta al estilo de la sidebar. En la plantilla, vamos a encontrar un código largo, muy largo que comienza con:
<b:widget id='Followers1' locked='false' title='Seguidores' type='Followers'>

<b:widget id='Followers1' locked='false' title='Seguidores' type='Followers'>
<b:includable id='main'>
esta parte define el título:
<b:if cond='data:title != ""'>
<b:if cond='data:codeSnippet != ""'>
<h2 class='title'><data:title/></h2>
<b:else/>
<h2 class='title'><data:title/> (<data:totalFollowerCount/>)</h2>
</b:if>
</b:if>
NOTA: parece haber una opción para que en el título se muestre o no se muestre la cantidad de seguidores en función de algún dato pero, desconozco donde está. Podríamos hacerlo manualmente, eliminando esa parte y dejando sólo la parte de color.
No es el único caso donde hay opciones poco claras, en el resto siguen apareciendo:
<div expr:id='data:widget.instanceId + "-wrapper"'>
<b:if cond='data:codeSnippet != ""'>
<data:codeSnippet/>
<b:else/>
<b:if cond='data:followingLinkPresent'>
este es el enlace que por defecto dice "Seguir este blog" y que nos permite agregarnos:
<div class='follow-this profile-link item-control following-follow-this'>
<a expr:href='"javascript:_FollowersView._openPopup(\"" + data:followUri + "\");"'>
<data:followThisMessage/>
</a>
</div>
este es el enlace que aparecerá si estamos siguiendo un blog y queremos dejar de hacerlo. Por defecto dice "Parar siguiente" (una traducción increible):
<div class='follow-this profile-link item-control following-stop-following-this'>
<a expr:href='"javascript:_FollowersView._openPopup(\"" + data:followUri + "\");"'>
<data:stopFollowingMessage/>
</a>
</div>
</b:if>
<div class='followers-grid'>
este es el mensaje que se muestra si el blog no tiene seguidores y que por defecto dice "Sé el primero en seguir este blog":
<b:if cond='data:totalFollowerCount == 0'>
<div class='profile-link item-control following-follow-this'>
<data:emptyFollowersMessage/>
</div>
</b:if>
este es el bucle que muestra el avatar de los seguidores con un enlace a su perfil de Blogger y con el atributo nofollow que no tiene sentido quitar ya que al no apuntar al blog, no significará un enlace valido para posicionar un sitio y de esta manera se evita el "seguimiento spam":
<!-- Relies on the js written out in navbar.gxp -->
<b:loop values='data:followers' var='follower'>
<div class='follower'>
<a expr:href='data:follower.profileUrl' expr:title='data:follower.displayName' rel='nofollow'>
<img class='follower-img' expr:alt='data:follower.displayName' expr:height='data:follower.imageHeight' expr:onerror='"this.onerror=null;this.src=\"" + data:anonFollowerImageUrl + "\";"' expr:onload='"setAttributeOnload(this, \"src\", \"" + data:follower.imageUrl + "\")"' expr:width='data:follower.imageWidth' src='http://img1.blogblog.com/img/blank.gif'/>
</a>
</div>
</b:loop>
<div class='clear'/>
</div>
<div class='followers-canvas profile-link'>
este es el mensaje que muestra la cantidad de seguidores:
<data:followersFooterMessage/>
este enlace permite "Ver todos los seguidores" ya que sólo se mostrará una cantidad máxima:
<span class='item-control following-not-admin'>
<a expr:href='data:followersUri'>
<data:viewAllMessage/>
</a>
</span>
este enlace dice "Administrar" y sólo lo veremos nosotros si estamos logueados:
<span class='item-control blog-admin'>
<a expr:href='data:manageFollowersUri'>
<data:manageFollowersMessage/>
</a>
</span>
</div>
</b:if>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>
<data:followThisMessage/> es el texto del enlace Seguir este blog
<data:stopFollowingMessage/> es el absurdo texto del enlace Parar siguiente
<data:emptyFollowersMessage/> es el texto Sé el primero en seguir este blog.
<data:viewAllMessage/> es el texto del enlace Ver todos
<data:manageFollowersMessage/> es el texto del enlace Administrar
A diferencia de los últimos agregados de Blogger, este no es un IFRAME así que, por un lado es relativamente más rápido y por otro, nos permite utilizar CSS para modificarlo.
Como la gran mayoría de las clases y definiciones de estilo están en un archivo externo que Blogger agrega, lo ideal es hacer estas modificaciones sobrescribiendo estos datos y colocando todo en una etiqueta STYLE pero no en el encabezado de nuestra plantilla sino después de <BODY>:
<style type='text/css'>
[... aquí colocamos las definiciones ...]
</style>
#Followers1 h2 {
aquí podemos modificar el estilo del título
}
#Followers1-wrapper {
este es el DIV general que contiene el elemento
}.follow-this {
margin: 0 5px 5px 0;
text-align: right;
}
.follow-this a { /* los enlaces superiores */
color: #7E92A6;
font-weight: normal;
font-size: 11px;
}
.follow-this a:hover {
color: #9EB2C6;
font-weight: bold;
}
.followers-canvas { /* la cantidad de seguidores */
background: transparent url(URL_imagen) no-repeat scroll left top;
color: #778899;
float: right;
font-size: 11px;
font-weight: normal;
margin: 5px 5px 0 0;
padding-left: 15px;
text-align: right;
}
.following-not-admin a { /* es el enlace "Ver Todos" */
color: #7E92A6;
display: block;
font-size: 11px;
font-weight: normal;
text-align: right;
}
.following-not-admin a:hover {
color: #9EB2C6;
font-weight: bold;
}
.blog-admin a { /* es el enlace "Administrar" */
color: #7E92A6;
font-weight: normal;
font-size: 11px;
}
.blog-admin a:hover {
color: #9EB2C6;
font-weight: bold;
}.followers-grid { /* el espacio donde se mostrarán los avatares */
margin: 0 auto; /* esto lo centra */
padding: 0;
width: anchopx;
/* ese ancho es importante ya que define cuántas imágenes se mostrarán por línea */
}
.follower-img { /* es la imagen en si misma que tienen 28x28 */
float: left;
margin: 0;
padding: 0;
}
.follower { /* cada imagen está dentro de un DIV */
float: left;
height: valorpx;
margin: 0px;
width: valorpx}
/* ancho y alto son la imagen más los bordes y márgenes */
}OTRA MIRADA:
Encontrar el enlace directo en SkyDrive |
Para saber esa URL, debemos abrir la página del archivo, allí veremos un ícono gigante a la izquierda de la pantalla y deberemos hacer click sobre él, con el botón derecho del ratón.
Dependiendo del navegador que usemos, seleccionaremos: Copiar dirección del enlace (en Firefox) o Copiar acceso directo (en Internet Explorer):


Fijando DIVs en la página |
hace unos días: Un cartel de aviso flotante.Es más cómodo porque podemos agregarlo, tanto a la plantilla como a un post en particular. En ambos casos, necesitamos el script que podríamos agregar antes de </head> copiando y pegando el código:
<script type='text/javascript'>
//<![CDATA[
....... aquí copiamos el código .......
//]]>
</script>
<script src="URL_archivo.js"></script>
var persistclose = 1 // una vez cerrada permanece cerrada (0 se muestra cada vez que se abre la página)
var startX = 20 // posición horizontal de la ventana (en pixeles)
var startY = 5 // posición vertical de la ventana (en pixeles)
var verticalpos = "fromtop" // va arriba de la pantalla ("frombottom" va abajo)
function iecompattest() {
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function closebar() {
if (persistclose)
document.cookie="remainclosed=1"
document.getElementById("topbar").style.visibility="hidden"
}
function staticbar(){
barheight=document.getElementById("topbar").offsetHeight
var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
var d = document;
function ml(id){
var el=d.getElementById(id);
if (!persistclose || persistclose && get_cookie("remainclosed")=="")
el.style.visibility="visible"
if(d.layers)el.style=el;
el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
el.x = startX;
if (verticalpos=="fromtop")
el.y = startY;
else {
el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
el.y -= startY;
}
return el;
}
window.stayTopLeft=function() {
if (verticalpos=="fromtop") {
var pY = ns ? pageYOffset : iecompattest().scrollTop;
ftlObj.y += (pY + startY - ftlObj.y)/8;
} else {
var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
ftlObj.y += (pY - startY - ftlObj.y)/8;
}
ftlObj.sP(ftlObj.x, ftlObj.y);
setTimeout("stayTopLeft()", 10);
}
ftlObj = ml("topbar");
stayTopLeft();
}
if (window.addEventListener)
window.addEventListener("load", staticbar, false)
else if (window.attachEvent)
window.attachEvent("onload", staticbar)
else if (document.getElementById)
window.onload=staticbar
<div id='topbar'>
....... aquí va el contenido del mensaje a mostrar .......
<a href="javascript:void(0);" onclick="closebar(); return false">CERRAR</a>
</div>
<div id="topbar" onclick="closebar(); return false">
....... aquí va el contenido del mensaje a mostrar .......
</div>

#topbar{
background-color: #F35D5D;
border: 2px solid #FFFFFF;
color: #FFFFFF;
height: 70px;
padding: 10px;
position:absolute;
width: 500px;
visibility: hidden;
z-index: 640;
}Click para cerrar.
Lo usamos de la misma manera, necesitamos el script que insertamos de la misma manera que el anterior y un poco de CSS para establecer las propiedades del cartel:

<style type="text/css">#fadeinbox{
background-color: lightyellow;
border: 2px solid #FFFFFF;
left: 0;
padding: 10px;
position:absolute;
top: -400px;
visibility:hidden;
width: 350px;
z-index: 100;
}</style>
<script type="text/javascript">
//<![CDATA[
var displaymode="always"; // la forma en que se mostrará
var enablefade="yes" // habilita el efecto fade
var autohidebox=["yes", 5] // oculta el cartel tras cierta cantidad de tiempo
var showonscroll="yes" // se ueve mediante scroll
var IEfadelength=1 // tiempo del fade para IE
var Mozfadedegree=0.05 // datos del fade para NS6+
if (parseInt(displaymode)!=NaN)
var random_num=Math.floor(Math.random()*displaymode)
function displayfadeinbox() {
var ie=document.all && !window.opera
var dom=document.getElementById
iebody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body
objref=(dom)? document.getElementById("fadeinbox") : document.all.fadeinbox
var scroll_top=(ie)? iebody.scrollTop : window.pageYOffset
var docwidth=(ie)? iebody.clientWidth : window.innerWidth
docheight=(ie)? iebody.clientHeight: window.innerHeight
var objwidth=objref.offsetWidth
objheight=objref.offsetHeight
objref.style.left=docwidth/2-objwidth/2+"px"
objref.style.top=scroll_top+docheight/2-objheight/2+"px"
if (showonscroll=="yes")
showonscrollvar=setInterval("staticfadebox()", 50)
if (enablefade=="yes" && objref.filters) {
objref.filters[0].duration=IEfadelength
objref.filters[0].Apply()
objref.filters[0].Play()
}
objref.style.visibility="visible"
if (objref.style.MozOpacity) {
if (enablefade=="yes")
mozfadevar=setInterval("mozfadefx()", 90)
else {
objref.style.MozOpacity=1
controlledhidebox()
}
} else
controlledhidebox()
}
function mozfadefx() {
if (parseFloat(objref.style.MozOpacity)<1)
objref.style.MozOpacity=parseFloat(objref.style.MozOpacity)+Mozfadedegree
else {
clearInterval(mozfadevar)
controlledhidebox()
}
}
function staticfadebox() {
var ie=document.all && !window.opera
var scroll_top=(ie)? iebody.scrollTop : window.pageYOffset
objref.style.top=scroll_top+docheight/2-objheight/2+"px"
}
function hidefadebox() {
objref.style.visibility="hidden"
if (typeof showonscrollvar!="undefined")
clearInterval(showonscrollvar)
}
function controlledhidebox() {
if (autohidebox[0]=="yes") {
var delayvar=(enablefade=="yes" && objref.filters)? (autohidebox[1]+objref.filters[0].duration)*1000 : autohidebox[1]*1000
setTimeout("hidefadebox()", delayvar)
}
}
function initfunction() {
setTimeout("displayfadeinbox()", 100)
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = ""
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset)
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
if (displaymode=="oncepersession" && get_cookie("fadedin")=="" || displaymode=="always" || parseInt(displaymode)!=NaN && random_num==0) {
if (window.addEventListener)
window.addEventListener("load", initfunction, false)
else if (window.attachEvent)
window.attachEvent("onload", initfunction)
else if (document.getElementById)
window.onload=initfunction
document.cookie="fadedin=yes"
}
//]]>
</script><div id="fadeinbox" onclick="hidefadebox(); return false" style="filter:progid:DXImageTransform.Microsoft.RandomDissolve(duration=1) progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135); -moz-opacity:0">
....... aquí va el contenido del mensaje a mostrar .......
</div>
Es cierto que no tiene la espectacularidad del scroll pero es muy flexible y sencilla de implementar; basta declarar una clase tal como nos muestran en DailyCoding:
<style type="text/css">
.cartelFijo {
background-color: #0080FF;
border: 2px solid #FFFFFF;
color: #FFFFFF;
font-family: Tahoma;
font-weight: bold;
left: 20px; /* la coordenada horizontal donde se muestra */
padding: 10px;
position: fixed; /* esto es lo que lo fija */
text-align: justify;
top: 30px; /* la coordenada vertical donde se muestra */
width: 200px; /* el ancho del cartel */
z-index: 10000;
}
<div class="cartelFijo" onclick="this.style.display='none'; return false">
....... aquí va el contenido del mensaje a mostrar .......
</div>
Cartel 1 | Cartel 2 | Cartel 3 | Cartel 4
Click para cerrar.
Click para cerrar.
Click para cerrar.
Click para cerrar.
El elemento "Seguidores" y novedades varias |
Parece que el nuevo gadget (widget) de Blogger llamado Seguidores (followers) ya está disponible en español y se lo ve tanto en el escritorio como en Elementos de diseño.Si queremos usarlo basta hacer click en agregar, ponerle un título y nada más; eso, lo incluirá en la plantilla como cualquier otro elemento.
No he leido mucho del tema pero lo agregaré temporalmente para ver de que se trata.
Y mientras programo este post veo que atajar me avisa de lo mismo así que debe ser algo generalizado ya que también veo entradas en el Blog de Gem@
y en El escaparate de Rosa 
Ah, y por cierto, también Bonzu Pipinpadaloxicopolis III me dice que está disponible el botón de Vista Previa en los comentarios incrustados, algo de lo que realmente no me había dado cuenta. Así que parece ser que en Blogger se han dedicado a lanzar varias modificaciones todas juntas; también veo una diferencia en el código de las imágenes y vaya uno a saber que otra cosilla nos tiene escondida

YouEmbedTube |
REFERENCIAS:

Diez plantillas |
![]() | GreenLife Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER |
![]() | Pottery Barn Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER |
![]() | Stripped Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER |
![]() | Arena Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER |
![]() | Chaotic Soul Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER |
![]() | Black Wood Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER |
![]() | The Journalist Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER |
![]() | Net Spiel Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER | ![]() | Renewed Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER |
![]() | Shoe Fetish Demo online: VER Archivo ZIP: DESCARGAR ![]() Información y detalles: VER |
Vuzit: Visualizando documentos en el navegador |
Soporta 38 formatos diferente lo que no es poca cosa: PDF, documentos de Microsoft Office (doc, docx, rtf, xls, xlsx, ppt, pptx), imágenes (png, jpg, gif, tif, bmp, ppm, xpm), gráficos vectoriales (eps, ras), archivos de texto, documentos de OpenOffice (odt, odf, ott, odg, odp, stw, sxw, std, sxd, sti, sxi, sxc), de StarOffice (sda, sdd, sdw, vor) y de OpenDocument (otg, stp, ods, pts).
Para utilizarla es necesario registrarse ya que está integrada con un servicio llamado Vuzit que nos ofrece una serie de posibilidades más como incrustar esos documentos en una página web y que sean accesibles con cualquier navegador (Internet Explorer, Firefox, Safari y Opera). De esta manera, podemos agregar documentos subidos por nosotros (disponemos de 50 megas) o documentos que se encuentren en la web.
Van Gogh y un experimento con imágenes |
La imagen que vemos es la reproducción de un famoso cuadro de Van Gogh realizado a manera de mosaico utilizando 210.000 pequeñas fotografías.
Haciendo click sobre la imagen podemos ir usando los controles para ampliar, reducir o navegar en ese giga y medio de información.

Bordes, triángulos y curiosidades CSS |
Las propiedad border es algo que usamos habitualmente, generalmente son bordes "finos" pero nada impide usar bordes más grandes:
<div style="border: 10px solid #0080C0; height: 100px; width:200px;"></div> |
<div style="border-bottom: 10px solid #0080C0; border-left: 10px solid #0080C0; height: 100px; width:200px;"></div> |
<div style="border-bottom: 10px solid #0080C0; border-left: 10px solid transparent; height: 100px; width:200px;"></div> |
<div style="border-bottom: 10px solid #0080C0;border-top: 10px solid #FF0000; border-left: 10px solid #008000; border-right: 10px solid #FF8040; height: 100px; width:200px;"></div> |
| border-bottom border-left | border-bottom border-right | border-top border-left | border-top border-right |
| border-bottom + border-left + border-right | border-top + border-left + border-right | ||

<style type="text/css">
.calloutUp { /* es el borde del triangulito hacia arriba */
border-bottom: 12px solid #FFFFFF;
border-left: 12px dotted transparent;
border-right: 12px dotted transparent;
left: 0px; top: 0px;
height: 0; width: 0; /* no tendrá dimensiones */
margin-left: 20px; /* lo separamos del borde izquierdo */
z-index: 10;
}
.calloutUp2 { /* un triangulito más chico adentro del anterior */
border-bottom: 10px solid #9999FF;
border-left: 10px dotted transparent;
border-right: 10px dotted transparent;
position: relative;
left: -10px; top: 2px; /* lo posicionamos desplazado */
height: 0; width: 0; /* no tendrá dimensiones */
z-index: 11;
}
.calloutDown { /* es el borde del triangulito hacia abajo */
border-top: 12px solid #FFFFFF;
border-left: 12px dotted transparent;
border-right: 12px dotted transparent;
left: 0px; top: 0px; /* lo posicionamos */
height: 0; width: 0; /* no tendrá dimensiones */
margin-left: 20px; /* lo separamos del borde izquierdo */
z-index: 11;
}.calloutDown2 { /* un triangulito más chico adentro del anterior */
border-top: 10px solid #9999FF;
border-left: 10px dotted transparent;
border-right: 10px dotted transparent;
height: 0; width: 0; /* no tendrá dimensiones */
position: relative;
left: -10px; top: -12px; /* lo posicionamos despalazado */
z-index: 10;
}
.divContainerUp { /* el contenido del recuadro hacia arriba */
background-color: #9999FF;
border: solid 1px #FFFFFF;
color: #000000;
padding: 10px;
position: relative;
text-align; justify;
top: -1px;
width: 500px;
z-index: 9;
}
.divContainerDown { /* el contenido del recuadro hacia abajo */
background-color: #9999FF;
border: solid 1px #FFFFFF;
color: #000000;
padding: 10px;
position: relative;
text-align; justify;
top: 1px;
z-index: 3;
width: 500px;
}
</style>

<div class="calloutUp"><div class="calloutUp2"></div></div>
<div class="divContainerUp"> ... el contenido del ejemplo superior ... </div>
<div class="divContainerDown"> ... el contenido del ejemplo inferior ... </div>
<div class="calloutDown"><div class="calloutDown2"></div></div>
REFERENCIAS:

TextSnip: Compartir códigos online |
En un post reciente, Vera tiene la gentileza de nombrarme y recomendarme el uso de un servico llamado TextSnip con el que dice que podemos gestionar y compartir fragmentos de código online de manera sencilla.Como tiene razón, lo mejor es crear una cuenta gratuita en unos simples pasos (nombre y contraseña) y probarlo.
Entramos y nos dan dos opciones, quick snip o custom snip que sólo se diferencian por el tipo de URL final que se genere. Probamos la más sencilla que es la que aparece por defecto, simplemente escribimos el código y le ponemos un título; damos click en el botón get my URL e inmediatamente nos darán una dirección que será pública así que podremos compartir. Por ejemplo: http://textsnip.com/c551cd
Si abrimos la página, nos mostrará el código como texto plano pero a la derecha, un control llamado Change Code View nos permite verlo con la sintaxis resaltada de acuerdo al idioma de que se trate; en este caso, elegimos JavaScript y el resultado es realmente asombroso:

Este es un código HTML: http://textsnip.com/663693
Este es un código CSS: http://textsnip.com/31c14b
Este es un código PHP: http://textsnip.com/074581
No son los únicos idiomas soportados, también acepta XML. SQL, Ruby, Python, VB y Java.
Todos los códigos que agregamos y compartimos son accesibles desde una dirección única a la que se van agregando de forma automática: http://textsnip.com/user/JMiur
Sencillo, simple y práctico; más, no puede pedirse.
Rotation |
Maid Marian Classic Videos |
Wallpapers (Linux love) |
Alternativa para evitar traducciones automáticas |
<meta name="google" value="notranslate" /><span class="notranslate">este texto no debe traducirse</span>
Relojes en Flash para descargar |
![]() | ![]() |
| Rodin thinker clock | Child clock kid timer |
![]() | ![]() |
| Skull digital clock | Skeleton thinker clock |
![]() | ![]() |
| Salvador Dali clock | Never look back |
Click para ver las animaciones. | |
¡A navegar se ha dicho! |
Según un estudio de la Universidad de California en Los Ángeles (Estados Unidos), que se publica en la revista American Journal of Geriatric Psychiatry, utilizar Internet mantiene el cerebro en forma a medida que se envejece.
Según este estudio, los mayores y los adultos de mediana edad que utilizan la Red, activan los principales centros del cerebro que controlan la toma de decisiones y el razonamiento complejo.
Sin Miedo
¡Adiós, sol, adiós!
Buscando enlaces rotos |
Es cierto que hasta ahora, esos Errores de rastreo se mostraban indicando la URL que no existía o era inaccesible pero, no nos decía en que parte de nuestro sitio estaba el error lo que hacía muy difícil dar con el problema y corregirlo.

La lista a veces puede ser bastante larga pero ... paciencia.


<a href="www.prototypejs.org/"><a href="http://www.prototypejs.org/">Digo que los corregiremos "de ser posible" ya que no siempre podremos hacerlo; por ejemplo en este caso, el error anterior ha creado otros como una URL errónea en los feeds o en los comentarios. Con esos, sólo deberemos esperar que se corrijan solos. Pero también nos mostrará errores de páginas que nos enlazan y que ya no existen; ahí no hay mucho que podamos resolver así que, inevitablemente, deberemos convivir con ellos.
Una posible solución para ciertas URLs extrañas como las de las búsquedas o las etiquetas es agregar el atributo nofollow para evitar que se indexen esos enlaces:
<a rel="nofollow" ....... >
REFERENCIAS:

Actualización de Flash Player |
Tanto Mozilla como Adobe habían confirmado el problema y ahora dicen haberlo solucionado.
La nueva versión es la 10.0.12.36 para Firefox, Mozilla, Netscape, Safari, Opera y conviene actualizarla para evitar problemas.
Si no estamos seguros de cuál es la version que tenemos instalada, podemos ir a esta página de Adobe donde nos lo mostrarán.

Sólo para valientes :-) |
CLICK PARA CORRER EL RIESGO

Avisar si el navegador esta desactualizado |
Muchos blogs sugieren usar un navegador u otro, no es algo que me convenza demasiado pero con Pushup es posible amplair un poco esas posibilidades ya que es un script cuyo fin es ayudar a los usuarios a actualizar sus navegadores en el caso de detectar que los visitantes están utilizando una versión "vieja".El ZIP lo descargamos desde la pagina principal y allí hay abundante documentación sobre las opciones disponibles.

REFERENCIAS:

Dhonishow: Un slideshow particular |
Lo primero que debemos saber es que utiliza Prototype y Scriptaculous así que si no las tenemos en la plantilla, debemos descargarlas y agregarlas. Lo más sencillo, es usar las que provee Google, copiando y pegando este código antes de </head>:
<script src='http://www.google.com/jsapi'/>
<script>
google.load("prototype", "1.6.0.2");
google.load("scriptaculous", "1.8.1");
</script>
que podemos descargar y que contiene todo lo necesario. Luego, alojaremos los dos archivos en un servidor y los agregaremos a la plantilla o página web también antes de </head>:<script src='URL_dhonishow.js' type='text/javascript'></script>
<link rel='stylesheet' href='URL_dhonishow.css' type='text/css' />
La idea del slideshow es mostrar una serie de imágenes de una manera particular, partidas en tres pedazos que pueden navegarse de manera independiente así que, lo primeo es definir el tamaño de las imágenes a usar y luego, dividirla en tres partes iguales:


.dhonishow {
float: left;
overflow: hidden;
width: 173px; /* el ancho de cada sector y un poquito más para que se separen */
}
.dhonishow * {
border: none;
list-style: none;
margin: 0;
padding: 0 0 0 5px;
}
.dhonishow-image {
background-color: #101921; /* un color de fondo para las transiciones */
height: 295px; /* la altura de las imágenes */
overflow: hidden;
position: relative;
text-align: left;
width: 170px; /* el ancho de cada sector */
}
.dhonishow-image li {
left: 0;
margin: 0;
padding: 0;
position: absolute;
top: 0;
}
/* el área inferior que permite navegar las imágenes y que es completamente configurable */
.dhonishow-navi {
border-bottom: 1px solid #5E7286;
border-top: 1px solid #5E7286;
color: #FFFFFF;
margin: 2px 0 10px 0;
overflow: hidden;
padding: 5px;
width: 170px; /* el ancho de cada sector */
}
.dhonishow-picture-alt { /* oculto el nombre de cada imagen */
display: none;
}
.dhonishow-navi .dhonishow-next-picture, .dhonishow-navi .dhonishow-previous-picture {
cursor: pointer;
float: right;
height: 18px;
margin: 0;
text-indent: -999px;
width: 16px;
-moz-outline: none;
}
.dhonishow-navi .paging {
float: right;
font-size: 18px;
margin: 0 10px 0 0;
line-height:18px;
}
#dhonis{ /* es una gregado para centrar todo el slidshow */
width:520px; /* el ancho total incluyendo márgenes */
margin:0 auto; /* así se centra */
}
/* son las imágenes que se muestran como enlaces y puede usarse cualquier otra */
.dhonishow-navi .dhonishow-next-picture {
background: url(http://img80.imageshack.us/img80/622/nextcu7.gif) no-repeat;
}
.dhonishow-previous-picture {
background: url(http://img235.imageshack.us/img235/6748/previousdp2.gif) no-repeat;
}
.dhonishow-next-picture:hover {
background: url(http://img80.imageshack.us/img80/7755/nexthoverqp4.gif) no-repeat;
}
.dhonishow-previous-picture:hover {
background: url(http://img76.imageshack.us/img76/6205/previoushovergb2.gif) no-repeat;
}<div id="dhonis">
<!-- aquí colocamos el sector izquierdo de cada una de las imágenes -->
<div class="dhonishow effect_blind duration_2 autoplay_5">
<img src="URL_imagen-1_parte-1" width="170" height="295" />
<img src="URL_imagen-2_parte-1" width="170" height="295" />
<img src="URL_imagen-3_parte-1" width="170" height="295" />
<img src="URL_imagen-4_parte-1" width="170" height="295" />
</div>
<!-- aquí colocamos el sector central de cada una de las imágenes -->
<div class="dhonishow middle effect_appear duration_2 autoplay_5">
<img src="URL_imagen-1_parte-2" width="170" height="295" />
<img src="URL_imagen-2_parte-2" width="170" height="295" />
<img src="URL_imagen-3_parte-2" width="170" height="295" />
<img src="URL_imagen-4_parte-2" width="170" height="295" />
</div>
<!-- aquí colocamos el sector derecho de cada una de las imágenes -->
<div class="dhonishow effect_horizontal duration_2 autoplay_5">
<img src="URL_imagen-1_parte-3" width="170" height="295" />
<img src="URL_imagen-2_parte-3" width="170" height="295" />
<img src="URL_imagen-3_parte-3" width="170" height="295" />
<img src="URL_imagen-4_parte-3" width="170" height="295" />
</div>
</div>
Cada uno de esos DIVs tiene una clase CSS que es la que controlará el efecto. Puede usarse effect_blind, effect_appear, effect_blind, effect_slide o effect_horizontal.
Con duration_valor, establecemos el tiempo que durará la transición y con autoplay_valor el tiempo que permanecerá visible cada imagen.
Eventualmente, también podría ocultarse la barra de navegación inferior o algunas de sus partes de esta manera:
<div class="dhonishow hide_paging" ....... >
<div class="dhonishow hide_alt" ....... >
<div class="dhonishow hide_navigation" ....... >












"Cositas para Twitter" :-) |
son una colección de 25 herramienatas y servicios surtidos, algunos que conocía y otros bastante novedosos. Cositas para jugar un rato y ver qué pasa Twitter Patterns no es un servicio, sólo tiene una colección de fondos que pueden descargarse y luego, subirlas y modificar el diseño de nuestra página.
TwitterFeed es conocido y lo vengo usando desde el inicio. Una vez que nos registramos con un OpenID, ingresamos la URL de nuestros blog y el servicio se encarga automáticamente de crear un tweet cada vez que publicamos una entrada. Tiene opciones varias para ser configurado y es muy sencillo de usar; una de esas cosas que uno habilita y luego se desentiende de ellas.
Twitt’d permite agregar un "contacto" especial a varios servicios de mensajería instantánea y a través de él, publicar en Twitter directamente:
- para Google Talk y las redes Jabber hay que agregar twittd@jabber.org
- para Yahoo Messenger hay que agregar twittd
- para Windows Live Messenger hay que agregar twittd@live.com
- también está disponible para Skpe y AIM
enviando un mail a esa dirección, el contenido se publica en nuestra cuenta de Twitter.
TwitWall permite incrustar contenido multimedia (videos, imágenes, MP3) e incluso podcasts. Se asocia con nuestra cuenta y es una especie de extensión muy interesante.
TweetDeck es una aplicación de escritorio impresionante pero para usarla debe tenerse Adobe Air instalado en nuestra PC; está en versión Beta pero vale la pena probarla.
Problemas de congestionamiento |
Y si los Beatles usaran bandoneones ... |

Beatles + Piazzolla pueden ser cosas que a un oyente desprevenido le parezcan tan disimiles que conjugarlas parezca imposible y sin embargo ... gracias a Dios hay un sin embargo ...
Dos años después, en el 2004, sale su segundo album llamado Tangos de Liverpool y allí aparece la magia, la fuerza y toda la pasión que no puede dejar de escucharse aunque más no sea para saber que siempre hay algo más y que While my guitar gently weeps puede ser lo mismo que Guitarra y bandonéon, van a llorar o que el Yellow submarine no es otra cosa que un Amarillo Subte B.
| Click para ejecutar los videos. | |
Wallpapers (tecnología) |
Extensión para la barra de direcciones |
Avanza un nivel en el directorio del sitio o retrocede hasta el home
Copia la dirección URL del sitio en el portapapeles
Genera una dirección abreviada utilizando tinyurl.com
Buscar en el sitio utilizando Google
Etiqueta la página
Permite navegar de manera anónima usando servidores proxyextensions.urlbarext.hide.up.icon
extensions.urlbarext.hide.tags.icon
extensions.urlbarext.hide.search.icon
o bien podemos editar las etiquetas cambiando los valores de:
extensions.urlbarext.tags
Como la extensión es experimental, hay que registrarse en Mozilla para descargarla.
Seis técnicas para títulos usando CSS |
Aunque puede descargarse un ZIP
con los ejemplos, me parece que igual vale la pena darles una mirada a cada una de ellas.1. Para textos grandes como los títulos, lo mejor es recurrir a fuentes de tipo sans serif (Arial, Basic Sans SF o Helvetica).
Los títulos MUY grandes
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

<div id="big-bold">
<h1 class="big-bold">EL TITULO</h1>
<p>[ ... el texto a mostrar ... ]</p>
</div>
Las propiedades CSS:
#big-bold {
background-color: #FFF;
color:#000;
}
h1.big-bold {
font-family: 'basic Sans sf', arial, helvetica, sans-serif;
font-size: 2.1em;
color: orange;
}
#big-bold p {
font-family: arial, helvetica, sans-serif;
font-size: 0.9em;
line-height: 1.6;
}Gradientes Sobre Títulos
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

<div id="gradient">
<h1 class="gradient"><span></span>EL TITULO</h1>
<p>[ ... el texto a mostrar ... ]</p>
</div>
Las propiedades CSS:
#gradient {
background: #000;
}
h1.gradient {
font-family: arial, helvetica, sans-serif;
font-size: 38px;
line-height: 38px;
color: #FFFF;
position: relative;
}
h1.gradient span {
background: url(URL_h1-gradient.png) top left repeat-x;
display: block;
height: 20px;
position: absolute;
width: 100%;
}
#gradient p {
font-family: verdana, arial, helvetica, sans-serif;
font-size: 0.8em;
color: #CCC;
line-height: 1.6;
}Poniendo todo en mayúsculas
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

<div id="uppercase">
<h1 class="uppercase">EL TITULO</h1>
<p>[ ... el texto a mostrar ... ]</p>
</div>
Las propiedades CSS:
#uppercase {
background: #000;
}
.uppercase {
font-family: georgia, "times new roman", times, serif;
font-size: 1.2em;
text-transform: uppercase;
}
#uppercase p {
font-family: georgia, "times new roman", times, serif;
font-size: 0.9em;
line-height: 1.4;
}LetterSpacing y WordSpacing
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

<div id="spacing">
<h1 class="spacing">EL TITULO</h1>
<p>[ ... el texto a mostrar ... ]</p>
</div>
Las propiedades CSS:
h1.spacing {
font-family: Tahoma;
font-size: 1.8em;
text-transform: uppercase;
letter-spacing: 0.08em;
word-spacing: 0.1em;
color: #ccc;
}
#spacing p {
font-family: tahoma, georgia, "times new roman", times, serif;
font-size: 0.9em;
line-height: 1.4;
letter-spacing: 0.05em;
}Efecto de títulos subrayados
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

<div id="underline">
<h1 class="underline">EL TITULO</h1>
<p>[ ... el texto a mostrar ... ]</p>
</div>
Las propiedades CSS:
#underline {
background: #EEE;
}
h1.underline {
background: url(URL_h1-underline.png) bottom left no-repeat;
font-family: georgia, "times new roman", times, serif;
font-weight: lighter;
}
#underline p {
font-family: "trebuchet ms", verdana, sans-serif;
font-size: 0.9em;
}Usando la técnica de DropCap
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.

<div id="dropcap">
<h1 class="dropcap"><span>E</span>L TITULO</h1>
<p>[ ... el texto a mostrar ... ]</p>
</div>
Las propiedades CSS:
h1.dropcap {
font-size: 28px;
font-family: arial, verdana, sans-serif;
line-height: 28px;
}
h1.dropcap span {
font-size: 80px;
font-weight: lighter;
position: relative;
float: left;
line-height: 50px;
color: #CCC;
}
#dropcap p {
font-family: georgia, "times new roman", times, serif;
font-size: 0.9em;
line-height: 1.4;
}REFERENCIAS:

La seguridad bien entendida empieza por casa |
se hacía eco de un informe publicado por StopBadware donde se indicaba que Blogger se había convertido en uno de los sitios más peligrosos de la red ya que se habían detectado unos 4000 sitios con contenido malicioso alojados en su servicio."Considerando que es un servicio gratuito y que por su naturaleza de blog puede enlazar hacia cualquier cosa, la gente ha encontrado la forma de aprovechar este factor creando numerosos blogs que incorporan enlaces peligrosos y en algunas oportunidades incluso código maligno ejecutable desde la página."
Como Google es uno de los partners de StopBadware, también se agrega que "Google hace todo lo posible por eliminar el software maligno desde su sitio." Mientras tanto, otros analistas como SecTheory creen que Google podría hacer más al respecto y, entre otras cosas, el hecho de permitir el uso de scripts en su servicio de blogs aumenta el riesgo de contenido peligro.
La preocupación no es menor aunque 4000 sitios parece una cifra absolutamente ridícula y porcentualmente baja; de hecho, muchas veces se ha dicho que casi el 50% de los blogs creados en Blogger son spamblogs e imagino que la realidad debe estar en alguna parte allí en el medio.
No es la primera vez que salen noticias de este tipo y siempre me he preguntado lo mismo ¿para qué sirven? Hace un tiempo, en bsod
analizaban otra noticia similar: 1 de cada 10 sitios es peligroso para Google. Hay otras similares: Blogger aloja el 2% del malware que hay en el mundo. No creo que nadie sepa exactamente el número, no creo que haya estadísticas reales, no estoy muy seguro de si es posible que las haya cuando estamos hablando de un universo tan dinámico y cambiante; lo cierto es que existen y que si bien las empresas o servicios deberían poner las barba en remojo para mejorar la situación, sólo hay alguien que puede ayudarnos porque es el único en quien podemos confiar: NOSOTROS MISMOS.En Sin Miedo dicen:
- sentido común a la hora de descargar un archivo o de ver una página web
- un buen firewall
- un antivirus
Que Blogger permita o impida usar scripts es irrelevante a menos que creamos que la seguridad es un montón de cartelitos advirtiéndonos que esto "puede" ser peligroso y que aquello "puede" ser dañino. Porque la realidad es que "puede serlo" pero "puede no serlo" y que sólo nosotros podemos tomar la decisión y asumir la responsabilidad.
Si caminamos por la calle mirando con preocupación a todos los que nos cruzamos porque creemos que "pueden" ser criminales, caemos en la paranoia y lo que es más grave aún, estamos sentando las bases para que alguien, en algún momento, nos venda la receta mágica y nos diga: CONFIEN EN MI, YO LOS CUIDARÉ. Papito sabe, papito es bueno, sólo cédanme algunos de sus derechos y yo los protegeré de los malos ¿Esto suena conocido?
LinkedTube: Agregando botones en los videos |
No hace falta registrarse y las opciones son sencilla. Una vez que ingresamos a la página, agregamos los datos:

- El ID del video: http://www.youtube.com/watch?v=2yKlUwpHuo0
- El texto que queremos que se vea en el botón
- La URL que se abrirá cuando hagamos click
- El modo en que veremos el botón: siempre, sólo cuando coloquemos el mouse encima del video o nunca.
- Los textos explciativos que se verán al colocar el mouse encima del botón.
Como con cualquier otro video, lo único que necesitamos es la URL del reproductor que, por cierto, es bastante larga:
http://www.linkedtube.com/static/flash/player.swf?sum=enlace%20a%20neocube.com&btn=enlace%20a%20neocube&txt=neocube.com&vis=always&url=http%3A%2F%2Fwww.theneocube.com%2F&vid=gidumziw4JE&get=yesREFERENCIAS:

Sin edad |
Buscamos a Sofía |
Mostrar y ocultar la sidebar |
La idea del script es ingeniosa y sirve para cualquier cosa; simplemente se trata de tener dos juegos de hojas de estilo CSS y usar una u otra. Como ambas están "pre-cargadas" los cambios son instantáneos. Para colmo, tiene una ventaja, el script crea cookies así que el visitante que selecciona un modelo, lo continuará viendo la próxima vez que ingrese.
Hasta acá, es la solución ideal para ocultar la sidebar a voluntad o bien para hacerlo de forma condicional, cargando directamente la hoja de estilo alternativa; por ejemplo podríamos decidir tener un modelo para la página principal y otro para las páginas individuales; una lateral y otra inferior, etc.
El único problema surge de las dificultades de alojar archivos externos y sobre todo, los de tipo CSS. Como hay quienes no pueden hacerlo o no quieren depender de ellos, podríamos usar una alternativa simplificada que hará lo mismo aunque de manera más limitada ya que no permitirá "recordar" la opción seleccionada.
Veamos lo que dice Pizcos y que es absolutamente correcto:
En una plantilla estandard, hay dos bloques que establecen el ancho de la sección donde están los posts y la sección de la sidebar. Por ejemplo, en mi caso dicen esto:
#main-wrapper {
...
width: 600px; /* el ancho de los posts */
}
#sidebar-wrapper {
...
width: 240px; /* el ancho de la sidebar */
}La hoja de estilo alternativa debería tener entonces dos variaciones, cambiar el nuevo ancho y ocultar la sidebar:
#main-wrapper {
...
width: 840px; /* el ancho de los posts */
}
#sidebar-wrapper {
...
display: none; /* ocultamos la sidebar */
}<a href="javascript:void(0);" onclick="getElementById('sidebar-wrapper').style.display='none'; getElementById('main-wrapper').style.width='860px';">OCULTAR SIDEBAR</a>
<a href="javascript:void(0);" onclick="getElementById('sidebar-wrapper').style.display=''; getElementById('main-wrapper').style.width='600px'">RESTAURAR SIDEBAR</a>Una alternativa a styleswitch.js es otro script llamado ProtoSwitcher que permite hacer lo mismo pero usando Prototype.
La diferencia fundamental es que no requiere tener archivos alternos lo que es una ventaja pero, es un poco más complejo de entender y no hay mucha información al respecto aunque podemos descargar un demo completo para experimentar

Para los preocupados por el tema velocidad de la carga, debo volver a recordar que "ocultar" elementos con CSS no implica aliviar el proceso de carga ya que, esten o no visibles, los elementos se cargan igual así que la solución para ese tipo de problemas no se resuelve con ninguna de estas técnicas.
Blogger
|
CSS
|
JavaScript
Usando Mail-to-Blogger |
Para publicar posts en Blogger via email debemos usar la Mail-to-Blogger cuyas opciones las encontramos en Configuración | Correo Electrónico.En Dirección de BlogSend podemos escribir hasta 10 direcciones de correo (separadas por comas) para que reciban el contenido del blog por correo cada vez que se publique algo. No es aconsejable hacerlo a menos que quien las va a recibir nos lo haya solicitado. Usando GMail es posible ampliar esa cantidad si creamos un grupo en Google Groups de esa manera, también es posible aumentar la cantidad de usuarios de un blog privado que por defecto está limitada a 100 (más información).
También es una opción que podemos utilizar para enviarnos a nosotros mismos una copia de los posts publicados a manera de backup.
El segundo cuadro de texto que se nos muestra es donde debemos ingresar la Dirección Mail-to-Blogger que es la URL a donde enviaremos los posts. Si tenemos varios blogs, cada uno deberá tener una dirección diferente de tipo:
nombre.ladireccion@blogger.com
Esa dirección es muy pero MUY importante; tanto como las contraseñas ya que de lo contrario, cualquiera podría publicar en nuestro blog si bien hay dos opciones más: si queremos que los envios se publiquen de manera inmediata o si queremos que se guarden como borradores (es lo más prudente).
El sistema funciona correctamente. El asunto del mail será el título del post pero es importante saber cuales son las limitaciones y sobre todo, cómo se maneja el contenido HTML. En ese sentdo, Blogger no tiene demasiadas restricciones, las restricciones vienen de parte de los clientes de correo que son bastante limitados aunque, si el software que usamos los soporta, podemos editarlo.
Si hablamos de GMail, todos los controles del editor funcionan perfectamente (formatos de los textos, fuentes, colores, enlaces, listas, alineamiento, sangrías y citas. Con otros clientes de escritorio es posible agregar tablas, clases CSS e incluso algunos scripts para controlar eventos como onmouseover.
No parece haber forma de agregar etiquetas pero ¿qué pasa con las imágenes?
Podemos adjuntarlas, en cuyo caso se guardarán en Blogger y se incluirá un código como este, al inicio del post:
<p class="mobile-photo"><a href="http://.../s1600-h/laImagen"><img src="http://.../laImagen"></a></p>
<img alt="http://..." src="http://.../laImagen">
#end
lo que indicará el final del post y hará que todo lo que esté debajo sea ignorado y no publicado.
99counters: Contando visitas |
Una vez que nos registramos podemos seleccionar entre varios modelos y establecer las características básicas.

<object type="application/x-shockwave-flash"
data="http://www.99counters.com/counters.swf?id=XXXX&ln=es"
width="175" height="200" wmode="transparent">
<param name="movie" value="http://www.99counters.com/counters.swf?id=XXXX&ln=es" />
<param name="wmode" value="transparent" />
<embed src="http://www.99counters.com/counters.swf?id=6961&ln=es"
type="application/x-shockwave-flash"
wmode="transparent" width="175" height="200">
</embed>
<br>
<a href="http://www.onlinecasinoextra.com/">gambling</a>
<a href="http://es.99counters.com/">Contador De Visitas</a>
</object>
<object width="175" height="200" id="movie"
type="application/x-shockwave-flash"
data="http://www.99counters.com/counters.swf?id=XXXX&ln=es">
<param name="movie" value="http://www.99counters.com/counters.swf?id=XXXX&ln=es" />
<param name="wmode" value="transparent" />
</object>
Un adicional de este servicio es que podemos crear tantos contadores como queramos y cada uno posee su propia página de estadísticas que podrá ser pública o privada. Allí podremos ver tanto los usuarios online como el total de visitas en cierto tiempo.
REFERENCIAS:

Otpor (1978) |
Wallpapers (todo Mac) |
Me gusta ... no me gusta |
Wowzio: Widgets que vale la pena mirar |
Hecho esto, en unos segundo se verificará que sea correcto y nos mostrará una lista con el título de las últimas entradas; seguimos adelante para elegir alguno de los modelos disponibles que se mostrarán como previsualizaciones que podemos personalizar.
Panoramic SlideShow y Photo Gallery buscan las imágenes de los posts y las muestran en una galería.
Tag Cloud muestra una lsita de etiquetas, extraidas del blog, de Technorati y las muestra en una nube donde cada palabra es un enlace.
Feed Content es uno de los más sencillos pero a la vez, uno de los más poderosos, muestra hasta 500 entradas, tanto textos como imágenes y tiene muchas opciones de configuración.
REFERENCIAS:

Divagaciones sobre el PageRank |
- Para presumir delante de tus amigos bloggers.
- Para conseguir nuevos o mejores patrocinadores.
- Para que te lean más personas.
- Para pensar que te estás volviendo todo un profesional de la blogocosa.
- Para dejar de hablar mal del PageRank, de Google y de AdSense.
- Para pensar que te estás convirtiendo en un topblogger.
- Para motivarte .. abrir nuevos sitios .. invertir más tiempo y dinero en negocios en internet.
Se dice que el PageRank es un modo de determinar el valor de un sitio web pero, la discusión entonces es otra: definir la palabra valor y allí entran las subjetividades ¿Cómo medimos el valor? ¿por la utilidad? ¿por el esfuerzo? Opiniones, confusión, nadie se ha puesto de acuerdo; no es necesario hilar fino para darse cuenta que nadie tiene una respuesta o mejor dicho, que hay tantas respuestas como personas respondiendo ¡Amén!El PageRank de Google es extraño; no sólo porque nadie sabe muy bien cómo se calcula sino porque de entrada, está teñido de subjetividad: depende de la calidad de los enlaces que recibe una web
Desde la práctica, el PageRank sólo es "útil" para los sitios que poseen publicidad. Por ahora, es un parámetro que los anunciantes miran, no sé por qué ya que no parece ser un dato relevante pero, es así y no me voy a poner a discutir con los popes de la merdicadotecnia, ellos saben lo que hacen hasta que claro, las burbujas explotan pero, esa es otra historia.
Lo curioso del asunto es que ese mismo "valor" lleva a muchos sitios a ampliar las posibilidades de anuncios y entonces ¡oh paradoja!, Google los penaliza. Es la locura total. Te subo el PageRank y con eso "te valoro"; te aprovechas de ese valor y agregas publicidad vendiendo enlaces ya que los anunciantes reconocen ese valor y entonces te lo bajo porque vendes eso mismo que yo te di. Pregunta ¿para que te lo di? Respuesta: no tengo idea pero suena a palos porque bogas y palos porque no bogas. Por estas tierras lo llamaríamos el síndrome del gataflorismo.
Para que los decepcionados no se sientan solos, en labnol.org dicen que la cantidad de sitios con PR10 también ha cambiado sustancialmente y que en estos momentos, sólo hay dos: www.google.com (obviamente) y www.usa.gov (obviamente pero obviamente distinto). Muchos otros como apple.com, adobe.com, whitehouse.gov, www.w3.org, nasa.gov, intel.com, real.com, apache.org, stanford.edu y energy.gov bajaron su posición de 10 a 9.
Lo que dicen las leyes de la física es que todo lo que sube tiene que bajar. Lo que dicen las leyes de Google es que nosotros podemos hacer lo que se nos ocurra y ellos también; sin explicaciones, acomodando las reglas de acuerdo a como va el juego y eso es lógico; para eso son los patrones de la internet ¿o que se creían?
Encontrar el enlace directo en ImageShack |
Más allá de los problemas que pude sufrir el servicio, la gran mayoría de esos errores son debidos a que no copiamos el código correcto y en eso, el servicio parece haberse empeñado en hacerle la vida más complicada a la gente ya que, el enlace directo a la imagen, que es lo que usualmente buscamos, lo han escondido, bien escondido.
Una vez subida la imagen, nos muestran una serie de opciones y links que simplemente debemos ignorar y nos vamos directamente al final de la página donde aparece esto:
+ Show Advanced Linking
Haciendo click allí, se mostrará el enlace directo que es el único que necesitamos para usarlo en el blog.






































































