Posteado por: patovolador | Octubre 2, 2008

Script.aculo.us Ajax.InPlaceCollectionEditor en Internet Explorer

Lamento no haber escrito todas estas semanas pero he tenido tanto trabajo como un toro en epoca de cruza… jajaja… aunque lo que estaba haciendo no era tan divertido como lo debio ser para el toro…

En fin… hay tantas cosas que tengo que escribir que comenzare con la primera…

Hace poco comence a usar la libreria de script.aculo.us para un pato sistema y debo de decir que la experiencia fue buena, y aun más que excelente cuando use el control de Ajax.InPlaceCollectionEditor para cambiar un dato de manera cuca en el sistema…

Dicho control funcionaba de perlas en las demostraciones y juntas que teniamos para analizar el sistema, hasta que se puso en demo-producción y uno de nuestros amados usuarios abrio el sistema en Internet Explorer Version 7 (inmensa porqueria de ·$%$&%$& ) y zas marrano!!!! pues el que el dichoso control de Ajax.InPlaceCollectionEditor simplemente no funcionó… y peor aun, el IE mandaba su típico error de “existen problemas con la pagina actual…” lo cual debo decir, me enfada bastante, por que los problemas no son “de la pagina” si no del jodido navegador pinche y feo que interpreta como quiere los codigos javascript (y no se digan los CSS… no por nada sale hecho una mierda en la prueba ACID)

¿La solución?-… Cielos.. q debate…

” – quitamos el control Ajax…” ,
” – nos hacemos mensos y si preguntan, nos seguimos haciendo mensos”,
” – ponemos un aviso de ‘Este sistema solo puede usarse con navegadores buenos como Firefox, Safari, Opera…..’ “

Mil ideas revoloteaban por mi cabeza… hasta que, siguiendo mi ideologia de “el usuario no debe pagar los platos rotos…(aunque use el IE)” decidí buscar la forma de usar el control Ajax.InPlaceCollectionEdito de  script.aculo.us en IE…. rascando aqui y rascando allá encontre que en el archivo controls.js de la libreria en la funcion createEditField hay que sustituir la linea

var list = document.createElement(’select’);

por

var list = new Element(’select’);

asi que la funcion original dice:

createEditField: function() {

var list = document.createElement(’select’);

list.name = this.options.paramName;

list.size = 1;

this._controls.editor = list;

this._collection = this.options.collection || [];

if (this.options.loadCollectionURL)

this.loadCollection();

else

this.checkForExternalText();

this._form.appendChild(this._controls.editor);

}

La funcion final debe decir

createEditField: function() {

var list = new Element(’select’);

list.name = this.options.paramName;

list.size = 1;

this._controls.editor = list;

this._collection = this.options.collection || [];

if (this.options.loadCollectionURL)

this.loadCollection();

else

this.checkForExternalText();

this._form.appendChild(this._controls.editor);

}

Y listo… todos felices y contentos… al menos por el momento… seremos felices cuando la gente de usar el IE…

Saludos a todos por aca… y por allá también

Posteado por: patovolador | Septiembre 4, 2008

Usa protector solar

Recontra kuzo!!

A veces me pongo a dar clic aqui, clic allá… navegando por la red, siguiendo ligas que nada tienen que ver con mi trabajo…  y a veces, solo a veces encuentro cosas sencillamente poca madre… 

Veanlo… si quieren claro… es, segun un comentario de un usuario de youtube, “una cachetada para un alma dormida”

Segun encontré cliqueando por allí 

“Este video lo realizó en 1999 la compañía de medicamentos Sanofi Aventis, basado en un ensayo que trata sobre consejos para vivir una vida plena (originalmente escrito en 1997 por Mary Schmich, periodista de el Chicago Tribune”

No se si sea verdad o no, pero lo pongo allí… (nadie dijo que el blog tenia que ser 100% fiable ¿verdad?)

Posteado por: patovolador | Septiembre 2, 2008

Funcion para traducir fechas

Pues si, siendo como soy, no me gusta mostrar fechas extraidas directamente de la base de datos, con su formato aaaa-mm-dd (1981-07-07)

Aqui una pequeña función que recibe un dato con este formato y lo convierte a una fecha traducida para humanos… (y patos también)

<?php

function TraduceFecha($fecha)
{
$Fecha = explode(‘-’,$fecha);
$dia=$Fecha[2];
$anio=$Fecha[0];
switch($Fecha[1])
{
case ‘1′:$mes=’Enero’;break;
case ‘2′:$mes=’Febrero’;break;
case ‘3′:$mes=’Marzo’;break;
case ‘4′:$mes=’Abril’;break;
case ‘5′:$mes=’Mayo’;break;
case ‘6′:$mes=’Junio’;break;
case ‘7′:$mes=’Julio’;break;
case ‘8′:$mes=’Agosto’;break;
case ‘9′:$mes=’Septiembre’;break;
case ‘10′:$mes=’Octubre’;break;
case ‘11′:$mes=’Noviembre’;break;
case ‘12′:$mes=’Diciembre’;break;
}
$Fecha = $dia.’ de ’.$mes.’ de ’.$anio;
return($Fecha);
}

?>

Y para usarla solo se tiene que mandar llamar y pasarle el dato a traducir

<?php

//Tenemos una fecha en formato MySQL
$FechaTipoMySQL = ‘1981-07-07′;
//Hacemos un echo usando la funcion
echo ‘El pato nacio el ’.TraduceFecha($FechaTipoMySQL);
// Devolvera la siguiente cadena: El pato nacio el 7 de Julio de  1981

?>

Espero que a alguien le sirva y si es asi deje un comentario de “Gracias pato…” y si no les sirvio también dejen un comentario… comienzo a sentirme como pato en la selva… solito y sin que nadie lo pele…

Saludos

Posteado por: patovolador | Agosto 7, 2008

Hiroshima… 63 años después

Hoy no hablaré de programación ni bases de datos, mis grandes pasiones… eso se va a la mierda cuando pienso en el 6 de agosto de 1945 cuando el Enola-Gay, un bombardero estadounidense, dejo caer su “little boy” sobre la ciudad de Hiroshima… minutos después, a las 8:15 AM, mientras civiles iban a la oficina, niños jugaban frente a sus casas y madres comenzaban las labores del dia algo ocurrió:

Se produjo un intenso brillo que encendió el cielo y provocó fuertes vientos. De una bola de fuego de 400 m de diámetro surgió una nube en forma de hongo que se elevó 20 km. El intensísimo calor, de quizá 3.000C°, convirtió instantáneamente en carbón a miles de seres humanos. Miles más les sobrevivieron unos pocos segundos, para ser golpeados por escombros o sepultados por edificios caídós. Empavorecidos, muchos se tiraron a ríos que habían hervido. En la horrenda vorágine murieron 200.000 almas, la mitad de la población diurna de la ciudad. Desaparecieron aproximadamente unos 60.000 edificios, fuegos dispersos se convirtieron en incendios mayores y la contaminación radiactiva inició brutalmente su inhumana y silenciosa labor de provocar una muerte lenta y dilatada…”  http://www.geocities.com/Augusta/5130/oppenheimer.htm

No es mentira cuando les digo que una tristeza invade mi cuerpo y mis ojos llegan al punto de las lagrimas (si, a veces lloro y que…) y me averguenzo de ser humano… ¿cómo, en el nombre de todos los dioses de todas las religiones, fuimos capaces de semejante chingadera…?

Este es el uniforme de un estudiante formado con los restos de las prendas de 3 estudiantes que murieron ese dia, Eiichi Tsuda (13), Hajime Fukuoka (15) y Masayuki Ueda (12). El uniforme forma parte del museo de la paz de Hiroshima…

Y al final, como siempre… muchos no saben que día es hoy… pero todos recuerdan el horroroso 11 de septiembre… y todas esas pobres personas que murieron en los edificios y los aviones… y qu hay de los cientos de miles de vidas que se perdieron en un instante en hiroshima (y 3 dias después en Nagazaki)… Cada 11 de Septiembre vemos documentales, noticias, nos atascan de notas sobre las torres gemelas y lo hijos de puta que fueron los talibanes… diganme ¿dónde estan hoy esas notas diciendo lo hijos de puta que fueron los estadounidenses? Esto es Genocidio, pues Hiroshima y Nagazaki no eran blancos militares, eran zonas civiles y respecto al argumento de que “se habian perdido limites civiles-militares” me lo paso por lo huevos, eran islas puta madre!!! islas donde vivia gente inocente…

“Fue para ponerle fin a la guerra” A la chingada con ese argumento, Japón ya estaba dando por terminada la guerra, lo que ocurría es que EU quería demostrar su poderío al mundo  como bien lo dice dice Dave Painter.

” Painter, profesor de historia de la Universidad Georgetown, en Washington, habló con BBC Mundo sobre cómo se llegó a la decisión de atacar con un arma nuclear a la población civil japonesa.

¿Cómo fue el debate político que condujo a la decisión de usar la bomba atómica?

Yo diría que no hubo una decisión de usar la bomba. De hecho, lo que habría habido es la decisión de no usar la bomba. Porque Estados Unidos empezó a desarrollar la bomba en 1942 y desde el principio se asumía que era un arma legítima que sería empleada cuando estuviera lista….

… Finalmente, la estrategia militar estadounidense durante la guerra fue minimizar las víctimas estadounidenses, y la tecnología era una manera de lograrlo.

Así que no hubo una sola decisión sobre si lanzar o no la bomba en Japón. Se asumía que era una arma más para usar cuando estuviera disponible, que terminaría la guerra rápidamente y reduciría las muertes de soldados estadounidenses.”
http://blog.pucp.edu.pe/item/12365

Hijos de su re——- Para minimizar muertes de soldados estadounidenses… pues que se mueran joder, ese es su trabajo, ir a matar y que los maten, triste igual, lo sé… pero existe una diferencia abismal entre soldados y niños y mujeres civiles…

No es secreto para nadie que me conoce que me caga la forma en como Estados Unidos ve con desprecio al resto del mundo, actuan y sienten como si los demás paises (sobre todo México) fueran su patio de recreo donde pueden hacer lo que su pinche gana se les da, ¿quieren matar gente y sentirse huevudos? lanzan bombas atomicas y que el mundo se joda, ¿Quieren petroleo? invaden Irak con el argumento de que “hay terroristas” (y misteriosamente el mundo entra en crisis de energeticos, cosa que a EU le puede venir valiendo madre, pues con el petroleo que ya controlan estarán bien abastecidos, que suerte que les tumbaron las dos torres…) ¿Quieren jugar tiro al blanco con personas? les dan licencia a los güeros que viven en las fronteras para que “patrullen” y si pueden que maten a uno que otro jodido que, buscando una mejor oportunidad de vida se va a su pinche pais a hacer el trabajo que nadie de allá quiere hacer…

De la tristeza de Hiroshima y Nagazaki he pasado a la indignación de ciudadano del mundo… Ni modo, eso pasa cuando se tiene un blog y se puede escribir lo que venga en gana…

Busquen en google “hiroshima” y contemplen la creacion de la destrucción en su forma más inhumana posible.

Al final, he quedado triste, y guardo luto por aquellas personas que, sin deberla ni temerla, murieron en un 6 de Agosto de 1945 a las 8:15 AM. Que el mundo no los olvide nunca.

Posteado por: patovolador | Agosto 5, 2008

Recuperar contraseña root de MySQL en Windows

Hace unas horas Omar y yo estabamos desarrollando una idea para una aplicación la cual, debo decir, nos quedo “bien padre”… Alegres y jubilosos nos dispusimos a trabajar, abro el MySQL Administrator y zas marrano!!! que me doy cuenta que, estupidamente, perdí mi contraseña de root… un poco muy bruto diría mi hermano… Ni modo, después del shock inicial… a buscar y como siempre, a encontrar la solución. Aquí se las pongo para todos aquellos que han perdido (no se quemen diciendo el por qué) la contraseña del root.

1. Poner cara de “Panda la madre Osa!!!”

2. Respirar tranquilos…

3. Abrir el administrador de procesos de Windows (services.msc)

4. Detener el servicio de MySQL (click derecho — Detener)

5. Abrir una ventana de CMD, consola de Windows, o Pantalla de DOS (como le quieran llamar) y situarse en la carpeta donde esta instalado el MySQL (generalmente es en la carpeta BIN de la carpeta de instalacion) y desde la cual, generalmente se ejecuta MySQL en modo consola

6. Escribir la siguiente linea “mysqld-nt –skip-grant-tables” cuando hagan esto, la pantalla del CMD se vera como que esta haciendo nada o algo… ya saben como es Windows… la cosa es que esa ventana quedará “inutilizable” dejenla así y abran otra ventana de CMD

7. En la nueva ventana del CMD ir de nuevo a la carpeta donde esta instalado MySQL y acceder como root (si, ya se que perdieron la contraseña…) solo escriban “mysql -u root” y voila! accedemos sin contraseña… no se precipiten, aun no hemos terminado.

8. Seleccionamos la base de datos (use mysql) y después procedemos con la tecnica milenaria de crear a otro root, con la siguiente linea “INSERT INTO user VALUES (‘localhost’, ‘roottemporal’, ”,’Y', ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ”, ”, ”, ”, ‘0′, ‘0′, ‘0′,’0′)” OJO: Deben ser 26 ‘Y’, 4 espacios en vacio”, y 4 Ceros ‘0′… Con esto estamos creando, para el localhost, un usuario roottemporal, sin contraseña y con todos los permisos posibles.

9. Con el administrador de tareas de Windows aniquilamos el proceso mysqld-nt (que se esta ejecutando en la consola CMD que parece que no hace nada) y además cerramos amablemente la terminal MySQL donde estuvimos trabajando con un QUIT, si no se cierra tumbenla con el administrador de tareas también.

10. Arrancamos de nuevo el servicio de MySQL con el administrador de servicios (services.msc)

11. Desde una ventana de CMD, Ingresamos a MySQL con el usuario roottemporal sin password

12. Seleccionamos la base de datos mysql (use mysql)

13. Ejecutamos la instrucción ” UPDATE user SET Password=PASSWORD(‘la_nueva_contraseña’) WHERE User=’root’ ” (importante respetar las mayusculas de las palabras…)

14. Ejecutamos ” flush privileges ” (si no hacen esto será como no haber hecho nada…)

15. Sonrian y relajense, vayan por una cerveza y digan “haaaaa” … jajaja… en este punto ya hemos reiniciado la contraseña del root, asi que pueden salir de la consola, y acceder con el MySQL Administrator y gestionar lo demás en modo gráfico, o bien salir de la consola y entrar de nuevo con el usuario root y la contraseña que acaban de crear… en ambos casos es importante eliminar al usuario roottemporal, pues tiene calidad de root y además no tiene contraseña… esto lo pueden desde la consola con la instrucción: “delete from user where user=’roottemporal’;” y después la instrucción  “flush privileges;” o desde el modo gráfico del Administrator, vayan a User Administration, click derecho en el usuario roottemporal y delete user.

15. Dejar un comentario con “gracias pato… (y a google también)”

ACTUALIZACION DE ESTE POST

Dejaron un comentario sobre no posibilidad de copiar y pegar la informacion del usuario, esto es cierto, si al leer este post tratas de copiar y pegar el paso numero 8, no te funcionará pues como bien dice Caresth, las comillas cambian, por eso que en el mismo paso, especifiqué la cantidad de Y’s, y espacios vacios que deben existir. Gracias a todos por vistar este humilde blog.

Posteado por: patovolador | Julio 31, 2008

Error in my_thread_global_end()

Hace tiempo instalé PHP, MySQL en un servidor Windows con IIS (si, que pena, IIS…. me vale…) y fui feliz desarrollando… hace poco cambie a una laptop para “desarrollo movil” y volvi a instalarle todo… y bolas! que me encuentro con el error “Error in my_thread_global_end()” Saaaaale… y eso!! pues vaya, que es bug de PHP que afecta algunas versiones la mia especificamente es la 5.2.5 y no supe por que diablos la afectaba si en toda la documentación aparece que afecta a versiones más antiguas…. como al final lo mio es la producción y no la investigación di con la solución rápida y sencilla:

1. Poner de cara de “No mames! ¿y ese error qué es?”

2. Ir a http://www.php.net/releases/ y descargar la version binaria para Güindos 5.2.1

3. Des-Comprimir el archivo y extraer el archivo libmysql.dll que se encuentra, generalmente en la raiz donde des-comprimieron

4. Ir a su carpeta de instalacion PHP y sustituir el respectivo archivo… OJO, les recomiendo hacer un pequeño respaldo del archivo original. Nada más sencillo, solo cambienle la extiensión de .dll a .abj… es solo una sugerencia, quien lo quiera sobre escribir por sus tomohawks pues que lo haga, no acepto reclamaciones (al fin que creo que nadie lee este blog…jajaja)

5. Correr su aplicación y si no ha explotado su maquina dejar un comentario de “gracias pato…”

Posteado por: patovolador | Julio 9, 2008

Copiar estructura de una tabla MySQL

Hoy me surgió la necesidad de copiar la estructura de una tabla con todo y datos de una base a otra, pero como no recordaba como hacerlo me heche un clavado en google y después de rascarle encontre una forma sencilla y rápida, la dejo aquí por si algún despistado llega a necesitarla.

CREATE TABLE BaseNueva.TablaNueva SELECT * FROM BaseOrigen.TablaOriginal

Posteado por: patovolador | Julio 4, 2008

Eurovision 2008

Jajajaja… pa la pura pena conmigo, cada año espero ansiosamente este concurso europeo que, sinceramente, me produce muy buenas vibraciones y hace unos dias tuve una platica con K cuando me preguntó muy animosamente

- ¿Oye, como viste el eurovision de este año?

En esos momentos me sentí como lechuga en casa de vegetarianos, mis ojos se llenaron de lagrimas y con  voz entrecortada solo pude decir

- ¿Ya fue?

Bueno, lo demás ni se los cuento… pura madre, berreé, patalee y al final me reí… ni modo, esto de cambiarse de ciudad tienen como consecuencia no darle seguimiento a algunos asuntos…

Investigando encontre los videos de la competencia y aqui una breve reseña (si, una más de todas las que abundan en la red)

1º Lugar: Rusia

Canción: I Belive

Cantante: Dima Bilan

A mi parecer no merecia el primer lugar, pero ni modo, no vivo en europa y no puedo votar (debería de agradecer que lo puedo ver por cable en las madrugas en TVE). ¿Y por que digo que no merecía ganar? por que fue chanchuyo, el cuate del violin que sale atras es Edvin Marton ¿y quién es ese guey? preguntarán… pues un violinista hungaro arto famoso en europa, considerado como uno de los buenazos, el violin que usa es un Stradivarius y el otro monito que sale patinando es nada más y nada menos que Evgeni Plushenko un patinador ruso 3 veces campeón del mundo… tons… ¿cómo carambas no se iba a llevar las palmas? (por que hay que aceptarlo, la canción no es tan genial) He aqui el video

Ahora, no es la primera vez que Edvin Marton y Evgeni Plushenko están juntos, aqui un video de ellos solos en interpretación de “Toscana” que, según mis gustos de pato es excelente

Retomando…

2º Lugar: Ukrania

Canción: Shady Lady

Cantante: Ani Lorak ( o Karolina pa los cuates)

Esta canción si que me gustó y no por la cantante, bueno si, algo tienen las ukranianas que brrrrr si no, vean a Tina Karol que participo hace dos años con la canción Show me your love (mala la canción, buenisima ella, casi le digo que la amo y si se lo showseo)… mucha energia, elementos visuales excelentes (el show y ella claro)… aqui el video

3º Lugar: Grecia

Canción: Secret combination

Cantante: Kalomira

Melosito el escenario, melosita la voz y melosito el vestido, pero haaaa que bonito osito…

Linda la chica, y la canción más o menos…  Aca el video

Como reflexión final, me enfada que cada dia les da por cantar menos en su idoma natal, no es que traiga nada contra el ingles, digo, es un pinche idioma feo que usa la misma expresión para decir bien que mal y es zurrante que todo el mundo, para sentirse “cool” e “in” (notense las expresión en ingles) deben hablar en ingles, pero siento que los paises podrían usar el eurovisión para dar a conocer un poco más sus lenguas y demostrar que se puede escuchar y disfrutar una buena canción sin tener que entender lo que estan diciendo con palabra, debería bastar el sentimiento y la expresión corporal… (que cursi, me vi tentado a borrar esta parte)…

Espero poder ver, ahora si, el año que viene el eurovisión completo.

Posteado por: patovolador | Julio 4, 2008

Taxi!

Hoy, me desperté tarde, lo primero que pensé “mierda! a tomar taxi para llegar a tiempo a la oficina” hago lo mio, salgo a la calle, y alli comienza mi historia…

¿Han notado que los taxis tienen un letrito de “libre” que sirve para indicar, precisamente, que el taxi esta “libre”? Bueno, ¿por qué joputas no lo quitan cuando alguien lo aborda? Malaya! levanté mi brazo como idiota por lo menos 10 veces para detener un taxi que tenía el letrero de libre solo para darme cuenta que el infeliz no se detenía por que venía ocupado… Después de eso comence a contar los taxis que mentían cuales coliflores en pascua con su pinche letrero…

Resultado final: 29 taxis con el letro puesto, 28 de ellos ocupados… el número 29 lo abordé yo y más adelante me tuve que bajar por que, según el chofer, su taxi dejaba de circular a las 9 am y no le daba tiempo de dejarme en mi destino y regresar a tu “taxi-cueva”  así que mi historia comenzó de nuevo.. a esperar un nuevo taxi y matar la espera contando a los falsos que mentian con su letrero de “libre”

A partir de hoy, si al abordar un taxi veo que no baja su letrero de libre, le pediré amablemente que lo haga, para evitar que haya personas frustradas como yo, que levantan su brazo con los ojos llenos de ilusión, solo para darse cuenta que el pinche taxi ya viene ocupado.

Posteado por: patovolador | Julio 3, 2008

Eliminar espacios antes, después y entre cadenas PHP

Hace mucho tiempo desarrollar algo y me tope con el lema de eliminar los espacios en blanco antes de la palabra, despues de la palabra y entre las palabras…. menuda cosa, por que existe la buena función trim pero esta elimina los espacios antes y después de la cadena… lo que yo quiero es quitar los espacios extra entre las palabras…

Despues de rascarle, me encontré esta función, y ahora que lo pienso, no se si la hice yo o la encontre, así que por si las dudas, no diré que es mia, solo que aquí está y que espero les sirva.

<?php

function LimpiaEspacios($CadenaConMuchosEspacios)
{
$CadenaConMuchosEspacios= strtolower($CadenaConMuchosEspacios);
//Esta parte es solo para pasar a minisculas toda la cadena, no preguntes por que la puse, solo la use en ese tiempo, pero la puedes quitar si no la usas

$CadenaConMuchosEspacios= trim($CadenaConMuchosEspacios); //Aqui eliminamos todos los espacios que estan antes y despues de la cadena

$CadenaRegulada= ereg_replace( ‘  +’, ‘ ‘, $CadenaConMuchosEspacios); //Mediante expresiones regulares sustituimos los bloques de más de un espacio por un espacio sencillo

return $CadenaRegulada; //El básico return de una función
}
?>

Y aqui un ejemplo de uso:

<?php

$VariableFumada=’       Esta es     una      cadena    con muchos       espacios’;

echo LimpiaEspacios($VariableFumada);

?>

El resultado será “Esta es una cadena con muchos espacios”

Saludos y un cuack!

Entradas antiguas »

Categorías