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:



sábado, 22 de abril de 2017

Actualizando KDE desde PPA: resolviendo problema de embeber consola en krusader


Actualizando KDE desde PPA: resolviendo problema de embeber consola en krusader


Krusader  es una  de mis aplicaciones preferidas a la hora de administrar archivos en mi PC. La trae el escritorio KDE, pero la he podido instalar con también en otros escritorios (xfce por ejemplo). En caso es que mi distro actual (linux mint 16.04), la versión que esta en repositorios es la 2.4.0 que tiene un pequeño bug a la hora de embeber la consola dentro de los paneles de la propia aplicación:


Consola embebida dentro de los paneles de Krusader
Nota: En linux mint 16.04, da un error al embeber la consola, la captura es de la version 2.5 de krusader

¿como resolvemos este problema? Añadiendo el siguiente  PPA a nuestro sistema:

sudo add-apt-repository ppa:kubuntu-ppa/backports-landing
sudo apt-get update

Una vez hecho esto, con simplemente:
sudo apt-get install krusader

Se nos instala la version de krusader 2.5.0, que tiene corregido el bug de embeber la terminal o consola :)

Os dejo un video que hice hace tiempo, explicando el uso de perfiles en krusader:


lunes, 17 de abril de 2017

Gambas3: Nuevo control DayButton

Gambas3: Nuevo control DayButton

Una forma de extender el lenguaje gambas3, es crear nuevos controles que faciliten el trabajo de los programadores, a la hora de crear interfaces y/o programas. Este control es un ejemplo, sobre partiendo de uno existente (el button), se crea otro que nos muestra la fecha que le hayamos pasado en su propiedad fecha de la siguiente manera: día de la semana en texto, día numéricamente, y mes. Ademas si te sitúas encima de el, te sale el tooltip con la fecha:







Para redibujar el interior del botón, el código es el siguiente:

Public Sub _new()
  $hDA = New DrawingArea(Me) As "da"
  Me.Proxy = $hDA
End
Public Sub da_Draw()
  Dim hImage As New Image
  Dim iFlag As Integer = Style.StateOf(Me)
  Style.PaintButton(0, 0, $hDA.W, $hDA.H, $bState, iFlag, False)
  If Me.W > Me.H Then
    Me.H = Me.W
  Else
    Me.W = Me.H
  Endif
  Style.PaintButton(0, 0, $hDA.W, $hDA.H, $bState, iFlag, False)
  Draw.RichText(Html(WeekDatText(Me.fecha)), 0, 0, Me.W, Me.H / 3, Align.Center)
  Draw.RichText(Html(Day(Me.fecha)), 0, Me.H / 3, Me.W, Me.H * 1 / 3, Align.Center)
  Draw.RichText(Html(MonthText(Me.fecha)), 0, Me.H * 2 / 3, Me.W, Me.H / 3, Align.Center)
End

Y las funciones que convierten la fecha en texto (dia, mes) son:


Public Function WeekDatText(fecha As Date) As String
  Dim ArrayDay As String[]
  ArrayDay = [("Lunes"), ("Martes"), ("Miercoles"), ("Jueves"), ("Viernes"), ("Sabado"), ("Domingo")]
  Return Choose(WeekDay(fecha), ArrayDay[0], ArrayDay[1], ArrayDay[2], ArrayDay[3], ArrayDay[4], ArrayDay[5], ArrayDay[6])
End
Public Function MonthText(fecha As Date) As String
  Dim ArrayMonth As String[]
  ArrayMonth = [("Enero"), ("Febrero"), ("Marzo"), ("Abril"), ("Mayo"), ("Junio"), ("Julio"), ("Agosto"), ("Septiembre"), ("Octubre"), ("Noviembre"), ("Diciembre")]
  Return ArrayMonth[Month(fecha) - 1]
End
Private Function Fecha_Read() As Date
  If hfecha = Null Then
    hfecha = Now
    Me.Tooltip = Str(Format(hfecha, "dd-mm-yyyy"))
  Endif
  Return hfecha
End


El video de presentación del control:



Enlace de descarga:  alojado en google drive


miércoles, 12 de abril de 2017

Gambas + JavaScript: Diagramas de Gantt con jquery.ganttView




Gambas + JavaScript: 

Diagramas de Gantt con jquery.ganttView



Mediante el control Webview (que proviene del componente gb.qt4/5.webkit), gambas nos proporciona la posibilidad de usar script y librerias realizadas en javascript.

 Este es un ejemplo de uso de la libreria jquery.ganttView, para realizar diagramas gantt, los cuales podemos definir desde un textarea y ver el resultado del gráfico dentro del control Webview:


Os dejo un video donde podéis ver como interactuar con el programa:





Véase también otro ejemplo de javascript con gambas para realizar distintos tipos de gráficos (de barra, tarta, etc):  Usando JavaScript en Gambas3: Creación de gráficas







Enlace de descarga codigo fuente e instalador: archivo alojados en google drive







martes, 11 de abril de 2017

[Web] Tipo de letra: font awesome

[Web] Tipo de letra:  font awesome


Escuchando el podcast "Aprende a Programar" de Luis Peris (https://www.ivoox.com/003-de-empresario-a-programador-audios-mp3_rf_18052924_1.html), estuvieron comentando el tipo de letra font awesome, que es muy práctica para las páginas web, donde tengamos que poner logotipos de twiter, facebook, youtube etc.. ya que vienen definido como letras, que se pueden escalar sin problemas de pixelados, y apenas van a tener peso de kbytes en el  sitio en la página web (muchísimo  menos que las imágenes).

Os dejo una captura, y los enlaces donde podéis conseguirla


Una pequeña muestra de los caracteres de este tipo de letra
  http://fontawesome.io/cheatsheet/

Descarga: http://fontawesome.io/#modal-download

Para descargar el tipo de letra, pulsar en el botón: "No thanks, just download Font Awesome"




Fuentes:

http://fontawesome.io/cheatsheet/


https://www.w3schools.com/icons/fontawesome_icons_intro.asp




miércoles, 5 de abril de 2017

Como hacer un formulario de "espera" con animación


Como hacer un formulario de "espera" con animación
Algunas veces en nuestras aplicaciones tenemos que hacer una tarea que desconocemos cuanto tiempo va a tardar. Si mientras se realiza esa tarea, no mostramos nada al usuario, puede dar la impresión que la aplicación se ha colgado. La forma hace que el usuario no se lleve esa impresión, es mostra algo (por ejemplo  una animación (por ejemplo).

En el siguiente video os explico como hacerlo.



Como veis, se trata de usar las propiedades de la clase process (proceso):
Public prsBatch As Process
....
 prsBatch = Shell "sleep 10" '..... 'comando que no sabemos cuanto dura su tiempo de ejecucion
  Inc Application.busy
  While prsBatch.state = prsBatch.running
    Wait 0.1
    dibujapuntitos(etiqueta)
    dibujaaspa(etiquetaspa)
    dibujaDibujo(Cuadrodibujo)
  Wend
  Dec application.busy
......
La funcioón dibujaDibujo(), se encarga de ir cambiando el dibujo de un control picturebox, segun el valor de un contador:

Private Sub dibujaDibujo(dibuj As PictureBox)
  contadorDibujo += 2
  Select Case contadorDibujo
    Case 1 To 4
      dibuj.Picture = Picture.Load("01.png")
      dibuj.refresh()
    Case 5 To 9
      dibuj.Picture = Picture.Load("02.png")
      dibuj.refresh()
    Case 10 To 14
      dibuj.Picture = Picture.Load("03.png")
      dibuj.refresh()
    Case 15 To 19
      dibuj.Picture = Picture.Load("04.png")
      dibuj.refresh()
    Case 20 To 24
      dibuj.Picture = Picture.Load("05.png")
      dibuj.refresh()
    Case 25 To 29
      dibuj.Picture = Picture.Load("06.png")
      dibuj.refresh()
    Case 30 To 34
      dibuj.Picture = Picture.Load("07.png")
      dibuj.refresh()
    Case 35 To 39
      dibuj.Picture = Picture.Load("08.png")
      dibuj.refresh()
    Case Else
      dibuj.Picture = Picture.Load("01.png")
      dibuj.refresh()
      contadorDibujo = 0
  End Select
End


Codigo fuente: codigo fuente alojado en google drive


Fuentes:
https://www.gambas-es.org/viewtopic.php?f=1&t=6256&start=20

sábado, 1 de abril de 2017

gbCluedo: Investiga cual fue el asesino....




gbCluedo: Investiga cual fue el asesino....


gbCluedo, es una variante del juego Cluedo, para un solo jugador, donde deberás investigar haciendo sugerencias para descubrir cual fue el asesino del Dr.Lemon, haciendo preguntas sobre personaje, lugar y arma..





Descarga del instalador y el código fuente:   Alojado en google drive 


jueves, 30 de marzo de 2017

Resolver Error: grub rescue>


Resolver Error: grub rescue>





Me ha pasado varias veces este error, sobre todo cuando he instalado varias distribuciones  en mi disco duro. He encontrado varias entradas que explican como arreglarlo:

Sin usar live-cd:
https://blog.desdelinux.net/como-recuperar-grub-2-sin-utilizar-un-live-cd/

Usando live-cd:
https://rootear.com/ubuntu-linux/como-reparar-grub2


Saludos

miércoles, 29 de marzo de 2017

BASH: Aplicar una orden o comando a los todos los ficheros de un directorio




BASH: Aplicar una orden/comando a los todos los ficheros de un directorio



Esta mañana me he encontrado un pequeño problema: Tenia una serie de archivos .pdf, que los tenia que girar 180º. Sabía que con el comando pdftk, los podía girar, pero eso era uno a uno. Entonces, buscando por google, encontré la forma de hacer un pequeño script para leer todos los ficheros del directorio y aplicarle la orden de giro uno a uno automáticamente:



El script lo escribí en el editor nano, y luego solo le tuve que dar permisos de ejecución para ejecutarlos dentro del directorio donde tenia los ficheros .pdf

Nota: Cuidado con el nombre de los archivos, que deben de ser sin espacios

Fuentes:
https://www.gambas-es.org/viewtopic.php?f=14&p=37405#p37405




Código RAW del archivo:
#! /bin/bash
girado="Girado"
for archivoActual in $(ls -la *.pdf|awk '{print $9}');do
echo $archivoActual

pdftk A=$archivoActual cat A1-endDown output $archivoActual$girado.pdf

echo "Girado a..."$archivoActual$girado.pdf
done

domingo, 26 de marzo de 2017

#Apuestas: Análisis de Promociones de Apuestas

#Apuestas: Análisis de Promociones de Apuestas


Sigo con este blog analizando las distintas promociones de apuestas que salen en las casas de apuestas de españa todas las semanas... los resultados los podéis ver en estas gráficas:


Beneficios Netos desde octubre/2016 (cuando empece el blog): 674 euros




Resultado por meses:

Gráficas de Beneficios Acumulados / Promociones:



Para más información:  http://analisisdepromocionesdeapuestas.blogspot.com.es/

Canal telegram: @analisispromocionesapuestas


sábado, 25 de marzo de 2017

Menús Vs Cinta Ribbon ¿facilitan las tareas más que los menús?


Menús Vs Cinta Ribbon
 ¿facilitan las tareas más que los menús?





La cinta ribbon, la hizo famosa Microsoft cuando implementó "Ribbon" por primera vez en Microsoft Office 2007 , dejó los menús de toda la vida, y paso a este nuevo diseño como interfaz de usuario... Yo nunca me he llegado a acostumbrar a él. Ahora Libreoffice los va a incorporar (en modo de pruebas y no obligatorios) en su interfaz. ¿ventajas? ¿inconvenientes?... Ahora te cuento.

Esquema de cinta ribbon:

En informática, Ribbon es una interfaz gráfica de usuario, compuesta de una banda (cintas) en la parte superior de una ventana donde se exponen todas las funciones que puede realizar un programa en un solo lugar.
Ventajas:
Las opciones "principales" y de mucho uso, los usuarios las van a tener visibles y a un click de distancia de encontrarlas y activarlas. Yo no le veo ninguna más.. sinceramente.

Desventajas o Inconvenientes:
Lo usuario noveles, solo ven estos iconos y el resto de opciones "se les oculta", haciéndoles difíciles descubrirlas. En los menús, siempre vemos todas las opciones, las usemos o no, pero están allí y siempre podemos "investigar" a ver que hacen.

Menús y Submenús en libreoffice
Los usuarios que ya sabemos manejarnos y conocemos más  opciones que las "típicas", vemos que las cinta ribbon, nos "ocultan" las opciones no usuales, (y en el peor de los casos, nos "perdemos" al intentarlas buscar), y cuando las encontramos, por lo menos en OFFICE, aparacen los formularios "de toda la vida", osea, hemos dado un rodeo para encontrar lo mismo...  Además perdemos "parte de la pantalla", ya que la propia cinta ocupa mucho más que una linea de menus (mucho más que la barra de herramientas (iconos), de toda la vida).


Como experiencia personal, las primeras veces que intente trabajar con estas cintas ribbon, fué un total fracaso... llevo más de 30 años usando hojas de cálculos y me sentí que no sabía nada, que "tenia que empezar de cero", no encontraba las opciones.... si hubiera estado en un examen, seguro que lo hubiera suspendido...

Pienso que la mejor manera es que los dos sistemas estén activados, recuerdo que en OFFICE de microsoft, habia programas para "activar" de nuevo los  menús... en LibreOffice, por lo que he visto, ahora mismo, es una opción de "desarrollo" activar la cinta ribbon, espero que haya una opción para que convivan los dos sistemas de interfaz.



Referencias:
https://es.wikipedia.org/wiki/Cinta_(inform%C3%A1tica)
http://www.muylinux.com/2017/02/03/ribbon-en-libreoffice


KODI (antiguo Xbmc): Convierte tu ordenador en un centro multimedia: peliculas, musica, imagenes.



KODI (antiguo Xbmc): 

Convierte tu ordenador en un centro multimedia: películas, tv, música, imágenes.





Me he instalado este programa del que había escuchado mucho, y la verdad, es que añadiendo algunos addons que me he encontrado en youtube o en el canal en castellano de telegram  https://t.me/kodispain , me ha cambiado la vida :)
"Kodi (antes conocido como "Xbox Media Center" o XBMC) es un centro multimedia de entretenimiento multiplataforma bajo la licencia GNU/GPL."
Ref: https://es.wikipedia.org/wiki/Kodi

Os dejo varios videos que he encontrado interesantes....






Enlaces de interes:
https://kodi.tv/
http://mundokodi.com/repos-para-kodi/
https://kodimexico.wordpress.com/



jueves, 16 de marzo de 2017

¿donde buscar musica libre de derechos? Yoyo tiene la respuesta...

¿donde buscar música libre de derechos? 

Yoyo tiene la respuesta...


¿quieres música para añadir a tus videos familiares, de youtube, o podcast?, pues en este video Yoyo Férnandez, nos enseña varios sitios web donde podemos conseguir música libre  de derechos :







Sitios citados en el vídeo:
 Youtube 
 Jamendo 
 Audionautix 
 Incompetech 
 Free Music Archive

Os dejo el canal de youtube de Yoyo Fernández:
https://www.youtube.com/channel/UCq1jZXZJ3ULECQ9CntnNXhA
y su blog:
https://salmorejogeek.com/


Fuente:
https://salmorejogeek.com/2016/06/05/5-sitios-donde-descargar-musica-libre-y-gratuita-creative-commons-para-tus-proyectos-personales%EF%BB%BF/

lunes, 13 de marzo de 2017

softwarelibre: Octave. Ejemplo de gráfica 3d

softwarelibre: 

Octave. Ejemplo de gráfica 3d






¿que es octave?
GNU Octave es un programa libre para realizar cálculos numéricos. Como su nombre indica, es parte del proyecto GNU. Es considerado el equivalente libre de MATLAB. Entre varias características que comparten, se puede destacar que ambos ofrecen un intérprete, permitiendo ejecutar órdenes en modo interactivo. Nótese que Octave no es un sistema de álgebra computacional, como lo es Maxima, sino que está orientado al análisis numérico. (ref. https://es.wikipedia.org/wiki/GNU_Octave )

¿como instalarlo?
En ubuntu, y linux mint:

 $ sudo apt-get install octave


Para más información: página del proyecto:
https://www.gnu.org/software/octave/


Video ejemplo del dibujo de la funcio 3d: sen(r)/r, siendo r=sqrt(x^2+y^2)




Manuales:
http://softlibre.unizar.es/manuales/aplicaciones/octave/manual_octave.pdf
http://softlibre.unizar.es/manuales/aplicaciones/octave/octave.pdf
http://eva.universidad.edu.uy/mod/resource/view.php?id=270893


martes, 28 de febrero de 2017

Softwarelibre: Resolver problemas de programación lineal con GLPK




Softwarelibre:
Resolver problemas de programación lineal con GLPK





GLPK son las siglas de  GNU Linear Programming Kit, un paquete diseñado para resolver la programación lineal a gran escala (LP), la programación de entero mixto  (MIP) y otros problemas relacionados. Es un conjunto de funciones escritas en ANSI C y organizadas en la forma de librería.

GLPK soporta el lenguaje de modelado GNU MathProg, que es un subconjunto del lenguaje AMPL.

El paquete GLPK incluye los siguientes componentes principales: 
- Métodos simplex primario y dual
- Método del punto interior primal-dual 
- Método de ramificación y corte 
- Traductor de GNU MathProg 
- Interfaz del programa de aplicación (API) 
- Solver independiente LP / MIP


Os dejo un pequeño interfaz gráfico de usuario para este programa, hecho en gambas3, para facilitar el uso de GLPK.



Y un vídeo para que veáis como se usa y un par de ejemplos:







Saludos



Fuentes:
https://www.gnu.org/software/glpk/

http://www.vitutor.com/algebra/pl/a_g.html







domingo, 26 de febrero de 2017

redes neuronales con softwarelibre: Ejemplo de Aplicación Detección de Números


Redes Neuronales con softwarelibre: 

Ejemplo de Aplicación Detección de Números





Hola amigos, si habéis llegado hasta aquí, es por que buscáis un ejemplo de uso de redes neuronales, que sea simple y entendible... y nada (o poco de teoría), que ya podeis encontrar en otros sitios mucho mejor explicada que aquí.

El caso, estuve buscando información sobre redes neurales usando softwarelibre y gracias a los usuarios del canal de Python España de telegram (https://t.me/PythonEsp), pues me comentaron que existe la libreria scikit-learn (http://scikit-learn.org/stable/), con multitud de utilidades y herramientas científicas, programadas ya, y listas para usar. También viene un buen número de ejemplos.


Bueno, pues mi he decidido a realizar mi propio ejemplo usando esa libreria, y en especial, la parte de red neuronal (Perceptron Multi Capa), y lo he aplicado para detección de números  dada una cuadricula de 7x5 que nos diga que numero es (el ejemplo es del 0 al 5).


Os dejo un par de videos para que vais como la aplicación y una explicación del código:







Enlace de Descarga del código fuente:
https://drive.google.com/drive/folders/0B02Ro2CNt-OOb1JMMk5GY083RG8?usp=list


Más información sobre clase Perceptron Multi Capa:
http://scikit-learn.org/stable/modules/neural_networks_supervised.html



Nota 1:
Para poder usar la aplicación, teneis que tener instalado:
1) Gambas3:
Con ppa:
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3

Otras formas de instalarlo:
http://cursogambas.blogspot.com.es/2012/08/instalacion-desde-repositorios-del.html



2) Python
(en la mayoria de las distribuciones esta instalada por defecto)

3) Libreria Cientifica: scikit-learn

sudo pip install -U scikit-learn

Nota 2:
Si quereis ver los ejemplos que comentan en la web de scikit-learn, seguramente os sea necesario instalar:
sudo apt-get install python-matplotlib
sudo apt-get install python-tk
sudo pip install -U numpy

lunes, 20 de febrero de 2017

Youtube: Solución al "Error al publicar respuesta a comentario"



Youtube:

Solución al "Error al publicar respuesta al comentario"


Últimamente recibo muchos comentarios en mi canal de youtube, y me gusta contestar si me preguntan algo que no entienden del video. Pero al contestar me estaba saliendo el error de "Error al publicar respuesta", he encontrado la solución que explico en el siguiente video. Espero que os sea útil.


Saludos


domingo, 12 de febrero de 2017

Curso Completo de Hoja de Calculo



Curso Completo de LibreOffice Calc


Os dejo aqui un enlace a un curso de videostutoriales, muy completo sobre libreoffice Calc


Enlace: Lista de Reproduccion Videos Tutoriales LibreOffice Calc



Descarga de libreoffice5.3:

x86 deb:
http://donate.libreoffice.org/home/dl/deb-x86/5.3.0/es/LibreOffice_5.3.0_Linux_x86_deb.tar.gz

x64 deb:
http://donate.libreoffice.org/home/dl/deb-x86_64/5.3.0/es/LibreOffice_5.3.0_Linux_x86-64_deb.tar.gz

x64 rpm:
http://donate.libreoffice.org/home/dl/rpm-x86_64/5.3.0/es/LibreOffice_5.3.0_Linux_x86-64_rpm.tar.gz

y sino prueba este enlace:
http://es.libreoffice.org/descarga/libreoffice-nuevo/


Y una vez descargado, descomprime, y en directorio descompirmido, para instalar:
Para sistemas basados en  Debian/Ubuntu: sudo dpkg -i *.deb

Para sistemas basados en Fedora su -c 'yum install *.rpm'

Para sistemas basados en Mandriva: sudo urpmi *.rpm

Para otros sistemas que usan RPM (openSUSE, etc.): rpm -Uvh *.rpm






Os dejo el indice, que como veis, es muy completo:
  1. Lección 1 PRESENTACIÓN DEL CURSO E INSTALACIÓN DE LIBREOFFICE.
  2. Lección 2 PRESENTACIÓN GENERAL DE LA VENTANA DE INICIO.
  3. Lección 3 NOCIONES BÁSICAS. LA HOJA DE CÁLCULO: ¿QUÉ ES? Y OPERACIONES BÁSICAS CON LAS HOJAS DE CÁLCULO.
  4. Lección 4 NOCIONES BÁSICAS. INSERTAR DATOS EN LAS CELDAS Y EL TIPO O FORMATO DEL DATO.
  5. Lección 5 NOCIONES BÁSICAS. SELECCIONAR FILAS, COLUMNAS Y RANGOS. COPIAR, PEGAR, CORTAR. RELLENAR CELDAS.
  6. Lección 6 NOCIONES BÁSICAS. PRESENTACIÓN DE LOS DATOS EN TABLAS: FUENTE, ALINEACIÓN, BORDES, COLOR, ETC.
  7. Lección 7 NOCIONES BÁSICAS. FILAS Y COLUMNAS: ALTO Y ANCHO. INSERTAR Y ELIMINAR. OCULTAR Y MOSTRAR. CELDAS: DESPLAZAR, COMBINAR Y DIVIDIR.
  8. Lección 8 CALCULANDO. REFERENCIAS A CELDAS, A HOJAS Y A OTRO LIBRO. DIFERENCIA ENTRE REFERENCIA RELATIVA, ABSOLUTA Y MIXTA. SÍMBOLO $. OPCIÓN DE RELLENAR.
  9. Lección 9 CALCULANDO. OPERADORES BÁSICOS: ARITMÉTICOS, DE COMPARACIÓN Y DE TEXTO.
  10. Lección 10 CALCULANDO. FUNCIONES: ASISTENTE Y LISTADO DE FUNCIONES. OPCIÓN DE AUTOSUMA.
  11. Lección 11 CALCULANDO. FUNCIONES HABITUALES (I): SI - Y - O - SUMA - SUMAR.SI - SUMAR.SI.CONJUNTO.
  12. Lección 12 CALCULANDO. FUNCIONES HABITUALES (II): CONTAR – CONTARA - CONTAR.SI - CONTAR.SI.CONJUNTO.
  13. Lección 13 CALCULANDO. FUNCIONES HABITUALES (III): PROMEDIO - DESVEST - MEDIANA – MODA.UNO - MÁX - MÍN.
  14. Lección 14 CALCULANDO. FUNCIONES HABITUALES (IV): BUSCAR - BUSCARV – BUSCARH – COINCIDIR.
  15. Lección 15 CALCULANDO. FUNCIONES HABITUALES (V): CONCATENAR – DERECHA – IZQUIERDA - REEMPLAZAR - EXTRAEB.
  16. Lección 16 CALCULANDO. FUNCIONES HABITUALES (VI): TRANSPONER – ALEATORIO – JERARQUÍA - ELEGIR.
  17. Lección 17 CALCULANDO. FUNCIONES HABITUALES (VII): AHORA - HOY - FECHA – AÑO – MES – DIA – HORA – MINUTO – SEGUNDO.
  18. Lección 18 CALCULANDO. FUNCIONES HABITUALES (VIII): ABS – ENTERO - REDONDEAR – TRUNCAR.
  19. Lección 19 CALCULANDO. FUNCIONES HABITUALES (IX): EXP, LN, LOG10, POTENCIA, RAIZ, RESIDUO.
  20. Lección 20 CALCULANDO. FUNCIONES HABITUALES (X): PAGO –TASA – NPER - VA –VF.
  21. Lección 21 CALCULANDO. MENSAJES DE ERROR MÁS HABITUALES.
  22. Lección 22 MANEJANDO DATOS. ORDENAR.
  23. Lección 23 MANEJANDO DATOS. FILTRAR.
  24. Lección 24 MANEJANDO DATOS. FORMATO CONDICIONAL.
  25. Lección 25 MANEJANDO DATOS. FORMULARIO DE DATOS, OBTENER SUBTOTALES Y VALIDEZ DE LOS DATOS.
  26. Lección 26 MANEJANDO DATOS. IMPORTAR ARCHIVOS CSV Y DIVIDIR TEXTO EN COLUMNAS.
  27. Lección 27 MANEJANDO DATOS. REAGRUPAR DATOS DE CELDAS INDEPENDIENTES (OPCIÓN CONSOLIDAR) Y AGRUPAR DATOS MEDIANTE ESQUEMAS (OPCIÓN GRUPO Y ESQUEMA).
  28. Lección 28 MANEJANDO DATOS. MÚLTIPLES OPERACIONES.
  29. Lección 29 MANEJANDO DATOS. GRÁFICOS (I): SELECCIONAR TIPO DE GRÁFICO, INTERVALO DE DATOS A REPRESENTAR Y LEYENDA.
  30. Lección 30 MANEJANDO DATOS. GRÁFICOS (II): DIFERENTES TIPOS DE GRÁFICO Y SU PERSONALIZACIÓN.
  31. Lección 31 MANEJANDO DATOS. TABLAS DINÁMICAS: QUÉ SON Y CÓMO CREARLAS.
  32. Lección 32 HERRAMIENTAS. INMOVILIZAR PANELES Y DIVIDIR VENTANAS. PROTEGER DOCUMENTOS, HOJAS Y CELDAS. ABRIR CON CONTRASEÑA Y MODO DE SOLO LECTURA.
  33. Lección 33 HERRAMIENTAS. PERSONALIZAR MENÚS Y BARRAS DE HERRAMIENTAS.
  34. Lección 34 SALIDA DE DATOS. PREPARAR LA HOJA DE CÁLCULO PARA IMPRIMIR O EXPORTAR A PDF.



Fuente:
https://www.gambas-es.org/viewtopic.php?t=6183&p=37036#p37036

miércoles, 1 de febrero de 2017

[VirtualBox]: Atajos de teclado



[VirtualBox]: Atajos de teclado

Muchas veces, en la máquina virtual, pierdo la barra de información y menu de virtualbox, y dejo de poder configurar comodamente mi máquina virtual. La solución es usar los atajos de teclados para volver a poder configurar la máquina. Os dejo los atajos de teclado tanto para la máquina virtual, como para el Administrador  principal.


Administración de VirtualBox
Ctrl + D: Administración de medios virtuales.
Ctrl + A: Agregar.
Ctrl + U: Agrupar.
Ctrl + H: Apagar ACPI.
Ctrl + F: Apagar.
Q: Cerrar.
Ctrl + O: Clonar.
Ctrl + S: Configuración.
F1: Contenidos.
Ctrl + J: Descartar el estado guardado.
Ctrl + R: Eliminar.
Ctrl + E: Exportar servicio virtualizado.
Ctrl + V: Guardar estado.
Ctrl + I: Importar servicio virtualizado.
Ctrl + L: Mostrar historial de eventos.
Ctrl + N: Nueva.
Ctrl + P: Pausar.
Ctrl + G: Preferencias.
Ctrl + T: Reiniciar.
Ctrl + M: Renombrar grupo.
Ctrl + Q: Salir.


En la Máquina Virtual
Ctrl DERECHA + A: Ajustar tamaño de ventanas.
Ctrl DERECHA + H: Apagado ACPI.
Ctrl DERECHA + Q: Cerrar.
Ctrl DERECHA + S: Configuración.
Ctrl DERECHA + N: Muestra información de sesión.
Ctrl DERECHA + Supr: Insertar Ctrl+Alt+Del.
Ctrl DERECHA + Inicio: Menú emergente.
Ctrl DERECHA + M: Minimizar ventana.
Ctrl DERECHA + C: Modo escalado.
Ctrl DERECHA + L: Modo fluído.
Ctrl DERECHA + F: Modo pantalla completa.
Ctrl DERECHA + P: Pausar.
Ctrl DERECHA + R: Reiniciar.
Ctrl DERECHA + E: Hacer una captura de pantalla.
Ctrl DERECHA + T: Hacer una instantánea.


Personaliza los atajos de teclado a tu gusto en Archivo > Preferencias > Entrada.

Fuente:
http://www.efectoplacebo.com/atajos-de-teclado-para-virtualbox/

martes, 31 de enero de 2017

Accesibilidad: Talkback o modo audiodescrito para ciegos en moviles




Accesibilidad:
 Talkback o modo audiodescrito para ciegos en moviles
Activar / Desactivar




Hoy os cuento una anécdota, que me ha pasado con una compañera de trabajo y su móvil. Sin darse cuenta anoche activo el modo TALKBACK, de su móvil samsung con sistema operativo android.
El caso es que no sabia desactivarlo, y estaba escuchando todo el rato la voz describiendo lo que hacia (pulsar opciones de teclado, elegir aplicaciones y abrirlas, etc...). Pero no encontraba la forma de "desplazarse"  por el menu de Ajustes , para encontrar la opción de accesibilidad y desactivar esta función TALKBACK...  el caso es que esta mañana le ha estado preguntado a los compañeros del trabajo, y  tras una pequeña búsqueda en internet hemos encontrado como son los gestos para moverse en los menus y aplicaciones con el modo Talkback activado... Resulta que si arrastras la pantalla con 2 dedos, ya se puede hacer el scrolling (o desplazamiento) de la aplicación y/o menús que estés usando... 




Una vez sabido esto, ya  pudimos entrar en Ajustes/Accesibilidad/Talkback y desactivarlo...

¡¡ OBJETIVO CONSEGUIDO !!




Fuente:
http://www.lg.com/es/posventa/microsites/movil/funcion-talkback

sábado, 28 de enero de 2017

[Java] Mi primera utilidad PegaRuta

[Java] Mi primera utilidad

PegaRuta



Necesitaba hacer un pequeño programa que facilitara la copia de archivos a una ruta temporal.


El caso es que tenia que tenia que funcionar en Windows, con lo cual tenia dos alternativas: Hacerlo en Java o en Python

Como hay mucha documentación sobre java, me decidí por este último.

El programa debía leer una ruta de un archivo "pegada" en el portapapeles,  y hacer una copia del archivo en un directorio temporal.

Para leer el portapapeles, use este código:
 Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
 Transferable t = cb.getContents(this);
// Construimos el DataFlavor correspondiente a String.
DataFlavor dataFlavorStringJava = new DataFlavor("application/x-java-serialized-object; class=java.lang.String");
// Si el dato se puede obtener como String, lo obtenemos
if (t.isDataFlavorSupported(dataFlavorStringJava)) {
 String texto = (String) t.getTransferData(dataFlavorStringJava);
}

Y Para la copia del fichero:
File FicheroOld=new File(texto);
                     
// copiamos el archivo a ruta temporal
// cambiando el nombre
                 
String separador = System.getProperty("file.separator");
                     
Path rutafin = Paths.get(separador + "tmp"+ separador + FicheroOld.getName());
                     
Files.copy(Paths.get(FicheroOld.getPath()),rutafin);
Nota:
Fijaros en la variable "separador", que va a variar si el sistema es linux o windows




Alojado en: https://github.com/jsbsan/pegaruta

[web] Poner anuncios de google adsense en wix (wixsite.com)



[web] Poner anuncios de google adsense en  wix (wixsite.com)

Me han pedido que haga un video explicando como poner anuncios de google adsense en las páginas hechas con wix (wixsite.com). Esta es una plataforma donde podemos hacer páginas web muy facilmente, "arrastrando y colocando" elementos, en la plantillas que elijamos. Os dejo el video explicando como insertar anuncios de google adsense en esta plataforma:







Y esta es la página web que he creado, donde se pueden ver los anuncios insertados:

http://zufrearacena.wixsite.com/misitio-1

Saludos

sábado, 21 de enero de 2017

kde: Organizar Automáticamente las ventanas de las aplicaciones abiertas.

kde: Organizar Automáticamente las ventanas de las aplicaciones abiertas.


Como ya sabeis, últimamente estoy usando KDE, pero echaba de menos alguna forma de poner las ventanas que tenia abierta de las aplicaciones en modo Mosaico (que se quedaran organizadas automáticamente cuando se abrían). Pues en el canal de telegran de kde en español ( https://t.me/kde_canasbravas ), me han dado varias pistas de como hacerlo.

Os dejo un video, donde explico como instala desde el fomulario de  "preferencias del sistema" y el uso el pluging Tiling para la organización de las ventanas en mi escritorio:





Nota para otros escritorios:
Otra aplicacion similar  es  xtitle pero en KDE, no llega a funcionar.


Como curiosidad os dejo el código fuente de este pluging:
https://github.com/faho/kwin-tiling





lunes, 16 de enero de 2017

Como se hizo.... MicroComando extraepaginapdf



Como se hizo.... MicroComando extraepaginapdf


Os dejo un pequeño video donde comento el código fuente de este programa que extrae las paginas de un pdf, usando por debajo de él, el programa pdftk:









Nota:
Para la descarga del programa visita este enlace:
 http://jsbsan.blogspot.com.es/2017/01/desarrollo-terminal-microcomandos.html


Saludos


domingo, 15 de enero de 2017

[Desarrollo Terminal]: MicroComandos hechos en gambas3

[Desarrollo]: 

MicroComandos hechos en gambas3


Aunque el punto fuerte de gambas3, es realizar aplicaciones gráficas de forma muy rápida, también podemos desarrollar aplicaciones para la terminal. En este artículo os traigo un ejemplo de ello.



El problema:
Se me plantea esta semana un trabajo donde tengo que trabajar con varios pdf y que debo de "trocear" (extraer páginas) de ellos. La solución inicial, es usar el comando pdftk, por ejemplo:

Si quiero extraer desde la página 52 hasta la 57 (ambas inclusive) del pdf "origen.pdf", y guardarlas en el archivo "salida.pdf", el comando seria así:

$pdftk A=origen.pdf cat A52-57 output salida.pdf

¿y si creo un comando más simple (más corto) para hacer lo mismo? Por ejemplo, algo así como:

$extraepaginapdf 52 57

Este comando, buscaría el primer archivo .pdf que se encuentre en el directorio actual, le extrae las páginas desde la 52 hasta la 57, y genera un archivo salida.pdf.

Bueno, pues lo he creado para que por defecto funcione así. Además tiene la opción de ponerle un nombre distinto al archivo de salida.

Os dejo un video para que veais como funciona:




Enlace de descarga: alojado en google drive




Fuentes:
http://jsbsan.blogspot.com.es/2016/12/terminal-modificar-archivos-pdf-con.html
https://fortinux.com/tutoriales/linux-2-tutoriales/tutorial-extraer-paginas-de-archivos-pdf-con-pdftk-en-linux/

viernes, 13 de enero de 2017

[Software Libre]: Inkscape

[Software Libre]: Inkscape



Inkscape es un editor de gráficos vectoriales gratuito y de código libre. Inkscape puede crear y editar diagramas, líneas, gráficos, logotipos, e ilustraciones complejas. El formato principal que utiliza el programa es Scalable Vector Graphics (SVG) versión 1.1.

Cursos de Inkscape:  1/52



Otro: Ilustración fácil con Inkscape (1/10)




Medium banner says Support Inkscape

fuentes:
https://inkscape.org/es/
https://inkscape.org/es/aprende/tutoriales/
https://inkscape.org/es/aprende/videos/
https://inkscape.org/es/ayudanos/donar/
https://es.wikipedia.org/wiki/Inkscape
https://es.wikipedia.org/wiki/Scalable_Vector_Graphics

domingo, 8 de enero de 2017

Como se hizo.... Gplanet

Como se hizo.... Gplanet


He hecho una serie de video tutoriales, para explicar un poco como esta hecho el juego Gplanet  ( enlace ), espero que os guste:




Enlace a la lista de reproducción:

Os dejo una descripción de los videos de la lista:

1.Presentación.Pues eso, presento el juego

2. Explico como descargar el juego (y también gambas3 y git)

3. Hablo de la estructura del proyecto gplanet y la clase Flota

4. Hablo de las clases: Fondo, Planeta y Tablero

5. La IA del juego... como es y como funciona.

6. Eventos: las clases se comunican entre si !!!



Videos:



Saludos







viernes, 6 de enero de 2017

Gracias a mis 500 suscriptores !!!


Gracias a mis 500 suscriptores !!!


Los reyes magos me han traído un pequeño regalo: en el día de hoy mi canal de youtube ha llegado a los 500 suscriptores:

 !! Gracias a tod@s!!!



Este año, la temática del canal seguirá con la publicación de trucos, guías y manuales de uso de programas de softwarelibre, además  seguiré mostrando los programas que vaya realizando en el lenguaje gambas3.





Un saludo, y feliz día de reyes.


miércoles, 4 de enero de 2017

[Nueva Versión]: Lanzado gambas3.9.2

[Nueva Versión]: Lanzado gambas3.9.2


El pasado 1 de enero, Benoit nos ha traido una nueva versión de gambas3, con corrección de errores de la anterior version gambas3.9.1. Hoy mismo se ha actualiado el  PPA.

Para añadir el ppa e instalar gambas3:

$sudo add-apt-repository ppa:gambas-team/gambas3
$sudo apt-get update
$sudo apt-get install gambas3


¿Qué hay de nuevo?
Esta versión corrige la mayoría de los errores graves encontrados desde el lanzamiento de Gambas 3.9.1.

ChangeLogCONFIGURACIÓN
Detectar correctamente la actualización de la base de datos svn para generar el archivo de la versión del tronco.

ENTORNO DE DESARROLLO
  • Opcionalmente, cargue el componente gb.inotify.
  • Cliente de la granja: Ayuda para la publicación de la biblioteca y la instalación de la biblioteca.
  • Traducción: Las ubicaciones de las cadenas traducidas deben ser más legibles ahora.
  • Cuadro de diálogo de bienvenida: El botón de software está deshabilitado si no se instala ningún software.
  • Boletín de bienvenida: el software y las listas de ejemplos se actualizan automáticamente una vez que se ha utilizado el cliente de software de la comunidad.
  • Diálogo de bienvenida: El software se puede desinstalar haciendo clic en el pequeño icono en la parte superior derecha de la caja del software.
  • Empaquetador: El nombre del paquete de la biblioteca ahora está siempre prefijado con el nombre o prefijo del proveedor, de modo que este nombre es predecible.
  • Empaquetador: Por lo tanto, hacer un paquete de un proyecto utilizando otra biblioteca no se bloquea más si esa biblioteca nunca se empaquetó.
  • Empaquetador: Al crear el paquete, muestre los mensajes en un cuadro debajo del registro de salida. No utilice más cuadros de mensaje.
  • Cliente de la granja de servidores: Al desinstalar una biblioteca, elimina automáticamente el directorio del proveedor si se anula.
  • Cliente de la granja de servidores: Al desinstalar un software instalado desde la granja de servidores, elimine automáticamente el directorio del proveedor si se anula.
  • Permitir que los archivos ubicados en un directorio vinculado se modifiquen sólo si se abren en modo falso, es decir, solo.
  • Editor de conexión: El botón "Solicitud de SQL" ahora es una entrada en la lista de tablas.
  • Editor de conexión: La descripción de la base de datos es ahora la información de herramientas del botón de configuración de la base de datos.
  • Editor: Corregir fallo en el escaneado de código después de una eliminación.
  • Empaquetador: el cuadro de texto de descripción ahora se expande verticalmente.
  • Empaquetador: La descripción del paquete Debian ahora se genera correctamente en todos los casos.
  • Editor: Solución de un bloqueo de intérprete al analizar una expresión que incluye la última palabra clave.
  • Retire la bonita indentación de código en la función Comienzo / Fin. Necesito encontrar una manera de cerrar las sangrías en las funciones sin terminar.
  • Diálogo de biblioteca: No se bloquea si una biblioteca global y una biblioteca local tienen el mismo proveedor.
  • Cierre explícitamente el formulario FOutput para que pueda guardar sus configuraciones antes de que su padre se destruya.

INTERPRETE
  • El archivo de traducción del proyecto se carga siempre correctamente. Ese era un viejo error.
  • El retardo del temporizador ahora se almacena en 31 bits, por lo que ahora puede ser de hasta 2 ^ 31 - 1 milisegundos, es decir, aproximadamente 24 días, 20 horas y 31 segundos.
  • Exec con un nombre de programa nulo ya no se bloquea.
  • El depurador no se bloquea más al mostrar un objeto estático de tipo recopilación.
  • Cerrar observó la entrada y salidas del proceso tan pronto como se muera. De lo contrario, ejecutar dos procesos que utilizan terminales virtuales sucesivamente puede fallar.
  • Eliminar mensajes de depuración.

GB.ARGS
Tome UTF-8 en cuenta al formatear texto de ayuda.
Corregir texto de ayuda para las opciones que no tienen nombre corto.

GB.DB
Connection.ApplyTemplate () ahora maneja correctamente una intercalación cuyo nombre es "predeterminado" en el archivo de plantilla.

GB.DB.SQLITE2
Las cadenas de SQL, incluidos los caracteres de barra invertida, están ahora correctamente citados.

GB.DB.SQLITE3
Las cadenas de SQL, incluidos los caracteres de barra invertida, están ahora correctamente citados.
GB.DBUS
DBusObject.Raise () ahora utiliza la interfaz de objeto predeterminada si no se especifica ninguna interfaz en el nombre del evento.
Corregir la pérdida de cadena en la rutina de ordenación de firmas.

GB.DESKTOP
  • Desktop.RunAsRoot () ahora usa gksu si gksudo no se encuentra.
  • Desktop.RunAsRoot () debería funcionar correctamente en SuSE ahora. Utiliza kdsu si no se encuentra kdsudo.
  • Utilice la cartera KDE5 cuando el escritorio sea KDE5. Utilice una cartera KDE4 antigua posible sólo si no se encuentra ninguna contraseña en la cartera KDE5.
  • Compatibilidad con equipos de escritorio cygwin.
  • Configurar Desktop.Passwords [] ahora funciona correctamente si se utiliza la herramienta secreta.

GB.EVAL.HIGHLIGHT
Agregue algunas propiedades y símbolos CSS.

GB.FORM
DirChooser, FileChooser: Agregue un menú de "borrar directorio" que sólo puede eliminar directorios vacíos.
DirView: Los eventos de visualización de archivos no molestan el cambio de nombre.
MenuButton: La rutina emergente automática del menú no debería bloquearse más.

GB.FORM.EDITOR
TextEditor: Editor funciona correctamente de nuevo cuando un procedimiento se contrae.

GB.GTK
Window.Menus [] no se bloquea más.
Solución que evita que los colores de información de herramientas del sistema sean ilegibles.

GB.GTK3
Window.Menus [] no se bloquea más.
Solución que evita que los colores de información de herramientas del sistema sean ilegibles.

GB.GUI.BASE
GridView: Detenga el temporizador de desplazamiento cuando se pierde el foco, como si abriera un diálogo modal durante un evento MouseDown, no obtendrá el evento MouseUp. Tal vez debería plantear sistemáticamente un falso evento MouseUp cuando el foco se pierde, y QT no lo envió.
IconView: actualiza correctamente el diseño cuando las imágenes de los iconos se hacen más pequeñas.

GB.INOTIFY
La creación de un reloj con una ruta nula ahora genera un error en lugar de bloquearse.
No asuma que inotify_add_watch () tiene éxito en todos los casos. La ruta de observación puede haber sido eliminada después de haber creado el reloj.

GB.JIT
Corrige la detección jit.h y resuelve el problema donde hay varias versiones de llvm. Jit.h sólo está disponible antes de llvm 3.6 y gb.jit sólo se puede compilar con estas  versiones.

GB.MAP
Ahora las polilíneas funcionan correctamente.
El zoom no cambia el centro del mapa.

GB.MEDIA
Vincular explícitamente con la biblioteca de subprocesos.
MediaPipeline: Evita que la rutina de devolución de mensajes sea posible.
MediaPipeline: Levanta el evento Start cuando se inicia una nueva secuencia.
MediaPipeline: Las propiedades de posición y duración se calculan ahora durante la rutina de devolución de llamada del mensaje.
MediaPipeline: Levante el evento AboutToFinish dos segundos antes del final de la secuencia.
MediaPlayer: NextURL es una nueva propiedad que debe establecer para definir la siguiente secuencia que se reproducirá sin intervalo.
MediaPlayer: La configuración de la propiedad URL detiene automáticamente el reproductor.
MediaPlayer: El evento AboutToFinish ahora es planteado por MediaPipeline. Esta no es la señal de aproximadamente a terminar de GStreamer.

GB.MEDIA.FORM
MediaView: Expone el evento de MediaPlayer AboutToFinish.
MediaView: Expone la propiedad MediaPlayer NextURL interna.
GB.NET.POP3
Pop3Client.Refresh () ha sido implementado. Este método era necesario para actualizar el caché interno de mensajes, de modo que no tiene que abrir una nueva conexión cada vez que necesite leer el cuadro de mensaje.

GB.QT4
Solución que evita que los colores de información de herramientas del sistema sean ilegibles.

GB.QT5
Solución que evita que los colores de información de herramientas del sistema sean ilegibles.

GB.SDL
Cygwin necesita la biblioteca compartida x11 - según Bastian Germann.

GB.SDL2.AUDIO
Elimine las referencias innecesarias a los objetos de canal, que conducen a la pérdida de memoria.

GB.XML
XmlNode: No se bloquee cuando _get () ing un valor de atributo vacío.
XmlNode.Attributes ahora funciona correctamente al obtener atributos vacíos.
XmlElement.GetAttribute () ahora funciona correctamente con atributos vacíos.
Cygwin cambia - según Bastian Germann.

GB.WEB
Si el encabezado Http-Accept-Language es nulo, Request.Language devuelve el lenguaje actual del sistema en lugar de "C".
Tipos de Mime para archivos json, kml y kmz. Utilizado por el método Response.SendFile ().
No modifique DB.Current cuando las sesiones se administran con bases de datos sqlite.
Utilizar Response.SendFile () establece correctamente la propiedad Done.
Obtener las claves de sesiones con sqlite funciona correctamente ahora.

GB.WEB.FORM
  • WebForm.Download () es un nuevo método estático que activa una descarga de archivos en el lado del cliente.
  • WebTextBox: El evento predeterminado es "Cambiar" ahora.
  • Permite cotizaciones en los elementos de finalización automática.
  • WebControl.Name ahora puede escribirse, de modo que la propiedad virtual de grupo se puede utilizar en el IDE.
  • WebContainer: forzar una actualización completa cuando cambia la propiedad Visible.
  • WebTable: Agrega una propiedad oculta al objeto de columna.
  • WebUploadArea: Clear () es un nuevo método que borra el archivo posiblemente subido.
  • WebTable: La selección ahora se mantiene correctamente entre las solicitudes.
  • El método público estático HandleRequest ahora se llama correctamente en su formulario de inicio.
  • Quite el soporte para múltiples formularios principales.
  • WebTable: AddColumn () es un nuevo método para agregar una columna y definir sus propiedades en una línea de código.
  • WebForm: Evita que la ventana de diálogo no redimensionable se expanda para ajustarse a su contenido.
  • WebForm: restaura correctamente instancias automáticas entre solicitudes.
  • WebForm: El método Hide () funciona como se espera ahora.
  • WebForm: Persistente es una nueva propiedad que indica que un formulario debe estar oculto en lugar de ser eliminado cuando se hace clic en el botón Cerrar o se llama al método Close ().
  • WebDataBox: DateTime es una nueva propiedad que permite al control aceptar una parte de tiempo.


Fuente Original:

domingo, 1 de enero de 2017

Juego de Estrategia 4x: Gplanet



Juego de Estrategia 4x:

 Gplanet






Empezamos el año 2017, con un juego de temática Star Wars, del tipo 4X (eXploración, eXpansión, eXplotación de recursos y eXterminación del enemigo). ¡¡¡ Conquista planetas, para conseguir más naves, y gana al imperio galáctico. !!!






Aqui teneis el instalador .deb alojado en gdrive:    descarga



El proyecto de gplanet, con su código fuente está alojado en github en la siguiente dirección:


En próximas entradas, explicaré como esta hecho.... para que podáis hacer vuestras propias versiones.


Nota:
El juego esta hecho en gambas3, teneis que tener instalado gambas3.9.1

   $sudo add-apt-repository ppa:gambas-team/gambas3  
   $sudo apt-get update
   $sudo apt-get install gambas3


Post Data:
Dedicado al recuerdo de Carrie Fisher
http://starwarsprincesaleiaorgana.blogspot.com.es/