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, 14 de octubre de 2017

Maraton Linuxero: Domingo 15 de Octubre





Mañana (15 de Octubre) un evento del Maratón Linuxero, con nueva imagen y nuevos horizontes que rebasar. No os lo perdáis. https://t.co/glLO9ztoa8








Solución: Waiting for cache en chrome y/o chromium



Solución: Waiting for cache... 

en chrome y/o chromium



Me esta pasando que cuando se uso perfiles en los navegadores chrome o en chormium, llega un momento que se queda bloqueado mostrando en navegador, mostrando la pantalla en blanco y el mensaje en la parte inferior de "Waiting for cache..." y en la pestaña el signo de carga y "loading...".He encontrado varias formas de solucionar este problema. Os lo cuento...



1º) La primera y más sencilla en borrar el cache. 
2º) La segunda opción es más agresiva, ya que borramos manualmente el cache del navegador, desde el administrador de archivos.  Una recomendación, al borrar la carpeta perderemos información sobre los sitios visitados, contraseñas, etc... Lo que hago es hacer una copia de la carpeta del cache del navegador y cuando empieza a fallar, borro y restauro la copia.


En el siguiente vídeo lo podéis ver explicado:




Saludos










miércoles, 11 de octubre de 2017

[Productividad] Cosas que hay que hacer antes de una llamada/videoconferencia importante.

[Productividad] Cosas que hay que hacer antes de una llamada/videoconferencia importante.


-Preparar la llamada:
1. Programar la llamada, como si fuera una reunión. Elegir el dia/hora adecuado tanto para la otra persona como para ti.
2. Anotar los puntos claves a tratar. Si necesitas algo para tratar esos temas (pequeño informe, estadistica, presupuesto, etc), tenerlo antes de la llamada.
3.Tener claro lo que NO hay que decir. Contar la información necesaria para lo que busques.
4. Enfócate: Unos momentos antes de la llamada piensa mentalmente lo que necesitas conseguir con la llamada. Por ejemplo: "necesito arrancar un compromiso"
-Durante la llamada:
5. Abrevia la introducción. Vez directo al grano. Saludos si, pero no rodeos.
6. Empieza la conversación por el punto más importante. Si hay una interrupción durante la llamada, al menos habrás tratado el punto más importante.
7. Cierre de la llamada: Con un Resumen de Acuerdos - Acciones: La llamada debería de terminarse recapitulando:
-que es lo que hay que hacer
-quien lo va a hacer
-cuando  lo va a hacer.
Sobre todo en llamadas largas, que se han tratado muchos temas.


https://www.ivoox.com/tw-e14-como-hacer-llamadas-importantes-audios-mp3_rf_12337385_1.html

martes, 10 de octubre de 2017

[Productividad] Pon fin a procastinar: "mejor lo hago otro dia"


[Productividad] Pon fin a procastinar: "mejor lo hago otro dia"


1.- Divide la tarea en varias partes.
2.- Elige bien el dia y la hora para haceralas.
3.- Rodeate de estimulos positivos. Por ejemplo ponerte tu música favorita.
4.- Fijate solo  en el primer gesto. No pienses en todo lo que hay que hacer, sino solo en la primera acción. Para no caer en la tentación de abandonar.
5.- Haz un pacto: arranca y para. Si no puedes elegir el dia, o dividir la tarea, y haya que hacerlo todo hoy. pacta contigo mismo empezar y parar  con la tarea a los 15 minutos y ver lo que has hecho. Asi tienes el efecto de "ponerte en marcha".


https://www.ivoox.com/tw-06-como-hacer-vez-esas-audios-mp3_rf_11305527_1.html?autoplay=true

lunes, 9 de octubre de 2017

[Productividad] Como poner el Turbo Productivo


Como poner el Turbo Productivo


1) Identificar los principales objetivos del dia. La lista de tarea no siempre indica  que es lo que "si o si" hay que terminar  en el día.

2) Revisar la lista de tareas. ¿todo es absoluctamente necesario? Dar prioridad a unas frente a otras, dejarlas para otro día las que no tengan prioridad.

3) Crear un muro para tu atención: fuera las autodistracciones

  • cierra y quita del medio lo que no necesitas para la tarea que vas a hacer
  • cierra aplicaciones
  • cierra navegador con sus mil petañas
  • silencia las notificaciones del ordenador
  • móvil silenciado y boca abajo.


4) Empieza el día haciendo 2 tareas de alto valor: las más importantes, y las más complicadas y las que te hagan más avanzar.

5) No se te ocurrar caer en el engaño de la multitarea. Centrarte en una sola cada vez. Hacerla de Una en Una.

6) Haz descansos con cierta frecuencia.

7) Centrate en completar la tarea en la que estás. Terminar es impresindible.



Fuente:
https://www.ivoox.com/tw-03-como-poner-turbo-productivo-cuando-audios-mp3_rf_11133806_1.html












sábado, 7 de octubre de 2017

Gambas: Obtener numero de dias del Mes. Ejemplo Uso de funciones externas.

Gambas: Obtener número de días del Mes. Ejemplo Uso de funciones externas.


Revisando el foro de gambas-es.org, encontré este interesante código donde el usuario Vuott, usaba la función externa "g_date_get_days_in_month" de la libreria "libglib-2.0", para obtener el numero de días de una mes y año concreto.



Library "libglib-2.0"


' guint8 g_date_get_days_in_month (GDateMonth month, GDateYear year)

' Returns the number of days in a month, taking leap years into account.

Private Extern g_date_get_days_in_month(GDmonth As Integer, GDyear As Integer) As Byte


Public Sub Main()

 
 Dim num As Byte

 Dim mes As String

 Dim meses As String[] = [Null"Enero""Febrero""Marzo""Abril""Mayo""Junio","Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre"]

 
  mes = "Febrero"

 
  num = g_date_get_days_in_month(meses.Find(mes), 2016)

   
  Print "El mes de "; mes; " contiene "; num; " dias."

  
End




Codigo descargable: Alojado en google drive


fuente:
https://www.gambas-es.org/viewtopic.php?f=4&t=6633

viernes, 6 de octubre de 2017

[Productividad] Preparar Reuniones



[Productividad] Preparar Reuniones

Preparar las reunión Antes para que sea lo más productiva. 





Puntos a tener en cuenta:
 
1- ¿de verdad la reunión es necesaria? ¿no se puede resolver por correo o reunión express?
2- Elegir muy bien el  día y hora: no a 1º hora ni a última hora. Ni Lunes.
3- Comunicar por correo electrónico, con 1 semana de antelación la fecha de la reunión.
4- Fijar Agenda [de lo que se va a hablar] más Objetivos [lo que hay que conseguir, lo que buscamos realmente].
5- Seleccionar los asistentes: Más gente es peor. ¿Quien de verdad va a aportar algo a los temas que va a tratar?, ¿va a asistir quien puede decidir?
6- Todo el mundo debe de preparar la reunión. 
7- Marcar por adelantado la duración de la reunión.


Fuente:

miércoles, 4 de octubre de 2017

[Productividad] Cómo escribir CORREOS Eficaces


 [Productividad]

Cómo escribir CORREOS eficaces

Diez  puntos para mejorar habilidades a la hora de escribir Correos








1. Antes de escribir, pensar: ¿Cuál es la idea principal que tengo que dejar claro?

2. Limitar un máximo de número de caracteres. En 1 o 2 párrafos caben la mayoría de los mensajes.

3. Evitar rodeos, ir a lo importante:
a. ¿Qué es lo que hay que hacer?
b. Cuando hay que hacerlo.
4. Utilizar negrita/subrayado/mayúsculas para dejar claro plazos, fechas de entregas y horarios.

5. Escribe en este orden:
a. 1º el cuerpo del mensaje
b. 2º el asunto
c. 3º quien tiene que recibirlo
        Así evitamos enviar por error un mensaje no terminado.

6. El Asunto es el titular de la noticia: tiene que contar de que trata el mensaje sin necesidad de abrirlo: Que Quieres y Sobre que ES.
            Ejemplo: “Consulta-Plazo de entrega  pedido X”

7. Separar en varios mensajes, si quieres tratar de varios temas.

8. Estructura el mensaje: Si hay varios puntos a tratar en el mensaje, hay que evitar mezclarlos en el mismo párrafo. Sepáralos en forma de lista con puntos ó guiones.

9. Utilizar Plantillas para responder. Respuestas prediseñadas y preparadas.
https://business.tutsplus.com/es/articles/canned-responses-email-templates-that-save-time--cms-28545

10. Aprender atajos de teclado de los gestos que más repite (crear mensaje, enviar, guardar,  etc…) es más rápido que usar el ratón.



FUENTES:
https://www.ivoox.com/tw-01-como-escribir-correos-mas-eficaces-y-audios-mp3_rf_11133773_1.html?autoplay=true

ThinkWasabi

viernes, 22 de septiembre de 2017

Como Renombrar Masivamente Archivos: Ejemplos de uso de RENAME




Como Renombrar Masivamente Archivos: Ejemplos de uso de RENAME






Renombrar un archivo es sencillo... pero cuando se trata de renombrar cientos.... la cosa varia. El uso del comando rename y de expresiones regulares nos sirven para simplificar dicha tarea.
"Una simple linea de comando puede conseguir en varios segundos el mismo resultado que haríamos manualmente en horas."

La sintaxis del comando rename es:

rename perlexpr [archivos]

Dónde:
  • perlexpr es una expresión regular en lenguaje Perl. (ver *)
  • [archivos] es la lista de archivos a los que afectará el comando.
Nota: 
Existen entornos gráficos de este comando (pyrenamer) pero muchas veces no tenemos acceso a entorno gráfico, y la terminal siempre la podemos usar, por ejemplo en entornos online de linux (ejemplo en c9.io) o cuando estamos trabajando directamente con servidores.
pyrenamer: entorno gráfico para el comando rename

Os dejo varios ejemplos explicados:
1) Queremos cambiar la extensión de los archivos .txt del directorio actual por .csv

$rename 's/\.txt/\.csv/' *.txt

Explicación:

  • 's/\.txt/\.csv/' es la expresión regular que dice "cambia .txt por .csv".
  • *.txt es la lista de archivos a los que hay que aplicarles el cambio.

       Nota: el caracter especial ".", se indica con "\."


2) Queremos añadir al principio del nombre de todos los ficheros .PDF el texto "01.03.Planos.":

$rename 's/^/01.03.Planos./' *.pdf

Explicación:

  • 's/^/01.03.Planos./'  es la expresión regular que dice "al principio pon el texto 01.03.Planos."
  • *.pdf es la lista de archivos a los que hay que aplicarles el cambio.

3) Queremos sustituir los espacios de los nombres por el caracter guión bajo, osea " " cambiar a "_" de los archivos .PDF
$rename 'y/\ /_/' *.pdf 

Explicación:

  • 'y/\ /_/'  es la expresión regular que dice "cuando aparezca un espacio sustitúyelo por un guion bajo _"
  • *.pdf es la lista de archivos a los que hay que aplicarles el cambio.

4) Queremos quitar el contenido que este entre parentesis de los nombes de los ficheros, incluido el propio parentesis. Por ejemplo "hola(1).txt" renombrarlo a "hola.txt"

$rename 's/\(.*\)//g' *

Explicación:
  • 's/\(.*\)//g'  es la expresión regular que dice "elimina el contenido entre parentesis incluido los parantesis"
  • * a todos los ficheros
5) Tenemos varios archivos con este  formato  de nombre: "Audio XX-Pista de audio By hola.mp3", siendo XX el numero de la canción. Se desea eliminar del nombre la parte de "Audio " y " By hola"

$rename 's/Audio //g' *.mp3
$rename 's/ By hola//g' *.mp3

Explicación:
  • Aplicamos 2 veces el comando, una para eliminar la palabra "Audio " y otra para eliminar " By hola"
  • 's/Audio //g' eliminamos la palabra "Audio "
  • 's/ By hola//g' eliminamos las palabras " By hola"
  • *.mp3: Aplicamos a todos los ficheros .mp3
http://mercurio.ugr.es/pedro/tutoriales/cursos/perl/expresiones.htm


(*) Extra:

Construyendo expresiones regulares complejas:


.cualquier caracter salvo el de retorno de carro
^indica que coincida al principio de la línea
$indica que coincida al final de la línea
*aparezca 0 o más veces el caracter que lo precede
+aparezca 1 o más veces el caracter que lo precede
?aparezca 0 o 1 veces el caracter que lo precede
[]indica un conjunto de caracteres que pueden aparecer
[^]indica un conjunto de caracteres que no pueden aparecer
|indica una disyunción, aparezca una de las opciones
()agrupa una serie de patrones en un simple elemento
{n}que coincida exactamente n veces
{n,}que coincida al menos n veces
{n,m}que coincida al menos n veces y no mas de m
\nun retorno de línea
\tun tabulador
\wun caracter alfanumérico (equivale a [a-zA-Z0-9_])
\Wun caracter no alfanumérico (equivale a [^a-zA-Z0-9_])
\dun caracter numérico (equivale a [0-9])
\Dun caracter no numérico (equivale a [^0-9])
\sun caracter de espaciado (espacio, tabulador, nueva línea, etc)
\Sun caracter NO de espaciado
\bcoincida con los límites de una palabra
\Bcoincida con el interior de una palabra
\033un número octal (el 033)
\x1bun número hexadecimal (el 1B)
\| \[ \] \( \) \* \^ \/ \\ etcrepresentan | [ ] ( ) * / \ (hay que escapar estos caracteres especiales)


Veamos algunos ejemplos ilustrativos:
d.luna "d" seguida de un caracter cualquiera y una "l" (del, dal, dzl, d5l, etc)
^funa "f" al principio de la cadena (fofo, farfolla, f35, etc)
^hol"hola" al principio de la cadena (hola, holita, etc)
e$una "e" al final de la cadena (este, ese, etc)
te$"te" al final de la cadena (este, paquete, etc)
ind*"in" seguido de cero o más caracteres "d" (in, ind, indd, etc)
.*cualquier cadena, sin retorno de carro
^$una cadena vacia
[qjk]una "q", o una "j" o una "k"
[^qjk]no sea "q", o una "j" o una "k"
[a-z]cualquier letra entre la "a" y la "z"
[^a-z]no sean letras minúsculas
[a-zA-Z]una letra minúscula o mayúscula
[a-z]+una secuencia no vacia de letras minúsculas
f.*cacoincide con p.e. "fca", "foca", "flaca", "flor vaca", etc
f.+cacoincide con los anteriores salvo con "fca"
fe?acoincide con "fa" y "fea"
^[ \t]*$una linea en blanco, o combinaciones de espacios y tabuladores
[-+]?\d*\.?\d*lo mismo que [-+]?[0-9]*\.?[0-9]* (números decimales)
( (\d{1,2})\/(\d{1,2})\/(\d{1,4}) )una fecha en el siguiente formato DD/MM/AAAA (13/02/1674 ó 8/2/23 pero también 99/99/9999)
pepe|juano "pepe" o "juan"
(pe|hue)coso "pecos" o "huecos"
(da)+o da o dada o dadada ...
[01]un "0" o un "1"
\/0una división por 0
\/ 0una división por 0 con un espacio
\/\s0una división por 0 con un caracter de espacio (espacio, tabulador, retorno de carro)
\/ *0una división por 0 con varios espacios
\/\s*0una división por 0 con posibles caracteres de espaciado
\/\s*0\.0*una división por 0 con posibles caracteres espaciado y acepta "0." "0.0" "0.00" etc
fia|fea|fuacoincida con "fia", "fea" o "fua"
f(i|e|u)acoincida con "fia", "fea" o "fua"
(fia|fea|fua)equivale a los dos anteriores
[fia|fea|fua]equivale a [fiaeu]


miércoles, 20 de septiembre de 2017

[Truco] Como convertir varios documentos .doc en .pdf



[Truco] Como convertir varios .doc en .pdf

Desde hace tiempo MS Word tiene la función de "guardar como" en formato .PDF, pero ¿que pasas si tienes muchos archivos .DOC y los tienes que convertir a PDF? ¿que hay que hacerlo uno a uno? ¿se podría hacer de una manera automática y todos a la vez? Linux al rescate....

Este es el problema que me he encontrado esta mañana, ya que tengo un CD con cientos de archivos MS Word (.doc) y los tengo que convertir en PDF.  Encontré internet varias páginas que lo convertían "online", pero o tenia que ir uno a uno o tenía que registrarme. Al final no me convencía la idea, y me fui a hacerlo con gnu/linux, con la consola Bash, con un pequeño script.

Me cree el siguiente script:
for archivoActual in $(ls *.DOC);do  unoconv -f pdf $archivoActualdone
Lo que hace es:
A todos los archivo terminados en la extensión .DOC del directorio donde se encuentre el script, le va a aplicar el comando unoconv, creando un fichero con el mismo y con la extensión .PDF

Como veis usa el comando unoconv, que se encarga de la conversión, os dejo el enlace donde se explica con más detalle sus opciones:
https://docs.moodle.org/all/es/Universal_Office_Converter_(unoconv)

Para instalar unoconv, por si no lo teneis:
sudo apt-get install unoconv

Notas:

  • Para aplicar el script, tuve que darle permisos de ejecución y crear una carpeta temporal en mi directorio de linux donde copiaba los ficheros .DOC y ejecutaba en el script. 
  • Algunos nombres de ficheros .DOC, los renombre, por ejemplo, les quite los espacios, sustituyéndolos por guion bajo "_", para que el script funcionara sin problemas.
  • Como linux distingue entre mayúsculas y minúsculas, si la extensión del fichero fuera .doc (y no .DOC), el script cambiaría a:
for archivoActual in $(ls *.doc);do  unoconv -f pdf $archivoActualdone


Os dejo el enlace de descarga del script: https://goo.gl/C76uuF

Saludos

sábado, 9 de septiembre de 2017

[Truco] Definir atajos de teclado en linux: Que al pulsar la tecla Windows+E, nos abra el administrador de archivos

[Truco] Definir atajos de teclado en linux:

 Que al pulsar la tecla Windows+E, nos abra el administrador de archivos




Este artículo surge de que cuando uso windows, estoy acostumbrado a usar la tecla Windows + E, para abrir el explorador de archivos. En linux podemos usar el programa xbindkeys  para definir atajos de teclado.


Sara ello tenemos que instalar primero xbindkeys:
$sudo aptitude install xbindkeys xbindkeys-config


El xbindkeys-config, es la interfaz gráfica que nos va a ayudar a definir los atajos, aunque siempre lo podemos realizar la definición del ajato "manualmente" editando el archivos : .xbindkeyrs

$ nano ~/.xbindkeysrc

Y escribiendo al final del fichero:
#Definino que con la combinación de las teclas Windows y E, nos abra el administrador de archivo caja
"caja"
Mod4 + e


En el siguiente video os explico como definirlo desde el interfaz gráfica de xbindkeys-config:

jueves, 31 de agosto de 2017

Aumenta tus visitas: Usa Titulares Llamativos

Aumenta tus visitas: Usa Titulares Llamativos



¿como aumentar la visitas de tu página web, ya seas un periódico o un simple blog? Usa titulares llamativos....aunque no sean "del todo cierto", llaman la atención y así consigues visitas... aunque los lectores se pueden llevar un chasco y a la larga desconfiarán de tí y de los artículos que publicas.

Esa es la técnica que usan muchos periódicos, por ejemplo hoy me ha pasado con la portada de la página web del  diario 20 minutos:
Titular del artículo: "El gran asteroide Florence se aproxima de manera inminente a la Tierra"

Con el titular y la foto que te ponen, el caso es que piensas: ¡¡vaya, mañana me levanto y lo veo llegar !!!.. bueno, pues cuando lees el artículo, al final, te dicen:

"El asteroide.....  pasará a siete millones de kilómetros de distancia, es decir 18,38 veces la distancia entre la Tierra y la Luna."
Para hacernos una idea:

Comparación real entre Trayectoria del asteroide y distancia Tierra-Luna ....
¿tiene algo que ver con el titular y la foto de portada del artículo?


Los titulares son usados para llamar la atención y que el usuario pinche a ver el enlace, luego el 99% de los artículos no tienen nada que ver con el titular, que lo que hacen es engatusar y hacer que el usuario se interese por la noticia, pero luego comprobará que la noticia tiene que ver poco o nada que ver con el titular. En fin ¿es una buena técnica a largo plazo? Yo pienso que no.

martes, 15 de agosto de 2017

Cosas de supermercados... mercaona va a menos




Cosas de supermercados...

 mercaona va a menos





Cansado de ir al supermercado que publicitan que mantienen sus precios... pero a costa de ir reduciendo el tamaño de los productos y la cantidad .... os dejo el chiste del día:


https://Pixton.com/es/:ppt5uuzy
















domingo, 13 de agosto de 2017

EscucharMp3: Un reproductor minimalista de 32 kb





EscucharMp3:Un reproductor minimalista de 32 kb


Estaba buscando un reproductor simple y minimalista para escuchas mis podcast favoritos, y me he hecho uno...


Bueno, no empecé de cero, sino que aproveché de uno existente en la granja de Gambas3 ( Mp3Planer  de Shane), y le he ido añadiendo algunas cosas:

  • Que acepte "arrastrar y soltar" desde el administrador de archivos al programa, para que cargue el fichero que queramos facilmente.
  • Slider para posicionarnos en el minuto y tiempo que queramos empezar a escuchar. También podemos guardar la posición para otro dia que queramos escucharlo, empiece desde ese punto.
  • Botón de Pause
  • En el menú se guarda el último mp3 escuchado. 









Instalador .deb  y Código fuente: Alojado en google drive


También esta disponible en la Granja de Gambas3, en el apartado Audio.

sábado, 12 de agosto de 2017

Redescubriendo X-tile: Organización de ventanas abiertas en tu escritorio.

Redescubriendo X-tile: Organización automática de ventanas abiertas en tu escritorio.


Este programa, lo probé hace tiempo, y lo he vuelto a instalar en mi escritorio XFCE para organizar las ventanas de las aplicaciones que estoy usando. Yo soy de usar varias aplicaciones a la vez y aunque tengo instalado 2 monitores, muchas veces "me falta espacio en el escritorio", y necesito colocar la ventanas abiertas, de modo que se vean varias a la vez... normalmente lo hago manualmente, pero buscando alguna aplicación que lo haga automáticamente encontré,o mejor dicho redescubrí x-tile.


Menu desplegable con todas la opciones: Tile cuadradas, en triangulo, rejilla, horizontal, vertical...
La aplicación es capaz de mostrarnos la lista de ventanas que tenemos abiertas, y nos permite seleccionar cuales queremos que se ordenen:



Instalación:
sudo apt-get install x-tile


Acontinuación un video donde os enseño el programa y la opción de "definir" (custom) vuestro propia ordenación de ventanas.




Página del proyecto:
http://www.giuspen.com/x-tile/

El codigo fuente:
https://github.com/giuspen/x-tile


Nota:
xfce 4.12, tiene también la organización automática de ventanas, llevándolas a la esquina de pantalla, pero se me queda "corto" y no consigo tenerlas organizada de la manera que más me interesa.




Chuleta: FFMPEG extraer, quitar insertar pista sonido a video

Chuleta: FFMPEG 

Extraer, Quitar e Insertar 

pista sonido a video





Extraer sonido de un video:

ffmpeg -i archivo_de_video.avi archivo_de_audio.mp3


Quitar pista de sonido de un video (sin decodificar muy rápido):

ffmpeg -i archivo_de_video.avi  -vcodec copy -an archivo_de_videoSinSonido.avi 



E insertar nueva pista de sonido a un video:


ffmpeg -i archivo_sonido.mp3 -i archivo_de_videoSinSonido.avi  archivo_union.avi



Nota:
Pongo la extensión .avi, pero se admiten otras como .mp4





Fuente:https://www.enmimaquinafunciona.com/pregunta/25003/quitar-el-audio-de-un-archivo-de-video-con-ffmpeg

jueves, 10 de agosto de 2017

Relato: Nubes Negras


Relato: Nubes Negras





El apogeo de la "nube" había llegado a su máxima expresión...  miles de terabyte, que digo, cientos de petabyte de información personal, documentos, fotos, vídeos de recuerdos, estaban subidos  en la segura nube , o por lo menos eso se creía.
Un buen día, de la noche a la mañana, cuando alguien intento ver unas fotos antiguas almacenadas online, no  pudo... pero ni esas ni otras...nada estaba, no las encontraba... chateo con el servicio de ayuda pero no pudieron resolverle el problema, pero al menos le pusieron su incidencia al servicio técnico.
A las pocas horas, viendo que la situación no se resolvía y ante la falta de correo de contestación, empezó a preguntar a varios amigos en telegram... vaya, también en telegram habían desaparecido las conversaciones anteriores y también los  archivos que había subido... con los que pudo hablar le comentaron que les había ocurrido algo parecido... Conectó con su cuenta bancaria online... ¿y los registros de movimientos bancarios?, ¿donde estaban?. Solo podía ver su saldo actual, nada de registros de las anteriores operaciones bancarias.
Miro su cuenta de correo electrónico... vacía.. ni un mensaje anterior... Conecto su disco duro externo ... errores en sectores... ¡¡¡pero si ayer funcionaba perfectamente!!!

Última Hora Noticias de la Nasa:
Hora 08:25 UTC+0. Inminente llegada de gran tormenta solar geomagnética, alto impacto a en red eléctrica mundial y.... elementos electrónicos-magnéticos.
 
Los datos digitales almacenados en discos duros, memorias electrónicas, e incluso cinta digitales habían desaparecido a nivel mundial. Otra vez la biblioteca de Alejandría se había quemado.



Postdata:

La situación comentada es irreal, ya que si se hubiere producido, ni siquiera podría entrar en su correo (las contraseñas de las cuentas se almacenan), ni siquiera funcionaria internet ya que las direcciones de las páginas web están asociadas a ip que se guardan en bases de datos... Ni siquiera podrías leer esta historia, a menos que estuviera escrita en papel o piedra.

miércoles, 9 de agosto de 2017

Nueva Versión de Gambas3: 3.10



Nueva versión de gambas3, esta vez la 3.10, que salió el pasado 6 de octubre de 2017




¿Qué hay de nuevo? 
Esta nueva versión cuenta con 150 nuevas funciones y 225 correcciones de errores. Las principales características importantes de esta nueva versión son las siguientes:
  •  Se ha mejorado el soporte de los formularios web en el IDE. 
  •  Se ha arreglado el empaque de la biblioteca. CStr y CDate ahora son mutuamente coherentes, internamente convirtiendo a las fechas de UTC solamente. ¡Tenga cuidado, esta corrección de errores no es compatible con versiones anteriores!
  • El intérprete ahora usa un reloj monótono si es posible. 
  • La nueva instrucción MOVE ... DOWNTO ... cambia el nombre de un archivo, borrando el destino de forma autómicamente. 
  • El control MediaPlayer puede encadenar ahora los archivos multimedia. 
  • El FtpClient ahora admite el protocolo ftps. 
  • Gb.term es un nuevo componente para administrar terminales, con una API muy cercana a la proporcionada por el sistema operativo. 
  • Gb.web.feed es un nuevo componente para administrar los feeds RSS. 
  • Toneladas de correcciones en el componente gb.web.form.

Changelog


Configuración:
  • Actualizar el año de copyright en todos los archivos de origen. 
  • Eliminar todos los archivos depcomp. Aparentemente ya no son utilizados por autoconf. 
  • Detectar correctamente la actualización de la base de datos svn para generar el archivo de la versión del tronco.
  • Compile los componentes escritos en Gambas con el indicador de traducción activado.
  • Agregue una comprobación autoconf para el reloj monótono.


ENTORNO DE DESARROLLO
Editor de base de datos
  • La descripción de la base de datos es ahora la descripción del botón de configuración de la base de datos.
  • El botón "Solicitud de SQL" ahora es una entrada en la lista de tablas.
Depurador
  • El estado inicial de los botones de parada y pausa debe ser correcto ahora.
  • Utilice el componente gb.signal para enviar señales a procesos depurados.
  • Detenga los proyectos correctamente con un terminal externo.
Editor de formularios
  • Utilice submenús para mostrar fuentes similares en el menú emergente de fuentes.
  • El menú contextual del editor de formularios también se abre al hacer clic en el árbol de la jerarquía de formularios.
  • Compatibilidad con las propiedades de WebFont.
  • Nuevos botones de la barra de herramientas para cambiar la familia de fuentes.
  • Maneje los handle invertidos correctamente.
  • Corregir la administración de la propiedad Ignorar.
  • El control CoordBox ahora levanta su evento Change cuando se borra.
Diálogo de opciones
  • Movido el botón "Configurar accesos directos" a la ficha "Interfaz".
  • Agregue una línea de opción para activar la barra lateral del nuevo editor. Desactivado de forma predeterminada.

Terminal de salida
  • Restablezca el terminal de salida cuando finalice el proyecto depurado.
  • Cierre explícitamente el formulario de consola para que pueda guardar sus configuraciones antes de destruir su padre.
Empaquetador
  • Al crear el paquete, muestre los mensajes en un cuadro debajo del registro de salida. No utilizo más cuadros de mensaje.
  • Actualizar las listas de paquetes de debian y ubuntu.
  • 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.
  • Por lo tanto, hacer un paquete de un proyecto utilizando otra biblioteca no se bloquea más si esa biblioteca nunca se empaquetó.
  • El cuadro de texto de descripción ahora se expande verticalmente.
  • La descripción del paquete Debian ahora se genera correctamente en todos los casos.
  • La creación de paquetes debian / ubuntu de proyectos que no tienen ningún icono ya no se bloquea.
  • Agregue grupos de paquetes de rust y javascript para Debian y Ubuntu.
Diálogo de propiedad del proyecto
  • La fuente por defecto del navegador de ayuda del control selector de componentes es ahora más pequeña.
  • La lista de componentes se clasifica de modo que los componentes comprobados vienen primero. En consecuencia, se ha eliminado la casilla de verificación que muestra sólo los componentes seleccionados.
  • Haga que el botón Restablecer sea común a todas las pestañas. Sólo es visible si se puede reiniciar la pestaña actual.
  • Libreria Diálog: No se bloquee si una biblioteca global y una biblioteca local tienen el mismo proveedor.
  • Permitir ingresar argumentos void en la lista de argumentos del proyecto.
Granja de software
  • Al desinstalar un software instalado de la granja de servidores, elimine automáticamente el directorio del proveedor si es anulado.
  • Cuando desinstale una biblioteca, elimine automáticamente el directorio del proveedor si se anula.
  • Las capturas de pantalla de software publicadas ahora se estiman a 640 píxeles en lugar de 320 píxeles.
  • Soporte para la publicación de bibliotecas y la instalación de bibliotecas.
  • Algunos  cambios.
  • Fije el editor de etiquetas.
  • Corregido los atajos de software eliminando

Editor de código fuente
  • Retire la bonita indentación de código en la función Begin / End. Necesito encontrar una forma de cerrar las sangrías en las funciones sin terminar.
  • Optimizar la finalización automática de los identificadores.
  • Optimice la finalización automática de los controladores de eventos.
  • Corregir fallo al eliminar el código (bug # 1019).
  • Corregir la finalización automática del evento en los controles que tienen un guión bajo en su nombre.
  • Solución de un intérprete de bloqueo al analizar una expresión que incluye la última palabra clave.
  • La compresión Javascript ahora intenta detectar expresiones regulares para que nunca se dividan si hay un espacio dentro.
  • Corregir mensajes de error incluyendo HTML.
  • No utilice vista previa lateral en editores donde esto no sea útil.
  • Formateador de código: La nueva línea después de las declaraciones de variables locales toma en cuenta las declaraciones multilínea.
  • Formateador de código: Las declaraciones multilíneas están sangradas correctamente ahora.
  • Arreglar y mejorar el algoritmo de "definición de búsqueda" (clave F2).
  • Mejor detección de expresiones regulares al comprimir un archivo javascript.
Diálogo de traducción
  • Las ubicaciones de las cadenas traducidas deben ser más legibles ahora.
Traducciones
  • Actualizar las traducciones al portugués de Brasil.
  • Actualizar las fuentes Gambas.
  • Actualizar traducción al francés.
  • Traducción al chino simplificado actualizada por Yizou He.
Soporte de Webform
  • Cuadro de diálogo Selector de WebFont.
  • Soporte para los botones de la barra de herramientas de formato.
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.
  • El botón de software está deshabilitado si no hay instalado ningún software.
  • El software y las listas de ejemplos se actualizan automáticamente una vez que se ha utilizado el cliente del software de la granja de servidores.

Miscelania
  • Actualizar el archivo de soporte.
  • Soporte para el nuevo componente gb.term.
  • Soporte para el nuevo nombre de propiedad del editor.
  • Opcionalmente, cargue el componente gb.inotify.
  • Soporte inicial para extensiones IDE.
  • Corregir los métodos abreviados duplicados en modo "falso" (es decir, cuando se utiliza el IDE para editar un archivo externo).
  • Arreglar un error tipográfico en las sugerencias de francés.
  • Muestra el botón del selector de GUI cuando se selecciona gb.gui.qt.
  • Mostrar un mensaje de error en lugar de fallar si no se encuentra ningún terminal.
  • Actualizar correctamente el botón del selector de GUI cuando cambia el entorno del proyecto.
  • Mejor texto de ayuda de línea de comandos.
  • Permitir que los archivos ubicados en un directorio vinculado sólo se modifiquen si se abren en modo falso, es decir, solo.
  • Añada dos fondos nuevos, realice el fondo cruzado y defina el fondo gambas como predeterminado.
  • Agregue gb.term.form a la lista de componentes.


WIKI CGI SCRIPT
  • Añadir sombra de frontera alrededor de enlaces de capturas de pantalla.

INTERPRETE
  • Utilice un reloj monótono (si es posible) para implementar la instrucción WAIT.
  • 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.
  • El archivo de traducción del proyecto se carga siempre correctamente. Ese era un viejo error.
  • El manejador de señal ahora se enrolla hasta que el tubo de señal está vacío.
  • La API GB.SystemHasForked () ahora restablece el generador de números pseudoaleatorios y el canal de administración del controlador de señales.
  • Las tareas no heredan más el controlador de señales, sino que lo recrean en su lugar. De lo contrario, tiene interferencias con el proceso padre de la tarea, y algunas señales se pierden.
  • Stream.Watch () es un nuevo método que permite ver / desatornillar un flujo para leer y / o escribir después de haber sido abierto.
  • Los flujos estándar ahora establecen el indicador de flujo interno "available_now" si no están conectados a un terminal. Que puede no ser necesariamente precisa, por lo que es un cambio temporal.
  • Nueva instrucción MOVE ... DOWNTO ... que cambia el nombre de un archivo y borra el destino de forma atómica.
  • Hacer CStr () y CDate () mutuamente coherente, internamente convirtiendo a las fechas UTC solamente.
  • Incluya <cmath> en lugar de <math.h> para los componentes escritos en C ++, para que se compile con gcc 6.
  • Prohíba continuar y permanecer en depurador cuando se genera un error no controlado. Esto evita fallos cuando se produce un error durante la inicialización de la variable.
  • Corregir algunas advertencias de gcc 6.
  • Corregir la detección de errores que ocurren dentro de la API del intérprete.
  • Solucionar una posible serialización incorrecta de matrices.
  • Exec con un nombre de programa nulo ya no se bloquea.
  • No plantee eventos justo después de que un proceso se ha iniciado y acaba de terminar. Aplazarlos.
  • No se bloquea durante el unserialisation de una matriz cuyo tipo de datos se ha serializado incorrectamente. Aumentar un error en su lugar.
  • No se bloquee más cuando se convierte un puntero en un objeto anónimo. Aumentar un error en su lugar.
  • La detección de la versión de confirmación svn ahora funciona con la versión anterior de subversión.
  • Defina la macro "__STDC_FORMAT_MACROS" en gb_common.h, para que los archivos de origen C ++ se utilicen compilar incluso con versiones gcc antiguas.
  • El depurador no se bloquea más cuando se muestra un objeto estático de tipo recopilación.
  • Llamar correctamente a los controladores de eventos estáticos cuando se produce un evento.
  • Cerrar observó la entrada y salidas del proceso tan pronto como se muere. De lo contrario, la ejecución de dos procesos que utilizan terminales virtuales sucesivamente puede fallar.
  • Compruebe si es necesario vincular con librt para obtener un reloj monotónico.
  • Los flujos almacenados en búfer ahora tienen en cuenta el indicador de flujo interno "available_now". No tengo idea de por qué estaba deshabilitado.
  • Reinicie automáticamente las llamadas al sistema mkfifo () y open () al ejecutar la instrucción PIPE.
  • Agregue una API que devuelve el descriptor de archivo asociado con una secuencia específica.
COMPILADOR
  • Nueva instrucción MOVE ... DOWNTO ... que cambia el nombre de un archivo y borra el destino de forma atómica.
  • Corregir el análisis de tipo de datos interno. El compilador no debería bloquearse más en ARM.
SERVIDOR DE GRANJA
  • El recuento de descargas ahora tiene en cuenta todas las versiones.
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.MYSQL
  • Utilice MEDIUMTEXT en lugar de TEXTO para campos de texto ilimitados, de modo que la longitud máxima sea de 16 MB y no de 64 KB.
  • La eliminación de un índice ya no se bloquea.
GB.DB.ODBC
  • Corrige un error de formato sprintf de 32 bits.
GB.DB.SQLITE2
  • Las cadenas SQL, incluidos los caracteres de barra invertida, están ahora correctamente citados.
  • Haga compilar componentes con gcc 6.
  • Corregir un elenco implícito incorrecto para gcc 7.
GB.DB.SQLITE3
  • Las cadenas SQL, incluidos los caracteres de barra invertida, están ahora correctamente citados.
GB.DBUS
  • Instrospección ahora declara correctamente las propiedades o métodos que devuelven una clase que hereda DBusVariant.
  • Corregir la pérdida de cadena en la rutina de ordenación de firmas.
  • No inserte ID de proceso en los nombres de interfaz de objetos.
  • DBusObject.Raise () ahora utiliza la interfaz de objeto predeterminada si no se especifica ninguna interfaz en el nombre del evento.
  • Las estructuras de DBus ahora están unmarshalled a los arrays exactos de Gambas.
  • Llamar a un método o a una propiedad que devuelve una cadena no daña la memoria.
  • Agregue el mensaje de depuración a la implementación del método DBA GetAll ().
GB.DBUS.TRAYICON
  • Aparentemente, LXDE tiene soporte para indicadores, mientras que el protocolo de bandeja de sistema de KDE no es compatible.
GB.DEBUG
  • Corregir algunas advertencias de gcc 6.
GB.DESKTOP
  • 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.
  • Soporte para equipos de escritorio cygwin.
  • Configurar Desktop.Passwords [] ahora funciona correctamente si se utiliza la herramienta secreta.
  • Escape las líneas comentadas en archivos .desktop.
  • No utilice gb.desktop.gnome ya, ya que libgnome-keyring está obsoleto. Utilice el programa de herramienta secreta solamente.
  • DesktopWindow: Shaded es una nueva propiedad que indica si una ventana está sombreada (es decir, sólo su barra de título es visible).
  • Desktop.RunAsRoot () debería funcionar correctamente en SuSE ahora. Utiliza kdsu si no se encuentra kdsudo.
  • Desktop.RunAsRoot () ahora usa gksu si gksudo no se encuentra.
  • Un nombre vacío de átomo ahora está asociado con el átomo 0 (Ninguno).
GB.DESKTOP.GNOME
  • Este componente está ahora obsoleto.

GB.EVAL.HIGHLIGHT
  • Corrige las expresiones regulares javascript que destacan.
  • Corrige el resaltado de SQL de cadenas que abarcan varias líneas.
  • Agregue algunas propiedades y valores de CSS que faltan.
  • Agregue algunas propiedades y símbolos CSS.

GB.FORM
  • URLLabel: Añadir propiedades de alineación y borde.
  • TabPanel: Los botones Tab ahora consumen los eventos de la rueda, de modo que no se propagan.
  • MessageView: Agrega una propiedad Border.
  • MenuButton: Nunca despliegue el menú cuando el botón está deshabilitado.
  • MenuButton: La rutina emergente del menú automático no debería bloquearse más.
  • ImageView: La propiedad Border devuelve el valor exacto ahora.
  • DocumentView: WorkAround para bloquear el desplazamiento en mouseWheel
  • DirView: Los eventos de visualización de archivos no molestan el cambio de nombre.
  • DirChooser, FileChooser: Agregue un menú de "borrar directorio" que sólo puede borrar directorios vacíos.
  • DateChooser: Utilice colores claros cuando está deshabilitado.
  • ColorPalette: No reacciona a los eventos del ratón si está inhabilitado.
  • ColorChooser: No reacciona a los eventos del ratón si está inhabilitado.
  • Agregar el icono de stock para el dispositivo de escáner
  • Agregar un icono de complemento de archivo.

GB.FORM.EDITOR
  • TextEditor: Corrige la propiedad Highlight cuando se establece en "None".
  • TextEditor: Corrige la declaración de propiedad Highlight.
  • TextEditor: Diseño más rápido y desplazamiento, especialmente cuando hay un montón de líneas y el modo de ajuste está habilitado.
  • TextEditor: ShowPreview es una nueva propiedad que reemplaza la barra de desplazamiento vertical por una vista previa de un clic que tiene una lupa.
  • TextEditor: Editor funciona correctamente de nuevo cuando un procedimiento se contrae.
GB.FORM.STOCK
  • Iconos de actualización.
  • Ponga el buen icono para el bloqueo en el tamaño 22.
  • Agregar icono de complemento de archivo.
GB.FORM.TERMINAL
  • TerminalView: Los caracteres gráficos de barras verticales y horizontales ahora tienen un tamaño mínimo de 1 píxel, de lo contrario los más finos pueden no ser visibles.
  • TerminalView: Aumenta un evento de cambio de tamaño con las nuevas dimensiones del terminal cuando se redimensiona el terminal.
  • TerminalView: Ignore [1034h y [1034l secuencias en lugar de mostrar un mensaje de advertencia.
  • TerminalView: Reset () es un nuevo método que restablece el estado del terminal sin borrarlo.
  • TerminalView: dibujar correctamente el texto intermitente.
  • TerminalView: ConnectTo () es un nuevo método que permite conectar la entrada / salida del terminal a cualquier flujo.

GB.GTK
  • Solución para evitar que los colores de información de herramientas del sistema sean ilegibles.
  • Ventana: Show () funciona de nuevo en las ventanas ocultas.
  • Ventana: Menús [] accesor no se bloquea más.
  • Ventana: Los eventos Ocultar y Mostrar ahora se elevan correctamente cuando se minimiza o restaura la ventana.
  • TextBox: Haga que SetFocus () no seleccione el texto.
  • TextArea: No debería bloquearse más en algunos casos cuando se destruye.
  • Búsqueda de menú emergente definido por la propiedad PopupMenu recursivamente.
  • Elevar un error "GUI no se inicializa" al intentar crear una ventana demasiado pronto, como lo hacen los componentes QT.
  • Haga r7877 compilar en versiones anteriores de GTK + 2.
  • Haga compilar componentes con gcc 6.
  • Font.Styles ahora devuelve una matriz predefinida y no se bloquea más.
  • Corregir algunas advertencias de gcc 6.
  • Arreglar a; Error en una prueba de gestión de enfoque.
  • No intente establecer los colores de fondo y de primer plano de los menús emergentes. No funciona en todos los casos.
  • Los controles deshabilitados no aumentan los eventos del ratón, salvo en el modo de diseño.
  • Ventana: Llamar ShowModal () o ShowPopup () en una ventana ya abierta ahora plantea un error.
GB.GTK3
  • Solución para evitar que los colores de información de herramientas del sistema sean ilegibles.
  • Ventana: Show () funciona de nuevo en las ventanas ocultas.
  • Ventana: Menús [] accesor no se bloquea más.
  • Ventana: Los eventos Ocultar y Mostrar ahora se elevan correctamente cuando se minimiza o restaura la ventana.
  • TextBox: Haga que SetFocus () no seleccione el texto.
  • Búsqueda de menú emergente definido por la propiedad PopupMenu recursivamente.
  • Elevar un error "GUI no se inicializa" al intentar crear una ventana demasiado pronto, como lo hacen los componentes QT.
  • Haga compilar componentes con gcc 6.
  • Font.Styles ahora devuelve una matriz predefinida y no se bloquea más.
  • Corregir algunas advertencias de gcc 6.
  • Arreglar a; Error en una prueba de gestión de enfoque.
  • No intente establecer los colores de fondo y de primer plano de los menús emergentes. No funciona en todos los casos.
  • Los controles deshabilitados no aumentan los eventos del mouse, a menos que estén en modo de diseño.
  • Ventana: Llamar ShowModal () o ShowPopup () en una ventana ya abierta ahora plantea un error.

GB.GUI.BASE
  • IconView: actualiza correctamente el diseño cuando las imágenes de los iconos se hacen más pequeñas.
  • IconView: muestra la selección en gris cuando no tiene el foco.
  • 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 se pierda el foco, y QT no lo envió.
  • GridView: AddColumn () es un nuevo método para agregar una columna.
  • GridView y sus clases para niños ahora muestran su selección en gris cuando no tienen el foco.
  • ColumnView: AddColumn () es un nuevo método para agregar una columna.
GB.IMAGE
  • Corregir algunas advertencias de gcc 6.
GB.IMAGE.IO
  • Realmente corregir la advertencia en sistemas de 32 bits.
  • Corrige un error de formato sprintf de 32 bits.
GB.INOTIFY
  • No asuma que inotify_add_watch () tiene éxito en todos los casos. La ruta de observación puede haber sido eliminada después de que se haya creado el reloj.
  • Crear un reloj con una ruta nula ahora genera un error en lugar de bloquearse.
GB.JIT
  • Permitir definir explícitamente las bibliotecas que se deben utilizar para vincular el componente.
  • Fijar para localizar JIT.H y resolver el problema donde hay varias versiones de llvm presentes. JIT.H sólo está disponible antes de llvm 5.6 y GB.JIT sólo se puede compilar con esas versiones.
GB.MAP
  • El zoom abajo no cambia el centro del mapa.
  • La clase _ShapeItem tiene una nueva propiedad LineWidth que permite cambiar el ancho del elemento de dibujo.
  • Polyline ahora funciona correctamente.
  • La forma de PolyLine ahora no cierra el polígono de forma predeterminada. Debe agregar un punto final a la misma posición que el primero para lograrlo


GB.MARKDOWN
  • Markdown.Verbatim es una nueva propiedad entera que permite ingresar o salir del modo "verbatim". Es un modo en el que la sintaxis de reducción no se interpreta más.
GB.MEDIA
  1. MediaPlayer: El evento AboutToFinish ahora es planteado por MediaPipeline. Esta no es la señal de aproximadamente a terminar de GStreamer.
  2. MediaPlayer: La configuración de la propiedad de URL detiene automáticamente el reproductor.
  3. MediaPlayer: NextURL es una nueva propiedad que debe establecer para definir la siguiente secuencia que se reproducirá sin intervalo.
  4. MediaPipeline: Las propiedades de posición y duración se calculan ahora durante la rutina de devolución de llamada del mensaje.
  5. MediaPipeline: Levanta el evento Start cuando se inicia una nueva secuencia.
  6. MediaPipeline: Levante el evento AboutToFinish dos segundos antes del final de la secuencia.
  7. MediaPipeline: Impedir que la rutina de retorno de llamada de la rutina sea posible.
  8. Vincular explícitamente con la biblioteca de subprocesos.
GB.MEDIA.FORM
  • MediaView: Expone la propiedad MediaPlayer NextURL interna.
  • MediaView: Expone el evento de MediaPlayer AboutToFinish.

GB.NET.CURL
  • HttpClient: elimina el espacio inicial de la cadena de razón.
  • HttpClient: Los encabezados ahora se analizan correctamente cuando la longitud del contenido es cero.
  • HttpClient: BufferSize es una nueva propiedad que permite definir el tamaño del búfer de recepción.
  • FtpClient: BufferSize es una nueva propiedad que permite definir el tamaño del búfer de recepción.
  • FtpClient: Permite el protocolo ftps.
GB.NET.POP3
  • Se ha implementado Pop3Client.Refresh (). 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.NET.SMTP
  • Imprimir la salida de error de openssl si se establece la propiedad Depurar.
  • Formato de mime partes de contenido de tipo correctamente en todos los casos.
  • Suponga que la sesión TLS está conectada después de ejecutarse durante un segundo.
  • Compruebe siempre las respuestas de varias líneas.
GB.OPENSSL
  • Habilite gb.openssl para OpenSSL <1.0.0 si EVP_MD_do_all () está presente.
  • Trate de soportar OpenSSL 0.9.8 junto con 1.1.0 (error # 984).
  • Requerir OpenSSL> = 1.0.0 porque necesitamos EVP_MD_do_all ().
  • Digest: vuelva a intentar soportar OpenSSL 0.9.8o.
GB.PCRE
  • RegExp.Greedy es una nueva constante que permite eliminar la opción predeterminada ungreedy de RegExp.Replace ().

GB.QT4
  • Solución para evitar que los colores de información de herramientas del sistema sean ilegibles.
  • Ventana: Show () funciona de nuevo en las ventanas ocultas.
  • Búsqueda de menú emergente definido por la propiedad PopupMenu recursivamente.
  • Haga compilar componentes con gcc 6.
  • No compile la corrección del menú QT5.
  • Los controles deshabilitados no aumentan los eventos del mouse, a menos que estén en modo de diseño.
  • Ventana: Llamar ShowModal () o ShowPopup () en una ventana ya abierta ahora plantea un error.
GB.QT5
  • Solución para evitar que los colores de información de herramientas del sistema sean ilegibles.
  • Ventana: Show () funciona de nuevo en las ventanas ocultas.
  • El componente ahora debe compilar correctamente con C ++ 11.
  • SpinBox: Los eventos MouseWheel se detienen correctamente.
  • Búsqueda de menú emergente definido por la propiedad PopupMenu recursivamente.
  • Haga compilar componentes con gcc 6.
  • Los controles deshabilitados no aumentan los eventos del mouse, a menos que estén en modo de diseño.
  • Ventana: Llamar ShowModal () o ShowPopup () en una ventana ya abierta ahora plantea un error.
GB.QT5.EXT
  • El componente ahora debe compilar correctamente con C ++ 11.
GB.QT5.OPENGL
  • El componente ahora debe compilar correctamente con C ++ 11.
GB.QT5.WEBKIT
  • El componente ahora debe compilar correctamente con C ++ 11.
GB.REPORT2
  • Recuerde el modo dúplex al cambiar el dispositivo de la impresora en la ventana de vista previa.
GB.SDL
  • Cygwin necesita la biblioteca compartida x11 - según Bastian Germann
GB.SDL2
  • Window.Grabbed es una propiedad nueva que devuelve o establece si el mouse está confinado a la ventana.
  • Image.Load () convierte automáticamente la imagen cargada en el formato de imagen SDL predeterminado.
GB.SDL2.AUDIO
  • Eliminar referencias innecesarias a objetos de canal, que conducen a pérdida de memoria.
GB.SETTINGS
  • Ajustes: Escribir correctamente los valores de flotador pequeño.
  • Ajustes: Guardar los ajustes de una ventana toma ahora el escritorio de la ventana en cuenta solamente para las ventanas del toplevel.
  • Ajustes: No se bloquea si el número de pantalla de la ventana es incorrecto.
  • Ajustes: Marcar siempre un objeto de configuración como modificado al poner una matriz o una colección en cualquier clave.
GB.SIGNAL
  • Signal.Send () es un nuevo método para enviar señales a los procesos. Es sólo una interfaz directa a la llamada al sistema kill ().
GB.SPELL
  • Primer lanzamiento. Comience a poner la estructura en su lugar.
GB.TERM
Nuevo componente para la gestión de terminales con una API muy cercana a la proporcionada por el sistema operativo.
Arreglar banderas locales y de control de los ajustes de terminal.

GB.TERM.FORM
  • Nuevo componente para la creación de la interfaz gráfica de usuario de las aplicaciones de terminal.
  • GB.UTIL
  • Date.ToRFC822 () es un nuevo método que convierte un valor de fecha a cadena de fecha RFC822.
  • Date.FromRFC822 () es un método nuevo que convierte una cadena de fecha RFC822 en un valor de fecha.
  • Calcule Date.ToUnixTime () con System.TimeZone.
GB.UTIL.WEB
  • JSON.Encode () ahora maneja correctamente valores JSON.Null.
GB.WEB
  • Utilizar Response.SendFile () establece correctamente la propiedad Done.
  • Session.Unique funciona de nuevo.
  • Session.Unique ahora limpia correctamente las sesiones al usar SQLite.
  • Response.Cancel () es un nuevo método que permite cancelar una respuesta, siempre que no se haya enviado nada al cliente. Requiere al menos que la respuesta esté almacenada en un buffer.
  • Request.TempDir es una nueva propiedad que permite definir dónde se almacenan los archivos cargados.
  • Request.MaxFileSize es una nueva propiedad que permite definir el tamaño máximo de los archivos cargados. Por defecto es 128 MB.
  • Tipos de Mime para archivos json, kml y kmz. Utilizado por el método Response.SendFile ().
  • Si el encabezado Http-Accept-Language es nulo, Request.Language devuelve el lenguaje actual del sistema en lugar de "C".
  • No modifique DB.Current cuando las sesiones se administran con bases de datos sqlite.
GB.WEB.FEED
Nuevo componente para generar y analizar documentos RSS


GB.WEB.FORM
  • WebUploader es un control que tiene como objetivo la gestión del proceso de carga de archivos por completo. Es una combinación de un WebUploadArea, un botón de cancelación y una barra de progreso.
  • WebUploadArea: Tome la nueva propiedad Request.TempDir en cuenta.
  • WebUploadArea: Debe comportarse correctamente en todos los casos ahora.
  • WebUploadArea: Clear () es un nuevo método que borra el archivo subido posible.
  • WebTextBox: El evento predeterminado es "Cambiar" ahora.
  • WebTextBox: ShowClear es una nueva propiedad que permite activar un botón "clear" dentro del cuadro de texto.
  • WebTextBox: Password es una nueva propiedad booleana que pone el cuadro de texto en modo de contraseña.
  • WebTextBox: Corrige el aumento del evento Activate.
  • WebTextBox: Soluciona el soporte de autocompletado.
  • WebTextBox: Clear es un nuevo evento que se plantea cuando se hace clic en el botón de borrado. Si se maneja ese evento, entonces el control no se borra automáticamente al hacer clic en el botón.
  • WebTableView: SortOrder es una nueva propiedad que devuelve el orden (gb.Ascent o gb.Descent) o la columna actualmente ordenada.
  • WebTableView: SortColumns es una nueva propiedad que devuelve el índice de las columnas actualmente ordenadas o -1 si no se ordena ninguna columna.
  • WebTableView: Sortable es una nueva propiedad que indica que la tabla se puede ordenar.
  • WebTableView: Sort es un nuevo evento que se eleva cada vez que se cambia el estado de clasificación de la tabla, lo que significa que el contenido de la vista de tabla debe actualizarse con los datos recién clasificados.
  • WebTableView: Las filas seleccionadas ahora se destacan correctamente incluso con la celda que tiene fondo explícito y color de primer plano.
  • WebTableView: Columns [] Sortable es una nueva propiedad que indica si un determinado es clasificable o no. De forma predeterminada, todas las columnas se pueden ordenar.
  • WebTableView: Al hacer clic en una fila, cuando la tabla está en el modo de selección múltiple, selecciona la fila que se ha hecho clic y desmarca las otras.
  • WebTable: La primera fila se desactiva correctamente en modo de selección única.
  • WebTable: SHIFT + Click permite seleccionar o deseleccionar un rango de filas a la vez.
  • WebTable: La selección funciona correctamente de nuevo con Firefox.
  • WebTable: La selección ahora se mantiene correctamente entre las solicitudes.
  • WebTable: Las líneas ahora están resaltadas en el ratón y separadas por líneas finas.
  • WebTable: EnsureVisible () es un nuevo método que asegura que una fila específica sea visible para la pantalla.
  • WebTable: al hacer clic en las casillas de verificación de un WebTable en el modo de selección múltiple funciona correctamente de nuevo.
  • WebTable: Al hacer clic dentro de una fila en la fila de selección múltiple, basta con cambiar la fila. No anula la selección de todas las demás filas.
  • WebTable: AddColumn () es un nuevo método para agregar una columna y definir sus propiedades en una línea de código.
  • WebTable: Agrega una propiedad oculta al objeto de columna.
  • WebScrollView: EnsureVisible () es un nuevo método que garantiza que un niño ScrollView específico esté visible en la pantalla.
  • WebMenuBar es un nuevo control que actúa como un contenedor de controles WebMenu. Se hizo como una solución de las especificaciones CSS mal diseñadas de la propiedad de desbordamiento. Se puede quitar si encuentro una forma de usar el WebHBox en su lugar.
  • WebForm: La barra de título del formulario de nivel superior se vuelve a resaltar correctamente.
  • WebForm: Pueden ser redimensionados horizontalmente de nuevo.
  • WebForm: El método Hide () funciona como se espera ahora.
  • WebForm: El método AddJavascriptFile () ahora soporta archivos extern javaascript.
  • WebForm: Startup es una nueva propiedad que permite redefinir el nombre del formulario de inicio.
  • WebForm: Evita que la ventana de diálogo no redimensionable se expanda para ajustarse a su contenido.
  • WebForm: Persistente es una nueva propiedad que indica que un formulario debe estar oculto en vez de ser eliminado al hacer clic en el botón Cerrar o llamando al método Close ().
  • WebForm: Exec () es un nuevo método para ejecutar algunos JavaScript personalizado en el navegador.
  • WebForm: No levante el evento Abrir dos veces más cuando muestra un formulario modal.
  • WebForm: Restaura correctamente instancias automáticas entre solicitudes.
  • WebForm.Download () es un nuevo método estático que activa una descarga de archivos en el lado del cliente.
  • WebExpander: las flechas se muestran correctamente ahora.
  • WebDateBox: configura la propiedad Value (o Date) para generar el evento Change.
  • WebDataBox: DateTime es una nueva propiedad que permite al control aceptar una parte de tiempo.
  • WebControl: WebControl.Style.Exist () es una nueva propiedad para saber si una propiedad CSS específica está definida explícitamente.
  • El método WebControl: SetFocus () ahora debería funcionar correctamente en todos los casos.
  • WebControl: Modificar la propiedad Style ahora correctamente actualiza el control.
  • WebControl: Font es una nueva propiedad que permite definir algunas de las propiedades CSS de la fuente.
  • 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.
  • WebComboBox: Establecer la propiedad Text ahora correctamente actualiza el control.
  • WebComboBox: activa la animación de espera al seleccionar un elemento.
  • WebButton: corregir el HTML generado incorrecto cuando un botón tiene texto e imagen.
  • WebButton: Click () es un nuevo método que activa un clic de botón.
  • La animación de espera ahora utiliza una sombra más oscura.
  • Este componente ahora reivindica la implementación del bucle de eventos, por lo que no puede comprobar gb.web.form con ningún otro componente GUI.
  • El método público estático HandleRequest ahora se llama correctamente en su formulario de inicio.
  • El evento activate de TextBox y ComboBox ahora muestra la animación en espera.
  • Quite el soporte para múltiples formularios principales.
  • Evite que los temporizadores se llamen recursivamente.
  • Impedir que gw.table.onscroll () falle si el elemento de destino ya no existe.
  • Los iconos de los cuadros de mensajes ya están pre-cargados.
  • Corregir la gestión de eventos que no utilizan animación en espera.
  • Excluir componentes GUI explícitamente, en lugar de reclamar la implementación del bucle de eventos. De lo contrario, el IDE le permite crear formularios GUI.
  • Mostrar una animación cuando se espera la respuesta de un evento de más de 500 ms.
  • Mejor manejo de errores. Ahora, los errores inesperados deben aparecer en el navegador a través de un cuadro de alerta en casi todos los casos.
  • Otra solución para sesiones únicas que utilizan SQLite.
  • Siempre actualice al padre cuando cambie la visibilidad de un control.
  • Permite cotizaciones en elementos de finalización automática.
  • Agregar  /~logout la URL para borrar la sesión.
GB.XML
  • XmlWriter: El método de acceso directo Element () ahora escapa correctamente contenido de texto.
  • XmlReader: leer atributos vacíos no debería bloquearse más.
  • XmlReader: Reconoce el reconocimiento de los elementos CDATA cuando su contenido se parece a XML
  • XmlReader: No coma "]" o "-" caracteres en CDATA o comentarios secciones cuando no terminan la sección
  • XmlReader: Detecta correctamente la secuencia final de las secciones CDATA y comentario (restablece el estado de reconocimiento cuando se interrumpe la secuencia)
  • XmlNode: No se bloquea 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.
  • El analizador de XML no se bloquea más cuando falta el final de una etiqueta de cierre.
  • Corregir la corrección anterior en r7894.
  • Arreglar la búsqueda del documento padre de un elemento.
  • Corrige un error de formato sprintf de 32 bits.
  • Cambios de Cygwin - según Bastian Germann
  • .XmlReader.Node.Attributes: Aumenta un error en lugar de segfault cuando no existe un atributo
  • .XmlReader.Node.Attributes.Exist () es un nuevo método para comprobar si un atributo está presente
GB.XML.HTML
  • Corregir la serialización de documentos HTML / XHTML.

WEBSITE

  • Actualización a Gambas 3.9.2.
WIKI
  • La sintaxis [...] (...) se puede utilizar para enlaces de imágenes para mostrar una imagen en miniatura abriendo un enlace en una nueva página (normalmente la imagen en tamaño completo).
Compilación e instalación
Lea las instrucciones http://gambaswiki.org/wiki/install?nh

"Disfrútala !"


Benoît Minisini.




Descarga el código fuente para compilarlo e instalarlo:
https://sourceforge.net/projects/gambas/files/gambas3/gambas3-3.10.0.tar.bz2/download


Nota:
Muy pronto se actualizará en el PPA de ppa:gambas-team/gambas3