Como siempre, navego en busca de información interesante, y aquí les traigo algunos links de interés (que además me servirán para desocupar un par de pestañas del navegador). Están ordenadas por temática, y hay de todo un poco, desde generadores de passwords hasta guías sobre cómo hacer extensiones de classes para Magento.

Trabajando en la empresa privada, uno se da cuenta de cuán importante resulta llegar a ser optimizar bien una tabla, ya sea organizándola al estilo “sábana” (mucha repetición de registros, pero super rápido al tener un par de índices livianos bien ubicados), o bien crearla con un estilo EAV (permite crear infinitas propiedades de un objeto sin crear tablas gigantes que guarden ese atributo). Ninguna de las dos es ideal ya que en la primera si bien es cierto se puede hacer una sola consulta que se genere rápidamente se repiten demasiados datos y la segunda es, por lo general, un parto hacer consultas optimizadas ya que el modelo en sí no lo permite fácilmente.

Sin embargo, este post no se tratará de modelos de datos, sino más bien un tipo de consulta en particular frente a una problemática particular y que permitirá, en una sola consulta, insertar un registro nuevo a partir de un select.

No fue sino hasta el otro día que le encontré un propósito y una utilidad a la documentación bien hecha.

Todo surgió debido a que andaba buscando un método determinado que había escrito una vez hace 5 meses atrás y que podría haber estado dentro de un par de classes o bien dentro de un par de archivos de distintas funciones: en resumen, no tenía idea de cómo se llamaba ni menos cómo se ocupaba. Incluso ni siquiera estaba seguro de si efectivamente podría hacer lo que tenía pensado ya que la función que había escrito hacía algo muy parecido, pero podría ser que no hiciera lo mismo. Traté de ubicarla mediante diversos términos con este script pero no hubo caso. Ya casi dándome por vencido se me ocurrió la idea de que en realidad la documentación del programa estaba mal hecha y con múltiples formatos distintos: había que unificar todo.

Cuántas veces no les ha pasado que saben que una cierta cadena empieza con “hola_mun” pero no se acuerdan en qué termina ni menos en qué archivo? También: han tenido alguna vez que hacer cambios en varios archivos del tipo “$hola” a “$chao[‘hola’]” y que sucede que esa variable está repartida en 200 archivos por distintos directorios?

Bueno, si eso les ha pasado y ocupan Linux, ha llegado su día de suerte: creé un script (para la terminal) que busca en diversos lados por una cadena determinada e imprime la salida. Pero qué sucede en aquellos casos donde tenemos que omitir ciertas carpetas temporales como por ejemplo las que crea subversion? Bueno, este script también considera eso. Haz click en leer más para conocer el script.

Estos meses he estado bastante ocupado trabajando, y es por lo mismo que no he escrito nada. Sin embargo, he estado atento a sus comentarios y aprobándolos cuando hay.

La solución propuesta hoy me surgió en un momento de extrema ociosidad y flojera, buscando una forma de hacerme la vida más fácil: alguien más tendría que haber tenido la duda de que era posible; en MySQL; insertar un registro, pero si éste registro ya estaba, actualizarlo sin tener que:

  • Hacer la consulta inicial

  • Verificar que exista

  • Actualizar el registro en vez de insertarlo

  • Revisar que se actualizó correctamente

Bueno, esto es posible, y es bastante fácil de implementar. Para saber cómo, siga leyendo :)

Sé que este post lo más probable es que no le interesa a nadie, pero de todas formas siempre es bueno celebrar un límite mental, el cual es, en este caso, el tráfico de 1.000 visitas únicas mensuales. Aunque el 80% de las visitas abandonan la página, hay un puñado de 25% que se queda frecuentemente dando vueltas en el sitio y les agradezco :)

Sin más ni menos, les presento el SS que demuestra lo que estoy diciendo: [singlepic id=12 w=320 h=240 float=center]

Estaba anoche trabajando en varias cosas, entre ellas ver la forma de actualizar mi instalación de Wordpress. Como siempre se aconseja respaldar todo, respaldé todo lo que eran datos del disco y por supuesto ejecuté lo que yo creía que era un mysqldump (para respaldar) pero me equivoqué en esto último, restaurando el último respaldo que saqué cuando me cambié de hosting, es decir, hubo un rollback de cerca de 3 meses. Sucede que siempre he tenido la costumbre de respaldar periódicamente la base de datos: para esto, ejecuto un simple “mysqldump -p db_wp > respaldo.sql” mediante la cual rescato la base de datos “db_wp” a respaldo.sql. En un Linux cualquiera, para no ingresar el comando a cada rato, es simplemente flecha hacia arriba durante un rato para encontrar el comando y darle enter. Hasta ahí no hay ningún problema, sólo que hace poco me cambié de hosting y nunca había hecho un respaldo: sí había importado la base de datos cuando me cambié por lo que el comando guardado era “mysql -p db_wp < respaldo.sql”. Muy poca diferencia para las dos tremendas diferencias que hay entre ambas.

Algo pasó durante el fin de semana que de pronto al buscar por Google Hell aparezco en los primeros lugares… así que aprovechando el impulso, voy a explicar un poco mejor de qué se trata, cómo evitarlo y cómo salir de ella… si tienes suerte. (Y paciencia).

Google Hell (traducido: el infierno de Google o GInfierno) fue un término acuñado porque de pronto el gigante buscador simplemente puede decidir dejarnos fuera de su índice principal, relegando nuestras propias páginas a meras búsquedas del tipo “site:misitio.com busqueda”, algo que se conoce como el índice suplementario. También existe la posibilidad (menor, pero posibilidad a fin y a cabo) de que nos banee y nos ponga en un blacklist. Por este hecho, es probable que de pasar a ser siempre los número 1 en casi cualquier búsqueda, pasemos directamente a la página 300, con suerte: aquella última página que nadie visitará y por lo tanto, reducirá las visitas en un (en mi caso) casi 65%. Auch.

A través de los años, he visto miles de propagandas mágicas de algunos SEO que prometen elevar un sitio X hasta los primeros lugares en Google (por lo general no toman en cuenta otros buscadores). Este hecho en sí no deja de sorprenderme mucho, ya que algo sé del asunto y diría que en un mes es bastante difícil lograr ese objetivo. Verán, los principales atractivos para Google son primero el tener la antigüedad; segundo; la calidad del contenido, y tercero: velocidad de actualización. Lo siguiente es una opinión personal sobre cuáles son los puntos que considero más importantes para ascender rápidamente en un océano de información.

Si alguna vez les ha salido el mensaje “Exception printing is disabled by default for security reasons” entonces sabrán que algo se hizo mal. Sin embargo, tampoco podremos saber qué salió mal, algo relativamente importante en el caso de que estemos desarrollando algún plugin o modificando algunos comportamientos del mismo Magento.

Para activar la salida de errores, basta modificar un archivo:

cd /magento/
cp errors/local.xml.sample errors/local.xml

Y listo! Con este tip ya pueden revisar el trace que genera Magento y poder solucionar sus errores rápidamente.

u
n
r
e
a
l
4
u
.
c
o
m

Camilo Sperberg es Ingeniero Informático especializado en Linux y PHP. Éste es su blog oficial y aquí podrá leer mucha más información acerca de temáticas variadas en el bajo mundillo de la informática relacionada con esos tópicos

Because my reality... is just your virtuality

Camilo Sperberg

Debido a la gran cantidad de guiños y referencias relacionadas con el mundo informático, esta sección permanecerá siempre incompleta, al menos hasta que se complete

Futurama fan page

Oh, i'm very confortable with my sexuality, i just don't want to be slapped in the face with THEIR sexuality

Roy Trenneman en The IT Crowd S02E01