• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)


Date: Thursday, 28 Oct 2010 15:36

¿Cuánto más podemos llegar a depender de Google la gente de a pie?. Sólo se me ocurre que comprase Facebook para rematar la faena. En las últimas semanas he ido solucionando una serie de “problemas de toda la vida” que había en SigT… y de paso he aumentado un poco más la dependencia de Google…

  • Problema nº 1: El buscador de SigT era basura.
    • Razón: concretamente el buscador de WordPress sigue siendo malo.
    • ¿Solución a aplicar?: Por tiempo pues Google Search Custom.
  • Problema nº 2: El alto consumo de los feeds.
    • Razón: servir un feed desde aquí o desde otro sitio en la práctica es lo mismo. No da ventajas añadidas ofrecerlo “desde casa” a ofrecerlo desde un tercero y los terceros sí ofrecen ventajas como suscripción por correo y estadísticas. Sin embargo ofrecer desde aquí el feed supone en algunos meses 5GB de tráfico mensual. No es que vaya corto pero “gastar por gastar” nunca fue de mi gusto.
    • Solución: Feedburner… osea Gooooogle.
  • Problema nº 3: AWFull siempre se queda corto.
    • Razón: AWFull (fork de webalizer) siempre ha sido bueno para hacerte una idea general del tráfico pero no del contenido. Además queda lejos de los sistemas que hay hoy en día.
    • Solución: Google Analytics…

La parte buena del asunto (aparte de descargar un poco el servidor que siempre va bien) es que cosas como el script de Google Analytics han mejorado sustancialmente de un par de años a esta parte respecto a la velocidad de carga.

Todavía recuerdo cuando salió (integrando Urchin) que lo primero que tuve que hacer fue impedir su carga porque web que se lo ponía web que iba como el :censurado:. Y tres cuartos de lo mismo pasaba con Adsense.

desarrollo web, opinión, personal, sigt
Author: "--"
Send by mail Print  Save  Delicious 
Date: Thursday, 28 Oct 2010 14:22

En pocas palabras, el EXIF es un “agregado” para los archivos de fotografías (y audio) en el cual se puede incluir meta-información de las condiciones en la que fue capturada la misma. En la mayoría de los casos pasa desapercibido, y por lo cual se le critica por sus implicaciones a la privacidad del fotógrafo.

Aún así, puede ser un recurso útil si estamos interesados en mostrar la información de las fotos, tal como lo hacen sitios como Flickr, y más aún con el buzz de geolocalizar a los usuarios y sus contenidos. ¿Qué tipo de contenidos incluye el EXIF?

  • Fecha y hora en que fue tomada la foto (independiente de las del archivo en sí)
  • Información de la cámara con que fue tomada (modelo y fabricante)
  • Condiciones en que fue capturada (Valor ISO, Orientación de la cámara, apertura, longitud focal, etc..).
  • Coordenadas GPS del lugar donde fue capturada

Hay que tener en cuenta que el EXIF no es un estándar, ni es controlado por una entidad, asi que cada fabricante puede incluir diferente información en este, incluso entre diferentes modelos de cámaras.

Desde PHP hay dos opciones para leer la información contenida en el EXIF:

Extensión EXIF

PHP ya incluye una extensión para leer el EXIF, esta quizás la forma más recomendada. Al ser una extensión, dependes de que tu servidor ya la tenga instalada/habilitada antes usarla; si tienes el acceso apropiado probablemente puedas instalarla tu mismo si es necesario.

En caso que queramos conocer la información genérica del EXIF, basta con hacer una llamada a exif_read_data() y ver que elementos del array están definidos:

$exif = exif_read_data( $file );

if ( !empty($exif['FNumber'] ) )
	$aperture = $exif['FNumber'];
if ( !empty($exif['Model'] ) )
	$camera = trim( $exif['Model'] );
if ( !empty($exif['DateTimeDigitized'] ) )
	$pic_date = $exif['DateTimeDigitized'];
if ( !empty($exif['FocalLength'] ) )
	$focal_length = $exif['FocalLength'];
if ( !empty($exif['ISOSpeedRatings'] ) )
	$iso = trim( $exif['ISOSpeedRatings'];
if ( !empty($exif['ExposureTime'] ) )
	$shutter_speed = $exif['ExposureTime'];

Es importante revisar que cada elemento esté definido, ya que no hay garantías de estarlo. Esta extensión entrega los datos tal cual vienen en el EXIF (y como strings), necesitamos convertirlos a un formato a apropiado según sea.

// Convertir un string "1/123" a su representación float
function exif_float($value) {
  $pos = strpos($value, '/');
  if ($pos === false) return (float) $value;
  $a = (float) substr($value, 0, $pos);
  $b = (float) substr($value, $pos+1);
  return ($b == 0) ? ($a) : ($a / $b);
} 

// Esta función de Wordpress convierte la fecha del EXIF (YYYY:MM:DD HH:MM:SS) a Unixtime
// /wp-admin/includes/image.php
function wp_exif_date2ts($str) {
	@list( $date, $time ) = explode( ' ', trim($str) );
	@list( $y, $m, $d ) = explode( ':', $date );

	return strtotime( "{$y}-{$m}-{$d} {$time}" );
}

$shutter_speed = exif_float( $exif['ExposureTime'] );
$pic_date = wp_exif_date2ts($exif['DateTimeDigitized'] );

Similar para leer las coordenadas GPS en el EXIF y convertirlas de formato Grados, minutos y segundos a Grados en decimal:

if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
	$d = (float) $exif['GPSLongitude'][0];
	$m = exif_float($exif['GPSLongitude'][1] );
	$s = exif_float( $exif['GPSLongitude'][2] );

	$gps_longitude = (float) $d + $m/60 + $s/3600;
	if ( $exif['GPSLongitudeRef'] == 'W')
		$gps_longitude = -$gps_longitude;

	$d = $exif['GPSLatitude'][0];
	$m = exif_float($exif['GPSLatitude'][1] );
	$s = exif_float( $exif['GPSLatitude'][2] );

	$gps_latitude = (float) $d + $m/60 + $s/3600;
	if ( $exif['GPSLatitudeRef'] == 'S')
		$gps_latitude = -$gps_latitude;
}

Exifixer

Otra opción es usar Exifixer de Zenphoto que en teoría debería leer datos específicos de ciertos fabricantes; y además que es independiente de la configuración de PHP, para los que requieran mayor portabilidad de su aplicación PHP, o bien no tienen opción a modificar el servidor.

La forma de leer los datos es similar, aunque la estructura del array es diferente:

$exif = read_exif_data_raw( $file, false );

if ( !empty($exif['SubIFD']['FNumber']) )
	$aperture = $exif['SubIFD']['FNumber'];
if ( !empty($exif['IFD0']['Model']) )
	$model = $exif['IFD0']['Model'];
if ( !empty($exif['SubIFD']['DateTimeOriginal']) )
	$pic_date = $exif['SubIFD']['DateTimeOriginal'];
if ( !empty(['SubIFD']['FocalLength']) )
	$focal_length = ['SubIFD']['FocalLength'];
if ( !empty(['SubIFD']['ISOSpeedRatings']) )
	$iso = ['SubIFD']['ISOSpeedRatings'];
if ( !empty(['SubIFD']['ExposureTime']) )
	$shutter_speed = ['SubIFD']['ExposureTime'];

if ( !empty($exif['GPS'] )) {
	$gps_longitude = $exif['GPS']['Longitude'];
	if ( $exif['GPS']['Longitude Reference'] == 'W')
		$gps_longitude = -$gps_longitude;

	$gps_latitude = $exif['GPS']['Latitude'];
	if ( $exif['GPS']['Latitude Reference'] == 'S')
		$gps_latitude = -$gps_latitude;
}

Un detalle con Exifixer es que las fracciones ya las convierte a su representación float (y en muchos casos hay un equivalente string con diferente nombre).

Bonus: Eliminar el EXIF de una foto

Muchos programas de edición/administración de fotografías digitales ya incluyen una opción para eliminar el EXIF; sino existe Exifremover.com y ExifTool para dicho fin :)


Javier Aroche Javier Aroche para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

Author: "--"
Send by mail Print  Save  Delicious 
Date: Thursday, 28 Oct 2010 09:22
Paul Irish publica un interesante truco para facilitarnos el trabajo con las URL's de nuestras aplicaciones web.
<img src="http://domain.com/img/logo.png">
De esta forma, el navegador selecciona por nosotros el protocolo que debe usar, que en todo caso será el mismo en el que estemos corriendo la aplicación. Ideal para los casos en los que disponemos de secciones en HTTPS y otras en HTTP, para evitar el molesto mensaje de error. Al igual que si estamos usando el protocolo file:// desde nuestra máquina, tambien usará esa ruta de ficheros dentro de nuestro disco duro para intentar cargar la la URL indicada. En los ficheros CSS tambien podemos usar esta técnica, aunque en Internet Explorer 7 y 8 provoca un fallo que hace que el fichero se descargue dos veces (¬¬).
.omgomg { background: url(//websbestgifs.net/kittyonadolphin.gif); }
Técnicamente se llama "Relative Reference" y está especificada en el RFC 3986.

Artículos relacionados

aNieto2k

Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 27 Oct 2010 21:51

Para el desarrollo de vídeo juegos en la plataforma iPhone OS (iPhone/iPod Touch/iPad) es importante conocer las distintas herramientas disponibles y evaluar cual de ellas se ajusta más a nuestras necesidades. Varias aplicaciones actualmente son desarrolladas utilizando uno de estos componentes: OpenGL ES y UIKit (Core Animation + Quartz 2D).

UIKit es el más sencillo de utilizar en comparación con OpenGL ES que requiere de un mayor tiempo de implementación pero ofrece el mejor rendimiento. La buena noticia es que existe un framework que simplifica esta implementación, Cocos2D.

Conociendo Cocos2D

Cocos2D es un framework para el desarrollo de juegos en 2D y aplicaciones con alto contenido interactivo. Cocos2D para iPhone es basado en Cocos2D pero implementa Objective-C como lenguaje de programación en lugar de Python. Dentro de las características principales de este framework encontramos:

  • Integración con motores de física: Box2D, Chipmunk
  • Manejo de Escenas y efectos de transiciones
  • Compatibilidad con eventos Touch y el acelerómetro
  • Texturas PVRTC de 2-bit y 4-bit, texturas RGBA de 16 bits y 32-bit
  • Basado en OpenGL ES 1.1

Dentro de Cocos2D encontramos tres conceptos principales a considerar: escenas, capas y objetos. Las escenas equivalen a los niveles o vistas implementadas en un juego . Las capas se incorporan a las escenas y pueden contener uno o más objetos: menús, botones, etiquetas, cuerpos, etc. A su vez una escena puede contener una o más capas.

Implementación de Cocos2D en una aplicación

  1. Descargar las librerías de Cocos2D para iPhone.
  2. Ejecutar el siguiente comando en la consola (dentro de la carpeta descargada) : ./install_template.sh
  3. Crear un nuevo proyecto en Xcode de tipo cocos2d-0.99.1 Application

4. Compilar y Ejecutar

La plantilla creada nos muestra los principales elementos de una aplicación:

  • CCDirector: Es el controlador principal de nuestra aplicación 
    [CCDirector setDirectorType:CCDirectorTypeDefault];
  • CCScene: Implementa las escenas o vistas 
    CCScene *scene = [CCScene node];
  • CCLayer: Permite la creación de capas (HelloWorld es un objeto tipo CCLayer) 
    HelloWorld *layer = [HelloWorld node];
  • CCLabel: Uno de los tipos de objetos que se pueden implementar dentro de una capa  
    CCLabel* label = [CCLabel labelWithString:@"Hola Mundo" fontName:@"Marker Felt" fontSize:64];

En estos momentos tenemos implementadas las librerías de Cocos2D en nuestro proyecto de Xcode. Ahora podemos utilizar los diferentes componentes que nos brindan estas librerías y lograr una mejora en el desempeño de nuestras aplicaciones.  En el siguiente articulo revisaremos los conceptos básicos y la utilización de los principales métodos del framework.

No te pierdas el próximo capítulo sobre Cocos2D, framework para desarrollar vídeo juegos en 2D.


Javier Cala Uribe Javier Cala Uribe para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 27 Oct 2010 19:38

Bram Cohen, programador estadounidense, nació en Manhattan, Nueva York en 1975. Es conocido por ser el creador del protocolo P2P BitTorrent. Fundador de la conferencia de hackers y entusiastas en tecnología CodeCon, organizador de la reunión P2P-hackers en el área de la Bahía de San Francisco y colaborador en el desarrollo de CodeVille con algunos trabajos de diseño y fundador de la compañía creadora de Puzzle Shape Ways.

bram-cohenDesde muy joven demostró sus habilidades como programador ya que a la edad de 5 años aprendió el lenguaje BASIC en una computadora Timex Sinclair, mientras estudiaba en Stuyvesant High School en Nueva York, Cohen participó en el concurso American Invitational Mathematics Examination para estar en las Olimpiadas de matemáticas en Estados Unidos.

Luego de graduarse, en 1993 del Stuyvesant High School, Cohen estudió en la Universidad de Buffalo pero dejó sus estudios por trabajar en diferentes compañías de internet.

Su último trabajo lo realizó en Mojo Nation una empresa encargada de la distribución de archivos en pequeñas partes. Para descargar un archivo, éste se descargaba en varias computadoras de forma simultánea. Lo que dio lugar a la idea de Cohen: compartir archivos de forma simultánea y con mayor rapidez ya que los programas de descarga de archivos eran lentos porque provenían de una sola fuente.

En 2001 Cohen dejó de trabajar para Mojo Nation y se dedicó por completo al proyecto de BitTorrent, ése mismo año Cohen presentó el protocolo en la primera conferencia de CodeCon y luego en 2004 fundó la compañía BitTorrent, Inc.

BitTorrent: protocolo, programa y compañía

BitTorrent es un protocolo P2P de software libre utilizado por el programa BitTorrent para compartir archivos en internet y ambos son gestionados por la compañía fundada por Cohen que lleva el mismo nombre: BitTorrent, Inc. Actualmente el programa tiene más de 160 millones de usuarios y ofrece “dos líneas de negocios”:

  • BitTorrent DNA: Reduce el costo de ancho de banda, ofrece a las empresas beneficios de eficiencia de distribución de contenidos, mejora la escalabilidad y rendimiento de los sitios web.
  • Dispositivo BitTorrent Socios: Este programa está construido para empresas de hardware y software necesario para crear “la próxima generación de Internet habilitado para los dispositivos de consumo”. Incluye un kit de desarrollo de software, es compatible en el ecosistema de servicios, productos y contenido de BitTorrent.

Cohen comenta a un miembro de Shapeways cómo ideó el protocolo BitTorrent:

BitTorrent es una herramienta para un archivo de distribución que escribí. Permite a las personas que están descargando algo automáticamente cargarlo al mismo tiempo, entonces una pieza larga del contenido puede ser entregada a muchas personas sin que cueste una gran cantidad de dinero para quien lo haya hecho disponible inicialmente. Trabaja muy bien, por lo que terminó con una gran cantidad de ancho de banda.

Shape Ways: “Apasionados por la creación”

En la empresa Shape Ways, Cohen ofrece la venta de diferentes diseños de Puzzle; su idea es que tú les envíes tu propio diseño para que luego ellos se encarguen de imprimirlo y darle forma utilizando una técnica llamada “3D Printing”. Para la creación de Puzzle, Cohen utiliza dos tipos de programas: BurrTools y ascii arts. En el siguiente vídeo Shape Ways nos muestra los pasos a seguir para crear tu puzzle:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" height="385" width="600"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><param name="src" value="http://www.youtube.com/v/TQoTro9WfbQ?fs=1&amp;hl=en_US"><param name="allowfullscreen" value="true"><embed allowfullscreen="true" allowscriptaccess="always" height="385" src="http://www.youtube.com/v/TQoTro9WfbQ?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" width="600"></embed></object>

No es extraño que Cohen sea considerado como una de las personas cambió el internet para siempre ya que gracias a su interés por la programación desarrolló BitTorrent una de las redes P2P más populares con un 35% de tráfico en internet y más de 160 millones de usuarios.

Imagen: Tomada de el blog de Bram Cohen


Eugenia Tobar Eugenia Tobar para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 27 Oct 2010 18:40

Porque sabemos que tu trabajo como Community Manager es cada vez más complejo por la cantidad de información que debe manejar a diario, buscamos herramientas selectas para optimizar tu tiempo y aprovechar las herramientas en línea que te ayudarán en el monitores de información, administración de contenido y una mejor comunicación.

Monitoreo de contenido

Empecemos con las herramientas que te permiten filtrar, buscar información general y específica. Además, a través de ellas puedes suscribirte, corroborar datos y realizar análisis de información:

Herramienta de monitoreo

  • Google News: es uno de los más populares servicio en línea para el monitoreo de noticias personalizadas, por temática, país, idioma y alertas.
  • Wikio: un servicio en español que te permite la búsqueda de blogs temáticos y medios.
  • Boardreader: un servicio que te permite buscar información específica en: foros, blogs, redes sociales y más.
  • Alexa: uno de los servicio más populares para realizar el análisis de sitios, blogs y contenido. Con útiles estadísticas para evaluar sitios.
  • Alianzo: un servicio disponible en 3 idiomas, que te permite buscar información de blogs, además te proporciona un ranking en blogs y redes sociales.
  • Brandfo: con este servicio podrás revisar la reputación de una persona, empresa o marca en línea. Te permite hacer una búsqueda de todo lo que se ha dicho o escrito de manera específica.

Análisis en redes sociales e influencia de marca

El monitoreo y análisis del contenido que se maneja en las redes sociales es la labor más compleja del Comunity Manager, el cruce de datos y sacar reportes. Revisa estar herramientas que te facilitarán la tarea.

Herrmiantas de influencia

  • TwitterGrader: una opción que permite medir el nivel de influencia que tiene un usuario en Twitter, con útiles datos y parámetros de resultados.
  • Trendistic: te permite analizar la frecuencia con la que se ha mencionado una marca en los medios digitales, también puedes ingresar el nombre o URL.
  • Google Trends: realiza la búsqueda de información a través de gráficas con un parámetro de tiempo y frecuencia.
  • BlogPulse: toma el pulso de tu blog, un buscador que te permite revisar los enlaces a tu blog, rankings y búsquedas en otros blogs. Con opciones básicas y avanzadas.
  • Statbrain: ofrece un método diferentes de análisis de datos de un blog o sitio web. Utiliza el número de visitas y el Ranking de Alexa como referencias.

Administración de contenido y productividad

Pasar tanto tiempo en línea puede hacer que nuestro trabajo se estanque, mantener actualizados los perfiles y administrar la comunicación en línea puede ser abrumado. Aprende a utilizar herramientas que permitan optimizar tu tiempo y te hagan productivo.

Herramientas de productividad

  • Gmail Priority Inbox: una de las propuestas de Gmail para dar prioridad a tus correos a través de una algoritmo.
  • ActiveInbox: otra útil herramienta que te permite la gestión de tus correos electrónicos en Gmail a través de un plugin en tu navegador.
  • AwayFind: gestiona tus correos, se encuentra en beta y es gratuito.
  • Administradores de redes sociales: una serie de herramientas que te permiten la gestión de varias cuentas sociales de personas, productos, servicios o marcas.
  • Evernote: la aplicación más popular para realizar recordatorios, una herramienta que se caracteriza por su conectividad con dispositivos móviles y aplicaciones.
  • Ofimática: no dupliques contenido, revisa estas opciones en línea para la administración de tus documentos digitales.

Las herramientas en línea nos permiten satisfacer muchas de nuestras necesidades profesionales, conocer nuevas opciones se hace necesario, en especial cuando necesitamos estar informados, comunicar y presentar resultados. No te olvides revisar nuestras 6 lecturas selectas para Community Manager y te invitamos a que sigas construyendo esta lista de herramientas selectas para Community Manager.


Stephanie Falla Aroche Stephanie Falla Aroche para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 27 Oct 2010 14:47

Interesantes los números del State of the Mobile Web, September 2010 de Opera, que recoge el tráfico generado por su navegador para móviles Opera Mini. Algunos detalles destacados:

  • Globalmente, más de 70 millones de usuarios únicos y treinta y seis mil millones de páginas servidas. Para 30 días, no está mal, y sale a alrededor de 50 páginas por usuario y mes…
  • España es su séptimo mercado… dentro de la UE. Y ninguno de sus ‘top 10′ está en la UE. El top 10 lo componen Indonesia, Rusia, India, China, Ucrania, Sudáfrica, Vietnam, Estados Unidos, Nigeria y Brasil.
  • Es interesante ver en qué dispositivos se usa Opera Mini dependiendo del país. En Indonesia, India o Nigeria, los diez dispositivos más usados son de Nokia (que nadie entierre a Nokia antes de tiempo: el mercado de los smartphones no será suyo, pero siguen siendo los reyes en unidades vendidas). En Brasil manda el Sony Ericsson W800, y en muchas listas aparecen Samsungs y LGs. Eso sí, allí donde se venden iPhones, estos mandan: es el dispositivo número uno en Estados Unidos, Reino Unido, Alemania, Italia, Francia, la República Checa, Holanda y España (y el sexto en Brasil, el quinto en Polonia y Eslovaquia y el tercero en Rumanía). Que quiere decir, de regalo, que aceptar otros navegadores en la App Store de Apple sí tenía un cierto sentido (aunque, aún sin saber los números exactos, es fácil suponer que el uso de Opera en el iPhone es muyminoritario).
  • Por lo que respecta a España, el crecimiento en páginas vistas desde el año anterior es del 205%, y del 58% en usuarios únicos: por tanto, se dobla el consumo en páginas vistas por usuario, hasta llegar a 200 páginas por usuario y mes, con un peso medio por página (después de la compresión que hace Opera) de 27 KBs. Las páginas más vistas (en usuarios únicos) son: Google, Facebook, Marca, Youtube, El Mundo, Tuenti, live.com, my.opera.com, Wikipedia (míranos qué cultos) y ElPaís.com.
Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 27 Oct 2010 13:38
Microsoft PDC 2010EL PDC (Professional Developers Conference) es un eventazo de Microsoft destinado a desarrolladores, que suele levantar mucha expectación todos los años debido a que se desvelan y presentan tecnologías y herramientas que nos acompañarán en nuestro trabajo durante los próximos meses.

En esta ocasión tendrá lugar los días 28 y 29 de octubre (¡ya mismo!) en Redmond, pero, afortunadamente para los que nos pilla algo lejos, podremos seguirlo en vivo y en directo gracias al vídeo streaming.

El evento comenzará a las 18:00 (hora peninsular española) el jueves 28, y puedes seguirlo de forma gratuita y sin registro previo accediendo a la dirección:
http://player.microsoftpdc.com/session?refid=73301
También puedes ver la agenda de sesiones, y planificarte para asistir a los temas que más te interesen, e incluso acceder a partir del día siguiente las sesiones grabadas. Y para estar a la última, puedes seguir vía Twitter a @PDCEvent y usar el hashtag #PDC10.

Ah, que como no es mi caso casi se me olvida: si eres de Madrid, puedes ir también a las oficinas de MS a seguir en directo la sesión inaugural, eso sí, previo registro debido la lógica limitación de aforo.

Publicado en: Variable not found.


Author: "noreply@blogger.com (José M. Aguilar)"
Send by mail Print  Save  Delicious 
Date: Wednesday, 27 Oct 2010 12:35

Be Professional, do TDD. “Let us see the hands of people who are practising Test Driven Development?”… weblog.madebymonsieur.com. TDD es Desarrollo Guiado por Pruebas, lo que quiere decir es que primero tenemos que definir las pruebas que queremos hacer.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 27 Oct 2010 10:22

Parece claro: HTML5 y su combinación de Canvas y JavaScript, o alguna otra tecnología, van a acabar reemplazando a los .swf en la web

[Adobe sigue posicionando Flash como plataforma para múltiples aplicaciones. El vídeo en la web (vinculado a un 'media server', con ancho de banda adaptable y/o DRM) sigue siendo una propuesta de valor a considerar. También apuntan al 3D en el navegador: parece que, finalmente, el próximo Flash tendrá 3D nativo, aunque podrían llegar tarde para competir con las bibliotecas de 3D para JavaScript que llevan ya una temporada dando vueltas. Y siguen insistiendo en posicionarse como una alternativa a los entornos de desarrollo de Microsoft que sale hacia la web (donde Silverlight no parece una amenaza seria) por un lado y hacia el escritorio, dispositivos móviles y hasta televisores, por otro, de la mano de Adobe Air 2.5. Todo ello en un ecosistema con herramientas especializadas como Flash Catalyst o Flex Builder y una buena integración con la 'estrella' de la casa para los diseñadores, Photoshop —la integración es mejor aún con Fireworks, que parece mejor herramienta para diseñar interfaces para interactivos pero que, diría, aún no tiene la cuota de mercado que creo que merece.]

En cualquier caso, aún dando por supuesto (no parece nada descabellado) que Flash va a ceder el campo de ‘animación interactiva para la web’, seguimos necesitando una herramienta de autor comparable. Y el problema, ahora mismo, es que parece que vamos a pasar de ninguna a demasiadas opciones en un suspiro…

  • Por un lado, Microsoft, sorprendiendo a propios y extraños, sacó (sin mucha promoción) hace unas semanas Ai->Canvas, un plug-in para Illustrator (sí, de Adobe, de ahí la sorpresa) que ‘escupe’ Canvas+JavaScript de forma al menos aceptable. Y que, además, ahora mismo, es lo único que lo hace con pinta de ‘herramienta de autor’.
  • No contentos con esto, también tienen Glimmer, que sin ser un prodigio de usabilidad, ahorra mucho trabajo a la hora de usar algunos de los efectos más habituales de jQuery para manipular el DOM del navegador.
  • Por otro lado, anteayer, la propia Adobe anunció el prototipo de una herramienta nueva y especializada, Edge (vídeo de demo), que iría por la vía de jQuery. No sé si para sorpresa de propios y extraños, pero sí para la mía, que habría apostado por un exportador para Flash y me había quedado tan ancho…
  • Y cuando uno ya vivía ‘feliz’ con la promesa de una nueva herramienta, me encuentro con que Mike Chambers (el principal product manager for the Flash Platform at Adobe) tuitea que están enseñando el exportador de Flash a HTML5… Que ya era lo que yo anticipaba, efectivamente, posicionando a Adobe en los dos campos: jQuery y Canvas.

Todo esto a la espera de que otros se lancen (o no) al ruedo: Microsoft también debería poderle hacer un exportador a todo lo que ahora vaya hacia Silverlight y no depender de Adobe e Illustrator, mientras que Apple podría crear sin demasiados problemas un “Flash killer” y seguir haciendo un poco la puñeta a Adobe.

Todo parece indicar que quien quiera dejar de usar Flash en la web va a tener que apuntarse a las dos opciones: para los típicos efectos ‘rollover’ y similares, jQuery o alguna de sus alternativas y, para animaciones ‘de verdad’, Canvas con sus correspondientes herramientas de autor/kits de desarrollo. Dado el nivel de mejora en el rendimiento de JavaScript de los navegadores, saltarse a Flash Player parece una buena decisión (parece que hasta Adobe vota por ello, con sus demos y anuncios), pero antes de tomarla hay que ser consciente de diversos aspectos. Hay cosas como empaquetar todos los objetos en un único .swf que parecen cómodas, y también hay que pensar en el montoncito de usuarios que siguen anclados en IE7 y 8, que no son despreciables en muchos ‘targets’ y cuyo rendimiento de JavaScript va a seguir siendo patético durante una temporada (en el caso de los “resistentes de XP”, jamás saltarán a IE9, además).

En cualquier caso, a buena parte de los desarrolladores de ActionScript les conviene ponerse las pilas y comenzar a ver cómo funcionan tanto jQuery como Canvas…

PS 20101028 Obviamente, 24 horas después de escribir el post, me encuentro con información adicional de dos que se lanzan al campo de la animación HTML5: Sencha Animator y AdVine (estos últimos dedicados en exclusiva al mundo de la publicidad, parece). Ambos, vía TechCrunch.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Wednesday, 27 Oct 2010 04:42


Por fin Google anuncia una mejora significativa en FeedBurner, introduciendo las estadísticas de feeds en tiempo real. A partir de ahora podremos ver en tiempo real clicks, vistas y descargas de podcasts, lo que significa que veremos el tráfico a nuestra web desde los lectores de feeds, Twitter y otras fuentes de subscripciones según se produce.

Ya se puede ver en una interface experimental. La mejor forma de ver el funcionamiento es publicar un nuevo post y cambiar a “Last two hours” para empezar a ver actualizaciones.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 26 Oct 2010 21:49
ASP.NET MVC A raíz de la publicación del post anterior, en el que comentaba el uso de helpers locales para simplificar el código de las vistas, un amigo de Variable not found ha dejado un comentario con una pregunta que considero interesante: ¿se puede utilizar esta técnica con el motor Razor, presente en el inminente MVC 3?

Los helpers locales descritos en el post anterior son y seguirán siendo válidos en MVC 1, 2, 3, y posiblemente todos los que vengan detrás, puesto que en realidad se trataba únicamente de aprovechar una característica del motor de vistas basado en formularios web, es decir, el Webforms View Engine, el mismo utilizado en las aplicaciones ASP.NET “clásicas”.

Por tanto, si en MVC 3 seguimos utilizando el motor de vistas Webforms, podremos crear helpers locales tal y como se describía en el post anterior. Sin embargo, si utilizamos el motor de vistas Razor, los bloques <script runat="server"> serán ignorados, al igual que otras características propias de formularios web.

Razor dispone de su propia sintaxis para definir funciones locales utilizando el bloque @functions, como puede observarse en el ejemplo mostrado a continuación:

image

En el interior del bloque @functions podemos crear tantas funciones como necesitemos, por lo que podemos conseguir exactamente lo mismo que con su equivalente Webforms.

Publicado en: Variable not found.


Author: "noreply@blogger.com (José M. Aguilar)"
Send by mail Print  Save  Delicious 
Date: Tuesday, 26 Oct 2010 19:35

Un Plugin de Firefox consigue obtener las cuentas privadas de los usuarios de Facebook, twitter, Google, Windows Live, Flickr, Yahoo,… teniendo la capacidad de ampliarse y agregar más a la lista.

Funcionamiento

Lo que hace es rastrear las redes Wifi abiertas, investiga las cookies y obtiene los datos del usuario de varias páginas importantes. Después solo tenemos que clickar donde queremos entrar.

When logging into a website you usually start by submitting your username and password. The server then checks to see if an account matching this information exists and if so, replies back to you with a “cookie” which is used by your browser for all subsequent requests.

t’s extremely common for websites to protect your password by encrypting the initial login, but surprisingly uncommon for websites to encrypt everything else. This leaves the cookie (and the user) vulnerable. HTTP session hijacking (sometimes called “sidejacking”) is when an attacker gets a hold of a user’s cookie, allowing them to do anything the user can do on a particular website. On an open wireless network, cookies are basically shouted through the air, making these attacks extremely easy

Motivación

La motivación del desarrollador, Eric Butler, al parecer es para que se mejoren los datos de privacidad y seguridad, e intenta dar un aviso a todas las páginas, importantes y muy utilizadas por los usuarios, para que traten mejor la privacidad de los usuarios. La técnica utiliza fue la misma que utilizaron los coches de Google Street View, “Por Error”, de donde obtuvieron millones de datos e información privada, de redes Wifi Abiertas.

This is a widely known problem that has been talked about to death, yet very popular websites continue to fail at protecting their users. The only effective fix for this problem is full end-to-end encryption, known on the web as HTTPS or SSL. Facebook is constantly rolling out new “privacy” features in an endless attempt to quell the screams of unhappy users, but what’s the point when someone can just take over an account entirely? Twitter forced all third party developers to use OAuth then immediately released (and promoted) a new version of their insecure website. When it comes to user privacy, SSL is the elephant in the room.

Descargar FireSheep

La extensión se llama FireSheep, y de momento se puede descargar desde los AddOns de Firefox o desde la página de codeButler.

Firesheep Al Día Siguiente

Eric Comenta que nunca hubiera pensado la repercusión que iba a tener el plugin, y mucho menos que apareciera entre las 10 primeras búsquedas en Estados Unidos.

I went back and forth trying to predict what the reaction might be. Initially before Firesheep was completed I thought there might be moderate interest, but then after doing more research found a lot of one-off articles discussing this same issue that were essentially ignored. I certainly never expected Firesheep to be the #10 trending search on Google in the US.

Conclusión

Evidentemente tiene una repercusión muy grande, y es un Tono de Advertencia para las empresas que posen el registro de millones de usuarios, para que se preocupen más de la seguridad y no tanto de la publicidad.

via Viruslist

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 26 Oct 2010 14:21


Siguiendo con los datos de Google y tras el record de ingresos del Q3, ahora sabemos que Google sigue rompiendo records, esta vez de volumen de tráfico, que puede representar ya entre el 6,4 y el 12% de todo el tráfico de internet.

En este último mes, Google ha ganado más de un 1% de todo el tráfico de la red, y si sus datos de por sí son ya impresionantes, lo que más llama la atención es quizá la capacidad de seguir creciendo que tiene, que no se le ve un límite cercano y que seguirá aumentando progresivamente.

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 26 Oct 2010 13:41
En CSS Trick publican un artículo en relación a un Tweet de Marc Grabanski que pregunta:
¿Comas antes o después de la línea en objetos JSON para definiciones múltiples?
Básicamente se refiere a donde colocamos la coma a la hora de generar estructuras JSON de varios elementos.
// commas antes
var vampyre = {
    teeth: 'sharp'
  , blood: 'stale'
  , age: 320
}

// commas despues
var vampyre = {
    teeth: 'sharp',
    blood: 'stale',
    age: 320
}
Yo personalmente suelo ponerlas detrás,  aunque leyendo el artículo he descubierto las ventajas de ponerlas delante. Por ejemplo a la hora de comentar la última línea, que te obliga a borrar la coma de la última posición no comentada.
// commas despues
var vampyre = {
    teeth: 'sharp',
    blood: 'stale', // Esta coma hay que borrarla
 //   age: 320
}
Ambas son dos forma correctas de declarar variables, o definir objetos JSON. ¿Cual usas tu?

Artículos relacionados

aNieto2k

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 26 Oct 2010 12:53

En los capítulos anteriores de la Guía de vídeo producción hemos aprendido sobre: ¿Qué es un vídeo viral?; Tres pasos para crear un vídeo viral; La preparación, grabación y aspectos técnicos; Epifanías audiovisuales en la web; Contar historias para medios audiovisuales, Herramientas para escribir guiones y en este capítulo aprenderemos a evaluar varios puntos para comprar una cámara de vídeo.

La transición de tecnología para cámaras de vídeo a la era digital nos permite contar con un amplia variedad de opciones a precios accesibles. Gracias a esta revolución, más personas pueden adquirir equipo de grabación de vídeo. Para elegir la cámara ideal que cumpla con las 3B´s: Buena (características básicas para realizar una buena producción), Bonita (acorde a los estándares actuales del mercado) y Barata (si tienes un presupuesto entre $200 – $500 dólares), te recomiendo tomar en cuenta los siguientes puntos:

1. HD o Standard: resuelve el dilema

El formato es uno de los principales puntos que debes tomar en cuenta. Es posible que te preguntes, si lo último en tecnología es High Definition, ¿por qué pensar en un formato estándar? Efectivamente HD es hacia donde va el futuro de la imagen en movimiento, pero en el mercado aún encuentras opciones a precios accesibles, y no por ello debes menospreciarlos. En perspectiva, es importante entender cuál es la diferencia.

aspect

El formato  refiere al tamaño en pixels de cada fotograma, esto te permitirá tener menor o mayor definición en la imagen. El formato standard refiere a una dimensión aproximada de 720 x 480 píxeles,  a 30 cuadros por segundo, que es el tamaño que usa televisión y su proporción de 4:3, por lo que le da un aspecto cuadrado.

Mientras tanto, el HD (High Definition) tiene un aspecto ancho a 1280 x 780 píxeles, a una proporción de 16:9. por lo tanto a más resolución, mejor detalle en cada imagen.  Este es el formato que se está utilizando actualmente y promete por mucho mejorar la experiencia en vídeo.

2. Sistema de grabación: Tape o Tapeless

Este es otro punto importante a tomar en cuenta para decidir por tu cámara. Por muchos años el medio para grabar vídeo se hacía a través de cassettes o tapes de vídeo, en distintos formatos, para vídeo casero, podías encontrar VHS, hi8, MiniDV, MicroDV e incluso cámaras que graban directamente a DVD.

Actualmente, puedes encontrar cámaras cuyo medio de grabación es 100% digital, almacenado en tarjetas de memoria o SDCards.  La ventaja de esta tecnología es que te ahorras dinero y espacio en tapes, cuyo estimado de vida es relativamente corto (5 años aproximadamente). Otro factor a tomar en cuenta es que te ahorras el tiempo de digitalización del contenido del tape en tu computadora para editarlo.  Ahora, si te decides por esta tecnología, debes tomar en cuenta es que debes tener en cuenta mantener suficiente espacio de disco o comprar discos externos para guardar tus grabaciones.

3. Audio: tan importante y generalmente relegado

El audio ocupa el 50% en importancia de tu material en vídeo.  Por ello es importante no dormirte en tus laureles y dejarle esa encomiable tarea al micrófono instalado que ya trae la cámara, porque es malísimo! incluso en las cámaras semiprofesionales.

Por ello, debes contemplar adquirir un micrófono adicional para grabar el audio, el cual puede ser un shotgun o bien un micrófono alámbrico o inalámbrico para conectarlo a la cámara al momento de la grabación.

Muy importante: es revisar qué tipo de entrada para micrófono tiene tu cámara, que regularmente es una entrada miniplug para que puedas conectar tu micrófono. Luego, también debes asegurarte que la cámara tenga entrada para audífonos ya que es realmente importante monitorear el audio mientras estás grabando.

4. Funciones de la cámara:

Cuando revises la cámara de vídeo, te sugiero revisar que tenga las siguientes funciones:

1. White Balance: es la función que te permitirá calibrar los colores de la imagen en relación con el tipo de iluminación del ambiente.
whitebalance
2. Iris: es la apertura de luz del lente y te permitirá manejar la entrada de luz a la cámara para evitar que las imágenes estén sobre-expuestas (demasiado claras) o muy obscuras.

3.Zoom: consiste en la capacidad del mecanismo del lente para acercarse a un objeto en la distancia. Es importante no hacer un análisis basándose en el conocido Zoom Digital, ya que aunque pareciera que tiene más capacidad que el zoom natural la calidad de imagen no es confiable ya que es una característica manipulada a través de el aumento de píxeles a la imagen.

¿Es determinante la marca de la cámara?

Muchas veces hemos de dejarnos llevar por la marca para decidir nuestra compra, aunque mi recomendación es que decidas por una marca conocida como Sony, Canon, Panasonic, JVC o Samsung, ya que estas marcas garantizan el producto que te están vendiendo, compatibilidad de accesorios, e incluso debes revisar su compatibilidad con el software de vídeo que estás utilizando. Te sugiero leas reseñas de expertos que puedes encontrar en Cnet y en el sitio Camcorder.info

Cuando decidas qué cámara vas a comprar, te sugiero agregues en tu presupuesto la compra de una batería adicional, un filtro (UV) para el lente y una maleta para guardar tu equipo. Si decides comprar una cámara tapeless, asegúrate de comprar más tarjetas con suficiente memoria para guardar tu vídeo.


Rebeca Zuñiga Rebeca Zuñiga para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 26 Oct 2010 08:52
Creo que a estas alturas no hay nadie que dude que jQuery se ha convertido en la librería Javascript más usada de Internet, pero ¿realmente sabemos en que medida es esta afirmación cierta?

jquery (Ver Imagen)

La gente de BuiltWith ha sacado unas estadísticas procesado en HTML de hasta un millón de sitios y ha obtenido los gráficos que vemos sobre estas líneas, que indican el incremento en el tiempo de número de sitios web que usan jQuery en 3 rangos de páginas diferentes (10.000, 100.000 y 1 millón).

javascript (Ver Imagen)

Otra gráfica interesante es la distribución del Javascript que nos encontramos en el millón de sitios webs utilizados para sacar la gráfica. Podemos ver como jQuery sigue siendo la librería más usada frente a SWFObject como interfaz para elementos flash.

Artículos relacionados

aNieto2k

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 26 Oct 2010 08:26
jDoctest es una librería basada en el módulo de documentación de Python que permite aprovechar la documentación de nuestros scripts para realizar pruebas sobre nuestros scripts.
La idea es muy sencilla, tu comentas tu código, con un formato definido por la librería, en la documentación pones ejemplos de código que permitan probar ciertos puntos de tu script. Al cargar la jDoctest testeará que el código funciona como debería.

Compatibilidad

La librería funcionará con la mayoría de navegadores, el autor avisa de que Internet Explorer no está soportado debido a la diferente implementación de la función eval().

Instalación

Como todas las librerías Javascript, la instalación no es más complicada que cargar los ficheros necesarios en nuestro HTML.
<script src="http://www.planetwebdev.net/jquery.js"></script>
<script src="http://www.planetwebdev.net/jdoctest.js"></script>
<script>
  jDoctest.testSource( "imagefile.js" );
</script>

Preparando nuestro código

Nuestro código ha de estar debidamente comentado y para ello usaremos una sintáxis similar a esta para que la librería detecte los comentarios y pueda ejecutar las pruebas.

var ImageFile = function( url ) {
    /**class:ImageFile( url )

    A container for an image file.

        >>> var img = new ImageFile( "_static/jdoctest.png" );
        >>> img.url;
        '_static/jdoctest.png'
    */
    this.url = String( url );
};
ImageFile.prototype = {
    fetchData: function() {
        /**:ImageFile.prototype.fetchData()

        Requests the server for the image file. When the request is
        complete, it also sets the ``size`` and ``modified`` attributes
        of the object.

            >>> img.fetchData();
            >>> wait(function() { return img.data; });
            >>> img.size;
            30295
            >>> img.modified; //doctest: +SKIP
            Sat Sep 25 2010 19:57:47 GMT+0900 (KST)
        */
        $.get( this.url, function( data ) {
            this.data = data;
            this.size = data.length;
            this.modified = new Date(); // Not Implemented Yet
        });
    }
};
El resultado aparecerá en la consola de Firebug aunque está preparado para funcionar con QUnit. Y nos mostrará el resultado de los tests que hayas informado. Si estás interesado en saber más sobre la librería, te recomiendo que le eches un vistazo a la documentación disponible por que permtie hacer cosas interesantes.

Artículos relacionados

aNieto2k

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 26 Oct 2010 07:55
456 Berea St publica un pequeño script para convertir las url's absolutas de nuestro WordPress en relativas. El script se basa en el uso de una expresión regular que elimina el protocolo y el dominio y nos deja la url recortada allá donde la usemos.
function make_href_root_relative($input) {
    return preg_replace('!http(s)?://' . $_SERVER['SERVER_NAME'] . '/!', '/', $input);
}
Esta función nos permitirá convertir cualquier url que le pasemos como parámetro, si además usamos el filtro asociado a the_permalink(), esto se propagará por la aplicación y reemplazará la mayoría de url's que usen este método.
function root_relative_permalinks($input) {
    return make_href_root_relative($input);
}
add_filter( 'the_permalink', 'root_relative_permalinks' );
Una forma rápida de relativizar tus url's :D

Artículos relacionados

aNieto2k

Author: "--"
Send by mail Print  Save  Delicious 
Date: Tuesday, 26 Oct 2010 04:28

El acceso a través de dispositivos móviles a Internet sigue en aumento, desde hace un tiempo la tendencia de consumo del contenido ha cambiado y nuestros sitio deben estar preparados para todo tipo de acceso: desde el ordenador con un monitor de 20 pulgadas, una tablet de 9.5 pulgadas hasta un pequeño smartphone de 3.5 pulgadas. Para ello, existen herramientas muy útiles en línea que te permiten visualizar tu sitio web en un dispositivo móvil y de esta forma evaluar si la versión móvil es la adecuada ¿esta tu sitio preparado?

Google Mobilizer: fácil y simple

Empecemos probando las herramientas más simples y Google Mobilizer es una de ellas, para saber cómo se verá tu contenido en la web, basta con ingresar la dirección de tu sitio web y listo, podrás ver la manera en que el contenido es visualizado en dispositivos móviles, para los usuarios de Chrome pueden obtener la extensión Auto Google Mobilizer.
Google Mobilizer

W3C Mobile: evalúa tu nivel de validación

Con esta herramienta de la W3C podrás evaluar el nivel de validación de la versión para móviles de tu sitio web. El objetivo de esta aplicación es mostrarte si tu web site es amigable para el usuario, sólo debes ingresar la dirección de tu sitio web y al realizar el análisis te indicará a través de iconos y colores el estado de tu sitio web para los diferentes dispositivos móviles.

w3C Mobile

Gomez: evalúa las mejores prácticas

Gomez es un emulador que te permite visualizar la versión móvil de tu sitio web. Además, te brinda una serie de datos que serán de gran utilidad para conocer en un rango de 1 a 5 las mejores prácticas web de la versión para móviles. A diferencia de las dos opciones anteriores, en esta herramienta debes llenar un formulario para realizar la evaluación del web site.

Gomez

MobiReady: una opción completa

Es una opción bastante completa que además de dejarte visualizar el contenido para móviles, también te permite evaluar varios aspectos de la versión móvil como por ejemplo: el costo que representa para diferentes países navegar a través de tu sitio web y más información sobre estándares y usabilidad.
ReadyMobi

iPadpeek: tu contenido en una iPad

Siguiendo con aplicaciones simples, encontré iPadpeek que simula cómo se vería tu contenido en la pantalla de un iPad, lo único que debes hacer es agregar la dirección de tu sitio web y se cargará automáticamente para que puedas revisar el contenido y navegar en el sitio.
iPad Peek

Estas son algunas opciones para visualizar tu blog o sitio web en dispositivos móviles, espero que te sean de utilidad para revisar la versión móvil de tu sitio que cada vez se vuelve más indispensables. Si conoces alguna otra similar que hayas utilizado no dudes en compartirla en los comentarios.


Stephanie Falla Aroche Stephanie Falla Aroche para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

Author: "--"
Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader