Archive for the ‘sql’ tag
Google Native Client
Buenooo, ahora quieren que los webmaster nos pasemos al lenguaje C???
¡Qué miedo! a mi ahora mismo no me apetece volver a C en absoluto, adoro mi php mysql javascript css y html, además si todo avanza hacia una capa web carente de plugins y descargas, donde tan sólo debes URLear y listos, carece de sentido que el cliente deba descargar un archivo e instalarlo en su sistema, muchos no saben hacer eso.
Correr código nativo a través del navegador es muy muy peligroso, en manos de mucha gente eso es una auténtica bomba de relojería, no quiero ser negativo pero este movimiento de la todopoderosa no me gusta ni un pelo.
Además los recursos de proceso con código nativo corriendo en nuestros navegadores van a ser enteramente nuestros, suponemos que eso es lo que pretende los señores de Google que deben ir algo cortos de rendimiento en sus servidores actuales donde corren las aplicaciones. No se han dado cuenta de que la gente navega con netbooks que van escasísimos de CPU, o iPads, iPhone y sucedáneos que tienen procesadores que rondan el 1Ghz. y que deben soportar resoluciones muy altas.
Los de Google pretenden presentarnos esto como la nueva panacea del desarrollo, nos prometen que vamos a poder desarrollar juegos en 3D y editores de vídeo, pero el usuario debe descargar esa aplicación, de momento sólo es soportada por su propio navegador, Chrome, nada de Firefox ni de Safari, y ni mucho de Explorer. Esto es como un plugin de Flash pero ya a lo bestia y sin contemplaciones.
Eso sí de momento está disponible tanto para Windows como Mac, y Linux, un gran paso pero que también nos da una visión sobre sus limitaciones ya que cada dia que pasa navegamos con más cosas, pronto el teletexo de los TV será un navegador, además de los ya siempre presentes iPhones y Androids para los que de momento correr aplicaciones en C desde navegador no es posible.
No se, esto parece una estrategia a largo plazo pero creo que se van a darse de morros a menos que esté yo muy equivocado, mira el caso de Adobe AIR que es el mismo cuento pero que partió de la gran base ya instalada Flash y no ha obtenido el éxito esperado. Huele a que es la antesala de su sistema operativo Chrome o al deseo de Google de canibalizar a la AppStore donde se venden aplicaciones a millones.
¿Vosotros, qué opináis?
Eblace: http://code.google.com/p/nativeclient-sdk/
Error con LOAD DATA LOCAL INFILE en MySql
Menudo bugazo de MySQLos hemos encontrado hoy! Este bug porque sí, porque lo es ya que tiene toda la pinta de ser un bicho nos ha traído de cabeza durante dos días. Si ya pensaba yo que esto de que Oracle salga de compras no nos iba a traer nada pero nada bueno, en fin webmaster of the universe os ponemos en antecedentes:
Estamos ultimando la v.3.9 del sistema de tiendas online ecOOmmerce.com en ella hemos incorporado una función que realiza las actualizador de precios y de stock semiautomatizado donde el cliente en base a un fichero bajo formato .csv (parecido al excel, realmente es un txt con campos separados por un signo) puede desde el backoffice de la aplicación actualizar los precios de una tacada.
El servidor web alojado en Hispalab corre Linux con Mysql versión 5.0.90 instalada. Nosotros disponemos acceso al Cpanel para administrar, si bien no podemos acceder a consola por SSH ni a través de Cpanel.
Intentamos hacer un típico LOAD DATA LOCAL INFILE para cargar datos de un fichero .csv en una tabla temporal de la base de datos que posteriormente será analizada por nuestra nueva función y actualizará los precios.
La sentencia es la típica, reportada en cientos y cientos de foros de desarrollo tanto en español como en lengua sajona:
LOAD DATA LOCAL INFILE ”/home/dominios/test/public_html/tmp/tarifatest.csv” INTO TABLE table01 FIELDS TERMINATED BY “;” LINES TERMINATED BY “\n”
Y desde la aplicación no recibimos error alguno, para acotar el tema vamos al Phpmyadmin a través de Cpanel y copypasteamos el comando, automáticamente nos escupe el siguiente error:
#1148 – The used command is not allowed with this MySQL version
Repasamos la sentencia de SQL mil quinientas veces y es entonces cuando el ingeniero de sistemas de Hispalab nos dice que no utilicemos el “LOCAL”. Nos documentamos y si, una vez el archivo está en servidor no hace falta utilizar el argumento “LOCAL” ahora bien, al modificar esta función nos encontramos con otro nuevo error:
#1045 – Access denied for user ’wwwtest’@'localhost’ (using password: YES)
Así que comenzamos primero desde PHP y luego desde FTP (no tenemos acceso a consola) ha realizar todo tipo de CHMODS y CHOWN para cambiar los permisos y propietarios de el archivo y la carpeta subida. No conseguimos nada más que perder el tiempo.
Desolados reportamos a Hispalab y al final y tras casi dos días de darnos cabezazos contra el teclado alguien vio la luz en Hispalab, ese LOCAL, ese LOCAL, lo probó en minúsculas “local” y… como bien dijo el “zasss…. todo funcionó”.
Impresionante, ni en la propia documentación de MySQL figura ni una sóla vez en minúsculas, puedes verlo en:
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
En fin, hay queda este post por si alguna vez oss encontráis con semejante problema.
Hacks para WordPress
Hemos recopilado cinco de los hacks más útiles para WordPress, Pero algunos se preguntarán ¿ qué son los hacks para WordPress?
1. Hacks para WordPress
Los hacks para WordPress son porciones de código más bien pequeñas que te permiten alterar el comportamiento o apariencia del mismo en puntos que son inalterables a través del propio panel de control de WordPress.
Vamos a poner un ejemplo, cómo modificarías el logotipo que te muestra el sistema en la página de acceso a la administración esa que acaba por /wp-admin/, a través del panel de control es totalmente imposible al menos en la versión actual, así que para realizar este cambio y otros que te reflejamos en el siguiente Post, deberás recurrir a los famosos hacks.
Esstos hacks van dentro del código fuente de cada tema, los puedes editar desde el mismo panel de control de WordPress y tendrás que tener especial atención si decides cambiar de tema pues al estar codificados dentro del mismo probablemente perderás todos los hacks al cambiar de tema.
Vamos entonces con algunos de los cinco hacks más interesantes para tu blog.
2. Modificar el logotipo de la página de administración de WordPress
Para hacer funcionar este hack deberás modificar el fichero de funciones que encontrás en Apariencia > Editor > functions.php recuerda también modificar la imagen o el fichero al que apunta.
function my_custom_login_logo() {
echo '<style type="text/css">
h1 a { background-image:url('.get_bloginfo('template_directory').'/images/custom-login-logo.gif) !important; }
</style>';
}
add_action('login_head', 'my_custom_login_logo');
3. Diferir la publicación de RSS
Este cambio debes realizarlo en el archivo Apariencia > Editor > functions.php y sirve para diferir la publicación de las noticias en formato RSS. La principal utilidad es la de diferir las noticias para que en el caso de que algún otro site replique tus contenidos via RSS, que para eso están Google las encuentre primeramente en tu servidor y por tanto te otorgue a tí la titularidad de las mismas, otra funcionalidad de este hack es la de dejarte un espacio de tiempo suficiente entre la publicación y la sindicación para efectuar cambios de última hora.
La variable que contiene la cantidad de tiempo a experarse es $wait y el valor por defecto es de 5 minutos.
function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate('Y-m-d H:i:s');
// value for wait; + device
$wait = '5'; // integer
// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// add SQL-sytax to default $where
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
4. Mostrar los post más comentados en una fecha concreto
El siguiente código añadirá un función a tu WordPress que te permitirá mostrar en tu barra lateral los post más leídos de tu blog.
En este caso debes de añadir el código al fichero sidebar.php ( Apariencia > Editor > sidebar.php )
<ul>
<?php
$result = $wpdb->get_results("SELECT comment_count,ID,post_title, post_date FROM $wpdb->posts WHERE post_date BETWEEN '2009-01-01' AND '2009-12-31' ORDER BY comment_count DESC LIMIT 0 , 10");
foreach ($result as $topten) {
$postid = $topten->ID;
$title = $topten->post_title;
$commentcount = $topten->comment_count;
if ($commentcount != 0) {
?>
<li></li>
<?php }
}
?>
</ul>
5. Limitar el acceso a la administración de tu blog por IP
Esto desde luego es un método de seguridad muy fuerte útil para aquellos que tienen IP fija, eso sí olvídate de actualizar tu blog cuando estés fuera de vacaciones pues la IP probablemente sea otra o incluso dinámica.
Estos cambios no se pueden realizar con el panel de WordPress y deberás bajarte de tu servidor y editar a mano el fichero .htaccess que encontrarás en la raíz de tu blog.
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xx
</LIMIT>
