viernes, 25 de abril de 2008
Presentación sobre SQL - Conceptos
Aquí les dejo con una presentación que hice para un Curso de PHP que estoy impartiendo. El fin es explicar los principales conceptos del lenguajes SQL.
martes, 22 de abril de 2008
mysql_num_rows vs. SQl - SELECT COUNT(*)
Haciendo una paginación para un proyecto me dió la curiosidad de verificar cuál método es más efectivo para contar el total de registros. Bueno a pesar de ser obvio que con sql count(*) sería más rápido, me propuse hacer las pruebas y estos fueron los resultados:
Conclusión
A las personas que todavía realizan las paginaciones con mysql_num_rows, preferiblemente usen sql (función COUNT(*)).
Saludos ...
- Prueba con SELECT COUNT(*) FROM tabla
Fecha: 22/04/2008 11:35:17 am
Test con count(*) - registros = 44069
Tiempo 0.00441598892212 segundos - Prueba mysql_num_rows
Fecha: 22/04/2008 11:35:21 am
Test con mysql_affected_rows - registros = 44069
Tiempo 59.3658621311 segundos
1.
2. require('../benchmark.php');
3. $caso = 'mysql';
4. $file = '../var/bench_databasecount.txt';
5. try{
6. Benchmark::startBenchmark($file);
7. $conn = mysql_connect('localhost', 'root', 'pannet1');
8. mysql_select_db('test', $conn);
9. switch($caso){
10. case 'count':
11. $sql = "SELECT COUNT(*) as contador FROM tabla";
12. $rs = mysql_query($sql, $conn);
13. $count = mysql_fetch_array($rs);
14. Benchmark::pushLog('Test con count - registros = '.$count['contador']."\n", $file);
15. break;
16. case 'mysql':
17. $sql = "SELECT * FROM tabla";
18. $rs = mysql_query($sql, $conn);
19. $count = mysql_num_rows($rs);
20. Benchmark::pushLog('Test con mysql_affected_rows - registros = '.$count ."\n", $file);
21. break;
22.
23. }
24. Benchmark::endBenchmark($file);
25. echo 'Termino';
26. }catch(Exception $e){
27. echo $e->getMessage();
28. }
29. ?>
30.
31.
Conclusión
A las personas que todavía realizan las paginaciones con mysql_num_rows, preferiblemente usen sql (función COUNT(*)).
Saludos ...
martes, 15 de abril de 2008
Patrón Singleton en PHP
Les dejo un ejemplo del patrón singleton aplicado en php. Es bien útil para manejar las conexiones a la base de datos.
Saludos ...
1. <?php
2. class DB {
3. private static $_singleton;
4. private $_connection;
5. private function __construct()
6. {
7. $this->_connection = mysql_connect();
8. }
9. public static function getInstance()
10. {
11. if (is_null (self::$_singleton)) {
12. self::$_singleton = new DB();
13. }
14. return self::$_singleton;
15. }
16. }
17. $db = DB::getInstance();
18.
19. ?>
Saludos ...
jueves, 10 de abril de 2008
Sound Juicer para extracción de música
Ubuntu trae una herramienta muy buena para la extracción de música en los cd's. Se llama Sound Juicer. Para poder guardar las canciones en formato mp3 se necesita bajar el paquete gstreamer0.10-plugins-ugly-multiverse.
#: sudo aptitude install gstreamer0.10-plugins-ugly-multiverse.
Después debes entrar Sound Juicer y buscar las opciones en Editar -> Preferencias -> Editar Perfiles.
Debes agregar un nuevo perfil con los siguientes datos:
Fuente: Guía Ubuntu - Sound Juicer
Saludos ...
#: sudo aptitude install gstreamer0.10-plugins-ugly-multiverse.
Después debes entrar Sound Juicer y buscar las opciones en Editar -> Preferencias -> Editar Perfiles.
Debes agregar un nuevo perfil con los siguientes datos:
- Nombre: Calidad de CD mp3 optimo
- Descripción del perfil: Calidad de mp3 a 190 kbs
- Pipeline de Gstreamer: audio/x-raw-int,rate=44100,channels=2 ! lame name=enc bitrate=192 mode=Stereo
- Extensión: mp3
- Seleccionar el checkbox que dice ¿Está activo?
Fuente: Guía Ubuntu - Sound Juicer
Saludos ...
martes, 8 de abril de 2008
Problemas con mi celular y el bluetooth de mi laptop en Ubuntu Linux
Algunas veces había intentado pegar mi celular (Sony Erickson w300) a mi laptop (Dell XPS 1330), pero me salía un error de que no podía realizar la conexión (obex://[–]...) . Para resolver este problema se debe instalar un paquete llamado gnome-vfs-obexftp.
#: sudo aptitude install gnome-vfs-obexftp
Bueno espero les ayuden en algo...
Saludos ...
Fuente: http://www.davidsuarez.es/?p=472
#: sudo aptitude install gnome-vfs-obexftp
Bueno espero les ayuden en algo...
Saludos ...
Fuente: http://www.davidsuarez.es/?p=472
domingo, 6 de abril de 2008
Peleas de Robots
Buscando videos sobre Lego Mindstorms me encuentro con un video bastante cómico de una pelea de dos robots. Éstos robots son bastante ágiles y uno de ellos llega a dar hasta un mortal jajaja. Aquí les dejo con el video:
viernes, 4 de abril de 2008
Problemas con mysql instalando sphinx en Ubuntu Linux
Instalando sphinx (search engine) en mi máquina del trabajo (Dell Optilex gx520 Ubuntu Gusty 7.10), me topo con un problema relacionado con mysql. Me aperece que no encuentra las librerías de mysql y me aconseja que instale el paquete mysql-devel. Buscando en google me doy cuenta que en ubuntu el paquete no se llama mysql-devel, sino libmysql++-dev.
Instalando este paquete, no tendrás problemas para compilar el sphinx en tu máquina con ubuntu. Claro ántes debes tener instalado mysql en tu máquina.
Espero les ayude en algo si llegan a tener este problema.
Saludos ...
Instalando este paquete, no tendrás problemas para compilar el sphinx en tu máquina con ubuntu. Claro ántes debes tener instalado mysql en tu máquina.
Espero les ayude en algo si llegan a tener este problema.
Saludos ...
Etiquetas:
linux,
searchengine,
sphinx,
ubuntu
jueves, 3 de abril de 2008
Primer Lego MindStorms en la clase de Robótica
Este semestre nos toca la materia de Robótica. Una materia bastante interesante y que ha despertado cierto interés por parte mía y de unos amigos. En las primeras clases estamos aprendiendo lo básico, pero viendo algunos videos en youtube, nos ha llamado más aún la atención lo que se puede hacer con estos juguetes.
Aquí les dejo con un video (de mi celular, no muy buena resolución jeje) del primer robot que armamos en la clase.
Saludos ...
Aquí les dejo con un video (de mi celular, no muy buena resolución jeje) del primer robot que armamos en la clase.
Saludos ...
miércoles, 2 de abril de 2008
Clase en php para filtrar texto
Cuando creamos un foro por ejemplo nos vemos en la necesidad de crear filtros para malas palabras. La siguiente clase se encarga de filtrar texto dependiendo de un arreglo de palabras que estén definidas con anterioridad.
Fuente: Libro The PHP Anthology, Volumen II.
Código:
/**
* WordFilter
* Class for censoring words in text
* @access public
* @package SPLIB
*/
class WordFilter {
/**
* An array of words to censor
* @access private
* @var array
*/
var $badWords;
/**
* WordFilter constructor
* Randomly generates strings to censor words with
* @param array an array of words to filter
* @access public
*/
function WordFilter($badWords)
{
$this->badWords = array();
srand((float)microtime() * 1000000);
$censors = array('$', '@', '#', '*');
foreach ($badWords as $badWord) {
$badWord = preg_quote($badWord);
$replaceStr = '';
$size = strlen($badWord);
for ($i = 0; $i < $size; $i++) {
shuffle($censors);
$replaceStr .= $censors[0];
}
$this->badWords[$badWord] = $replaceStr;
}
}
/**
* Searches for bad words in text and censors them
* @param string text to filter
* @return string the filtered text
* @access public
*/
function filter($text)
{
foreach ($this->badWords as $badWord => $replaceStr) {
$text = preg_replace('/' . $badWord . '/i', $replaceStr,
$text);
}
return $text;
}
}
// An array of words to replace
$badWords = array('tubby', 'tubbies', 'byebye');
// Include the word file with the list of bad words
$wordFilter = new WordFilter($badWords);
// $text simulates some data from the database
$text = 'byebye!';
// Filter the words
$text = $wordFilter->filter($text);
echo $text;
?>
Fuente: Libro The PHP Anthology, Volumen II.
Suscribirse a:
Entradas (Atom)