Presentando Posterama. Pósters y más pósters.

23 may ● Vintage

Posterama habla por sí solo. De verdad. Link.

Lo que pienso cada vez que veo a alguien hablando de series todo el día

17 mar ● Gente

Comic Book Guy: Philip K Dick! It can’t be! It’s as if Superman moved to Gotham City!
Martin: Which he did, in World’s Finest Comics #94. (Points to the comic.) See?
Comic Book Guy: That was an imaginary story, dreamt by Jimmy Olsen after he was kicked in the head by Supergirl’s horse, Comet. It never really happened.
Bart: None of these things ever really happened.
Comic Book Guy: Get out of my store.

El mouse más cómodo que jamás usé

16 ene ● MacVintage

Durante mi vida he trabajado (y jugado) con diferentes modelos de mouse. Grandes, chicos, ópticos, mecánicos, todos. Hasta el punto en llegué a tener una colección, colección que se fue a la basura a manos de mi mamá.

Nunca los olvidaré.

Dejando de la lado el sentimentalismo, desde hace ya un año estoy usando el Magic Mouse que venía con mi iMac y, luego de pasar casi 3 años usando trackpads, lo sentí gratamente familiar. Es básicamente un trackpad (usas los gestos clásicos para desplazarte y lanzar acciones) con la comodidad y precisión del ratón.

Y pensé que no había nada mejor. Menos imaginé que un ratón mil veces más cómodo que todos los que antes había usado alguna vez se había inventado hace más de 28 años: El Apple Mouse:

A la derecha

Esta belleza mecánica del año 1984 llegó de manos del Macintosh 128k. Es cómodo, liviano y muy preciso. Incluso me atrevería a decir que más preciso que un mouse láser actual. No tiene comparación a los demás mouse de bolita que usé. La experiencia es única. Con el crocante sonido del click y la rapidez para  desplazarte, fácilmente puedes llegar al orgasmo. El desplazamiento es siempre suave y prácticamente te olvidas de que el mouse está ahí.

Pensé que extrañaría la rueda de scroll. Creo que el software que acompaña al Mac no lo hace necesario. No es obvio ni mucho menos necesario para la interfaz del Mac. A diferencia de nuestros tiempos, no usaban navegadores web ni aplicaciones con la complejidad necesaria para el scroll. Todo está perfectamente diseñado, y el hacer scroll es una acción ocasional.

El tiempo del Macintosh y System era más simple. Ah! Cómo hubiera deseado estar ahí, creo. Por ahora disfruto la compañía de mi Macintosh Plus y escribir en MacWrite. Hablaré del maravilloso software para System 6, el resto del hardware y la “experiencia Macintosh” en otra ocasión.

Texto con sombras realmente bonito. Sólo CSS!

22 ene ● CódigoTip


Un estilo interesante. Veamos el código:

h1 {
    background-color: rgba(0,0,0,0.9);
    background-clip: text; /* No olvidar -webkit y -moz */
    text-shadow: rgba(255,255,255,0.4) 0 2px 5px;
    color: transparent;
}

El truco

Utilizar sombras sobre el texto. Para lograr este resultado, basta con hacer el texto de color transparente y, posteriormente, utilizar un color de fondo para reemplazarlo. ¿Cómo? Utilizando background-color: como de costumbre, pero precisando que el fondo sólo debe ser visible en el área del texto mediante background-clip: text.
Finalmente, basta con agregar la sombra text-shadow: para completar el efecto.

Demo + Bonus

Para hacer más entretenida la demo, me tomé la libertad de hacer un reloj. ¿No es lo suficientemente entretenido para tí? Bueno, quizá te guste el screensaver.

Comprimir CSS y JavaScript como un pro. Y fácil.

7 ene ● Código

Anteriormente dejé caer por este blog una pequeña entrada sobre compresión de scripts, resaltando lo conveniente que resulta a la hora de disminuir los tiempos de carga de cualquier web. En aquel post mencionaba la mágica tecnología del compresor YUI, así como una versión web disponible para los que no quieren lidiar con la terminal.

Pero ahora, usted señor(a) diseñador/desarrollador web: A la hora de “empacar” una web con un número decente de scripts (y estilos CSS), le resultará realmente tedioso hacer cualquiera de las siguientes dos cosas para comprimir los archivos:

  • Recurrir a un servicio web. Sí, porque subir un número importante de archivos y luego descargarlos (e identificarlos) es tiempo .
  • Usar la Terminal. No hay palabras. Y muchos simplemente no usan la Terminal.

¿Acaso existe una opción mejor? ¿Quién podrá defendernos? Déjenme presentarles a una nueva y bonita aplicación para el Mac, Delivery:

Esta maravilla que ven arriba, hace todo el trabajo sucio por ustedes. No usa Internet, ni algun tipo de interfaz extraña para seleccionar los archivos. De hecho su funcionamiento es muy simple: Arrastrar archivos .js o .css hacia su icono.

Delivery comprime los scripts de forma automática mediante YUI y Closure (éste es nuevo, de Google) y genera archivos de extensión con sufijo .min — Así, si arrastran un archivo style.css, ahora tendrán uno a su lado llamado style.min.css. ¡Nada más fácil y elegante!

Y es gratuita. Descárgala desde aquí.

Intento de blogging, tercer round

6 ene ● Superblog

No existe cosa más fácil en este mundo que abrir un blog. El problema, por lo menos para mí, es hacerse el ánimo de mantenerlo… y en mi caso no es por falta de tiempo. Es por flojera.

¡Veamos si ahora resulta! Y para cerrar el post, un lolcat.

¡Nuevo diseño!

1 nov ● Superblog

… y espero que les guste! Intentaré seguir colocando más cosillas.

Introducing «Fake». Correos falsos de broma.

5 sep ● WTFs

El otro día estaba tan aburrido que me decidí a gastarle una broma a un viejo amigo. Me pregunté: ¿Será posible enviar un correo (a lo menos decente) que tenga como remitente la dirección de Steve Jobs? La cosa funcionó. Logré hacer que mi víctima recibiera un correo de sjobs@apple.com y pareciera creíble los primeros 5 minutos.

Así que decidí hacer esto público, aquí en http://www.matmartinez.net/fake/

Pros:

  • Enviar un correo decente, que parece enviado por la persona que tú especifiques.
  • Pasar los filtros de spam (Dependiendo de la dirección, obviamente!)
  • Reírte un rato.

Contras:

  • Se imprime (en los headers del correo) el identificador “matmartineznet”. ¿Recuerdan lo de los primeros 5 minutos?
  • Ganarte un puño en la cara.

Probablemente la persona a la que le quieras gastar la broma no sepa como visualizar las cabeceras… así que ten cuidado. Esos 5 minutos se pueden volver días.

Gracias por tu paciencia, Alvaro.

Tip: Crear un pincel de Photoshop

25 ago ● Tip

No tenía idea, pero unos minutos buscando entre los menús me dieron la respuesta. Basta con una imagen, opcionalmente transparente, y luego hacer dos clicks en su barra de menús de siempre. Basta con seleccionar Definir valor de Pincel… (o Define brush preset…) desde el menú de edición. Lo bautizamos con un nombre bonito y plash! nació chocapic. Bueno, tu pincel.

Cocoa: Enviar la captura de una view por mail

23 ago ● Código

Un gran número de aplicaciones en el iPhone permiten compartir contenido a través de la aplicación de correo. Enviar texto es relativamente simple (incluso HTML) pero a veces se hace necesario exportar nuestro propio contenido, que no necesariamente es simple texto… por ejemplo un mapa en un MKMapView. El código funciona para cualquier view, así que tranquilo.

// Tomamos el "screenshot". mapView es la view.
UIGraphicsBeginImageContext(mapView.bounds.size);
[mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); // ya tengo mi UIImage.
UIGraphicsEndImageContext();

// Generamos un picker. Recuerda importar MessageUI.framework...
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;

// Pongámosle un asunto...
NSString *subject = @"Tienes que ver esto!";
[picker setSubject:subject];

// ... al mensaje
[picker setMessageBody:@"Es un mapa increíble!" isHTML:NO];

if (image) {
    // Transformamos nuestra UIImage en NSData para el correo, en formato JPEG.
    // La calidad de define a continuación... (0.8f)
    NSData *data = UIImageJPEGRepresentation(image, 0.8f);
    [picker addAttachmentData:data mimeType:@"image/jpg" fileName:@"MapScreenshot"];
}      

[self presentModalViewController:picker animated:YES];
[picker release];

Y eso es todo. Respondiendo al MFMailComposeViewControllerDelegate podemos determinar el éxito o fracaso del envío.

- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
    // No voy a hacer nada. Tengo sueño. Adiós picker.
    [self dismissModalViewControllerAnimated:YES];
}

Espero que sea de utilidad. ¿Dudas, comentarios? :D