
Archivo para la categoría ‘Programación web’ .



Revisando unos papeles he encontrado una vieja “chuleta” en la que se explica como optimizar nuestro código SQL para realizar las consultas rápidamente
.
-
Búsqueda de palabras
/* Muy rápida */ SELECT * FROM tabla WHERE MATCH (`campo`) AGAINST ('palabra')
/* Rápida */
SELECT * FROM tabla WHERE MATCH (`campo`) AGAINST (‘+palabra’ IN BOOLEAN MODE)
/* Lentas */
SELECT * FROM tabla WHERE RLIKE ‘(^| +)palabra($| +)’
/* o */
SELECT * FROM tabla WHERE
RLIKE ‘([[:space:]]|[[:<:]])palabra([[:space:]]|[[:>:]])’
-
Búsquedas contenidas
/* Muy rápida */ SELECT * FROM tabla WHERE MATCH (`campo`) AGAINST ('palabra*' IN BOOLEAN MODE)
/* Rápida */
SELECT * FROM tabla WHERE FIELD LIKE ‘palabra%’
/* Lentas */
SELECT * FROM tabla WHERE MATCH (`campo`) AGAINST (‘*palabra*’ IN BOOLEAN MODE)
/* o */
SELECT * FROM tabla WHERE campo LIKE ‘%palabra%’
-
Número de registros
/* Muy rápida */ SELECT SQL_CALC_FOUND_ROWS * FROM tabla WHERE condición LIMIT 0, 10 SELECT FOUND_ROWS()
/* Rápido */
SELECT * FROM tabla WHERE condición LIMIT 0, 10
SELECT COUNT(clave) FROM TABLE WHERE condición
PD. No se la página de la que lo saqué en su momento, si alguien lo sabe que lo diga que se añade a la entrada
.


Navegando por internet he visto un gráfico que nos ilustra con bastante precisión en que dedicamos el tiempo mientras desarrollamos una página web
.



CSS Reset es un pequeño trozo de código que permite formatear todos los estilos por defecto, son muy útiles para evitar posibles problemas a la hora de maquetear un sitio web.
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; } /* remember to define focus styles! */ :focus { outline: 0; } body { line-height: 1; color: black; background: white; } ol, ul { list-style: none; } /* tables still need ‘cellspacing=”0″‘ in the markup */ table { border-collapse: separate; border-spacing: 0; } caption, th, td { text-align: left; font-weight: normal; } blockquote:before, blockquote:after, q:before, q:after { content: “”; } blockquote, q { quotes: “” “”; }
Leído en: Kabytes.


Muchas veces cuando diseñamos una página web nos encontramos con el problema de que en algunos navegadores (el 99% de las veces es Internet Explorer) nuestro CSS no se ve correctamente. Para solucionar estos problemas stylizedweb ha publicado una lista de 10 hacks para que nuestros diseños se vean correctamente en varios navegadores
.
- Vertical align div
- Min-Height
- PNG transparency
- Autoclear
- Reset CSS
- Scrolling Render IE
- Opacity
- PRE Tag
- Li Background Repeat IE
- Good to know


Cheat-Sheets.org es un enorme recopilatorio de enlaces hacía chuletas, guías de información rápida, trucos y resúmenes para un montón de lenguajes de programación y otras utilidades. Tenemos desde información para .NET hasta información sobre Doctypes, ruby, sql, ubuntu y un largo etcétera. Un baúl de enlaces hacía información interesante que nos puede venir bien en cualquier momento.Enlace: Cheat-Sheets.org
Vía: diarioTHC.


Para utilizar estos gráficos debemos descargar el css que tiene un peso aproximado de 5 KB y aplicarlo, las graficas pueden utilizar además de un color de plano imágenes, eso esta bueno para lograr efectos degradados, sombras, etc.

Web: Pure CSS Data Chart
Vía: Kabytes.


Geany es el perfecto termino medio entre un editor de textos y un IDE. Incluye las funciones básicas como númeración automática de las líneas, resaltado de código y autocompletado. Admite una amplia lista de tipos de ficheros, entre los que se incluyen C, C++, php, HTML, CSS Pero además posee funciones de compilación e incluso, en la versión para Linux, podemos emular una terminal sin salir del Geany con el que compilar nuestro código y ejecutarlo. Así, sin más, podemos editar y probar el código sin salir de Geany con lo que es muy productivo y ligero de usar.
Existen versiones para Linux y para Windows, para este último es necesario instalar además las librerias GTK.
Leído en: Bitelia.




En esta ocasión veremos la forma de crear archivos comprimidos en formato ZIP. Para este ejemplo utilizaremos la clase zipfile escrita por Eric Mueller y muy bien explicada en Creating ZIP files with PHP.
Descargando la clase zipfile
Lo primero es descargar la clase zipfile desde zipfile.inc.txt y renombrarla a zipfile.php. Esta clase tiene dos metodos add_dir() y add_file() que permite agregar una carpeta o un archivo al zip que se esta creando.
Creando nuestro primer ZIP
Lo primero es incluir el archivo recién descargado, luego de ello creamos una instancia de la clase, para este ejemplo a la instancia lo llamamos $zipfile. Luego de ello agregamos un archivo de la siguiente forma.
-
require (“zipfile.php”);
-
$zipfile = new zipfile();
-
$zipfile->add_file(implode(“”,file(“img01.jpg”)), “foto.jpg”);
Nótese que estamos agregando un archivo llamado img01.jpg y al momento de incluirlo en el zip lo estamos renombrando a foto.jpg. Hasta este punto hemos creado un archivo zip, el siguiente paso es enviarlo al cliente, para ello agregamos headers indicando el tipo de archivo y finalmente imprimimos el archivo:
-
require (“zipfile.php”);
-
$zipfile = new zipfile();
-
$zipfile->add_file(implode(“”,file(“img01.jpg”)), “foto.jpg”);
-
-
header(“Content-type: application/octet-stream”);
-
header(“Content-disposition: attachment; filename=zipfile.zip”);
-
echo $zipfile->file();
El resultado del ejemplo lo pueden ver en http://samples.unijimpe.net/php-zip/.
Agregando carpetas al ZIP
En el caso que agregamos varios archivos y deseamos agruparlas en una carpeta, podemos utilizar el metodo add_folder. Luego de ello agregamos los archivos a la carpeta de la siguiente forma:
-
require (“zipfile.php”);
-
$zipfile = new zipfile();
-
$zipfile->add_dir(“img/”);
-
$zipfile->add_file(implode(“”,file(“img01.jpg”)), “img/01.jpg”);
-
$zipfile->add_file(implode(“”,file(“img02.jpg”)), “img/02.jpg”);
-
$zipfile->add_file(implode(“”,file(“img03.jpg”)), “img/03.jpg”);
-
-
header(“Content-type: application/octet-stream”);
-
header(“Content-disposition: attachment; filename=fotos.zip”);
-
echo $zipfile->file();
Como ven agregar carpetas y multiples archivos es muy sencillo, incluso se pueden renombrar los archivos al momento de agregarlos al archivo zip. El resultado de este ejemplo lo pueden ver en: http://samples.unijimpe.net/php-zip/zipfolder.php.
Leído en Unijimpe.


En este artículo vamos a explicar una forma de generar un archivo de audio a partir de un texto determinado con Linux (en este caso Ubuntu) y PHP.
1.-Instalamos Festival, que es el programa con el cual vamos a generar el fichero de audio a partir del texto:
apt-get install festival
2.-Una vez instalado, dispondremos de la utilidad de línea de comando text2wave que funciona de la siguiente manera:
# text2wave archivo.txt -o archivo.wav
Para no tener que crear un archivo de texto cada vez utilicemos el programa usaremos tuberias:
# echo "hola amigo" | text2wave -o archivo.wav
El código PHP
Ahora nuestro servidor está listo para generar archivos de voz desde un texto, lo único que tenemos que hacer es llamar al comando text2voice desde PHP con la función exec:
<?php exec ( 'echo "hola amigo" | text2wave -o file.wav' ); ?>
Para que veais un ejemplo más complejo, voy a meterle un formulario y un enlace al archivo generado:
<?php error_reporting ( E_ALL ); ini_set ( 'display_errors', True ); if ( isset ( $_REQUEST['text'] ) ) { $speechfile = "speech/".time().".wav"; $curDir = '/var/www/speech/'; exec ( 'echo "'. escapeshellarg ( utf8_decode ( $_REQUEST['text'] ) ) . '" | text2wave -o ' . $curDir . $speechfile ); ?><p>El archivo generado se <a href="<?php echo $speechfile; ?>">encuentra aquí</a></p><?php } ?> <form method="POST"> <textarea name="text" cols="70"></textarea><br /> <input type="submit"> </form>
Fuente original: ProgramacionWeb









