Baron Schwartz, coautor de la segunda edición de MySql performance y consultor de Percona, hizo una presentación en el beCamp 2008, en la que hablaba de conceptos básicos sobre rendimiento en bases de datos mySQL.
Archivo de Mayo, 2008...
Archivado bajo Bases de Datos, SistemasArchivado bajo Desarrollo Web, javaScript
Normalmente, cuando se hace una petición a una sitio web, éste carga todo su código javascript en la llamada.
Sin embargo, no todo el código es ejecutado inicialmente ni tampoco a lo largo del tiempo de ejecución de sus aplicaciones o interacciones, por parte del usuario, con las mismas.
Podemos darnos cuenta de ésto al observar esta gráfica.

En ella observamos como conocidos sitios web deben cargar código javascript para luego usar normalmente un porcentaje. inferior al 50%. del mismo
Doloto es una solución de Microsoft, que aun no esta publicada y se encuentra en modo de pruebas por Microsoft Research, que ayuda a mejorar el rendimiento en aplicaciones web
Para conseguir su objetivo, Doloto analiza el código javascript de nuestras aplicaciones y creando perfiles de uso, descarga exclusivamente el código javascript necesario para inicializar la aplicación. El resto de código se transmite bajo demanda.
Una función en una aplicación que utilizase doloto tendría el siguiente aspecto:
[javascript,N]
function f(){
// descarga el cuerpo de la función “f”
var real_f_text = blocking_download(”f”);
// se prepara la función “f”
var real_f_func = this.eval(real_f_text);
// se evalua la función “f” con el objeto arguments
return real_f_func.apply(this, arguments);
}
Microsoft está probando esta tecnología en algunos sitios web, consiguiendo reducir el tiempo de carga en algunos de los mismo hasta en un 40%.
Tenéis más información sobre su arquitectura, concepto y resultados conseguidos en este interesante paper.
Archivado bajo Bases de Datos, Desarrollo Web, Microsoft, PHP, Sistemas
Microsoft ha publicó hace unos meses la versión RTM de su driver oficial para php que permite conectarse a sus bases de datos SQL Server.
Vamos a usar dicho driver para mostrar cómo recuperaríamos el último id insertado en una tabla.
[php,N]//Especificamos el servidor
$server = “HOST\INSTANCIA”;
//Especificamos los datos de acceso y la base de datos
$info = array( “Database”=>”bd”,”UID” =>”user”,”PWD” =>”pass”);
//nos conectamos
$c = sqlsrv_connect( $server, $info);
//especificamos el código sql para la consulta parametrizada
$sql = “INSERT INTO tabla (valor) VALUES (?);”;
//Scope_Identity nos devuelve el último id insertado
$sql .= “SELECT Scope_Identity() as id;”;
/*
especificamos el valor o valores que se pasarán como
parámetros en la consulta anterior
**/
$param = array($valor);
//preparamos la consulta
$s = sqlsrv_prepare($c, $sql, $param);
//ejecutamos la consulta
sqlsrv_execute($s);
/**
*
En este momento se ha ejecutado la consulta pero, al contrario
de lo que podamos deducir, no se devuelve ningún valor ‘id’
aunque hagamos un fetch
para obtenerlo debemos hacer un sqlsrv_next_result();
**/
sqlsrv_next_result($s);
//Ahora sí, hacemos un fetch
$r = sqlsrv_fetch_array($s, SQLSRV_FETCH_ASSOC);
//Mostramos el resultado
echo “Hemos insertado una fila con el id: “.$r['id'];
//liberamos la variable de estado
sqlsrv_free_stmt($s);
//cerramos la conexión
sqlsrv_close($c);
Archivado bajo Eventos
Tengo que decir que cuando pienso en ir a un evento relacionado con internet, por muy humilde que sea, nunca pensaría que sus asistentes puedan ser unos drogadictos y unas putas, como comentó alguno de los ponentes del mismo.
Fue hace unas semanas cuando pagamos la entrada por asistir a un evento que debía tener esta agenda:
10 de mayo
8:00 – 9:00 - Acceso al Palacio de Congresos
9:05 – 11:00 - La estrategia de posicionamiento SEO (I)
11:35 – 13:00 - La publicidad en nuestra web (CPC, CTR, CPM)
13:00 – 14:00 - La web, de idea a negocio
16:00 – 17:00 - Los expertos cuentan sus secretos ( BandaAncha, ADSLZone, ElOtroLado) Adsense y Posicionamiento
17:05 – 17:45 - Otra forma de monetizar tu web. El Email Marketing
17:50 – 18:40 - Eficacia y eficiencia en el rendimiento web
18:45 – 19:55 - Google Adsense
20:00 – 20:50 - Google AdWords
11 de mayo
8:00 – 9:00 - Acceso al Palacio de Congresos
9:05 – 10:00 - Qué hosting debo elegir
10:15 – 11:00 - La primera clave del éxito, una web rápida y optimizada.
11:00 – 12:00 - El público de nuestra web.
12:10 – 13:00 - Yahoo, Herramientas de Publicidad y Entorno Web
13:10 – 14:00 - Diseño y Usabilidad.
16:10 – 17:30 - Drupal
17:40 – 19:00 - WordPress
19:10 – 20:25 - Hacia dónde van los buscadores. La reconversión del SEO
Los ponentes que nos vendieron:
|
Representa |
Ponente/s |
Ponencia |
|
Google Irlanda |
Isabel Macías |
AdSense |
|
Google España |
Isabel Salazar |
AdWords |
|
Google Zurich |
Eduardo Manchón |
Diseño y Usabilidad Web |
|
Yahoo S. Marketing |
David Losada |
Publicidad y Herramientas Web |
|
Carlos Blanco |
Carlos Blanco |
La web, de idea a negocio |
|
Menéame |
Ricardo Galli |
La eficiencia del contenido y el rendimiento web |
|
Ojo Buscador |
Javier Casares |
Hacia dónde van los buscadores. La reconversión de los SEO |
|
javiercastilla.com |
Javier Castilla |
Cómo posicionar nuestra web en los buscadores |
|
Antevenio |
Joshua Novick |
La publicidad en nuestra web, CPC, CTR, CPM. La rentabilidad de las campañas. |
|
CanalMail |
Juan Agustín Jimenez |
Email Marketing, otra opción para monetizar tu web |
|
Bandaancha.st ElOtroLado.net ADSLZone.net TuExperto.com |
Josh Jorach Álvaro Garrido Javier Sanz Chema Lapuente |
¿Cómo lo hacen? Las webs más relevantes nos cuentan sus secretos. |
| InterSystems | José Rupérez | La primera clave del éxito, una web rápida. |
|
H2O Drupal |
Jose A. Reyero |
Drupal, Gestor de Contenidos Web. |
|
1and1 |
R.G.S. |
Qué hosting debo elegir |
|
Jazztel |
Luis del Pozo |
El precio de los usuarios que nos visitan |
|
Alma Consulting |
Juan Antonio Costa |
La estrategia de un buen Plan de Negocios con financiación estatal I+D+I |
|
WordPress |
M. Fernández. Developer Engineer. |
Gestor de contenidos web 2.0 |
Como veis, una buena agenda para todo aquel interesado en desarrollar un proyecto en internet y conocer a gente de iguales intereses.
En nuestro caso nos apuntamos con la intención de ver sobre todo a Ricardo Galli, Carlos Blanco, la ponencia de 1and1, la de WordPress, Drupal y la de Yahoo.
Dos meses después de apuntarnos en su web, cuyo logotipo de la naranja juraría haber visto entre las plantillas de TemplateMonster.com, comprobar que su sección para usuarios no estaba nada cuidada e incluso su pasarela de pago nos falló con todas las tarjetas que no fueran de Caja Laboral… nos dimos cuenta que la agenda había cambiado por completo sin que avisasen y que había cientos de entradas regaladas, una falta de respeto muy grande para los asistentes que habíamos pagado.
Llegamos Sergio, Jonathan y yo al evento viendo que la sala esta medio vacía, pensamos que es normal, ya que si se han regalado tal cantidad de entradas los asistentes no van a preocuparse por llegar a primera hora.
Hay que decir que la sala estaba muy bien preparada en cuanto a conexión a internet y enchufes, y un detalle el tener dos pantallas (eso si, deberían haber dejado una enfocando al ponente).
El evento empezó con una charla de Enrique Dans, que aunque yo personalmente no suelo estar muy de acuerdo con algunos puntos de vista que tiene en lo referente a Microsoft, hizo una buena ponencia.
Siguió una ponencia de dos personas, una de las cuales no sabía hablar en publico y la otra nos daba ciertos consejos a la hora de formatear los post en un blog, pero que ellos mismos no seguían ni en los sitios web que nos enseñaban (error mio, nos enseñaron un hilo de comentarios que interpreté como un microblog) ni en las diapositivas que llevaron. Era la ponencia llamada Cómo convertir un Blog en un medio de comunicación, que resultó ser una tortura y en la que salimos a por un café y gracias a ello tuvimos la oportunidad de hablar con Ruben Sánchez y Cristina Estada (de las mejores cosas que pasaron ese fin de semana).
“Cómo rentabilizar nuestro tráfico y nuestro contenido (Fijos, CPM, CPC, CPL, CPA)” fue una venta descarada (muy descarada) de los productos que ofrecía la empresa del ponente.
La última charla de la mañana fue de mano de Carlos Blanco que, para nosotros, fue la mejor de todo el evento, sobre todo por la ronda de preguntas. Hay que tirarle de las orejas al que hizo el programa ya que esa ponencia, debió ser a primera hora y no a la hora antes de comer, ya que normalmente la gente aprovecha para ir al Hotel a dejar el equipaje y después comer. Evidentemente la charla se extendió por la ronda de preguntas y, por culpa de esto, tuvimos que comer en 10 minutos para poder llegar a la ponencia de Panoramio de Eduardo Manchón, la cual me encantó.
La ponente de Google Adsense no nos contaba nada nuevo y volvimos a la cafetería, esta vez el café estuvo mejor, ya que el primero estaba bastante malo.
Volvimos a escuchar la charla de El otro Lado, que no estuvo nada mal.
Le siguió la charla de CanalMail, que personalmente a mí me resultó un pelín pesada.
El primer día se cerraba con una charla sobre optimización de base de datos. En lugar de eso, se nos puso a hablar un sinvergüenza, no puedo describirlo de otra forma, que nos intentó tomar el pelo durante su ponencia ya que se apreciaba claramente que no dominaba el tema sobre el que hablaba, a pesar de invitar a los no técnicos a irse de la sala al comenzar la ponencia. En la ronda de preguntas daba respuestas equivocadas (como decir a la ligera que un índice de tipo numérico es similar a uno de tipo texto) e incluso improvisaba malamante las mismas.
Después de cenar, no coincidimos con ningún asistente del evento en ninguno de los bares cercanos del Palacio de Congresos :(, cosa que si pasó en eventos anteriores celebrados en ese lugar. Fue una oportunidad perdida para poder haber estado con gente conocida con la que no pude charlar tranquilamente durante el día.
El día siguiente desayunamos tranquilamente en el StarBucks cercano y fuimos a la ponencia cuyo nombre era “La evolución de las comunicaciones y los contenidos”, que resultó larga.
Después nos anunciaron que Yahoo no iba a asistir a dar la ponencia en la que explicaría sus herramientas y, nos pusieron a alguien del Ayuntamiento de Madrid en una charla aburridísima que duró afortunadamente 20 minutos.
El resto de la tarde estuvimos ausentes del foro y llegamos a la charla de financiación de I+D+I, que a pesar de que la ponente lo hizo bien, no creo que fuese adecuada para el tipo de público que había en la sala.
La ultima ponencia fue a cargo de Javier Casares, que no entendimos muy bien que quiso hacer al sentarse dando la espalda al público. Como se nos hacía tarde nos fuimos, cenamos en el Foxter cercano y casi perdimos el avión.
Esto fue mi punto de vista, Jonathan también comenta el suyo, al igual que Sergio, Rubén y Polgoide.
Archivado bajo Emprendedores, Eventos
Esto es una ponencia de Alfredo Alonso (Lanekintza) que he visto en el blog de Hombre Lobo (Eduardo) y me ha encantado.
El 13 de este mes, es decir la semana que viene, organizan el día de la persona emprendedora (dentro del programa Bilbao Emprende 2008) Seguramente estaré por allí.
Archivado bajo Desarrollo Web, PHP
Para cargar una extensión en tiempo de ejecución en php, tenemos la función dl();
Para cargar por ejemplo la extensión para conectarse a una base de datos mysql haríamos:
[php,N]if(!extension_loaded(”mysql”)){
dl(”php_mysql.”.PHP_SHLIB_SUFFIX);
}
El valor de la constante PHP_SHLIB_SUFFIX almacena la extensión que tendría una librería dependiendo el sistema operativo en el que corra nuestra aplicación.
Archivado bajo Desarrollo Web, javaScript
Simon Willison, uno de los creadores del framework para python Django, hizo una presentación ayer sobre las ventajas de usar JQuery para tener potencia JavaScript sin que ensucie nuestro código html.
Archivado bajo Microsoft, Seguridad, Servidores Web, Sistemas
Por defecto la pila TCP/IP en un servidor Microsoft Windows 2003 Server viene optimizada para dar servicio de intranet, no para dar servicio de internet.
Tener un servidor sin adaptar adecuadamente dando servicio para internet con iis6 por ejemplo, puede convertirlo en una fácil presa de ataques dDOS entre otros.
Hay que tener en cuenta de igual modo, que un servidor expuesto a internet, no va a tener que soportar ni de lejos la misma carga de tráfico que uno que opere en la intranet de una empresa, en la gran mayoría de los casos.
Para optimizar nuestro sistema debemos tocar las siguientes claves de registro que encontramos en HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services
Nombre: SynAttackProtect
Clave: Tcpip\Parameters
Tipo: REG_DWORD
Valor:1
Este valor del Registro hace que TCP ajuste la retransmisión de SYN-ACKS. Cuando se configura este valor, las respuestas de conexión superan el tiempo de espera antes durante un ataque SYN (En w2k3 con service pack 1 viene a 1 por defecto)
Nombre: EnableDeadGWDetect
Clave: Tcpip\Parameters
Tipo: REG_DWORD
Valor: 0
Cuando esta activada, TCP puede utilizar una puerta de enlace que no se use en el caso de tener problemas con la que usa por defecto.
Si no se configura este valor como 0, se podría cambiar de puerta de enlace del servidor a otra que el atacante quiera.
Nombre: EnablePMTUDiscovery
Clave: Tcpip\Parameters
Tipo: REG_DWORD
Valor: 0
De no ser 0, un atacante podría forzar que el valor de la unidad de transmisión máxima (MTU) fuera muy pequeño y sobrecargar la pila TCP/Ip.
Nombre: KeepAliveTime
Clave: Tcpip\Parameters
Tipo: REG_DWORD-Tiempo en milisegundos
Default: 300000 (5 minutos)
Indica la frecuencia en la que se comprueban si las conexiones TCP inactivas siguen intactas y si el cliente está presente. Generalmente es recomendable cambiar el valor por defecto de 2 horas a 5 minutos, pero en cada caso concreto debemos estipular una configuración adecuada.
Nombre: NoNameReleaseOnDemand
Clave: Netbt\Parameters
Tipo: REG_DWORD
Valor: 1
Con este valor evitamos que el equipo libere su nombre NetBIOS en caso de que se le solicite.
