La Gaceta de Linux ...¡ haciendo a Linux un poco más divertido !

Preparando para mis Entrevistas Parte 1: MySQL y Perl

Por Mark Nielsen

Traducción al español por Luis Ham
el día 5 de Marzo de 2005, para La Gaceta de Linux

  1. Introducción
  2. Modulo de Herencia Múltiple Clase::Herencia
  3. Un Script rapido en Python para tocar mis mp3's en Real Player.
  4. Certificación MySQL
  5. La preparación para la Certificación de MySQL Avanzada
  6. Instalando MySQL 4.1
  7. Mi script Python para ejecutar un ejemplo de código para certificación
  8. Usando MySQL 4.1
  9. El próximo mes: Clustering, Master/Slave, Procedimientos Stored en MySQL
  10. Conclusión

Introducción

Me despedí, porque estoy haciendo un par de cosas para prepararse para las entrevistas:
  1. Muchas entrevistas de Perl involucran las preguntas sobre la herencia múltiple. Aunque nadie alguna vez usa la herencia múltiple, a entrevistadores les gusta siempre para preguntar por él. Así, yo decidí hacer un módulo para contestar cualquiera y todas las preguntas sobre la herencia múltiple para una clase dada en Perl. Si alguien me pregunta por la herencia múltiple, yo los mostraré apenas el módulo de Perl que yo escribí. Este módulo de Perl probablemente se llamará Clase::Herencia si se acepta en CPAN. Yo ya empecé el proceso para él.
  2. Yo necesito un script rapido para tocar mis mp3s en orden aleatorio.
  3. Yo estoy estudiando para la Certificación Profesional de MySQL, porque yo decidí hacer dos cosas con respecto al examen:
    1. Hacer un script bash para instalar MySQL una y otra vez. En el futuro, todo lo que tengo que hacer son sólo cambiar el número de versión y el script debe instalar las nuevas versiones automáticamente. Me gustan siempre descargar e instalar el software en lugar de usar las Rpms; Yo quiero saber cómo ellos construyeron el material.
    2. Escribir un script en Python para ejecutar un serie de órdenes representan las cosas similares a lo preguntado durante el Examen Profesional de MySQL. Esto ayuda a que recuerde las órdenes, y esperanzadamente les dará una buena idea del tipo de órdenes que ellos necesitan practicar para aprender MySQL a otras personas.
Así, este artículo se centra alrededor de mi experiencia de estudiante para la certificación de MySQL y lo que yo hice para ayudarme durante las entrevistas de Perl.

(Actualizado: yo terminé pasando el Examen Profesional de MySQL. Los ejemplos que yo realmente hice me ayudaron mucho. También, terminé poniendo mi módulo de Clase::Herencia modulo en CPAN bajo la categoría 06_Data_Type_Utilities/Class .Está algo crudo, pero es una buena salida. Yo planeo en restablecerlo completamente debido a algún código feo.)


Modulo de Herencia Múltiple Clase::Herencia

Después de pasar por unas entrevistas, yo decidí escribir un módulo para contestar cualquiera y todas las preguntas sobre la herencia múltiple dado una clase y método. Si alguien me pregunta algo por la herencia múltiple, yo les mostraré apenas el módulo que yo escribí para CPAN. Este módulo tiene un uso muy pequeño probablemente fuera de entrevistas; sin embargo, yo planeo agregar una cantidad de métodos al módulo para que usted puede poner a punto la herencia múltiple fácilmente y quizá incluso manipule el ambiente de herencia.

Este módulo simplemente está en sus fases de desarrollo. En el futuro, debe estar en http://cpan.perl.com.

¿Cómo la herencia múltiple trabaja en Perl? Bien, cuando usted usa la herencia en Perl, usted necesita crear un paquete. Un paquete es más un menos un manojo de opción de acciones de las funciones juntos para formar una clase (o las clases múltiples). Una clase es más o menos un nombre para un grupo de funciones (y a veces las variables). Su clase es lo que se usa para crear los objetos en Perl.

¿Así que cuál es la herencia? Digamos que usted crea que un paquete llamado el "package1" y tiene un grupo de funciones (los métodos). Usted quiere su segundo "package2" del paquete para tener todas las funciones del primer paquete pero usted no quiere volverlos a escribir todos. Cuando usted usa herencia que es exactamente lo que usted hace: usted agarra todas las funciones (los métodos) del primer paquete y los absorbe en el segundo paquete sin tener que volver a escribir las funciones. Usted hace esto especificando el nombre del primer paquete en el "@ ISA" la serie.

¿Así que cuál es la herencia múltiple? Bien, es lo que usted consigue cuando usted consigue sus funciones de más de un paquete.

¿Así cuándo usted hereda las funciones (los métodos) de los paquetes múltiples, cómo Perl escoge el método si hay más de uno con el mismo nombre? Agarra la función (el método) del primer paquete en el "@ ISA" listan que tiene esa función y paradas allí. Así, cómo usted lista sus paquetes en el "@ ISA" que la lista determinará qué paquetes se parecen encontrar una función al principio.

¿A propósito, lo que es un método? Una función que es parte de una clase.

¿Dónde está @ los thingy de ISA que definieron? Está definido en cada paquete. Cada paquete tiene su propio @ la lista de ISA. Está eficazmente vacío si usted no hace nada a él. Si usted lo define para contener cualquier número de nombres del paquete, su paquete heredará los métodos de esos paquetes.

¿Si yo tengo una cadena grande de paquetes que heredan entre si de, el último paquete conseguirá todas las funciones (los métodos) de sus padres, abuelos, los grandes abuelos, el etc? Sí, pero subirá el árbol familiar y detendrá al primer pariente que tiene la función (el método).

Para los archivos listados debajo, nosotros tenemos dos parientes de las cadenas para empaquetar el "package6". Package6 contiene dos paquetes de que hereda: el package5 y package5_2. Cada uno de estos paquetes hereda de package4 que hereda de package3 que hereda de package2 que hereda de package1 que hereda de CGI.

La meta entera de la escritura "Inherit_Test.pl" es mostrar el árbol familiar del "package6" del paquete y mostrar donde el package6 consigue el "param" del método. Usted puede modificarlo para satisfacer sus propias necesidades.

Descarga todos los archivos de abajo y entonces ejecute el "perl el Inherit_Test.pl package6 param". Usted puede cambiar el "package6" a cualquier paquete nombre y usted puede cambiar el "param" a cualquier nombre de la función. Lega el error propiamente fuera si ningún paquete o la función existe.

Intente lo siguiente:

perl Inherit_Test.pl package6 param
perl Inherit_Test.pl package4 param

Los resultados esperados para el "perl el Inherit_Test.pl package6 param":

Nosotros asumimos el nombre de archivo para el paquete es en 'package4.pm'. 
Pareciendo a la función (el método) 'el param' en la clase 'el package4', 
nosotros aprendemos esa función 'el param' viene de la clase 'CGI.'

El Árbol del padre es: el package1 de package2 de package3 CGI 

Las fuentes originales (definido) para 'el param' es: CGI

Los resultados esperados para el "perl el Inherit_Test.pl package6 param":

Nosotros asumimos el nombre de archivo para el paquete es en 'package6.pm.'  
Mirando la función (el método) 'el param' en la clase 'el package6.'

La función 'el param' viene de la clase 'el package5.'

El Árbol del padre es: el package5 package4 package3 package2 package1 el CGI package5_2 package4 package3 package2 package1 CGI 

Las fuentes originales (definido) para 'el param' es: el package5 el package5_2 de CGI
Aquí es una lista de archivos que usted necesita guardar.
  1. Class/Inheritance.pm
  2. Inherit_Test.pl
  3. package1.pm
  4. package2.pm
  5. package3.pm
  6. package4.pm
  7. package5.pm
  8. package5_2.pm
  9. package6.pm

Un Script rápido en Python para tocar mis mp3's en Real Player

Yo sólo escribí este script porque mi website, http://myopenradio.com, se movió a una mejor computadora y en lugar de deducir si el website fuera trabajando, yo apenas quise hacer un script rápido en Python que me permitiría jugar mi mp3s en un orden aleatorio. El Archivo "/usr/local/RealPlayer8/realplay.bat" hace dos cosas:
  1. Ejecuta mi script Python para crear un "/ tmp/temp1.smil" archivan que es una listado de mis mp3s en un orden el orden aleatorio.
  2. Entonces ejecuta RealPlayer y puntos él a ese archivo.
Ese script le muestra cómo usar las expresiones regulares, cómo conseguir una lista de archivos en un directorio, cómo filtrarse la lista de archivos que usan el la expresión regular, y cómo doblar a través de una lista en un orden aleatorio. También, usted podría combinarlo con URLs conocido de radio de NPR muestra u otro los arroyos de los medios de comunicación y los mezcla con su mp3s; eso es cómo usted puede crear su propia radio. Su radio podría tocar una lista de canciones, entonces algunas muestras, y entonces más canciones, etc. Quizás, si usted puede vertirlo legalmente a clientes, usted podría incluir los anuncios.
  1. # NEW FILE:
    ### Save this as /usr/local/RealPlayer8/realplay.bat
    /usr/local/RealPlayer8/realplay.py
    /usr/local/RealPlayer8/realplay /tmp/temp1.smil
    
  2. realplay.py

Certificación MySQL

Hay dos niveles diferentes de Certificación de MySQL. La certificación del Centro cubre el SQL general y así como MySQL el material específico. Para una persona senior DB, no toma mucho estudiar para pasar. Sin embargo, para el MySQL la Certificación Profesional, usted realmente quiere estudiar todas las órdenes, incluso los unos que usted nunca usará, porque el examen va a cubrirlos. Estudiando para el examen le da una apreciación global buena de MySQL y le hace toma note de material con que usted nunca se habría molestado.

Poniéndose MySQL-certificado ahora es bueno porque no hay tantas personas listadas. Después de que usted pasa un examen, podría tomar un par de semanas antes de ser listada públicamente. Después de que usted pasa su examen, usted necesita anotar en y permitir las personas ven que exámenes que usted ha pasado. Usted encuentra la lista de los Profesionales de MySQL aquí.


Preparación para la Certificación Avanzada de MySQL

Yo recomiendo mucho que usted estudie la guía de estudio de MySQL Press; es un buen libro. Normalmente los libros de la certificación contienen mucha basura, pero este es realmente muy útil (en mi opinión).

Después de que usted ha pasado la Certificación del Centro y usted está listo para la Certificación Profesional, usted debe ejecutar los scripts que listo abajo. el script "Compile_MySQL.bat" es simplemente un bash script. Volará cualquier instalación anterior en caso de que usted quiera ejecutar el script varias veces. El script "Post_Mysql.py" creará un log de todas las ordenes que ejecuta para que usted pueda regresar y puede hacerlo solo uno-por-uno. Tomaría demasiado para explicar lo que cada orden hace, para eso yo le aconsejo fuertemente que lea la o el Documentación de MySQL en línea o el estudio guía para entender lo que cada orden hace.


Instalando MySQL 4.1

El propósito de este script es mostrar como usted puede instalar MySQL fácilmente. Básicamente, en el futuro, todo lo que usted tiene que hacerle el cambio de algunas variables de "exportación" en el script cuando sale un nueva versión de MySQL, y debe instalar las nuevas versiones simplemente fino. Un acercamiento similar puede tomarse para instalarse cualquier pedazo de software, como Apache, Perl, Python, Zope, etc. yo normalmente hago un script de la instalación, y después cuando necesito actualizar, realizo una copia de seguridad de todos mis datos y software, modifico el script ligeramente, y entonces lo ejecuto. A menudo, si usted no apunta todas sus órdenes como un script, se pone muy doloroso para deducir cómo usted instaló el software anteriormente.

El script debe ejecutar con tal de que usted no tenga ningún software perdido. Primero, descargué el 3 archivo config y entonces descargué el script. Ejecute el script como sigue:
bash Compile_MySQL.bat

  1. my.cnf
  2. Start_MySQL
  3. Stop_MySQL
  4. Compile_MySQL.bat

Mi script Python para ejecutar el código de la muestra para la Certificación

El propósito de este script para ejecutar las órdenes después de una instalación para probar una lista de órdenes de MySQL para el Examen Profesional MySQL. Yo realmente no expliqué cada orden, pero es todo explicado en la Guía del Estudio y la documentación en línea que yo he recomendado anteriormente.

Este script alterará el ambiente de MySQL. Ejecutará una serie de órdenes del ejemplo y reiniciara el servicio MySQL que le exigirá que use las nuevas contraseñas cuando usted intente conectar a MySQL en el futuro. Yo sugiero que usted cambie las contraseñas para todas las cuentas después de que usted hace con este script.

Después de que usted ejecute este script, puede conectarse como:
mysql -u root -p'this is a dumb password, please change.'

Ejecute como sigue:
python Post_Mysql.py /usr/local/mysql4.1

Usando Post_Mysql.py


El próximo Mes: Clustering, Master/Slave, Procedimientos Guardados en MySQL

El Título lo dice todo, salvo el hecho que estaré usando MySQL 5.0 para probar los procedimientos guardados.

Conclusión

Clase::Herencia es un modulo bastante fresco (por favor visite CPAN para la última versión.) El listado para este artículo era solamente el primero usado para mi propio comienzo. Cuando terminé este artículo, ya agregué mas material y arregle algunos bugs. Yo todavía son infeliz con el modulo y pienso que hay mucho trabajo para hacerlo más exacto y eficaz. Si usted estudia el modulo y deduce como funciona, esta listo para cualquier pregunta de herencia múltiple que un entrevistador tirara a usted. Yo planeo en agregar mucho más métodos al módulo hacer un montón de material.

Acerca del script Python para tocar mp3s, Espero que el pequeño script ayude a las personas a entender cómo usar Python. Python es un lenguaje de programación muy novedoso y es mi idioma de opción. Tiene mucho potencial.

Sobre los scripts de MySQL: Probablemente debo de haber explicado las órdenes de MySQL un poco más en detalle, pero si usted compra el libro o leyó la documentación en línea, usted debe poder entenderlo. Si usted maneja ejecutar mis scripts correctamente, mire el log de archivos en el directorio de salida donde usted ejecuta el script Post_Mysql.py . Debe tener un par de archivos con todos los comandos que ejecutó para que usted pueda pasar uno por uno. Con suerte, debe ejecutar los comandos uno por uno y debe ver lo que ellos haces. También debe seguir a lo largo de la guía del estudio de MySQL (MySQL Press) como tu haces entonces.

 


[BIO] Mark Nielsen esta disfrutando de vacaciones cortas y esta pasándose tiempo en mejorar (las certificaciones y material). Durante su tiempo libre, el usa Python firmemente para matemáticas y proyectos web. Puedes localizar a Mark en su viejo website tcu-inc.com.

Copyright © 2004, Mark Nielsen. Publicado bajo la Open Publication license

Publicado en la edición 108 de la Gaceta de Linux, Noviembre 2004