Skip to content


Maquetación y Diseño

Estos dias he estado revisando el blog y me he dado cuenta que tengo muchos enlaces nuevos. Eso significa que Internet, como siempre, sigue evolucionando y ofreciendo buenos contenidos. Es por este, y otros motivos, que he creado una sección nueva dedicada a la maquetación y al diseño.

Al trabajar en varias disciplinas, como maqueteador y como programador, los contenidos de dichas secciones se han ido enriqueciendo. Hace poco publiqué un listado de Showcase/Galerias de sitios web basados en CSS.

Espero que esto os ayude en futuras búsquedas de información.

Posted in Mi Weblog.


22 Showcase de CSS

Cada dia hay más posibilidades a nivel de diseñar basándose en CSS o Hojas de estilos. Grácias a ellas en parte se puede consiguir un nivel MVC en la maquetación XHTML/CSS. Por una parte está la estructura (xhtml, html, … ) y por otra el CSS que da forma a la maquetación. Pero bueno, yendo al grano, he estado sitios webs tipo showcase de webs CSS. El listado es extenso:

  1. cssmania.com
  2. csselite.com
  3. cssbased.com
  4. cssnature.org
  5. cssleak.com
  6. cssstars.com
  7. cssdsgn.com
  8. cssmadness.com
  9. cssglance.com
  10. css-showcase.com
  11. cssleak.com
  12. cssexchange.com
  13. wowcss.com
  14. cssillustrated.com
  15. welovecss.net
  16. cssluxury.com
  17. designfridge.co.uk
  18. designawardsgallery.com
  19. bestcssvault.com
  20. cssray.com
  21. 101bestwebsites.com
  22. inspiremix.com

Posted in Css.

Tagged with , , .


Aprender JQuery

La verdad es que estos dias he estado valorando la migración seria a JQuery. El motivo es muy sencillo. Entre los programadores y los desarrolladores existe una máxima, No reinventes la rueda, mejora la rueda.

Hasta el momento he estado usando Scriptaculous y Prototype para realizar los efectos de abrir y cerrar bloques de información mediante efectos de suavizado, uso de pestañas para mostrar diferentes idiomas y sistemas de lightbox para mostrar imágenes.

Sin embargo, la dificultad para encontrar extensiones realmente útiles y que no tenga que desarrollar desde la nada, pues son más bien pocas o estan desfasadas.

Con Jquery esto no pasa. Sí, bueno, hay librerias que se abandonan, pero no por ello no dejan de aparecer nuevas y mejores.

Así pues, y buscando por la red, he encontrado unas cuantas cosas que os pueden ser de utilidad:

Enlaces relacionados:

Posted in Javascript.

Tagged with , , , , .


Maestro del CSS – Smashing Magazine

Smashing  Magazine es una web que cada vez que publica algo, lo hace con una calidad e información increibles. Siempre puedes aprender algo nuevo.

En esta ocasión nos enseñan técnicas y algunas bases de como trabajar y usar CSS. Mucho de lo que allí aparece ni tan siquiera lo conocia y realmente es muy útil.

Mastering CSS, Part 1: Styling elements

Mastering CSS, Part 2: Advanced Techniques and Tools

Posted in Css.

Tagged with , , .


Empieza el traslado a ccaballero.com

He empezado a realizar el traslado de mi web al dominio que a partir de ahora será definitivo. En un principio no deberia haber problema alguno.

  1. Descargar contenido en local.
  2. Realizar una copia de seguridad de la BD
  3. Crear el alojamiento en Plesk
  4. Cambiar DNS
  5. Subir contenido
  6. Crear BD

Problemas que pueden surgir:

  1. El dominio del blog en la base de datos no detecta la nueva ubiación
  2. Archivos subidos desde wordpress no tienen permiso para ser descargados
  3. Las DNS tarden más de lo normal
  4. Exista un conflicto al borrar el alias y crear un nuevo dominio en plesk
  5. Que Murphy se dedique a cumplir su máxima: Si algo puede salir mal, saldrá mal.

Posted in Mi Weblog.


Nuevos enlaces

Hace dias que he ido recolectando enlaces y más enlaces y sin darme cuenta tengo demasiados en favoritos del Firefox, así que allá van los que creo más interesantes:

Diseño:

Denis Designs Blog
Web designer wall
Spoon Graphics
The Design Inspiration
Six Revisions

Programación:

koders ( buscador )
PHP Paradise
Dr. Danguer y Mr. Daniel
PHP Night

CSS:

http://www.960.gs/
Designinfluences.com
Layout Gala
Layouts by ironmyers

Servidores

Racker Hacker
David Toribio
Plesk Hacker
Ruben Ortiz
Wiki Xtech
Busindre
Plesk Administration Guide 9.2
Dabo blog

Spam

Spamassassin – Permision denied at…

Linux / Apache

Apache-es
Diario de un linux3ro
Enavas
Linuxtotal
Linuxers
Estrellate y Arde

AJAX

Scripteka ( Prototype Libs )

Posted in General.

Tagged with .


Cambio de dominio darkrassel.com a ccaballero.com

Hola a todos, tal y como he comentado desde hace aproximadamente un año, quedan pocos dias para que el dominio darkrassel.com se caduque. Dicho dominio ya no lo voy a renovar, y voy a seguir con el dominio ccaballero.com. Esto es más que nada porque quiero una imagen más seria de mi blog y ya aprovecho el dominio ccaballero.com para ello.

Recordad, www.ccaballero.com

Posted in Mi Weblog.


Crear una carta de restaurante con listas DL

La verdad es que en el html ( englobo html puro, xhtml y otras variantes ) siempre hay etiquetas que dejamos de lado. Puede que por ignorancia o puede que por desconocimiento.

Una de ellas son las listas de definición ( Definition Lists ).  Estan se caracterizan por usar una definición ( dt ) y su explicación ( dd ). Veamos su estructura:

1
2
3
4
5
<dl>
<dt>Pez</dt>
<dd>Animal cuyo hábitat es el agua</dd>
</dl><dl>
</dl>

A partir de aquí estan listas tienen mucho juego. Por ejemplo, para crear una carta de un restaurante:

Ver ejemplo
Ver código

Posted in Css.

Tagged with , , , .


Indexación de webs ( trucos y técnicas )

Hoy estaba navegando por la red mirando artículos sobre indexación y he localizado un post que se me pasó por alto en SEO Marketing Tools. En dicho posts nos aconsejan e informan como mejorar la indexación de nuestras webs y convertirnos en un especialista SEO en 30 días. La gran mayoria de consejos son de sentido común cuando uno lleva cierto tiempo en este negocio pero otros ni tan siquiera los sabia.

Yo os coloco los 10 que me han gustado, el resto podéis leerlos en su web:

  • Tip1. Añade títulos a tus páginas relacionados con tus palabras clave, pero sólo las importantes, no pases de 25 carácteres.
  • Tip2. La descripción Meta debe ser única para cada página objetivo de una palabra clave. No añadas palabras clave a la Meta description.
  • Tip3. Utiliza CSS para tus páginas, evita las tablas.
  • Tip4. Crea enlaces para la navegación por tu sitio en la cabecera y en el pie de página. Utiliza texto y no imágenes.
  • Tip5. Las palabras clave en los enlaces para navegación tienen un papel decisivo a ojos de los motores de búsqueda.
  • Tip6. Minimiza el uso de tablas, especialmente de tablas anidadas.
  • Tip7. Llévate el CSS y el JavaScript a un fichero separado.
  • Tip8. Añade un robots.txt a la raíz en tu servidor.
  • Tip9. Crea un sitemap Google en tu sitio.
  • Tip10. Monitoriza tus accesos y tu tráfico usando Google Analytics.

Enlaces relacionados:

Posted in SEO.

Tagged with , , , .


Menu simple con ButtonStd

Hasta ahora hemos trabajado en la implementación de una clase que nos sirva para gestionar botones. Es muy simple, logicamente, pero con el tiempo la iremos ampliando.

Ahora toca crear un pequeño menu horizontal en este caso y activar el boton para que cuando se pase uno por encima muestre el cursor con el dedo ( hand cursor )

Objetivos

  • Ampliar ButtonStd
  • Crear menu basado en ButtonStd
  • Realizar acciones segun el botón

Archivos requeridos

  • ejemplo3.fla
  • ButtonStd.as

El código

ButtonStd.as

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package {
    // Contiene la libreria para objectos MovieClip
    import flash.display.MovieClip;
    // Contiene la libreria para manipulacion de eventos del raton
    import flash.events.MouseEvent;
    // Contiene la libreria para manipulacion de textos
    import flash.text.TextField;

    // Definimos el nombre de la clase
    // Debe empezar por mayusculas y tener
    // el mismo nombre que el archivo que la contiene
    public class ButtonStd extends MovieClip {

    // Variables
    private var _id:uint;
    private var _action:Function;

    // Método constructor que inicializa la clase
    public function ButtonStd(_label:String, _id:uint, _action:Function) {
        this._label = _label;
        this._id = _id;
        this._action = _action;
        this.setEvents();
}

// Metodo para configurar los eventos asociados al boton
   private function setEvents():void {

        // Activamos modo Boton ( cambia el cursor al pasar por encima )
        this.buttonMode = true;
        this.useHandCursor = true;
        this.mouseChildren = false;

        // asociamos un metodo al evento de pulsar el raton
        addEventListener(MouseEvent.CLICK, click_handler);

        // asociamos un metodo al evento de pasar por encima con el raton
        addEventListener(MouseEvent.MOUSE_OVER, over_handler);

        // asociamos un metodo al evento salir del boton con el raton
        addEventListener(MouseEvent.MOUSE_OUT, out_handler);

   }

   // Metodo 'setter' para modificar la etiqueta del boton
   public function set _label(_label:String):void {
        // Usamos la función getChildByName cuando queremos buscar un
        // elemento creado directamente en este caso y con nombre
        // label_txt. Por otra parte decimos que dicho elemento es
        // de tipo TextField mediante as [tipo]
        this.label_txt = getChildByName("label_txt") as TextField;
        label_txt.text = _label;
   }

   // Metodos relacionados con los eventos
    private function click_handler(event:MouseEvent):void {
        this._action(this._id);
   }

   private function over_handler(event:MouseEvent):void {
        this.label_txt.textColor = 0xff0000;
   }

   private function out_handler(event:MouseEvent):void {
        this.label_txt.textColor = 0x333333;
   }

}
}

El código

Hemos añadido a nuestro código una pequeña mejora. Cuando pasamos sobre un elemento que tiene la opción de ser pulsado, debemos mostrar un icono de cursor diferente.

En AS2 usabamos useHandCursor ( true / false ) y ya estaba. Con AS3 usariamos lo siguiente:

1
2
3
this.buttonMode = true;
this.useHandCursor = true;
this.mouseChildren = false;

Fijaros que dicho código lo uso solo dentro de setEvents que es el método que gestiona los eventos.

Ahora revisemos como podemos hacer que un determinado botón realice acciones adecuadas para él mismo.

1
2
private var _id:uint;
private var _action:Function;
1
2
3
4
// Metodos relacionados con los eventos
private function click_handler(event:MouseEvent):void {
    this._action(this._id);
}

Hemos añadido dos nuevas variables, las dos serán inicializadas mediante parámetros externos cuando el boton sea inicializado. El primero es un identificador ( id ) del botón que estamos usando. En este caso dicho identificativo sera un número, muy útil para arrays y xml. Por otra parte, cuando pulsemos nuestro boton lanzaremos una acción. Dicha acción ( o función ) activará un determinado código segun el id del botón.

ejemplo3.fla

Ahora debemos abrir nuestro archivo fla. Si teneis el anterior ejemplo2 podeis reeditarlo, o sino seguid los pasos de este post.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Array con etiquetas de los botones
var labels:Array = new Array('Quienes somos','Objetivos','Productos','Contactar');

// Recorremos array creando botones
var nElements:Number = labels.length;
for (var i:Number = 0; i &lt; nElements; i++) {

    // Instancializamos la clase ButtonStd
    var myLabel:String  = labels[i];
    var myButton:ButtonStd = new ButtonStd(myLabel, i, doActionMainMenu);

    // Ubicamos el nuevo ButtonStd ( fijaros que no es _x,_y o _width)
    myButton.x = 100 + ((myButton.width + 10) * i);
    myButton.y = 100;

    // Añadimos el ButtonStd al escenario
    // esto equivale a un attachMovie
    addChild(myButton);

}

function doActionMainMenu(id:uint):void {
    trace("Accion del elemento: " + labels[id]);
}

El código es bastante sencillo, cuando pulsamos un boton internamente llama a la función asociada y le pasa como parámetro el id del boton pulsado. Posteriormente, en el código del fla, realizamos una accion para dicho id. Por ejemplo, podriamos cargar un xml, un clip externo, abrir un menu, etc..

Posted in AS3.

Tagged with , , , .