Trucos sobre manejo de softwarelibre y gnu linux. También a los programas que hago en gambas3, python, java, etc.... Consejos y trucos sobre otros programas: excel, word, internet, instalación de programas, Arduino y demás....
Yo lo que he hecho es:
- traducirlo a Gambas3
- darle un aspecto visual (ya que en Python funcionaba en modo consola),
- Añadirle la variante de poder jugar entre Humano-Computadora y Computadora-Computadora.
- Además lo he pasado al paradigma de la Programación Orientada a Objetos, con el fin de que la estructura del programa y las clases, os sirvan para futuros planteamientos a otros juegos de este tipo (los llamados de conocimiento perfecto: damas, ajedrez, etc).
Os dejo un video del desarrollo de una partida:
En próximas entradas de este blog, iré "desmembrando" el código fuente, para explicaros como funciona el programa "paso a paso".
Aqui teneis tanto el instalador en .deb como el código fuente. Descarga paquete .deb: enlace Código fuente en gambas3.4.2: enlace
Nota:
Actualizacion 3/10/2013new
Version 0.0.4: enlace codigo fuente
-> Corregido algoritmo de negamax, ya que en algunas ocasiones la poda era erronea.
Preparando un ejemplo de FrontEnd hecho con gambas3 para el curso de gambas que estoy terminando de escribir (http://cursogambas.blogspot.com.es/), pues he hecho esta pequeña utilidad, para facilitar el uso de XbindKeys.
Simplemente sirve para asignar una combinación de teclas al programa que le indiquemos haciendonos las correspondinetes preguntas, y el solo modifica y actualiza el fichero de configuración, activando la combinación de teclas.
' Gambas class file
PublicSub _new()
End
PublicSub Form_Open()
'comprobar que exista el fichero .xbindkeysrc
If Exist(User.Home & "/.xbindkeysrc")Then
'no hago nada
Else
'copio el archivo de conifguracion inicial
Copy "xbindkeysrc"To User.Home & "/.xbindkeysrc"'este archivo es oculto
Endif
Me.center
End
PublicSub ToolButtonCrear_Click()
Dim contenido AsString
Dim comando AsString
Dim salida AsString
Dim lineas AsNewString[]
Message.Info("Cuando cierre esta ventana,pulse la combinación de teclas", "cerrar")
Shell"xbindkeys -k"To salida
'de la salida extraigo las dos ultimas lineas que son las que me interesan
lineas = Split(salida, gb.CrLf)
Print salida
Print"lineas que me interesan:"
Print lineas[lineas.max - 2]
Print lineas[lineas.max - 1]
comando = InputBox("Introduce el nombre del programa al que llamara esa combinación de teclas:")
Message.Info("Se acaba de añadir la combinacion de teclas...!!!")
End
PublicSub ToolButtonConfigurar_Click()
Shell"xbindkeys-config"
End
Pulsando el boton de "Crear nuevo atajo", lo que hacemos sacar un mensaje para indicar al usuario que tiene que pulsar la combinación de teclas cuando cierre el mensaje:
Message.Info("Cuando cierre esta ventana,pulse la combinación de teclas", "cerrar")
a continuación ejecutamos el programa xbindkeys, (y pulsaremos la combinación de teclas), capturamos la salida que produce el comando xbindkeys,
Shell"xbindkeys -k"To salida
y preguntamos que aplicación se va a ejecutar con la combinación de teclas dada anteriormente.
comando = InputBox("Introduce el nombre del programa al que llamara esa combinación de teclas:")
Gracias a Antonio Sánchez, he conocido este programa, que es capaz de configurar las teclas de tu teclado para que puedan ejecutarse programas simplemente pulsando la combinación que configures.
Al igual que Prezi, esta aplicación (realmente es una extensión de inkscape), es capaz de realizar presentaciones dinámicas, con la ventaja de ser softwarelibre:
Relaciones: Programa para mostrar la potenciación de un modo "esquemático"
Os dejo aqui un programa que he realizado tras una pregunta de Mauricio Marcelo Escudero, en el grupo de softwarelibre de Google Plus.
Se trata de hacer un esquema gráfico de datos que estén relacionados entre si.
Básicamente, mi programa contiene una serie de nombre a los que podemos ir relacionando unos con otros, añadiéndolos a una lista y luego es capar de hacer el esquema (internamente usa el comando dot de graphviz)
Programa en ejecución
Os dejo aquí un video para que veáis lo sencillo que es usarlo:
Se necesita tener un programa que gestione los datos de Alumnos y los
cursos donde estén apuntados. Gestionar se refiere a Guardar, Editar o
Borrar datos de alumnos o cursos. Nos permita hacer observaciones en los
alumnos que participan en los Cursos. La posibilidad de buscar por
legajo (numero de expediente) o documento a los alumnos. Realizar diversos informes para imprimir.
Realizar informes del tipo:
Lista de alumnos
Ficha de alumno con los cursos y observaciones en los que este apuntado.
Lista de cursos
Ficha de cursos con los alumnos que estén apuntados a él y que también aparezcan las observaciones de estos.
Observaciones:
Los alumnos podrán estar apuntados a más de un curso. (relación 1 alumno tiene uno o varios cursos)
Datos de los alumno: Nombre, Foto, Apellido, Domicilio, Teléfono, Nacionalidad, Documento Idenfiticativo, Nº de Expediente, Fecha de Nacimiento
Datos de los cursos: Nombre del curso, Observaciones sobre el curso.
Analisis:
Según lo explicado anteriormente, crearemos una base de datos con las siguientes tablas, campos y relaciones entre ellas:
Esquema realizado con el programa DIA
La tabla Relación es la que nos vá a permitir guardar la información de los alumnos que esten apuntados a los diversos cursos.
Podemos ver como la tabla Alumno puede tener uno o varias registros en Relaciones y la tabla Curso puede tener una o varias registros en la tabla Relaciones. Esto hace posible que un alumno puede estar a la vez en varios cursos y que un curso puede tener varios alumnos.
Cada registro de Relación, tendremos un campo de Observaciones, que nos servirá para añadir una observación del Alumno en el Curso.
Programación:
Se ha realizado en Gambas3.4.1, un lenguaje derivado moderno del BASIC y
con programación visual para los sistemas operativos GNU/Linux. Este
lenguaje permite programar tanto con el paradigma de Programación
Estructurada como de Programación Orientada Objeto (OOP).
Para esta aplicación se ha seguido el paradigma de Programación
Orientada a Objeto (OOP). Para los datos se ha seguido el patrón VO y
DAO para facilitar el manejo de la información y como patrón de diseño
se ha elegido el Modelo Vista Controlador (MVC), ya permite separar las vistas (formularios) del manejo de los datos y, en un futuro, ampliar dicho programa con facilidad. (enlace codejavu )
Detalle de modulo,clases, datos y formularios que forman el programa:
Autoría del Programa:
Este programa está realizado por Julio Sánchez Berro y Jorge Agustín Pereyra
Licencia: GPL 3.0
Fecha: Agosto del 2013
Video del programa:
Esta utilidad está realizada para cortar imagen, nos permite quitar sobrantes a imagenes y nos facilita extraer imagenes.
Un ejemplo:
Tenemos este fichero con distintas imágenes (son cartas de un juego del tipo "Imprimir y jugar" (print & play) ):
Y lo que queremos es extraer todas las imágenes guardándolas en distintos ficheros de imágenes.
Con el programa "cizalla", resulta muy cómodo realizar esta operación (tambien se podria usar Gimp, o el capturador de pantallas, pero necesitarias un buen pulso para sacarlas bien y tardarás más)
Cizalla nos permite:
0-Abrir una imagen .png o .jpg
1-rotar la imagen
2-cortarla
3-repetir las operaciones (1) y (2) tantas veces como necesitamos
4-tiene incluido un sistema "inteligente" para determinar cuando se corta una imagen, si es sobrante (no hace falta editarla, ya que es un resto inútil)
5- permite dimensionar las imagenes (reducir o ampliar el tamaño de la imagen que estemos trabajando)
6-Guardar la imagen modificada.
Vemos un video para mostraros como sería:
Paquete de instalacion deb: enlace
Codigo Fuente: enlace
Como os comenté en el anterior post, el coordinador del proyecto Minino PicarOs 2013, Antonio Sánchez, se ha puesto en contacto conmigo para dejarnos más información sobre esta distribución:
Ya tenemos lista una de las distribuciones más grandes del
planeta dedicada a los más pequeños: la nueva versión Diego
deMiniNo PicarOS.
Nota: Requerimiento de equipo:PIV 1800 MHz y 512 MB de RAM como mínimo, además si se quiere tener los efectos de composiciónque se ven el vídeo ( anterior post ) hay que considerar la tarjeta gráfica.
Características:
Basado en Debian Testing con kernel 3.10.1-picaros-686-pae (debian
kernel + gobohide)
USUARIO y
CONTRASEÑA predeterminados:
minino / minino
Todo el entorno enfocado para niños desde 3 a 12 años, aunque podemos cambiar a un escritorio más para adultos fácilmente:
Nota: Para cambiar a los distintos escritorios disponibles tenéis que ir al :
Menú -> Utilidades de MInino -> Estilo de escritorio
Configurado para trabajar con un simple clic (más fácil que
el doble clic).
El panel de lanzadores muy visual e intuitivo que incluye
programas que funcionan al hacer clic o al arrastrar y soltar los
archivos que haya que procesar.
Antes usábamos lanzadores tipo «.desktop», pero eran poco
personalizables y las cartelas de ayuda únicamente son de una
línea. Ahora usamos lanzadores basados en scripts
intermedios (AppRun) que nos permiten lanzar las aplicaciones una, y
solo una, vez, añadir cartelas más útiles y vistosas en varias
líneas, lanzar un mensaje si el programa va a tardar más de lo
deseado, comprobar si el programa requiere o no de internet o de
aceleración gráfica, si el equipo es lo suficientemente potente o
cualquier otra cosa que nos pueda surgir. Asímismo hemos creado un
lanzador que nos ayuda a transformar un archivo «.desktop» en un
lanzador de PicarOS.
Caja (de Mate-desktop) como administrador de archivos
predeterminado con soporte para miniaturas de imágenes, vídeos,
archivos de tipos de letras, etc... y también escucha previa en los
archivos de audio.
(Esto es lo que verás incluso activando «Mostrar archivos ocultos»)
Chrome y Firefox, son los navegadores predeterminados, pero
también tenemos Midori con Tor configurado para una
navegación segura y anónima.
En la despensa tenemos muchos servicios que de forma predeterminada
están desactivados para ahorrar memoria y para que los usen
únicamente aquellos que los necesiten, como por ejemplo,
bluethooth, cups (para las impresoras), epoptes
(para controlar equipos de un aula de informática), samba
(compartición de carpetas), cronopete (copias de seguridad
al estilo de TimeMachine), tracker (como tener un google en
tu ordenador), pequerrechos (para administrar el tiempo de
uso del ordenador por los peques)...etc.
En el apartado de edición gráfica contamos entre otros con:
Inkscape, Gimp, Tupí, TBO, Memaker,
Fotowall, Gpaint, Plop3D, Mypaint,
Hugin, Pixelize, Posterazor, Tuxpaint,
etc…
Juegos: Tangram, Blinken, Bombermaaan,
Ceferino, Childsplay, Frozen-bubble,
Funny-boat, Galaga, Gtkboard, Gcompris,
Numptyphisics, Pingus, Raincat,
Opensonic, Omnitux, Secretmario, Supertux,
Tuxmath, Tuxtype, Pychess, etc... enlaces a
cuentos y juegos educativos como “El caracol Serafín”, “Math
Invaders”, “Poison Rouge”...
En la sección multimedia hay de todo también para ver, crear y
editar audio y vídeo, entre otros: Openshot, Avidemux,
Photofilmstrip, Imagination, GnomeSubtitle,
AristaTranscoder, Luciole, Stopmotion,
SlowmoUI, Minitube, FreetuxTv, VLC,
xt7Player, Cheese, Performous, Pykaraoke,
Audacious, Lingot, Milkytracker, Improvisor,
LMMS, Songwrite2, PianoBooster, TuxGuitar,
Hydrogen, PianoVirtual, Audacity,
Jockosher, easyMP3gain, Brasero, Bombono,
Devede, etc…
En ofimática, también tenemos todo lo que nos pueda hacer falta en
un momento dado: agenda (Osmo), generadores de carnets,
de diplomas, de orlas, de crucigramas (genxword3-gtk),
de sopas de letras (WordSearchCreator), diagramas de flujo
(VUE), diccionarios (Babiloo), programas para manejar
el escáner (Simple Scan) y para hacer OCR (OCRFeeder),
para aprender mecanografía (Ktouch), para organizar los
libros electrónicos (Calibre), para modificar PDF
(PDF-chain, PDF-Shuffer, gscan2pdf, pdfmod),
crear tipos de letra (FontForge) y, por supuesto, LibreOffice4.
Otros programas incluidos son: para trabajar las matemáticas
(Geogebra, Kig, Kalgebra, Kbruch),
geografía (Marble, GoogleEarth), para el
vocabulario y los idiomas (Perroquet, Anki), para la
pizarra digital (OpenSancoré,
Xournal), simulaciones físicas (Step), entrenar tu
cerebro (Gbrainy), para realizar exámenes tipo test (iTest),
iniciación a la programación para niños (Scratch, Laby,
Kojo, Gambas3, Etoys5), etc, etc, etc…
Además tenemos varios scripts que facilitan tareas a los
chicos cuando están creando contenidos, por ejemplo, conversores de
imágenes, enmarcadores de páginas, conversores de vídeos a
distintos formatos, ídem con el audio, impresión de varios
documentos al mismo tiempo, etc... Todos ellos basados en un
sencillo arrastrar y soltar archivos al icono correspondiente.
Hay que decir que los programas fueron probados y usados y,
consecuentemente, muchos han sido «mejorados» con complementos,
utilidades, dependencias extras, etc... Por ejemplo:
Firefox tiene instalado el complemento DownloadHelper para
poder descargar cualquier recurso multimedia de Internet, también
tiene Adblocks porque tantísima publicidad satura a los
niños y les impide centrar la atención cuando navegan y por último
también tiene Xmarks (aunque Firefox ya cuenta con un
sincronizador que funciona bastante bien en un aula de ordenadores).
Libreoffice tiene también algunas extensiones, por ejemplo,
diccionarios de palabras, de sinónimos y antónimos,
de efectos 3D en Impress, de importación de PDF,
lectura sintetizada, etc...
Inkscape tiene incorporadas bibliotecas python requeridas por
algunos complementos. También tiene instalado Sozi para
hacer presentaciones visualmente similares a Prezi.
Gimp también tiene varios añadidos y efectos especiales para el
tratamiento de imágenes y así con muchísimos otros programas.
En definitiva, está todo pensado para que los niños (y no tan
niños) no tengan por qué saber nada del sistema ni de instalaciones
para sacarle jugo a esta distribución.
Os agradecemos que la probéis y que nos enviéis vuestros informes
de fallos a nuestro correo minino[en]galpon[punto]org
Ver el documento online en otros idiomas (Castellano / Gallego / Ingles): enlace
Actualización 26/9/2013:
Canal Youtube con videotutoriales: enlace
Localizar Coordenadas UTM Rápidamente con Google Earth
Algunas veces necesitamos localizar en un mapa unas coordenadas expresadas en UTM, con google earth podemos hallar unas coordenadas rápidamente.
Pasos a seguir:
1) Pinchamos en el icono de la chincheta
2) En el formulario que nos sale, ponemos los datos de:
- Zona o Huso donde están ubicadas las coordenadas.
- coordenada X (eje de "abscisa")
- coordenada Y ("Norte" , que esta mal traducido seria "eje ordenada" )
En el nombre, debemos poner un nombre orientador así lo podremos buscar fácilmente en la barra de "lugares". Le pongo el nombre de "Buscando Lugar", y nos aparecerá en Lugares en la carpeta de Lugares Temporales
Y ahora haciendo doble click sobre "Buscando Lugar", la vista se desplazará hacia el lugar de dichas coordenadas.
Si queremos guardar ese lugar, simplemente cogemos la etiqueta de "Buscando Lugar" y la movemos a "Mis sitios", quedándose guardada para posteriores búsquedas.
Saludos
Nota:
Si no ve completo este articulo es que tienes adblock activado. Por favor desactive adblock para este blog. Gracias