Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



jueves, 30 de abril de 2015

Videotutoriales sobre Python 3 y PyQT de Jesus Conde


Videotutoriales sobre Python 3 y PyQT 

de Jesus Conde 


Os dejo dos listas de reproducción de un curso sobre Python 3 y PyQT, que tiene subido Jesus Cónde a su canal de youtube

Curso Inicio práctico a la programación con Python 3.X

https://www.youtube.com/playlist?list=PLEtcGQaT56cj70Vl_C1qfUinyMELunL-N


Curso Aplicaciones GUI Python con PyQT




Indice de los cursos:

Curso Aplicaciones GUI Python con PyQT
01.- Curso Aplicaciones GUI Python con PyQT. Configurar entorno de desarrollo.de Jesús Conde
02.- GUIs Python con PyQT. Anatomía de una aplicación PyQT.de Jesús Conde
03.- Creación de GUIs para Python con PyQT. Manejo de eventos en PyQTde Jesús Conde
04.- Curso de PyQT. Crear Interface de Usuario con QT Designer.de Jesús Conde
05.- Curso de PyQT. Conectar Señales con Slots.de Jesús Conde
06.- Curso de PyQT. Convertir interfaces .ui en archivos Python.de Jesús Conde
07.- Curso de PyQT. Crear archivo .pyw, lanzador aplicación.de Jesús Conde
08.- Curso de PyQT. Crear Slots personalizados.de Jesús Conde
09.- Curso de PyQT. Convertir entre tipos de datos.de Jesús Conde
10.- Curso de Python gráfico con PyQT. Enlazar widgets con Buddies.de Jesús Conde
11.- Curso de Python gráfico con PyQT. Crear lanzador para Buddies.de Jesús Conde
012.- Curso de Python gráfico con PyQT. widgets radio buttons.de Jesús Conde
13.- Curso Python gráfico con PyQT. Lanzador widget radio botones.de Jesús Conde
14.- Curso de Python gráfico con PyQT. Widgets CheckBoxes.de Jesús Conde
15.- Curso de Python gráfico con PyQT. Usar Checkboxes como señales.de Jesús Conde
16.- Curso de Python gráfico con PyQT. Uso de widgets básicos.de Jesús Conde
17.- Curso de Python gráfico con PyQT. Listas e items de lista.de Jesús Conde
18.- Curso de Python Gráfico con PyQT. Crear una lista editable.de Jesús Conde
19.- Curso de Python gráfico con PyQT. Crear Aplicaciones con varios documentos.de Jesús Conde
20.- Curso de PyQT. Aplicación con subventanas.de Jesús Conde
21.- Curso de PyQT. Ordenar Widgets con Layouts.de Jesús Conde
22.- Curso de PyQT. Terminar primer Layout.de Jesús Conde
23.- Curso de PyQT. Agrupar funciones con GroupBox.de Jesús Conde
24.- Curso de PyQT. Completar Proyecto GroupBox.de Jesús Conde
25.- Curso de PyQT. Persistir datos con MySQLde Jesús Conde
26.- Curso de PyQT. Crear tabla con un script Python.de Jesús Conde
27.- Curso de PyQT. Insertar datos en una tabla de la Base de Datos.de Jesús Conde
28.- Curso de PyQT. Insertar datos de modo dinámico.de Jesús Conde
30.- Curso de PyQT. Llevar a cabo búsquedas en la tabla.de Jesús Conde
31.- Curso de PyQT. Actualizar datos de las tablas.de Jesús Conde
32.- Curso de PyQT. Borrar datos de la Tabla.de Jesús Conde
33.- Curso de PyQT. Conectar aplicaciones GUI Python a Bases de Datos.de Jesús Conde
34.- Curso de PyQT. Aplicación que muestra datos en tabla.de Jesús Conde
35.- Curso de PyQT. Crear un Modelo de la Tabla.de Jesús Conde
36.- curso de PyQT. Usar Modelo de la tabla.de Jesús Conde
37.- Curso de PyQT. Operaciones de mantenimiento de una tabla.de Jesús Conde
38.- Curso PyQT. Terminar aplicaciónde Jesús Conde

Curso Inicio práctico a la programación con Python 3.X
01.- Curso Python 3.X ¿Qué será lo que tiene Python?de Jesús Conde
02.- Curso de Python 3.x. Python orientado a objetos.de Jesús Conde
03.- Curso Python 3.X. Inicializar Objetos.de Jesús Conde
04.- Curso de Python 3.X. Uso de módulos y paquetes.de Jesús Conde
05.- Curso de Python 3. Imports absolutos y relativos.de Jesús Conde
06.- Curso de Python 3. ¿Quién puede acceder a mis datos?de Jesús Conde
07.- Curso de Python 3.X. Caso de uso: Crear Cuaderno de Notas.de Jesús Conde
08.- Curso de Python 3.X. Creación de la Clase Cuaderno.de Jesús Conde
09.- Curso de Python 3.X. Creación del Módulo Menude Jesús Conde
10.- Curso de Python 3.X. Herencias en Python.de Jesús Conde
11.- Curso de Python 3. Sobrescritura de Métodos y uso de super.de Jesús Conde
12.- Curso de Python 3. Herencias Múltiples y sus problemas.de Jesús Conde
13.- Curso de Python 3.X Polimorfismo y Duck Typing.de Jesús Conde
14.- Curso Python 3.x. Caso de Uso. Crear Inmobiliaria.de Jesús Conde
15.- Curso de Python 3.x. Desarrollo Clases de la Inmobiliaria.de Jesús Conde
16.- Curso de Python 3.X. Completar Caso de Estudio Inmobiliaria.de Jesús Conde
17.- Curso de Python 3. Tratar con errores y excepciones.de Jesús Conde
18.- Curso de Python 3. Manejar Excepciones.de Jesús Conde
19.- Curso de Python3. Jerarquía de herenciasde Jesús Conde
20.- Curso Python 3.X. Definir nuestras propias excepciones.de Jesús Conde
21. Curso de Python 3. Caso de Estudio. Sistema de autentificación.de Jesús Conde
22.- Curso de Python 3. Caso de uso. Clases Exception y Authenticator.de Jesús Conde
23.- Curso de Python 3. Caso estudio. Completar Sistema de Autentificación.de Jesús Conde
24.- Curso de Python 3. Estructuras de datos.de Jesús Conde
25.- Curso de Python 3.x Trabajo con Tuplesde Jesús Conde
26.- Curso de Python 3.X. Named Tuples.de Jesús Conde
27.- Curso de Python 3.X. Uso de diccionarios.de Jesús Conde
Convertir de Python 3 a ejecutables .exede Jesús Conde

miércoles, 29 de abril de 2015

Curso Gratuito: Desarrollo de servicios en la nube con HTML5, Javascript y node.js en miriada X

Curso Gratuito:  

Desarrollo de servicios en la nube con HTML5, Javascript y node.js en Miriada X


Me acabo de enterar que próximamente se iniciará el curso gratuito de "Desarrollo de servicios en la nube con HTML5, Javascript y node.js" (2º parte del que hice hace ya tiempo sobre “Desarrollo de Aplicaciones en HTML5 y para Dispositivos Móviles Firefox O.S.” en MiriadaX


Este curso es para personas interesadas en diseñar aplicaciones Web de servidor utilizando JavaScript. Si bien el curso empieza con los conceptos básicos, tanto de programación en JavaScript, como de aplicaciones de servidor, de HTTP, de node.js y de express.js, se recomienda que los asistentes tengan conocimientos, tanto de diseño de páginas Web con HTML5, CSS y JavaScript de cliente, como de programación aunque sea en otros lenguajes como Java, C, Basic, PHP, Python, Pascal, etc. En caso de estar iniciándose a la programación se recomienda hacer el curso anterior “Desarrollo de Aplicaciones en HTML5 y para Dispositivos Móviles Firefox O.S.”, que también se ofrece en esta plataforma y donde se enseñan dichos conceptos.

Os  dejo el enlace para apuntarse: https://www.miriadax.net/web/javascript-node-js

Duración es de 5 semanas (aproximadamente 50 horas de estudio, dependiendo del nivel que tengáis)



Otros enlaces interesantes:
http://www.nanotutoriales.com/como-instalar-nodejs-y-npm-en-debian-wheezy
http://www.express.js

domingo, 26 de abril de 2015

Operador Ternario: iif, el if...then...else... comprimido


Operador Ternario: iif

  el if...then...else... comprimido

Es una forma más simple de escribir un if... then...else, en una sola linea:





Value
= IIf ( Test AS Boolean , TrueExpression , FalseExpression ) Value = If ( Test AS Boolean , TrueExpression , FalseExpression )


Significado: 
  Evalúa la expresión "Test", y si es verdadera,  retorna lo que resulte de evaluar la expresión  "TrueExpresion", y si es falsa, retorna lo que resulte de evaluar la expresión "FalseExpresion" 



Ejemplo:
En este ejemplo introducimos dos numeros, y con el botón comprobar, mostramos un mensaje:
- Si son iguales, nos dice "Son iguales"
- Si el primero es mayor que el segundo , nos dice "El primero es mayor que el segundo"
- Si el primero es menos que el segundo, nos dice "El segundo es mayor que el primero"




' Gambas class file

Public Sub _new()

End

Public Sub Form_Open()

End

Public Sub ButtonComprobar_Click()

Dim texto As String
Dim textoIguales As String = ("Son iguales")
Dim textoPrimeroMayorSegundo As String = ("El primero es mayor que el segundo")
Dim textoPrimeroMenorSegundo As String = ("El segundo es mayor que el primero")

LabelComentario.text = IIf(ValueBoxNumeroUno.value = ValueBoxNumeroDos.value, textoIguales, IIf(ValueBoxNumeroUno.value > ValueBoxNumeroDos.value, textoPrimeroMayorSegundo, textoPrimeroMenorSegundo))

'esto es igual que escribir:
'if (ValueBoxNumeroUno.value = ValueBoxNumeroDos.value then
'    LabelComentario.text = textoIguales
' else
'    if (ValueBoxNumeroUno.value > ValueBoxNumeroDos.value then
'       LabelComentario.text = textoPrimeroMayorSegundo
'    else
'       LabelComentario.text = textoPrimeroMenorSegundo
'    endif
' endif
'


End


En este video podeis ver como funciona:



Código fuente: Alojado en google drive


Fuente:
http://gambaswiki.org/wiki/lang/iif?l=es
http://es.wikipedia.org/wiki/Operador_ternario


sábado, 25 de abril de 2015

Motor3D-OpenGL para Gambas3

Motor3D-OpenGL 

para Gambas3


Uno de los componentes del foro de gambas3, llamado TercoIDE, nos hizo hace tiempo un pequeño motor 3d usando OpenGl para Gambas3

Y nos hizo un programa de demostración para vieramos como usarlo.

Antes de ejecutar el programa, hay que crear la libreria matrix8.so, para ello
las instrucciones son las siguientes:

1º Compilamos  el archivo matrix8.c y matrix8.h (en el enlace de descarga están)

$gcc -Wl,-soname=matrix8.so -o matrix8.so -std=c99 -fpic -shared -shared-libgcc matrix8.c

2º Como superusuario (root), copiamos la libreria creada a /usr/lib  y ejecutamos el comando ldconfig:
$cp matrix8.so /usr/lib/matrix8.so


y luego

$ldconfig /usr/lib/matrix8.so



Y ya podemos ejecutar el ejemplo. Os dejo un video de como funciona el programa:


Enlace de descarga: alojado en google drive




Fuente:
http://www.gambas-es.org/viewtopic.php?f=5&t=3518&highlight=motor3d&start=20
http://www.gambas-es.org/viewtopic.php?f=4&p=19790#p19790

viernes, 24 de abril de 2015

Ejemplo de uso de Observer: Pulsar una tecla en el formulario y que se muestre otro con un mensaje

Ejemplo de uso de Observer:

 Pulsar una tecla en el formulario y que se muestre otro con un mensaje

Este es un ejemplo de como usar un objeto Observer para que cuando se pulse la tecla F2, se produzca un evento y se realize alguna actividad. En este caso se muestra otro formulario en la pantalla, con información proveniente del formulario donde se pulso F2.

Tenemos 2 archivos:
El formulario principal, donde se pulsará la tecla F2:

' Gambas class file

Event PulsaTeclaF2(informacion As Variant) ''Se define el evento PulsaTeclaF2


Public Sub _new()


End

Public Sub Form_Open()

End

Public Sub Form_KeyPress()

If Key.code = Key.f2 Then
Print "Has pulsado la tecla F2"
FormMensaje.addObjeto(Me) 'ver el código de addObjeto en FormMensaje
Raise PulsaTeclaF2("informacion que paso de donde he pulsado el evento" & Str$(Me) & " cuando se pulsa tecla F2")
'hace salte el evento y asi avisa a los objetos que esten obserbando este objeto
Endif

End
 
 Luego el formulario que mostrará el mensaje y que estará observando al formulario principal:

' Gambas class file

Public observador As Observer 'mi obsevador que observará los objetos que le pase

Public Sub Form_Open()

Me.title = "Mensaje"
Me.Center()

End

Public Sub addObjeto(obj As Object)

observador = New Observer(obj) As "operaciones" 'añado a mi observador el objeto que me pasan

End

Public Sub operaciones_PulsaTeclaF2(dato As Variant)
'se ejecuta cuando salta el evento PulsaTeclaF2

Label1.text = dato
Me.Show() 'muestro el formulario

End

 Os dejo un video de su funcionamiento:

Código fuente:archivo alojado en google drive


Saludos

Julio

martes, 21 de abril de 2015

MANUAL PASO A PASO: Creando una aplicación web usando PHP y JavaScript (jquery y jeasyui)



MANUAL PASO A PASO: 

Creando una aplicación web usando PHP y JavaScript (jquery y jeasyui)

 Este manual trata el desarrollo paso a paso de una aplicación web (multiplataforma, cliente-servidor),  usando los lenguajes de programación PHP y JavaScript, además  los framework jquery y jeasyui.
Johan Guerreros Montaya y el que escribe este artículo, hemos tardado un mes en elaborarlo con la idea de:
  • Explicar como realizar una aplicación web cliente-servicor, con las operaciones básicas: añadir, borrar y modificar registros.
  • Hemos usado el framework jeasyui para crear  un "entorno de trabajo" fácil y cómodo dentro del navegador web. Usando controles como los combobox, datagrid, textbox, cuadros de dialogos, formularios, y cuadros de mensajes, y explicando su uso.
  •  Además hemos añadido como trabajar con tablas relacionadas (vinculados por un campo), para que se vea como se resuelven los problemas de presentación en los formularios y en los cuadros de dialogos de petición de datos.



Os dejo un video para que veais como es la aplicación que podeis hacer siguiendo el manual:




Libro en formato .pdf:
http://www.lulu.com/shop/julio-sanchez-berro-and-johan-guerreros-montoya/creando-una-aplicaci%C3%B3n-web-paso-a-paso-usando-php-y-javascript-jquery-y-jeasyui/ebook/product-22137504.html


Libro en Tapa Blanda
http://www.lulu.com/shop/julio-sanchez-berro-and-johan-guerreros-montoya/creando-una-aplicaci%C3%B3n-web-paso-a-paso-usando-php-y-javascript-jquery-y-jeasyui/paperback/product-22137592.html


Os dejo también el indice del manual:

El problema que tiene que resolver nuestra aplicación
Análisis. Nuestra estructura de la base de datos.
Creando la base de datos y las tablas en el servidor.
Controles de jeasyui
Paso de los resultados de las consultas a los controles de jeasyui
Control easyui-datagrid:
Control easyui-combobox:
Paso de datos del easyui-datagrid a easyui-dialog:
Estructurada de nuestra aplicación:
Carpeta Principal o raíz: Archivo index.html
Ciudades
index.html:
NewCiudad()
EditCiudad()
SaveCiudad()
DestroyCiudad()
conn.php
get_Ciudad.php
save_Ciudad.php
update_Ciudad.php
destroy_Ciudad.php
Usuarios
index.html
NewUser()
EditUser():
SaveUser():
DestroyUser()
conn.php
get_users.php
get_dataCiudad.php
save_user.php
update_user.php
destroy_user.php
Anexo 1: Como conseguir un alojamiento web para hacer las pruebas de tu aplicación.
Anexo 2: Uso de FTP con Filezilla
Anexo 3: Como usar Filezilla y Sublime, para crear y editar el código fuente.
Anexo 4: Enlaces de descarga del código fuente de la aplicación.

Un cordial saludo

Julio

lunes, 20 de abril de 2015

Virtualbox: Consigue Máquinas Virtuales ya creadas


 Virtualbox: Consigue Máquinas Virtuales ya  creadas


Virtualbox (https://www.virtualbox.org/), es un programa multiplataforma que te permite ejecutar en tu sistema operativo otro sistema operativo. Lo que hace es crear un máquina "virtual" (realmente se creará un archivo en tu disco duro) dentro de tu sistema operativo, a la cual le tienes que asignar cuanta memoria ram tendrá, cpu, memoria gráfica, USB, etc.





Explicado así, parece algo muy complicado, pero realmente es muy simple de hacer.

Lo que consume más tiempo para empezar a trabajar con tu máquina virtual, es la instalación de la misma (definir propiedades de la máquina e instalar el sistema operativo).


Pero para ello tenemos una solución:
descárganos máquinas virtuales ya creadas. ¿de donde?

Pues gracias al amigo Shell del foro de gambas-es.org os dejo esta web donde podeis descargaros un montón de maquinas virtuales listas para usar en virtualbox:

http://virtualboxes.org/images/

Si quereis máquinas virtuales con la instalación de LAMP ( servidor Apache, MySql y PHP) , aquí tenéis otra dirección:


https://virtualboximages.com/VirtualBox+MySQL+Pre-Installed+Virtual+Appliances

También me ha comentado Antonio Sánchez (de la distribución Minino-Picaros) la página: bitnami.com
"que además de estar los conocidos superpaquetes de sever software ya configurados de todos los colores listos para instalar fácilmente, existen máquinas virtuales preparadas con lo necesario para montarse un lo-que-sea-que-se-te-pase-por-la-cabeza :-)"


Si sois usuarios de windows, y os pica un poco la curiosidad, es una forma muy rápida y cómoda de probar otros sistemas operativos, sin tener miedo a dañar el vuestro, con particiones y formateos.


Saludos

domingo, 19 de abril de 2015

Gambas3: Ejemplo de json y extraer datos de OpenWeatherMap


Gambas3:

 Ejemplo de json y extraer datos de OpenWeatherMap


En gambas3.7, se introdujo un nuevo componente llamado gb.util, el cual posee clases muy interesantes  e útiles, como la de json que permite codificar y decodificar información en ese formato. Vamos a ver un simple ejemplo de extracción de datos del tiempo de la página OpenWeatherMap indicándole una ciudad para que nos de información sobre el tiempo en esa ciudad.

Nota:
Como yo uso gambas3.5, para poder usar el gb.util, lo que he hecho es copiar el código de las clases y pegado en mi proyecto y me ha funcionado perfectamente. Para que el programa también funcione en gambas3.7, a los nombres de las clases le he añadido la palabra test.

Parte del código fuente:

'leer la página web
informacioPaginaWeb = PaginaWeb.cargar(ruta)
TextAreaJson.text = informacioPaginaWeb
'decodifica la informacion obtenida en formato json
informacion = testJSON.Decode(informacioPaginaWeb)



'empieza a asignar la informacion a las variables

ciudad = informacion["name"]

lon = informacion["coord"]["lon"]

lat = informacion["coord"]["lat"]

pais = informacion["sys"]["country"]

temperatura = Conversiones.convertirKaC(informacion["main"]["temp"])

temperaturamin = Conversiones.convertirKaC(informacion["main"]["temp_min"])
temperaturamax = Conversiones.convertirKaC(informacion["main"]["temp_max"])
presion = informacion["main"]["pressure"]
humedad = informacion["main"]["humidity"]
velviento = informacion["wind"]["speed"]



Os dejo aqui un video para que veáis como funciona el programa:


Enlace del Código Fuente completo: enlace a google drive


Saludos

Julio

Fuentes:
https://geekytheory.com/json-iv-ejemplo-practico-de-uso-de-json-con-openweathermap/

Gambas3: La documentación Oficial alojada ya en http://gambaswiki.org/


Gambas3: La documentación Oficial alojada ya en http://gambaswiki.org/



Durante mucho tiempo, la documentación oficial del lenguaje de programación Gambas3 (y gambas2), ha estado alojada en http://gambasdoc.org/, pero desde hace tiempo se estaba trasladando a http://gambaswiki.org/ (un sitio hecho con el lenguaje gambas3)


Desde este mes la documentación oficial de este lenguaje solo la podrás encontrar en la nueva dirección

http://gambaswiki.org/




jueves, 16 de abril de 2015

gambas-es.org - Renovación del Servidor


 gambas-es.org - Renovación del Servidor


Como todos los años, se ha iniciado la recaudación de fondos para la renovación del servidor de gambas-es.org, el foro más importante en castellano donde hablamos de Gambas,de otros lenguajes de programación y linux.


 La campaña se realiza en esta página: http://www.kapipal.com/gambas2015


 El administrador Jesus Guardón os deja este mensaje:

Nuevamente os pido vuestra colaboración para seguir manteniendo gambas-es.org en el lugar que se merece. Queremos seguir manteniendo el sitio activo y libre de publicidad, algo que todos agradecemos y éste administrador no puede afrontar él solo los costes de mantenimiento del servidor.

El próximo mes de noviembre finaliza el contrato del Servidor que nos aloja y por tanto el plazo para conseguir fondos para su renovación. Una pequeña aportación entre todos no supone un gran esfuerzo y es muy sencillo de realizar mediante ésta herramienta.

De nuevo, a modo de incentivo, todos los que hagáis una aportación y en función de su cuantía, tendréis una o varias participaciones para el sorteo de una Raspberry Pi y los libros en pdf "Curso de gambas3" y "Anexo 2015" cortesía de Julio Sánchez, jsbsan. A continuación los detalles:

Menos de 10€ -> Curso de gambas3, por Julio Sánchez

Entre 10€ y 19€ -> Una participación en sorteo + Curso gambas3.

Entre 20€ y 29€ -> Dos participaciones en sorteo + Curso gambas3.

Entre 30€ y 39€ -> Tres participaciones en sorteo + Curso gambas3.

A partir de 40€ -> Cuatro participaciones en sorteo, Curso gambas3 y un año de alojamiento web gratis en nuestro servidor.

¡Colabora para que nuestra Comunidad siga creciendo!

No olvides introducir un email válido para ponernos en contacto contigo en caso de ser agraciado con el premio.

Bases del sorteo en http://blog.gambas-es.org/sorteo/bases


Para aportar a la campaña: http://www.kapipal.com/gambas2015

Ya sabéis es una buena oportunidad para:
  • Apoyar al foro de gambas
  • Conseguir el Curso de Gambas3 + Anexo, con cualquier aportación a la campaña.
  • Y participar en el sorteo de una Raspberry Pi 

¿quien da más?

Saludos


Julio