19 de septiembre de 2013

Cambiando los parámetros del índice FullText de MySQL

Por defecto el índice FULLTEXT de MySQL indexa palabras de 4 letras.
Esto se queda algo corto, ya que no indexará palabras como CSS, DNA, PHP ó SQL !!!

Para arreglarlo podemos hacer que el indice FULLTEXT indexe palabras igual o mayores de 3 letras,
del siguiente modo:

1) Editar el archivo: /etc/mysql/my.cnf

2) Añadir las lineas:

[mysqld]
ft_min_word_len=3
[myisamchk]
ft_min_word_len=3


3) Reiniciar el servidor MySQL:
# service mysql restart

4) Borrar el indice FULTEXT
mysql> ALTER TABLE tablename DROP INDEX indexname

4) Crear nuevo indice FULLTEXT
mysql> CREATE FULLTEXT INDEX indexname ON tablename (col_name, ...)


...y CSS y SQL ya están indexadas en los indices FullText.

Ref.:
http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html

17 de septiembre de 2013

BASH: Pasar de Segundos a Horas Minutos y Segundos

Veamos este BashScript de ejemplo para pasar de SEGUNDOS a HORAS:MINUTOS:SEGUNDOS

#!/bin/bash
segundos=1000
hms=`date -d "1970-01-01 $segundos sec" +"%H:%M:%S"`
echo "$segundos segundos son $hms H:M:S"
exit 0

..y problema resuelto en 00:00:01 horas, minutos y segundos.

BASH: Comparar fechas de archivos

Útil para Bash Scripts que operen con fechas de modificación de archivos:

#!/bin/bash

tiempo=$((60*60*6)) # 6 horas, si quieres seis días: 
                    # tiempo=$((60*60*24*6))

fichero=`stat -c %Y mi_fichero` # Fecha y hora en segundos de ultima actualizacion
ahora=`date +%s` # Fecha y hora actual en segundos

diferencia=$((${ahora} - ${fichero})) # Calculamos la diferencia

if [ ${diferencia} -gt ${tiempo} ]; then
  echo "Hace mas de ${tiempo} segundos que se actualizó"
else
  echo "Tan solo hace ${diferencia} segundos que se actualizó"
fi

13 de septiembre de 2013

Python: Argumentos de un script python

Ejemplo un script de python con 4 argumentos:

script-python.py a1 a2 a3 a4

Es el script de python hay que importa la lierir sys:

import sys

Número de argumentos:   len(sys.argv)

Acceso a cada argumento
    sys.argv[0]   es igual al nombre del archivo script
    sys.argv[1]   es igual a a1
    sys.argv[2]   es igual a a2
    sys.argv[3]   es igual a a3
    sys.argv[4]   es igual a a4

Para comprobar si hay algún argumento:

    if len(sys.argv) >= 2:
        print "Ok, hay argumento "
    else:
        print "Debes indicar un argumento"
        sys.exit()

Python: comprobar la existencia de un fichero

#!/usr/bin/python
import os
try:
    os.stat("ruta del fichero")
    print "Fichero SI existe"
except:
    print "El fichero NO existe"

Python: concatenar variables

En Python al concatenar variables que no sean de tipo string, dará error.

Por ejemplo ...

$python
Python 2.7.4 (default, Apr 19 2013, 18:28:01)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 1000
>>> b = "www.misnotaslinux.blogspot.com"
>>> c = a + b
Traceback (most recent call last):
  File "", line 1, in
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Hacerlo pasando las variables int a str antes de concatenar:

>>> a = 1000
>>> b = "www.misnotaslinux.blogspot.com"
>>> c = str(a) + b
>>> print c
1000www.misnotaslinux.blogspot.com
>>>

8 de septiembre de 2013

Separador de miles en Bash

Usar printf.

Aqui un par de links que lo explica:
http://www.rokerias.com/2013/06/imprimir-separador-de-miles-en-bash.html
http://linux.about.com/library/cmd/blcmdl3_printf.htm

jQuery: un toolkit de JavaScript

Un objetivo que tengo es aplicar JavaScript a página web www.pedeefes.com para aumentar su interactividad y capacidad de respuesta con los usuarios.

Como es habitual en el actual mundo web, los temas de diseño son críticos y para optimizar el tiempo empleado y el resultado obtenido hay que acudir a frameworks o toolkits que hagan mas productiva la tarea de programación .


Uno de los que mas desarrollo y expansión esta teniendo es jQuery.

Mas que un framework se trata de un toolkit que hace mucho mas llevadera la programación de efectos gráficos e interactividad con el usuario basado en JavaScript.

Su lema: Escribir menos, hacer mas, realmente se cumple.
Aunque finalmente siempre es necesario escribir algo de código en JavaScript, el trabajo duro lo realiza jQuery con una sintaxis sencilla y una enorme potencia.

La curva de aprendizaje es rápida y se puede comenzar sin saber nada de JavaScript o mejor dicho, ir aprendiendo los fundamentos de JavaScript al mismo tiempo.

También es necesario tener conocimientos de HTML, CSS y DOM para sacar el máximo partido a jQuery.

En cuanto a bibliografia os remito a www.pedeefes.com donde podréis encontrar numerosos pedeefes sobre jquery, javascript, html, css3, y muchas muchas cosas mas.