Resultado de etiquetas “desarrollo”

Visitando blogmarks me dio por experimentar un poco más con CSS. La nueva apariencia de los enlaces a las etiquetas es muy sencillo de conseguir. La idea consiste en un fondo lo suficientemente grande () para que valga para cualquier posible etiqueta que tengamos y cerramos el fondo con un border, quedando oculto el resto del fondo no visible.


.entry-footer-tags a:link{
background:url(https://www.mabarroso.com/img/tag.gif) center left no-repeat;
border-right:1px solid #C2C1C1;
}

Para una aplicación basada en AJAX usando Prototype resulta muy útil el uso de referencias locales (named anchors) para que el navegador nos muestre la porción de la página adecuada. Un ejemplo sería:

<?=$ajax->link('Añadir', null, array('fallback'=>'#add', 'url'=>"/miapp/add/", 'update'=>"add", 'complete'=>"new Effect.Appear('add');")) ?>
<a name="add"></a>
<div id="add" style="display:none"></div>

Este código se ejecuta sin problemas en Firefox, sin embargo en Internet Explorer su comportamiento es irregular, llegando a no hacer nada (aparentemente) la mayoría de las veces y no indicando un error en ningún momento. El problema comienza al tener el identificador de la capa (DIV) y el nombre del marcador (anchor) exactamente iguales. La solución más simple es llamarlos de forma diferente.

<?=$ajax->link('Añadir', null, array('fallback'=>'#add_pos', 'url'=>"/miapp/add/", 'update'=>"add", 'complete'=>"new Effect.Appear('add');")) ?>
<a name="add_pos"></a>
<div id="add" style="display:none"></div>

Al que le apetezca poner a prueba sus dotes de hacker o simplemente intentarlo durante un rato antes de consultar la guía de cómo conseguirlo, está de enhorabuena. El Hacme Casino contiene vulnerabilidades colocadas a propósito con el fin de ejercitarte y aprender a dónde conducen algunos defectos de programación web.

Visto en Kriptópolis

Es muy grato encontrar herramientas de desarrollo gratuitas como FireBug
que le hacen la vida en el trabajo a uno mucho más llevadera. FireBug es una extensión para Firefox que permanece oculta con
un pequeño icono (verde si todo va bien, rojo si hubo un error) en la barra de estado que despliega la herramienta al pinchar sobre él.

Cuenta con un depurador bastante potente de JavaScript que permite añadir puntos de ruptura al código, ejecución paso a paso,
monitorización de la pila y se combina con el inspector para visualizar variables y objetos.

El inspector nos permite visualizar los nodos del fuente html en forma de arbol, la hoja de estilos, el DOM generado, seguimiento de eventos y
los datos de composición de cada elemento. El modo inspect permite ver los datos en el inspector del elemento sobre el que situemos el cursor.

Por último la consola recoge los mensajes de error de JavaScript y todas las llamadas que se hagan mostrando el contenido devuelto y las
cabeceras http, realmente útil cuando se trabaja con Ajax

Esta herramienta en combinación con Web Developer Extension hace de Firefox
el entorno de pruebas en cliente ideal para aplicaciones web.

Las restricciones de seguridad que impiden a javascript a acceder al sistema de archivos no nos permiten poder realizar tareas como el envío de ficheros al servidor (upload). Si pretendíamos realizar esto con Ajax nos golpearemos con un muro una y otra vez. Sí es posible emular un comportamiento similar al que conseguiríamos con Ajax usando las ya viejas técnicas de iframes ocultos.

La simulación consiste básicamente en realizar el en envío del formulario (submit) teniendo como destino (target) un iframe oculto del que podemos capturar el evento onload para detectar la finalización del envío del archivo.

Para practicar con esto he preparado un ejemplo usando Cake en Laboratorio cakePHP: #0608111 ajax upload. El ejemplo consiste en poder subir archivos sin "recargar" la página. Mediante Ajax se muestran los seis últimos archivos subidos y sus tamaños en bytes. En el formulario tenemos la suma del tamaño de los archivos (actualizado con Ajax) y un campo en el que podemos añadir una cantidad para realizar la suma al pulsar en "Calcular", momento en el que se recargará la página.

Ha pasado mucho tiempo desde hacía mis pinitos con Turbo Pascal y Turbo C con aquellas Turbo Visión con las que me inicié en la orientación a objetos. Adoraba aquello, no tanto me gustaba Turbo Basic ni Turbo Prolog, pero los consideraba lo mejor. Me costó mucho hacerme con Borlan C cuando empecé a desarrollar para Windows, y tiempo después las Turbo quedaron olvidadas. Ahora Borland se ha propuesto hacerlas volver con turbo explorer. Recupera esta denominación para una gama de productos de desarrollo gratuitas que se compone de:

Y en los tiempos que corren no se han privado de aprovechar YouTube.com para narrar la historia de TurboMan, el héroe que ya nos salvó una vez del Basic y que ahora vuelve en nuestra ayuda.

Aunque puede no aparecer útil, he creado un dbo_dummy que me permite trabajar sin conexión a base de datos. De esta forma puedo hacer pruebas y barbaridades sin estar conectado una base de datos cuando realmente no la necesito. Lo he creado siguiendo los pasos de como usar nuestro propio dbo en cakePHP

Aunque cakePHP ya cuenta con acceso a las bases de datos más usuales, puede ocurrir que necesitemos añadir un nuevo dbo programado por nosotros.

Para crear el nuevo dbo_mio en cakePHP versión 1.1.6.3264 deberemos:

  1. Crear un archivo vacío como app/models/dbo/dbo_mio.php. La utilidad de este archivo es permitir el correcto funcionamiento de file_exists en connection_manager.php (línea 150). Se debe a un pequeño bug, por el que busca que el archivo exista en una ruta y luego lo toma de otra ruta distinta..
  2. Creamos el verdadero archivo como app/models/datasources/dbo/dbo_ mio.php

Por defecto, cakePHP viene preparado para trabajar en el directorio base del servidor del dominio, como https://www.mabarroso.com. Es muy común que necesitemos que trabaje en una URL distinta, como https://www.mabarroso.com/miaplicacion/. Esto es muy simple de conseguir modificando dos archivos .htacces:

miaplicacion\.htaccess
       RewriteEngine on
       RewriteRule    ^$ /miaplicacion/app/webroot/    [L]
       RewriteRule    (.*) /miaplicacion/app/webroot/$1 [L]
miaplicacion\app\webroot\.htaccess
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ /miaplicacion/app/webroot/index.php?url=$1 [QSA,L]

Hoy he añadido el icono "" para hacer más fácilmente reconocibles los enlaces que llevan fuera de la web. Mi primera intención fue la de añadir el icono dentro o después del link, pero la idea no me gustaba. Quería poder modificar el icono a mi antojo, incluso hacerlo desaparecer, sin necesidad de reeditar las entradas (que ya es trabajo tocarlas para añadirlo). Al final he optado a hacerlo mediante CSS. Todos los enlaces hacia fuera de la web pertenecerán a una clase out, y es esa clase la que define todos los aspectos del enlace.

Como ya es costumbre, ahora el Cómo se hizo ( MakingOf).

1   2   3   4