Cuentos, muestra: El fantasma del topochal

febrero 13, 2013

Acerca del cuento: orientado a cualquier lector, en especial a aquellos que se inician. Por ello es un cuento corto, que cabe en una página.

Nunca olvidemos ser niños ni la responsabilidad del adulto; así que el cuento lo preparo para que lo disfruten los niños y los adultos rescaten su infancia. Espero les guste y refresque luego de tanto código informático. Dios Jehová les bendiga a todos.

elgigantedeltopochal_textoelgigantedeltopochal

Dedicados a mi papá Gregorio Santaella por ser la fuente del texto y a mi Hijo Jesús Miguel Santaella: seguro lector exigente.

Adquiere este libro en http://articulo.mercadolibre.com.ve/MLV-432090685-libro-en-formato-pdf-de-cuentos-infantiles-_JM

Acerca de la psicolingüística

septiembre 28, 2014

Sobre las inquietudes de Miriam Rincón, revivieron unas inquietudes antiguas, que ya sofoqué al lavar mi cara con agua del río Orinoco, cuando vi maestros en los niños y nuevos constructores del lenguaje en la población mundial.

Debo precisar que las reglas sintácticas y las normas de redacción nos ayudan a entendernos mejor según un idioma, pero exagerarlas me hace recordar las leyes con que los hebreos cargaron de penurias a su población, llegándose a ejecutar a alguien por la profanación del sábado (uno de los criterios que inicialmente fijaron para la ejecución del Cristo).

¿Por qué tan dramático José?

Bueno, para algunos expertos, no se puede crear un párrafo con una sola oración, tal y como está escrito mi primer párrafo. Como para otros “filósofos” no debe utilizarse la palabra creación, cuando que mis maestras de kinder y primer grado nos auparan a crear.

Bien, mi primer párrafo en este texto consta de una sola oración ¿Se entiende o no? pues por allí van los tiros.

En una ocasión una cacatúa de la UPEL de cuyo nombre no debo acordarme casi crucificó a mi amigo Warner, porque había realizado un ensayo, con un título a manera de interrogante. Justamente saque de mi bolso un recorte del artículo escrito por el ídolo de la plumífera profesora y ésta desconcertada, optó por colocar la nota a mi amigo el payaso Bombin.

No hay expertos en la elaboración de ensayos, son tan libres como la pintura y la música; pero si debemos considerar la armonía. Nuestro cerebro es capáz de decirnos cómo hacernos entender. Muchos correctores de estilo, comprenden los enfoques literarios y figuras y artilugios de los que se valen los escritores para hacer llamativa su obra. Hacen las correcciones necesarias a la sintáxis y a la redacción, cuando carece de sentido(depende también de cuál es la intención del autor).

En fin, entre editores, correctores, diseñadores y autores puede darse el equipo perfecto o la batalla campal.

Pero algunos letrados en letras, suponen que si tu no escribes como Cervantes o Gallegos, no están en nada. Cada quien es libre de juzgar como crea conveniente, pero mientras ellos se deciden yo sigo publicado y escribiendo, dibujando, pintando, cantando, soñando y sufriendo, todo lo humano.

Por otra parte, en cuanto al texto expositivo, aquí si hay un conjunto de reglas que obedecen a la integridad del escrito en conjunto con la veracidad y yo estoy de acuerdo, esa es mi postura, aunque sé que esas normas irán flexibilizándose con el correr del tiempo.

Si yo soy un escritor, mi hijo lo es y mi padre un cuentacuentos genial, y mi amigo Warner Bombín podría dictar la cátedra del siglo, pero no lo hace, el al igual que otros tantos sabemos, la verdad nunca es absoluta.

Humildemente somos investigadores, falibles… hasta la profesora que se equivocó merece nuestra comprensión, de ella obtuvimos muchas claves; el término plumífero en este caso es una venganza (muy humana de mi parte) caricaturizándola un tanto, porque al fin y al cabo, si yo no llego ¿por casualidad o destino? a Warner lo raspan.

Todos somo escritores, los textos de psicolingüística son necesarios, los profesores ¡claro que sí! y los autodidactas también y ¿qué haríamos sin los profesionales correctores de estilo, sin editores, periodistas, ilustradores, técnicos y personal de servicio en general?

Espero ampliar este ensayo con otros de temas específicos referentes a interculturalidad, lenguaje del color, del trazo, de la imagen y otros tantos aspectos que tengo ya armados, puesto que esto es solo una introducción.

Python Altagracia de Orituco

marzo 21, 2014

Estimados lectores, de Altagracia y otras latitudes: gracias a Dios por poner en mi camino a la gente del Tecnológico de los Llanos sede Altagracia, con ellos compartí código y compilé sus trabajos que voy publicando acá poquito a poco. Aquí, Carlos Utrera nos deja una conexión  a SQLite con una consulta general que sugieo la transformen en clase y módulo y l resto de las operaciones básicas:

#!/usr/bin/python
#encoding=utf-8

import MySQLdb,os

conn=MySQLdb.connect('localhost',user='root',passwd='123456',db='escuela')
conexion=conn.cursor()
os.system('clear')

def listaEstudiantes():

    sqlEstudiantes="SELECT * FROM estudiantes order by apellidos,nombres asc"
    consultaEstudiantes=conexion.execute(sqlEstudiantes)
    filaEstudiante=conexion.fetchone()
    numRegistro=1
    while filaEstudiante!=None:

        print "Id: ",filaEstudiante[0]," Cé©dula: ",filaEstudiante[3]," Nombres: ",filaEstudiante[1]," Apellidos: ",filaEstudiante[2]

        filaEstudiante=conexion.fetchone()
        numRegistro+=1

def consultaEstudiante(estudianteId):
    #busco la existencia de un estudiante con Id conocido
    sqlBuscaEstudiante="SELECT * FROM estudiantes where id="+estudianteId
    consulta=conexion.execute(sqlBuscaEstudiante)
    #se comprueba si hay resultado de la consulta
    if conexion.rowcount>0:
        #si lo hay, se presenta la ventana de modificación
        filaEstudiante=conexion.fetchone()
        cedula=filaEstudiante[3]
        nombre=filaEstudiante[1]
        apellido=filaEstudiante[2]
        telefono=filaEstudiante[4]
        print "Modificando el estudiante de cédula: "+str(cedula)
        print "Nombre actual: "+nombre
        nuevoNombre=raw_input("Nuevo nombre: ")
        print "Apellido actual: "+apellido
        nuevoApellido=raw_input("Nuevo apellido: ")
        print "Los datos nuevos serán:"
        print "Nombre: "+nuevoNombre
        print "Apellido: "+nuevoApellido
        respu=raw_input("Ingrese 'S' para confirmar, otra para rechazar los cambios->")
        if respu=="S" or respu=="s":
            #se cambia
            sqlModificaEstudiante="update estudiantes set nombres='%s',apellidos='%s' where id=%s"%(nuevoNombre,nuevoApellido,estudianteId)
            modificacion=conexion.execute(sqlModificaEstudiante)
            if modificacion>0:
                print "Datos modificados satisfactoriamente"
            else:
                print "Datos no han sido modificados"
        else:
            print "Cambios rechazados"

        raw_input("Presione ENTER para continuar")

    else:
        print "NO existe el estudiante"
        raw_input("Presione ENTER para continuar")

salir=0
while salir==0:
    print "\t\tMenú de selección"
    print "\t\t*****************\n\n\n"
    print "\t\tSeleccione su opción:\n\n"
    print "1: Listar estudiantes"
    print "2: Agregar nuevo registro"
    print "3: Modificar registro"
    print "0: Salir del sistema\n\n\n\n"
    opcion=raw_input("Opción: --> ")
    if opcion=="1":
        listaEstudiantes()
    if opcion=="2":
        print "Agregando registro..."
        cedula=raw_input("Cédula de identidad: ")
        nombres=raw_input("Nombres: ")
        apellidos=raw_input("Apellidos: ")
        telefono=raw_input("Núm Teléfono: ")
        #no voy a validar...
        sqlInserta="INSERT INTO  `escuela`.`estudiantes` (id,nombres,apellidos,cedula,telefono)"
        sqlInserta+="VALUES (NULL ,'%s','%s','%s','%s')"%(nombres,apellidos,cedula,telefono)
        print sqlInserta
        conexion.execute(sqlInserta)
    if opcion=="3":
        estudianteId=raw_input("Código del estudiante: ")
        consultaEstudiante(estudianteId)
    if opcion=="0":

        salir=1
        print "Saliendo de sistema...."

Inglés Técnico

diciembre 19, 2013

Este espacio sirve de referencia desde términos de uso general al glosario técnico referente al área de Informática.

Algorítmica y programación

diciembre 19, 2013

Esta entrada se utilizará para comentar todo lo referente al análisis y propuestas de soluciones, e incluso su desarrollo. También se puede comentar acerca de los estándares de calidad desde cualquiera de los puntos de vistas posibles en función de mejorar la calidad del proceso analítico, diseño, desarrollo, pruebas o reingeniería entre otras actividades inherentes a la programación informática.

Soporte Técnico GNU/Linux

noviembre 12, 2013

Bienvenidos a este espacio. Aquí pueden dejar sus inquietudes acerca de comandos y procedimientos en general, también filosofía del software libre.

Al principio existen unas definiciones de particionado, instalación y virtualización. Pero en secuencia se desea que un grupo de participantes transcriban mis clases, a manera de que prueben esta entrada y se convierta en mi pizarrón del curso, como producto de lo que les he suministrado.

Apuntes de postgreSQL, parte I

marzo 9, 2013

Bienvenido a mis apuntes de postgresql, espero le pueda ser útil, este es el primer archivo, preparo otra serie de apuntes.

 

—————

clase 1

—————

En algunos casos se tiene problemas de conexión
Configurar postgresql

#nano /etc/postgresql/8.3/main/postgresql.conf

listen adresses <–descomentar

#password_enc <–descomentar

luego ctrl-x y si para salvar el buffer

Reiniciar el servidor de postgress
#/etc/init.d/postgresql8.3 restart

su postgre <– en caso de que se llame así el usuario
Ahora si
$psql
curso==>     <–este es en caso que así se llame el prompt
/q
$createuser vit

creacion de base de datos si <–en este caso porque es para un curso, se le da solo este permiso

$exit <–este comando hasta que aparezca el usuario del sistema por defecto, ejemplo vit@canaima$

$createdb curso
curso==>
curso==>psql
curso==>create table provincias(prefijo integer, nombre varchar(20));
curso==>insert into provincias values(987, ‘leon’)
curso==>select * from provincias;
curso==>delete from provincias where prefijo=91;
curso==>select * from provincias;

—————-
clase 2
—————-
Ayer se creo un usuario llamado vit y una base de datos llamada curso
su vit
createdb curso2
dropdb curso2
psql curso
#curso==>/l                     barra invertida y ? lista todos los comandos

Tengo problemas de configuracion
$su
#su postgres

el usuario postgres es el administrador por defecto de la dbm postgres
puedo cambiarle la clave al usuario

$createdb xxx

createuser prueba2

createuser -h 192.168.1.106 -p 154 -d -A -; 756 usuario

psql postgre
postgre#=CREATE GROUP asl WITH USER vit,prueba,prueba2;

CREATE GROUP asl;
\dg
ALTER GROUP asl ADD prueba2;
\dg
ALTER GROUP asl DROP prueba2;
\dg
DROP GROUP asl;
\dg
DROP USER prueba,prueba2;
\dg

Ejercicio:
Base de datos libreria
Usuarios:gerente,editor,vendedor1,vendedor2.
Grupos:ventas,editores.
Tablas:clientes,libros,ediciones,editores.

El CREATE USER es as’i en mayusculas dentro de l ambiente postgresql
desde el propmpt de gnu&linux, se invoca al programa createuser

para crea la bd desde fuera
createdb libreria
psql postgre
CREATE USER gerente;
CREATE USER editor;
CREATE USER vendedor1;
CREATE USER vendedor2;

CREATE GROUP editores WITH USER editor;
CREATE GROUP ventas WITH USER vendedor1,vendedor2;

PARA DAR PRIVILEGIOS AL GERENTE
primero hay que crear las tablas

CREATE TABLE cliente(ci integer, nombres varchar(20));
CREATE TABLE editor(ci integer, nombres varchar(20));
CREATE TABLE edicion(ed varchar(10), decrip(20));
CREATE TABLE libro(cota varchar(10), titulo(20));

/c es un comando para cambiar de base de datos a otra sin salirse

GRANT SELECT ON cliente TO ventas;
GRANT SELECT ON libro TO editores,vendedor2;

REVOKE SELECT ON libro FROM vendedor2;

—————————
tercera clase
————————–
Ejemplo de create table:

create table libros(codigo int, titulo varchar(30) not null, precio decimal(3) not null, fecha date, autor varchar(60) not null, check(autor<>”));

No es el mismo constrain es una validaci{on para cualquier campo y valores

drop talbe libros;   <—- si ya esta borrada, puede dar un mensaje

otro ejemplo del create table
create table libros2(codigo int, titulo varchar(30) not null, precio decimal(3) not null,
fecha date, autor varchar(60) not null,
check(autor<>”), constraint val1 check(precio>100));

Añadir clave primaria
create table libros3(codigo int, titulo varchar(30) not null, precio decimal(3) not null, fecha date, autor varchar(60) not null, check(autor<>”),constraint libros3_pk1 primary key(codigo));

Otra tabla para relacionar
create table distribuidores(id serial not null primary key, nombre text not null);

Insercion de 3 nombres
insert into distribuidores(nombre) values (‘distribuidor santillana’),(‘manantial’),(‘leira viva’);

Consulta de datos
select * from distribuidores;

alter table distribuidores add column direccion text;

Si ya existen registros habr{ia valores nulos, pero si se incluye default
entonces pasar{a lo de que ya existan esos valores…

alter table distribuidores add column direccion2 text not null default ”;

libreria=> drop table biblioteca;
ERROR:  no existe la tabla «biblioteca»

Claro el error es que esa tabla no exist{ia…

Creacion de una vista para ver los libros caros de una tabla
La utilidad mayor es cuando se extraen de varias tablas….
create view libroscaros as select * from libros where precio>500;
select * from libroscaros;

—————————
cuarta clase——OBJETOS
—————————

curso=# create table capitales(estado varchar(20))inherits(ciudades);
CREATE TABLE
curso=# insert into ciudades values(‘turmero’,2500,600),(‘cagua’,600,400);
INSERT 0 2
curso=# insert into capitales values(‘maracay’,10000,700,’aragua’),(‘sjm’,5000,500,’guarico’);
INSERT 0 2

curso=# select nombre,altitud from ciudades where altitud>500;
nombre  | altitud
———+———
turmero |     600
maracay |     700
(2 filas)

curso=# select * from ciudades;
nombre  | poblacion | altitud
———+———–+———
turmero |   2500.00 |     600
cagua   |    600.00 |     400
maracay |  10000.00 |     700
sjm     |   5000.00 |     500
(4 filas)

curso=# select * from capitales;
nombre  | poblacion | altitud | estado
———+———–+———+———
maracay |  10000.00 |     700 | aragua
sjm     |   5000.00 |     500 | guarico
(2 filas)

Todo lo que insertenmos en capitales se refleja en ciudades en verisones recientes de postgresql

Se pueden crear datos no atomicos como el vector
(los atomicos son enteros, reales y caracteres)

curso=# create table sal_emp(nombre text,page_semanal int 4[], agenda text[][]);
ERROR:  error de sintaxis en o cerca de «4»
LINE 1: create table sal_emp(nombre text,page_semanal int 4[], agend…
^
curso=# create table sal_emp(nombre text,page_semanal int [4], agenda text[][]);
CREATE TABLE

curso=# insert into sal_emp values (‘carlos’,'{1000,1000,1000,1000}’,'{‘{reunion’,almuerzo}’,{}}’);
curso’#

INSERT INTO salemp VALUES (‘Bill’,'{10000, 10000, 10000, 10000}’,'{{“meeting”, “lunch”}, {}}’);

select a.pago[3] from salemp a where a.nombre=’carlos’;

select a.nombre, sum(a.pago[3]+a.pago[4]) as quincena2 from salemp group by a.nombre;

select * from quincena2 where nombre like ‘ca%’;
select * from quincena2 where nombre like ‘%ca’;
select * from quincena2 where nombre like ‘ca’;

curso=#  select a.pago[3] from salemp a where a.nombre=’carlos’;
pago
——
3000
(1 fila)

curso=# select a.nombre, sum(a.pago[3]+a.pago[4]) as quincena2 from salemp a group by a.nombre;
nombre | quincena2
——–+———–
carlos |      7000
(1 fila)

curso=# select agenda[1][2] from salemp;
agenda
———-
almuerzo
(1 fila)

curso=#

Se copio en la carpeta /home/vit

una base de datos en texto llamada GEO.txt

Se crea una base de datos correspondiente
curso=# create table geo(region int, subregion varchar(10), ufi float, uni float, dsg varchar(10), cc_fips varchar(4), cc_iso varchar(60), nombre text, nombre_nd text, sort_name varchar(120));
CREATE TABLE

Luego se importa el archivo desde postgresql
curso=# copy geo from  ‘/home/vit/GEO.TXT’;
COPY 2280

select * from geo;

Lo contrario seriia copiar de una base de datos o una vista a un
archivo de texto:
libreria=# copy (select * from quincena2) to ‘/home/vit/sql.txt’;

Se debe tener el permiso de escritura en la carpeta /home/vit
—————————-
Quinta clase
—————————-
copy table from ‘/ruta/sql.txt’;
to stout;

using delimeters “\t”

Postgres se detiene  cuando encuentra ./

copy table to stout;

Ejemplos

‘1 \tLuis\t Diaz’;
2 \tPedro\tPerez

Se puede crear una funcion que cree en mayusculas

Creacion de funciones…
curso=# create function uno() returns integer as ‘select 1 as resultado;’ language sql;
CREATE FUNCTION

curso=# select uno();
uno
—–
1
(1 fila)

Ejercicio
1. crear una tabla de productos con iva
2. Crear una funcion que calcule el iva
3. inserte un registro en la tabla y utilice la funcion ya creada

Respuesta 1
curso=# create table prod(id varchar(3), precio decimal(15,2),iva decimal(15,2));
CREATE TABLE

Respuesta 2
curso=# create function iva(double precision) returns double precision as ‘select $1 * 0.12;’ language sql;
CREATE FUNCTION

curso=# select iva(10000);
iva
——
1200
(1 fila)

Respuesta 3
curso=# insert into prod values (1,2500,iva(2500));
INSERT 0 1
curso=#

Crear una funcion para recalcular los precios para el primer producto (id=’  1′) y mostrar los datos
Respuesta…
curso=# create function actprecio(varchar(3), decimal(15,2)) returns numeric as ‘update prod set precio=precio+$2, iva=iva(precio+$2) where id=$1; select precio from prod where id=$1;’ language sql;
CREATE FUNCTION

Nota: se pueden anidar las funciones, es decir llamarlas dentro de otra…
Ejemplo
curso=# create function actprecio(varchar(3), decimal(15,2)) returns numeric as ‘update prod set precio=precio+$2 where id=$1; select precio from prod where id=$1;’ language sql;

 

Bien, hasta el próximo número de ejemplos…

Programación Estructurada Python-MySQL

febrero 17, 2013

Haga click para ampliar el siguiente código:

Presentación1

Incluir.py

Incluir.py es un ejemplo sencillo de programación estructurada para ahorrar código y mantenimiento sencillo para sistemas no complejos.

De lo contrario, se recomienda objetos, lo cual será tratado posteriormente en el proyecto incluir2.

La lógica de este pequeño software consiste en ubicar un registro que coincida con el campo clave sumnistrado por el usuario.

Una vez localizado, se aprovecha a preguntar qué es lo que se quiere realizar.

De tal manera se evita un programa por cada proceso.

Para que el programa funcione basta emplear el comando:
./incluir.py

Sin embargo, antes de hacer esto, asegure cambiar los permisos de ejecución con:
chmod 777 incluir.py

Asegúrese de cuál sea la opción más segura para su caso.

Por supuesto se debe haber creado la base de datos en mysql.

en el listado que se suministra, la base de datos se llama ‘melvin’ y la tabla de esa base de datos: ‘usuario’.

Melvin es un amigo, jefe de Control de Estudios en un Instituto Educativo y estaba yo explicándole el acceso a base de datos desde python.

A la tabla ‘usuario’ se creó un campo clave llamado ‘ci’ tipo varchar longitud 10 y ‘nombres’, varchar de 20.

Para este ejemplo, se ha instalado la librería ‘mysqldb’ desde la versión Debian 5 y se ha trabajado con mysql que proporciona por defecto ese sistema.

El comando de instalación es:
apt-get install mysql-client mysql-server mysqldb.

Por defecto python posee una librería para accesar a SQLITE, otro manejador de bases de datos muy empleado.

También existen librerías externas para emplear Postgres.

Con las librerías para postgres y SQLITE la lógica es igual, por lo tanto se puede referenciar este mismo listado con algunas modificaciones.

Python no solo se utiliza en la web para crear un CGI, sino también para funcionar como PHP por medio de las librerías FastCGI y Mod_Python, entre otros programas.

Para tal demostración se realizarán ejemplos de uso, primero como CGI y luego con las librerías que agilizan el acceso de las páginas programadas en python.

En fin, el lenguaje python es una opción para trabajar de manera local en consola, en escritorio gráfico con la librería gráfica Tk-inter; por ejemplo, o en la red, con su hoja de estilo y códigos javascript o incluso AJAX. Bueno, eso también se puede hacer en C/C++ con las librerías correspondientes sin generar mucho código.

Tampoco está demás que se investigue el uso del potente PHP, ni se desestimen servidores web tales como Lighthttpd, como alternativa, n i dejar de usar Apache, todo requiere del estudio de costos y beneficios o de la demanda en el tráfico al acceso al sistema que usted desee crear.

Todo tiene su razón de ser… Dios Jehová les bendiga…

Python-MySQL (Escritorio-terminal-sin modo gráfico)

febrero 13, 2013

Python-MySQL (Escritorio-terminal-sin modo gráfico)

Por: José Santaella. Febrero, 2013

Muchas aplicaciones aún son necesarias en el escritorio, lejos del acceso de ajenos, por privacidad.

Existe un cementerio de máquinas que pueden ser útiles con sistemas que casi no requieren memoria.

La eficiencia de tales programas son apreciados por muchos gerentes y la economía también.

En atención a pequeños comerciantes, ha sido desarrollado este ejemplo y al estudiante que debe aprender algo más que el deslumbramiento de grandes sistemas con gráficos. Los cuales muchas veces derrochan recursos sin necesidad.

Se componer el ejemplo de mysql_clase00.py, que es el módulo y mysql_clase11.py, quien lo utiliza:

 

 

 

j

————————————————-Hasta aquí, ahora lo empleamos:

#!/usr/bin/python
#encoding=utf-8

from mysql_clase00 import *

b=basedatos(“melvin”)

#la instrucción anterior puede ser sustituida por una lectura para seleccionar una
#base de datos existente en su computador, así se puede ahorrar un programa por cada
#sistema que necesite, la idea, por supuesto se puede aplicar a cualquier lenguaje
#de programación.

#Conectarse a la base de datos
b.conectarse()

#A continuación se escriben los campos tal y como se quieren visualizar
campos=[“Cédula de Identidad”,”Nombres y Apellidos”]

#Se pasa como parámetro la lista
b.abrirtabla(“usuario”,campos)
print “  … confirmado  “+b.nombretabla

b.consulta_gen()

b.cerrartabla()

#desconectarse de la base de datos
b.desconectarse()

#Sugerencias: los campos-etiquetas que quieres dar a los datos, el nombre de la tabla y base de datos,
#podrían también ser parte de un archivo de texto para no midificar este código directamente.
#La idea es facillitar el trabajo y no tanto depender del código fuente. Ahora, este no es un programa
#muy largo que se diga.

Clases en Python, utilizando a su vez el módulo MySQLdb

Si no te gusta leer

Si eres una persona que todo lo quiere automático y te agobia el tiempo de este sistema de cosas:

Mejor no continúes con la programación, es mucha la data valiosa que se pierde por no realizarlo.

La investigación documental y la revisión bibliográfica es necesaria para minimizar el daño a un equipo.

El “siguiente, siguiente, siguiente” no siempre es tan simple, si no se lee el contenido.

Instalación del Software

En Python estándar, al instalarse en Windows, por ejemplo, se obtiene la librería para SQLITE.

SQLITE no es un mal manejador de base de datos, es sencillo, tiene sus ventajas

Pequeñas bases de datos, que no requieren mayor seguridad.

Ahora, yo oriento al cliente a que instale GNU/Linux Debian en una máquina que no es para jugar.

Es importante saber que desde el punto de vista técnico de soporte, es más fácil instalarlo.

GNU/Linux es más robusto contra los virus.

Debian proporciona la versión de Python y MySQL estable por medio de MySQLdb.

Esta instalación consiste de un comando: apt-get install mysql-client mysql-server python-mysqldb.

También se puede marcar con “click” en el administrador de paquetes que tenga instalado.

Yo empleo el software sinaptic para instalar.

Así, que antes de instalar en windows, debe investigar qué versiones de Python y MySQL son estables.

También, cuáles son compatibles y si la librería que usted seleccione ofrece soporte.

Yo me voy con Debian, normalmente el cliente que busca una respuesta a su negocio, dedica una máquina.

Otra opción, para quienes desean tener acceso en un momento dado a otro sistema operativo como Win:

Puede instalar una máquina virtual.

Postgres

Al programador se recomienda realizar una adaptación de sus códigos cuando la data es muy voluble.

MySQL, sin embargo, la vi trabajar con data de una matrícula de 5000 estudiantes.

Postgres: cuando sus datos requieren mayor seguridad, en el caso de manejo de notas o dinero.

Son razones básicas, además Postgres se orienta a objeto y facilita el diseño de tablas.

MySQL o Maríadb
Aún es software libre, y tiene preparados sus clones, por si algo sale mal y deciden cerrarlo.

Por ejemplo, Maríadb se prepara y es compatible con MySQLdb, pero está en prueba aún y difícil instalarle.

Pero, es Maríadb es un proyecto serio y MySQL, prepara el terreno para abordar algo más seguro en libertad.

Python o PHP

El ejemplo, presentado es potente para el escritorio, la idea es combinarlo con Tk-Inter.

Tk-Inter lo recomienda Van Rossum, creador de Python para el ambiente gráfico de ventanas.

Sin embargo, PHP es el lenguaje que desde que se instala está listo para programar en web.

Aunque, no significa que Python no lo haga. Existen FastCGI y Apache-Mod-Python.

Por supuesto, al igual que cualquier lenguaje, Python acepta un CSS, javascript, xhtml o html, AJAX.

De hecho hasta C/C++ acepta toda esa tecnología, más las librerías para bases de datos e Internet.

Ellos son módulos que ponen a funcionar rápida la aplicación en la red, se creía que Python era solo para CGI.

Así como PHP se instala para web, Python lo es para escritorio, pero ninguno de los dos es limitado.

Yo uso C/C++, Gambas2, Python, PHP, AJAX.

Acerca del ejemplo

He escrito este ejemplo según algunas necesidades de mantenimiento que tengo, es decir:

Siempre creo las claves primarias como primer campo (por ello lo de listacampos[0]).

Además, todos mis campos clave son alfanuméricos y realizo conversiones si se requieren.

No es necesario realizar siempre objetos, en este caso me cansé de estar modificando tanto código.

Así, tengo un programa más genérico. Pero, publicaré una versión estructurada.

Estructurado u Objeto

Lo bueno de Python, al igual que muchos otros programas es que es multiparadigmático.

Si necesitas una estructura par un programa, lo haces rápido.

Pero si la estructura se enrolla, creas los objetos y hasta sirve para adaptarlo a varias situaciones.

Así, esta consulta sirve para adaptarla a varias situaciones, con diferentes tablas.

Aquellos que rechazan las estructuras, porque les gusta dibujar como en gambas:

¿Cómo se hace un software sin analizar una fórmula?

¿Acaso los objetos no llevan métodos y éstos no poseen ciclos y condiciones?

¿Por más rápido el ambiente de desarrollo no debemos pensar antes de existir?

No son errores, fue mi propósito

El hecho de que estén tantos datos en pantalla, tantos mensajes, es por una causa didáctica.

Es necesario que el programador iniciado vea por dónde anda el software y qué es lo que hay en la data.

La base de datos

My base de datos se llama “melvin” tiene una sola tabla llamada “usuario” y el campo primario “ci”.

Tiene otro campo llamado “nombres”. Son varchar de 10 y 20, respectivamente.

Para poder utilizar este programa debe usted haber trabajado antes con un administrador de datos.

Sin embargo, si tiene instalado MySQL, entonces escriba en consola:

mysql -u root -p

Le pedirá la contraseña el programa y entrará al símbolo del sistema de mysql entonces teclee:

create database melvin;

use melvin;

create table usuario(ci varchar(10),nombres varchar(20), primary key(ci));

insert into usuario values(’10222333′,’Pedro Pérez’)

select * from usuario;

exit

Demás está decir que es necesario el punto y coma y dar “enter” por cada orden.

De resto, se ha creado la base de datos melvin, la tabla usuario, se ha agregado un registro y se consultó.

Luego, con éxit salimos de MySQL.

Dios Jehová les bendiga… él es el verdadero y único creador.

Ejercicios de programación. Primera parte.

febrero 8, 2013

A continuación se presentan algunos ejercicios útiles para algorítmica y para practicar mientras se aprende un lenguaje nuevo.

1.    Determinar el promedio de edades de diez estudiantes mayores de edad.

2.    Calcular el promedio de estatura de los estudiantes de sexo masculino. El programa debe repetirse un máximo de quince veces.

3.    Determinar el sueldo promedio de los empleados afiliados a banavi y que sean de sexo femenino. Procesar veinte personas.

4.    Sumar los sueldos de los trabajadores de tipo “empleado” de sexo masculino y acumular los de tipo “servicio” de sexo femenino. Repetir el ciclo mientras la respuesta del usuario sea igual a “s”.

5.    Restar las edades de diez estudiantes, si su estatura es mayor que 1.80 metros.

6.    Se cuenta con una línea horizontal en el eje x=100. Calcule el valor de y en el plano; y=100-y. El programa debe repetirse diez veces.

7.    Determinar el mayor de tres números. El programa debe repetirse un máximo de cinco veces.

8.    Contar el número de personas que poseen un sueldo mayor que 2000 y menor que 6000. Repetir el ciclo mientras la respuesta del usuario sea igual a “s”.

9.    Determinar el menor de tres números. El programa debe repetirse cuantas veces el usuario quiera.

10.   Calcular el porcentaje de personas que aportan a banavi. Procesar 10 personas.

11.   Elaborar un programa que se repita mientras la respuesta sea igual a “s”; que calcule el porcentaje de mujeres y el porcentaje de hombres.

12.   Calcule el área de una esfera para un máximo de diez veces.

13.   Realizar un programa que lea veinte edades o se detenga cuando se introduzca un cero como edad.

14.   Elaborar un programa que lea letras, I vale 1, V vale 5, X vale 10, L vale 50, C vale 100, D vale 500 y M vale 1000, cualquier otra letra vale cero. Sume sus valores, el programa debe repetirse cinco veces.

15.   Sume los valores de los lados de un rombo.

16.   En un programa que se ejecute diez veces, incremente el contador en 0,5 para calcular el valor y=contador/3.

17.   Calcule un máximo de trece veces, el área de un triángulo, si la base es mayor que cero y la altura es menor que cero.

18.   Dividir dos números, si el segundo es mayor que cero. El programa debe realizarse mientras el primer número no sea negativo.

19.   Restar un número mayor que 100, con uno mayor que mil y dividir el resultado entre otro número distinto de cero. Repetir hasta once veces la operación.

20.   En un programa que se repita desde X=-10 hasta que X sea igual que diez. Calcule el valor de y=x+3.

21.   Pi . a . b es el área del elipse. Calcule diez veces, si a>0.

22.   Pi . a . b es el área del elipse. Calcule mientras el usuario quiera y cuente las veces que se ejecutó el programa.

23.   Pi . a . b es el área del elipse. Calcule un máximo de veinte veces y el promedio de b.

24.   Calcule en milímetros, cualquier cantidad suministrada en metros; mientras la cantidad sea distinta de un número negativo.

25.   (4 . Pi . R2)/3 es la fómula para el volumen de una circunferencia. Calcule un máximo de siete veces.

26.   Realizar un programa que lea siete edades y determine cuál de ellas es mayor.

27.   Elaborar un programa que se ejecute un máximo de 21 veces y calcule la estatura menor en niños de siete años.

28.   Un móvil adelanta cinco metros y retrocede uno ¿Cuántas veces debe ejecutarse un programa para sobrepasar los veinte metros?

29.   Una cuerda de diez centímetros pierde un centímetro por cada vuelta ¿Cuántas veces debe ejecutarse un programa para que se enrolle completamente?

30.   Para catorce personas, lea sus pedidos y calcule cuántos pidieron “pepitos” y cuántos “tequeños”.

31.   Sume los valores en bolívares de los pedidos de un restaurante: pabellón=50; dorado en salsa=70; parrilla criolla=80. El programa se debe repetir mientras el usuario quiera.

32.   Promediar números, hasta que el valor leído sea cero o un número negativo.

33.   Promediar las edades de las niñas o los estudiantes de más de siete años de edad. Son 34 estudiantes en total.

34.  Sumar n cantidad de valores, mientras la respuesta del usuario sea “ “.

35.   Sumar los valores de las calificaciones en un máximo de 20 estudiantes que sean del sexto grado o sean de más de diez años.

36.   Repetir un ciclo si la respuesta del usuario es “s” y el contador menor igual que 50 para ller un número y si es positivo o menor que -10 entonces acumularlos.

37.   Determinar el porcentajes de números negativos leídos.

38.   Determinar el promedio de números positivos leídos.

39.   Por cada cinco veces, leer cinco edades y obtener el promedio por cada grupo de cinco.

40.   Leer la cantidad de veces que se ejecutará un programa y según este límite. Calcular una suma de números.


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.