2011/04/07

Cómo definir un selector CSS que requiera dos clases


El problema que tenía involucraba bloques similares a:

proyectos-vista_1
<div class="view view-proyectos view-display-id-page_1">
  ...
</div>

proyectos-vista_2
<div class="view view-proyectos view-display-id-page_2">
  ...
</div>

noticias-vista_1
<div class="view view-noticias view-display-id-page_1">
  ...
</div>

noticias-vista_2
<div class="view view-noticias view-display-id-page_2">
  ...
</div>

Necesitaba aplicar un estilo únicamente al bloque proyectos-vista_1. Podría ser más fácil si éste tuviera un id, pero no lo tenía (así lo construye Drupal, en este caso).

La solución la encontré en este artículo. Consiste en usar un selector como:

.view-proyectos.view-display-id-page_1 {
  ...
}

Qué sencillo. No me lo imaginaba :-) Ojalá te sirva de ayuda tambien.

Referencia
Defining A CSS Selector That Requires A Multi-Class Union

2011/04/05

Separación entre párrafos en Flash

Para aprovechar esta característica, el documento flash debe ser para Flash 10 y Actionscript 3.

Cuando defina un texto, asegúrese de que es de tipo TLF (no la opción Classic Text). Esto permite acceder a propiedades avanzadas para el control de texto como Spacing, que permite controlar el espaciado entre párrafos.

Algo que hay que tomar en cuenta es que, a diferencia de la mayoría de procesadores de texto, donde el espaciado después del párrafo se suma al espaciado anterior del párrafo siguiente, en flash se solapan. Lo que significa que si el espaciado antes del párrafo es 12px y el espaciado despues del párrafo es 24px, el espaciado entre dos párrafos no será 36px, sino 24px.

Referencia:
http://www.flashconf.com/flash-cs5/flash-cs5-paragraph-styles/

2011/03/23

Cómo evitar que Chrome abra un PDF

Normalmente, Chrome abre los enlaces a documentos PDF en la misma ventana. Quizás esto le parezca cómodo a algunas personas pero, al menos para mí, no lo es.

El problema
Si el documento es muy pesado, podemos tener una página en blanco largo rato, sin mayor indicación de lo que esta pasando. Prefiero descargar el documento y luego abrirlo cuando yo quiera.

Una forma es usando el clic secundario, Guardar como, en lugar de hacerle clic al enlace. El problema es que algunas veces no es obvio que el enlace va a abrir un PDF y es un poco molesto retroceder y corregir la acción.

Además, algunas veces no hay enlace, sino un botón de formulario, y entonces no se puede usar el Guardar como.

Configurando Chrome
Deshabilitar esto en Chrome no es tan obvio. No se encuentra la opción en la pantalla de configuración.

Una forma de hacerlo es entrar a la dirección:

chrome://plugins/

Aparecerá una lista de los plugins instalados. Ubique Chrome PDF Viewer y deshabilítelo.

2011/02/19

Organizar ventanas en un snap

AquaSnap es una utilidad que puede ser de mucha ayuda en el manejo de las ventanas.

Puede descargarla de http://www.nurgo-software.com/products/aquasnap, o también la versión portable desde http://portableapps.com/apps/utilities/aquasnap_portable.

Cuando la ejecuta, se coloca como tray icon (por la zona de su reloj) para que haciéndole doble clic pueda cambiar su configuración, si lo desea.

La forma de usar aquasnap es simple:

  • Si arrastra una ventana hacia uno de los bordes, la ventana se pegará hacia ese borde y, además, sus dimensiones ocuparán esa mitad de la pantalla.
  • Si arrastra una ventana hacia una de las esquinas, la ventana se pegará hacia esa esquina y, además, sus dimensiones ocuparán ese cuarto de la pantalla.
  • Si arrastra una ventana y la sacude, se tornará translúcida; podrá ver lo que hay debajo y se mantendrá así hasta que la sacuda otra vez.
Esto es con la configuración por default. Haciendo doble clic en el tray icon puede elegir otras opciones.

2011/02/17

Resolviendo keys para Putty SSH a Hostmonster

Hoy he pasado algunas horas resolviendo este tema.

ssh genera dos llaves (por ejemplo id_dsa -la privada-, e id_dsa.pub -la pública-).

Se pueden generar con alguno de los comandos:

ssh-keygen -t dsa

ssh-keygen -t rsa

Según el tipo que se desee.

Hostmonster también tiene un generador de llaves (al parecer ssh) que puede producir archivos similares.

Uno puede producir llaves de diverso tipo (dsa, rsa), con o sin password.

[ssh]----> id_dsa     (llave privada)
       +-> id_dsa.pub (llave pública)

[ssh]----> id_rsa     (llave privada)
       +-> id_rsa.pub (llave pública)

Los nombres pueden ser id_dsa, id_rsa, u otro cualquiera. Por ejemplo, yo estuve practicando con kobaonli_id_dsa, hp_id_dsa.

Putty es un programa que permite hacer conexiones SSH usando estas llaves (Connection/SSH/Auth).
Pero no puede usar las llaves privadas así generadas, requiere que antes sean convertidas a .ppk, con un programa como puttygen.

Puttygen tiene la opción Conversions/Import que permite importar una llave privada generada con ssh (u OpenSSH) y generar el .ppk correspondiente.
Sin embargo, tuve problemas para que puttygen (versión 0.60) reconociera llaves privadas que tuvieran password, así que generé llaves sin password.

[ssh]----> id_dsa ----[puttygen]----> id_dsa.ppk
       +-> id_dsa.pub

[ssh]----> id_rsa ----[puttygen]----> id_rsa.ppk
       +-> id_rsa.pub

Así que, en resúmen:

A) Usando llaves locales

- Usé ssh-keygen -t dsa para crear hp_id_dsa/hp_id_dsa.pub, sin password.
- Usé puttygen para importar hp_id_dsa y crear hp_id_dsa.ppk, sin password.
- En Hostmonster, CPanel, SSH/Shell Access, Manage SSH Keys, importé hp_id_dsa/hp_id_dsa.pub y luego en Manage Authorization autoricé su uso.
- Indiqué a putty que usara hp_id_dsa.ppk para el SSH/Auth.
- Me pude conectar a Hostmonster usando las llaves hp_id_dsa[.ppk]/hp_id_dsa.pub

[ssh]----> hp_id_dsa ----[puttygen]----> hp_id_dsa.ppk
       +-> hp_id_dsa.pub
           |
           v
          [hostmonster]

B) Usando llaves remotas

- En Hostmonster, CPanel, SSH/Shell Access, Manage SSH Keys, creé kobaonli_id_dsa/kobaonli_id_dsa.pub, sin password. Descargué la llave privada kobaonli_id_dsa a mi PC.
- Usé puttygen para importar kobaonli_id_dsa y crear kobaonli_id_dsa.ppk, sin password.
- Indiqué a putty que usara kobaonli_id_dsa.ppk para el SSH/Auth.
- Me pude conectar a Hostmonster usando las llaves kobaonli_id_dsa[.ppk]/kobaonli_id_dsa.pub

[hostmonster]----> hp_id_dsa ---->[pc]----[puttygen]----> hp_id_dsa.ppk
               +-> hp_id_dsa.pub

Referencias