Ahora dicen que IE8 pasa el Acid 2

Pues si, después del bardeo generalizado que se comió en la blogosfera por solamente publicar “el nombre” despues de mucho tiempo sin comunicación, el grupo de desarrolladores de IE avisó que ya logran pasar el acid test 2 en standar mode!!!
Para los que no saben - y para los que saben tambien, no? - el acid test 2 es - tomando la simple explicación de los IE boys - un test de como los navegadores modernos funcionan con algunas funcionalidades específicas de distintos estándares.
En este momento de los navegadores en versión estable, solo Konqueror, Safari 2.02. Dicen que algunos de los beta de firefox 3 están pasando el test, pero tambien dicen que no, asi que: (?).

Una linda noticia para todo web developer cansado de hacer cuchuflitos extra para que IE6 muestre bien simples cuestioens de CSS; y también una muy buena muestra de lo que la presión de toooooda una comunidad de desarrolladores puede hacerle sentir a una empresa que se creía omnipotente.

Este fin de año, todos a brindar por los estándares(?)

También te puede interesar:

[Trabajo] Diseñador Web

Holas a todos!

Queria avisar en en mi laburo estamos buscando un Diseñador Web para un trabajo full-time en Olivos.

Lo principal es que tengan una idea de como funcionan las paginas web, y esten familiarizado con las herramientas mas comunes (Photoshop, Corel, etc),

Si alguien esta interesado, dejenme un mail con su CV o algo de informacion sobre ustedes en: argentina@gmail.com

HTML5 nos trae nuevos Elementos

La gente de la w3c publicó los primeros añadidos a HTML en este milenio, ya que, según dicen, seguir usando a esta altura solo elementos de un lenguaje de 199 es “vivir en las cavernas”.

Uno de los datos mas interesantes es que aunque los navegadores viejos no detectan estos elementos las páginas van a verse bien. Los navegadores no sabrán que hacer con estos elementos, pero no dejarán de mostrarlos.

Paso a explicar algunos (o todos, vemos al final…):
Estructura:
    * section: Una parte o capítulo de un libro, sección de un capítulo, o esencialmente cualquier cosa que tenga su propio encabezado en HTML 4.
    * header: El encabezado de la página; no es lo mismo que el tag HEAD.
    * footer: El pie de página, donde van las letras chicas, copyright, emails, etc.
    * nav: Una colección de links a otras páginas.
    * article: Una entrada independiente en un blog, revista, compendio o lo que sea.

Bloques semánticos:
    * aside: Representa una nota, un consejo, un sidebar o lo que sea que esté afuera del bloque narrativo.
    * figure: Representa una imagen a nivel de bloque, junto con su titulo.
    * dialog: Un elemento diálogo representa una conversación entre diferentes personas. El elemento ‘dt’ señala al que habla y ‘dd’ señala el discurso.
Inlines semánticos:
    * m (mark): Indica que el texto está “marcado” de alguna manera pero no necesariamente enfatizado. Por ejemplo, una página resaltada en un libro, o en google cache cuando resalta los términos buscados.
    * time: Bastante lógico, representa una fecha.
    * meter: Representa un valor numérico en un rango especificado.
    * progress: Representa el estado de un proceso en ejecución, como las conocidas barras de progreso en las ventanas de programas. Suena MUY práctico!.
Multimedia embebida:
    * audio y video: Como sus nombres dicen, son para embeber audio y video. La sintaxis es prácticamente la del viejo y querido tag IMG.
Interactivos:
    * details: Representa información adicional que podría no mostrarse por defecto.
    * datagrid: Sirve como control de “grillas”. Para árboles, listados y tablas que pueden ser actualizados con scripts.
    * menu y command: Menu existe desde la versión 2 de HTML. Fue deprecado en la versión 4 pero retorna con nuevo significado, conteniendo comandos que se van a ejecutar al ser activados.

Bueno, los puse todos. La versión completa, en inglés y con ejemplos de este artículo está en New elements in HTML 5

PHP5/6 con soporte mysql nativo: mysqlnd

Se anunció un nuevo driver de MySQL para PHP, mysqlnd, con la diferenciación que funciona nativamente, en contra parte con la extensión actual libmysql.
Al usar funciones nativas de PHP, se logró un leve incremento en performance, mejoraron las conexiones persistentes, y ya no se requieren librerías externas.

Chau PHP4

Se acaba de anunciar oficialmente en php.net que PHP4 llego al final de su vida util.
Soporte para PHP4 continuara hasta fin de año.
Todas las grandes distribuciones ya han dejado de incluirlo (en Ubuntu 7.04 “Feisty Fawn” ya no esta).
Hay guias disponibles para migrar de PHP4 a PHP5, asi que recomiendo que las empiecen a chusmear…

PHP4 no más en Ubuntu 7.04 Feisty Fawn

Ya hay varias personas super ofendidas y en llamas, asi que me parece un buen momento de ventilar éste tema.
PHP4 no está disponible en los repositorios de Feisty Fawn, y no lo va a estar nunca en ninguna versión de aca en adelante.
Parece ser que PHP4 se dejará de actualizar y soportar oficialmente para fin de éste año 2007, y como Feisty va a tener soporte por 2 años, decidieron ni siquiera hacer los paquetes.
Suse también dejó de soportarlo, y tengo entendido que la nueva versión de red hat también.

Me parece que llegó el momento de dar el salto hacia PHP5.

Comenté sobre ésto ayer en mi blog en inglés, asi que hay varios comentarios interesantes ahi: http://beuno.com.ar/archives/14

10 consejos para un Freelancer

Digan lo que digan, trabajar Freelance no es fácil. En teoría suena mucho mejor de lo que resulta en la práctica, sobre todo cuándo pasás de un trabajo fijo a estar totalmente por tu cuenta. Ahora, teniendo un poco de auto contról puede traernos muchísimas cosas buenas.
Muchas de éstas cosas también se aplican cuándo trabajás en un ambiente con más libertad de la habitual, que es dónde tengo yo personalmente más experiencia.

1. Armá una rutina diaria

El hecho de ser freelance implica que vas a estar en tu casa mucho tiempo. Ésto hace que todo sea mucho más monótono y perdamos la noción del tiempo, y que va a ser más fácil distraerte y divagar con cualquier cosa que se te cruce en tu camino.
Al tener una rutina diaria es más fácil asegurarse que vamos a cumplir con el trabajo que tenemos comprometido. Ésto puede incluir dedicarle una cantidad fija de horas a desarrollar, otra a contestar emails, actualizarse con las últimas tecnologías, y probar cosas nuevas.

2. Intentá no comprometerte con más de lo que podés manejar

Éste es un tema particularmente difícil, sobre todo si tenés una nivel de gastos fijos relativamente alto. Debido a la naturaleza amplia de éste trabajo, y del poco conocimiento que suelen tener nuestros clientes sobre lo que realmente implica desarrollar, los límites son muy borrosos. Un projecto que estimamos en 10-12 horas de trabajo puede duplicarse sin que nos demos cuenta. Algo que podemos hacer es sobreestimar siempre un porcentaje (20-30%) el tiempo que pensamos que vamos a tardar. Siempre es mejor que nos sobre tiempo a que nos falte. Recordá que van a ser tus fines de semanas y noches que sufran la consecuencia.

3. Mantenete focalizado en tu especialidad

Los clientes te van a pedir toda clase de cosas. Generalmente cuánto más contento queda un cliente más cosas va a querer que hagamos. Es importante recordar qué es lo que sabemos hacer bien para que no se nos vaya un cliente por intentar abarcar demasiado. Lo mejor es aprender a decir que no, y buscar una buena red de empresas y freelancers amigos para poder derivar adecuadamente el trabajo que no podemos manejar.

4. Intentá divertirte, sobre todo en los momentos de mayor estrés

Nuestro instinto generalmente nos empuja a trabajar más rápido para llegar a una fecha de entrega más cercana de la que nos gustaría. Mi experiencia es que siempre termina siendo perjudicial para uno mismo y para el trabajo ir más rápido que nuestro ritmo natural. Si aprendés a respirar profundo y tomar un poco de distancia en los momentos más complicados, te vas ahorrar más de un ataque de estrés.

5. En tu tiempo libre, alejate de la PC

La mayoría de los que estamos trabajando en ésto disfrutamos mucho de lo que hacemos, y generalmente terminó siendo nuestro trabajo porque primero fué nuestro hobby. Eso quiere decir que siempre vamos a tener cosas con qué entretenernos en internet (mi bloglines está cerca de los 80 feeds), haciendo que muchas veces termine el día, y aunque sólo hayamos trabajado unas pocas horas, estuvimos todo el tiempo sentados adelante de la PC. Finalmente la única forma de desacansar es alejarse de la PC, asi que esos ratos que te tomes para descansar, apaga un rato el monitor y despejate.

6. Agendá tiempo extra para proyectos grandes o recurrentes

Cuánto más grande el proyecto, más difícil es preveer el tiempo que le vamos a tener que dedicar. Siempre terminamos dedicandole algo de tiempo a algún pequeño bug, algo que se nos olvidó, o simplemente algo que no habíamos previsto. Separate algunas horas extras, si después no las usás, te queda tiempo para hacer otra cosa.

7. Aprendé cuándo cobrar por hora, y cuándo cobrar por proyecto

Después de un tiempo de trabajar en lo mismo, hay muchas cosas que se repiten. Ésto nos va dando cierta idea de cuánto cobrar por algo porque ya pasamos por distintos problemas y sabemos que podemos esperar. Después están esos constante desafíos que nos traen, generalmente haciendo imprevisible el tiempo que vamos a tardar en realizarlo. Dando por descontado que tenés que ir armándote una buena reputación para cobrar por hora, mientras documentemos bien qué hacemos y seamos transparentes, ésta forma de cobrar es ideal para ambas partes. El cliente puede pedir todo lo que quiere ya que lo está pagando, y a nosotros nos pagan por cada minuto de trabajo.

8. La honestidad y confianza son el pilar del trabajo freelance

Al no haber una empresa con más gente, oficinas, jefes y demás aditivos, es muy importante que el cliente confíe en nosotros. Una vez que el cliente empieza a ver que uno no es transparente con el trabajo que hace y lo que le cobramos, se va a ir rápidamente a buscar a otro lado la tranquilidad que no le estemos dando.

9. Intentá tener resuelto el aspecto legal lo antes/mejor posible

Éste es un tema muchas veces obviado por la informalidad con la que se suele manejar en el mundo freelance, y sobre todo porque generalmente uno empieza con muy poco y es un gasto demasiado grande tener todos los papeles necesarios. Si el trabajo freelance es un plan a largo plazo, es importante invertir en tener una seguridad legal para evitar problemas con clientes malintencionados o en muchos casos con el gobierno por temas de impuestos.

10. Agendáte tiempo para vos y tu familia/amigos

Al no cumplir con un horario fijo, es muy habitual que nos dejemos sobre pasar por el trabajo y pasemos el tiempo mínimo indispensable con la gente que nos rodea. Es importante separarse tiempo para ayudarlos a ellos con sus cosas o nada más para pasar un rato. Es más fácil solucionar un problema con un proyecto que con una novia/o/amigo/a.

El post fué inspirado por uno de Jesse Skinner

Php, strtotime y los meses que te parieron(?)

Después de un par de horas de Divertirme como un geek logré solucionar un problemita que encontré con Php, la función strtotime y la necesidad de sumarle 1 mes a una fecha dada.
La cuestión puedo ejemplificarla asi:
El usuario ingresa una fecha: 2007-01-03
Yo a eso necesito sumarle 1 mes: $nuevafecha = date('Y-m-d,strtotime('2007-01-03 +1 month');
Resultado: 2007-02-03
Hasta ahi, todo bien.
PERO, que pasa con febrero? eh?
El usuario ingresa una fecha: 2007-01-31
Yo a eso necesito sumarle 1 mes: $nuevafecha = date('Y-m-d,strtotime('2007-01-31 +1 month');
Resultado: 2007-03-02
Ahi está el problema. Una cosa es sumarle 1 mes y otra sumarle 30 días, don php(?).

Este problema también se presentó con los meses que tienen 31 días y son seguidos de meses que tienen 30.

La solución que encontré (que se que no es la MÁS práctica generalmente pero que a mi proyecto le entró con vaselina) es hacer la suma y chequear si el mes que dio de resultado es igual al mes original +1.
o sea:
if(date('m',strtotime($nuevafecha)) != (date('m',strtotime('2007-01-31')))+1)

Luego hice un hermoso loop en el cual le desconté un día a $nuevafecha siempre y cuando el mes sea diferente a mes +1.
while(date('m',strtotime($nuevafecha)) != $mescorrecto)
{
$nuevafecha = date('Y-m-d',strtotime("$okdate -1 day"));
}

donde $mescorrecto = ‘02′ (en este caso)

2 hermosas horitas insultando a los programadores de php, pero fue divertido.

Servidores Dedicados

Rara vez recomiendo algún servicio o producto, pero después de varios años de servicio impecable no me queda otra.
Si están buscando pasarse a algún servidor dedicado, recomiendo Serverbeach, tienen precios muy razonables y ante los pocos problemas que tuve me respondieron siempre muy rápido.
Tienen una promoción ahora (que me disparó la idea de este post), que si son referidos por algún miembro actual, les descuentan 100usd después de 3 meses de permanencia.

Nuestro código de referencia es: TTER8PAF7S

P.D. kbglob está alojado en uno de sus servidores :D

Si alguien los contrata, me encantaría tener su feedback.

IE7 en Linux

Para todos los que forzosamente tienen que testear cosas en IE7, ya pueden usarlo sobre Linux:

1. Bajar la ultima version de IE4Linux
2. Descomprimir donde quieras
2.1 Asegurarse tener instalado wine y cabextract
3. Ejecutar: ./installer –beta-install-ie7
4. Darle que si a todo
5. Putear a MS

Y si preguntan, no se lo robe a Mauro, se lo pedi prestado.

Crap en Microsoft Internet Explorer

Resulta que si en explorer ponemos font color=”crap”, nos muestra un marroncito feo.

Pueden hacer funcionar eso, pero que lo basico de CSS renderice bien se les va de las manos…

(para los quisquillosos, la explicación es que lo convierte a hexadecimal (C0A000) que se traduce en 190 Rojo, 160 Verde, y 0 Azul)

¡Gracias Kant por el dato!

Evitando Spam en Formularios

Tardé en sacar éste post porque me desconcertó muchísimo el resultado que tuve (o mejor dicho, que no tuve) al implementar la idea en el blog.
Finalmente aplicado a otros escenarios funcionó muy bien.
La idea es crear un input de texto, común y corriente, con un nombre muy genérico como “url” o “email” mezclado con nuestro formulario.
Le asignamos un ID específico que después desde una hoja de estilos externa escondemos para que el usuario real no lo pueda ver.
Finalmente desde PHP o lo que usemos nos fijamos si alguien metió data en ése campo y la descartamos automáticamente.
Me gustó ésta solución porque es mucho más elegante y sencilla de las que hay dando vueltas como obfuscación (no debe existir ésta palabra en español) por javascript.

No funcionó en el blog porque están tan armados los spammers que van directo a los campos que vienen por defecto en Wordpress, y ni cambiando el nombre de los campos los pude disuadir. Me dio fiaca intentar cambiarlos de lugar y todo eso asi que finalmente implementé un captcha divertido.

JPG que no se ven en Firefox/IE

Hace ya bastante tiempo que me pasa que cada tanto me encuentro con algún JPEG que puedo abrirlo en varios programas (gThumb, Photoshop, Gimp, y hasta un thumb como attachment en Gmail) pero cuando lo abro con Firefox o Internet Explorer no se ve.
Resulta que Matt Cutts lo explicó muy bien.

¿La razón? Que la gente guarda los JPG en CMYK en vez de RGB, cosa que no soportan los navegadores.

Aprovecha y hace una buena crítica a la falta de descripción del errores.

Porqué Google es nuestro (mi) norte

Ayer estaba viendo 8 videos de youtube, bajando un torrent y subiendo un sitio sobre mi fabulosa conexión de 612kbps de ciudad, y encima de todo eso se me ocurrió chequear mis mails.
Parece que no sobraba tanto ancho de banda, y la cosa se puso lenta. ¿Que hizo gmail en vez de tirar un timeout?

Me devolvió ésta pantalla mientras seguía intentando cargar:

A eso llamo yo pensar en el usuario.

10 cosas a tener en cuenta al desarrollar PHP

1. Si un metodo puede ser declarado estático, declaralo estático. Mejora la performance 4 veces.
2. Eviten usar opciones “mágicas” como: “__get“, “__set” y “__autoload
3. require_once() es caro
4. Usar paths absolutos en los “includes” y “requires” hace que se tarde menos tiempo en encontrar los archivos
5. Para saber cuánto tarda en ejecutarse un script, $_SERVER[’REQUEST_TIME’] es más barato que time()
6. Usar strncasecmp, strpbrk u stripos en vez de expresiones regulares (regex)
7. preg_replace es más rápido que str_replace, pero strtr es 4 veces más rápido que preg_replace
8. $row[’id’] es 7 veces más rápido que $row[id]
9. Los mensajes de error son caros
10. No usen funciones dentro de un loop (ej: for ($x=0; $x < count($array); $x) ), la función count() es llamada cada vez

Fuente Original: http://www.moskalyuk.com/blog/php-optimization-tips/1272

La velocidad si importa

Una de las cosas que tiene Google, y se nota, es que están constantemente buscando la mejor forma de presentar la información a los usuarios.
Es un curioso un experimento que comentó Marissa Mayer en una conferencia de Web 2.0.
Le preguntaron a un grupo de usuarios cuántos resultados querían ver por página. Todos coincidieron en que querían más de los 10 que actualmente se muestran.
Tomando ésto en cuenta, probaron mostrar 30 resultados por página a algunos usuarios. Cuándo hicieron ésto bajó inmediatamente un 20% el clickeo de los usuarios en resultados y publicidades.
¿Porqué?
Porque la página tardaba en vez de 0.4 segundos en generarse, tardó 0.9. Los usuarios notaron inmediatamente ésta diferencia tan pequeña.
Éste mismo concepto lo aplicaron a Google Maps, reduciendo el tamaño de las imágenes y notaron un aumento de tráfico casi instantáneo.

Analizando todas las llamadas de una página web

Hay un plugin para el Firefox llamado tamperdata que analiza todas las llamadas que hace una página web, y te dice que respuesta http tuvo cada una, y cuánto tardó en cargar. También nos deja modificar cada dato.
Y si hacemos lo siguiente, nos muestra gráficos mucho más lindos y claros:
Tools > Tamper Data > Click Derecho en el recuadro principal > Graph All

Dreamweaver y Flash 8 en Linux

Encontré un how-to para todo aquellos que todavía no se acostumbraron a otra solución que no sea el Dreamweaver, pero se quieren pasar definitivamente a Linux.

Los pasos están pensados para Ubuntu Dapper, pero seguramente funcionen en todos los derivados de Debian.

  1. $ apt-get update
  2. $ apt-get install wine and then type “yes”
  3. $ wine /*To create the wine file structure*/
  4. $ apt-get install recode and then type “yes”
  5. - Then you need to copy all the necessary files from the Windows box;

  6. Copy the whole Macromedia folder from “c:\Program Files\” to “/home/YOURNAME/.wine/drive_c/Program Files/”
  7. Copy the whole Macromedia folder from “c:\Documents and settings\All users\Application Data” to “/home/YOURNAME/.wine/drive_c/window/profile/all users/”
  8. Copy the whole Macromed (No mistake with the “ai”) from “c:\Windows\system32\” to “/home/YOURNAME/.wine/drive_c/window/system32/”
  9. Finally, copy the whole Macromedia folder from “c:\Program Files\Common Files” to “/home/YOURNAME/.wine/drive_c/Program Files/Common Files/”
  10. - Now you need to export the registry keys of the Dreamweaver;

  11. In your Windowx box, type “regedit” in the command-line and export the whole “HKEY_LOCAL_MACHINE/Software/Macromedia/” to “macromedia.reg”, then copy it to your your Ubuntu, convert it to ascii with “$ recode ucs-2..ascii macromedia.reg”. Afterwards, type “$ wine regedit macromedia.reg” to run it with wine.
  12. That’s it! Type “$ wine dreamweaver.exe” or create a launcher and enjoy Dreamweaver in Ubuntu ;)
  13. Also, create a launcher or type “$ wine flash.exe” to enjoy Flash 8!

Fuente Orginal: Publicidad Pixelada 

Soporte CSS en IE7

Internet Explorer 7 icon Aunque todos sabemos que el resultado final siempre va a ser menos de lo necesario, los desarrolladores de IE7 realmente parecen estar haciendo un esfuerzo en que sea compatible con el standard de CSS definido en la W3C.
En uno de los posts de su blog en MSDN tienen especificados muchos bugs que arreglaron, e incluso qué ejemplos tomaron para corregirlos.
La lista es demasiado grande para resumirla, pero vale destacar que hasta incluyeron cosas de CSS 2.1 y transparencias en PNGs.

Robar (algo) del historial de Firefox

Jeremiah Grossman demostró que, aún siendo un poco complicado, se puede robar algo del historial de la gente a través de CSS y Javascript.
Si miramos el código nos damos cuenta que es algo tan estúpido como escribir en pantalla una lista de sitios web, y chequear que color tiene el link.
Pueden verlo en acción acá.

Sorprendentemente en IE7 RC1, ésto está protegido.

Update: Es un bug que está reportado hace más de un año, pero no se resolvió ya que ES UN STANDARD (por eso no funciona en IE7, ja!)

Wolfenstein en 5kb Javascript

Si, como dice el título.
Pueden usarlo ustedes mismos: Wolfenstein en 5kb Javascript

Wolfenstein en 5kb Javascript

PHP vs J2EE, mucha gente enojada

En sitepoint, que, tengo que advertirles, tienen una inclinación hacia PHP muy fuerte, publicaron un artículo sobre una discusión muy grande que se armó alrededor de que Friendster migró de J2EE hacia PHP para poder soportar el crecimiento.
No les voy a transcribir todo el artículo porque voy a aburrir al 95% de ustedes, pero sí quiero resaltar un par de puntos:

- Rendimiento != Escalabilidad: esto me parece el punto central, que un lenguaje tenga mejor rendimiento que otro, no quiere decir que escale mejor (si, con esto digo que hay puntos donde JSP rinde mejor que PHP)
- PHP delega todo lo ajeno al procesamiento de código (lo que hace mejor) al Apache (no digo IIS porque no estamos hablando de sitios de juguete), esto ya le da una ventaja importante sobre J2EE
- PHP maneja cada request cómo algo individual y sólo se llama a PHP cuándo se lo necesita, en cambio J2EE, viniendo de Java que está residente en memoria todo el tiempo, lo llama para todo (piensen en una página web, que suele tener 9 imágenes, lo llama 10 veces cuando sólo lo necesita 1 vez)

También cita las ventajas de JSP frente a PHP, pero ¿para que arruinar un post con pequeñeces?

Sistema solar en Javascript

¡El sistema solar hecho con Javascript!
(no hay mucho más para decir)

Se va uno de los desarrolladores principales de PHP

Con éste mensaje:

Thank you all for the last 6 years or so. It has been fun (sometimes)
and many times not so much fun. Unfortunately I have had enough and
I don't want to be associated with this project anymore.
I'm sure most people (the ones who matter) can understand why.
If someone doesn't, I could not care less. Take care.
Please do not reply to this email.
--Jani
p.s. Delete my CVS account. I have no use for it anymore.

se despide Jani Taskinen, uno de los desarrolladores principales de PHP.

Hay mucha especulación alrededor del porqué una salida tan violenta, pero todavía no se confirmó nada.

Ésto se pudo encontrar en los logs de IRC:

<_sniper_> hehehehe..
<_sniper_> all other members of the UN security council wanted to condemn Israel for attacking the UN post but USA (freedom and democracy) vetoed it….Israel says the resolution was fair.
<_sniper_> hell yeah..
<_sniper_> NUKE ISRAEL!
<_sniper_> I’m so full of that fucking country..
<Shai-Tan> indeed
<_sniper_> Eye for an eye..I’ll kill one Israel officer for one of ours, is that fair?
<_sniper_> I bet I’ll be hanged for that.
<_sniper_> They kill one of my brother-in-arms-for-peace..I think I’m entitled to kill one of their nazis.
<_sniper_> Hezbollah, where can I enlist?
<_sniper_> FYI: I don’t care at all what anybody thinks about me. I’m going to be openly anti-Israel from now on. This was the last straw for me. Fuck you jews.
<_sniper_> I will also quit this project. As long as it’s backed by some Israel company, I don’t want to have anything to do with it.
<_sniper_> Good bye.
<– _sniper_ (~jani@a88-112-115-63.elisa-laajakaista.fi) has left #php.pecl

Es importante saber que Jani era parte del cuerpo de paz de las Naciones Unidas.

Les dejo una listita de las cosas que desarrolla:

* as a lead developer for Zend Engine II
* as a lead developer for TSRM (Thread Safety Resource Management)
* by testing and maintaining the build for the PHP core
* by writing/maintaining tests for the standard functions in the PHP core
* as a lead developer for gd, a core extension
* by working as a developer on imap, a core extension
* by working as a developer on session, a core extension
* by working as a developer on sockets, a core extension
* by providing occasional fixes for the testsuite distributed with PHP
* by applying maintenance fixes to the underlying libraries in bcmath, pcre and xmlrpc
* by providing tests and occasional fixes for xml
* by providing occasional fixes for apache2filter, apache2handler, apache_hooks, cgi, cli, dba, dom, iconv, informix, isapi, ldap, mcrypt, mcve, mime_magic, msql, mssql, mysqli, mysql, ncurses, oci8, odbc, openssl, oracle, pgsql, recode, snmp, soap, sqlite, sybase, tidy and tokenizer
* by writing/maintaining tests for mbstring, mhash, pcntl, pspell, shmop and wddx
* by working as a developer on bugs.php.net

La discusión en slashdot es un buen lugar para interiorizarse.

Scroll del mouse en Javascript

Ahora que Google implementó en sus mapas el uso del scroll del mouse para hacer zoom, todos lo queremos.

El sitio del autor: http://adomas.org/javascript-mouse-wheel/

Creo que lo saqué de Digg, pero no lo puedo prometer.

Más viejo »