domingo, 3 de noviembre de 2019

GUI para reducir el tamaño de archivos PDF

En estos días tuve que reducir varios archivos PDF para poder subirlos a un sitio que tenia un limite de 5 MB por archivo.

La  PC es bastante vieja, usa un ubuntu 11.04 (Natty Narwhal) 64bits

Para reducir el tamaño de un archivo pdf en GNU/Linux podemos utilizar Ghostscript siguiendo estos pasos:

1.- Instalar el programa Ghostscript. Para ello, abre terminal y escribe:

sudo apt-get install ghostscript

2.- Una vez instalado el programa, ir a la carpeta donde está el archivo:

cd /home/usuario/nombredelarchivo

3.- Ejecuta el siguiente comando en el terminal para reducir el tamaño:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=pdf_reducido.pdf pdf_original.pdf
A continuación las opciones de -dPDFSettings:

  • dPDFSETTINGS=/screen (72 dpi, menor tamaño y peor calidad)
  • dPDFSETTINGS=/ebook (150 dpi, calidad media)
  • dPDFSETTINGS=/printer (300 dpi, alta calidad)
  • dPDFSETTINGS=/prepress (300 dpi, alta calidad preservando el color)
  • dPDFSETTINGS=/default (casi idéntico a screen, pero con calidad ligeramente superior)
Me puse a jugar con codeTyphon para hacer el proceso mas simple. y quedo lo siguiente.


 


El programa simplemente es una GUI para Ghostscript. Puedes descargar el programa y el código fuente desde aqui

  1. Para instalar el programa, 
  2. descarga la carpeta instalador descomprime por ejemplo en la carpeta Descargas.
  3. En la terminar (Ctrl+Alt+T), dirígete a la carpeta del instalador
ej
#$ cd/home/usuario/Descargas/instalador/  
#$ sudo chmod 755 installpdfzip.sh
#$ ./installpdfzip.sh

el instalador crea la carpeta /opt/pdfzip, le da permisos de ejecución al programa, e instala el lanzador.

Espero te sirva.

lunes, 22 de abril de 2019

Respuesta Automática a mensajes de Texto


Este capítulo te guía a través de la creación de Respuesta Automática a mensajes de Texto, mientras se conduce. Reproduce en voz alta los mensajes de texto e incluso envía información sobre la localización, como parte del texto automatizado. La aplicación demuestra cómo puedes controlar
Algunas de las excelentes características de un teléfono con Android, incluyendo mensajes de texto SMS, texto a voz, Datos persistentes, y detección de localización por GPS.

Lo que aprenderás

Esta es una aplicación más compleja que las de los capítulos anteriores, por lo que la construirá una función a la vez, comenzando con el mensaje de respuesta automática. Aprenderás
acerca de:
  • El componente de mensajes de texto para enviar y procesar textos recibidos.
  • Un formulario de entrada para enviar el mensaje de respuesta personalizado.
  • El componente de la base de datos TinyDB para guardar el mensaje personalizado incluso después de La aplicación se cierre
  • El evento Screen.Inicializar para cargar la respuesta personalizada cuando la aplicación
    lanza.
  • El componente TextoAVoz para hablar textos en vozs alta.
  • El componente SensorDeUbicacion para informar la ubicación actual del conductor.

Componentes



Tipo de componente
Nombre
Propósito
Etiqueta
etExplicacion
Permite que el usuario sepa como funciona la aplicación
Etiqueta
etRespuesta
La respuesta que será enviada de forma automática cuando se reciba un mensaje
Caja de Texto
ctNuevaRespuesta
El usuario ingresará la respuesta automática, aquí
Boton
btnActualizaRespuesta
El usuario lo utilizará para actualizar la respuesta.
EnviarTexto
EnviarTexto1
Envía el mensaje de texto
TinyDB
TinyDB1
Almacena las respuestas en una base de datos
TextoAVoz
TextoAVoz1
Lee el texto en voz alta
SensorDeUbicacion
SensorDeUbicacion1
Permite saber la ubicación del celular



Establezca las propiedades de los componentes de la siguiente manera:
  • Establezca el Texto de etExplicacion en "El texto a continuación se enviará en respuesta a todos los SMS recibidos mientras ésta aplicación se está ejecutando".
  • Establezca el texto de etRespuesta en "Estoy conduciendo en este momento, me pondré en contacto con usted a la brevedad.”. Compruebe su propiedad negrita.
  • Establezca el texto de ctNuevaRespuesta en “”. (Esto deja el cuadro de texto en blanco para la entrada del usuario)
  • Establezca la Sugerencia (pista) de ctNuevaRespuesta en "Ingresar nuevo texto de respuesta".
  • Establezca el Texto de btnActualizaRespuesta en "Modificar respuesta".


Modifica el ajuste de los componentes para que sean legibles y se ajusten estéticamente a tus deseos.

Responder un texto automáticamente





Personalizando la respuesta




Almacenando la respuesta de forma Permanente

En el mismo bloque anterior, agregamos el procedimiento para almacenar los datos de forma persistente en la base de datos y una etiqueta que nos permitirá recuperar posteriormente los datos guardados.


Recuperando la respuesta personalizada, desde la base de datos

Cuando la aplicación es ejecutada, se dispara este evento (screen1 – Inicializar). Recuperamos la respuesta personalizada desde la base de datos



Leyendo el mensaje de texto en voz alta

Para poder leer un mensaje de texto, llamaremos a la función TextoAVoz. La agregaremos al bloque que trabajamos al comienzo (enviarTexto1.RecibirMensaje)
En el texto a leer, usaremos como entrada del procedimiento, el mensajeDeTexto recibido. Si dejamos el bloque de este modo, sólo nos leera el mensaje y no sabremos quien lo envio. Podemos modificar el texto a reproducir, agregando el texto “Mensaje recibido de”, el numero que nos envia el mensaje, el texto “El mensaje es” y el mensaje recibido.
Para poder hacerlo, utilizamos el bloque unir que se encuentra en los bloques de texto.
Una vez aplicados los cambios, el bloque quedaría así

Para agregar mas cadenas al bloque unir, debes hacer clic en el engranaje y en la ventana emergente arrastrar el bloque cadena (que se encuentra solo), dentro del bloque unir

Agregando la Información de localización a la respuesta personalizada

Utilizaremos una variable ultimaLocalizacionConocida y la inicializaremos con desconocida. Luego cada vez que la posición del celular se modifique, actualizaremos la ubicación.


Posteriormente en el bloque de EnviarTexto1, agregaremos la opción de que envíe nuestra ubicación, con la dirección en la que estamos.


Algunas variaciones de esta aplicación que podemos explorar son:
  • Una versión que le permita al usuario definir respuestas personalizadas para una números de teléfono en particular. Deberá agregar bloques condicionales (si) que verifiquen esos números.
  • Una versión que envíe respuestas personalizadas en función de si el usuario está dentro Ciertos límites de latitud / longitud. En una ubicación predeterminada, como el club, la escuela, o el lugar que tu decidas, la respuesta sea "Carlos está en (la ubicación que decidiste) y no puede enviar mensajes de texto en este momento".
  • Una versión que haga sonar una alarma cuando se reciba un texto de un número en una
    Lista de "notificaciones".


En el siguiente enlace puedes descargar el archivo PDF

miércoles, 3 de abril de 2019

Juego del Topo en AppInventor


  Construiremos un juego, donde ira apareciendo de manera aleatoria en la pantalla un “topo”, al cual deberemos tocar con nuestro dedo. En una etiqueta iremos mostrando los topos “aplastados” y los topos “perdidos”.

Introduciremos en esta aplicación el concepto de procedimiento, el manejo de temporizadores, la generación de números aleatorios, operaciones matemáticas, realizar acciones al iniciar la aplicación y el manejo de parámetros.

La interfaz del juego es la siguiente
  

Los componentes utilizados son
Recuerda que dentro de los lienzos deben ir componentes imagesprite (no el componente imagen, que estuvimos utilizando hasta ahora) 


 Ahora Veremos el video de los bloques


 

Modifica la aplicación
  • Agrega un sonido para que cada vez que “golpees” al topo reproduzca un sonido.
  • Modifica el programa y guarda los valores en variables, en lugar de las etiquetas.
  • Utiliza una sola etiqueta para mostrar el texto y la cantidad de golpes. Y una sola etiqueta para mostrar el texto y la cantidad de perdidos.
  • Modifica la aplicación para que el juego termine al perder 4 topos

    Puedes acceder a los archivos aqui. Si el contenido fue de tu agrado o te ayudó, agradecenos con un clic en la publicidad. Cualquier sugerencia es bienvenida.








viernes, 29 de marzo de 2019

Tarro de pintura Aplicacion en AppInventor

Tarre de Pintura es una aplicación para dibujar y pintar sobre una imagen.

Aprenderemos el uso de Botones, Lienzos, deslizadores y el llamado a procedimientos.


En el siguiente video, veremos la construcción de la interfaz de la aplicación.


El desarrollo de los bloques quedaría así.



Documentos y archivos aqui

si el contenido fue de tu agrado o te ayudo, te agradecemos que hagas clic en alguna publicidad. Cualquier sugerencia es bien recibida



jueves, 28 de marzo de 2019

Reproducciones de sonido con AppInventor


Construiremos la Aplicación con sonidos y aprenderemos lo básico de la programación con AppInventor Aprenderás como un aplicación es un conjunto de eventos-Controladores que responden a los toques del usuario, la recepción de un mensaje, y otros eventos. También aprenderás acerca del bloque condicional Si-Entonces, que le permite a la aplicación tomar decisiones.

En el siguiente video vemos los pasos para realizarlo.




Mejorando la aplicación:
  • Modifica la aplicación para que reproduzca uno de los sonidos al sacudir el celular. Para ello necesitas el componente Acelerómetro que se encuentra en la pestaña sensores. Explora por ti mismo y trata de razonar como se haría.
  • Nuestra aplicación utiliza mas de un componente Reproductor, Uno por cada sonido a reproducir. Reescribe la aplicación para que utilice un solo componente Reproductor (Ayuda. Necesitas modificar la propiedad origen/source en los bloques).

    Puedes acceder a los archivos aqui. Si el contenido fue de tu agrado o te ayudó, agradecenos con un clic en la publicidad. Cualquier sugerencia es bienvenida.

Subiendo Archivos en App Inventor

Cuando utilizamos archivos de sonido o imágenes en nuestra aplicación, deberemos subir nuestros archivos al servidor de appInventor.

Podemos hacerlo, desde el botón Subir archivo que se encuentra en la pestaña medios, debajo de la pestaña componentes. (Parte derecha inferior de la pantalla)







Probando aplicaciones en AppInventor

Cuando estamos desarrollando una aplicación, es necesario probarla. Para poder hacerlo en AppInventor tenemos varias opciones. la mas sencilla (desde mi punto de vista) es la siguiente.

Primero debes descargar MIT ai2Companion, en tu celular Android, desde el Play Store.

Cuando hayas finalizado la aplicación ve al menu Conectar, AI Companion

Ahora aparecerá un código QR,

Asegurate que la computadora y el celular estén conectados a la misma red

Abre la aplicación MIT ai2 Companion en el celular y aparecerá algo similar a la siguiente imagen


Presiona el botón celeste (scan QR code) Escanea el código de la pantalla de la computadora. Espera un instante y la aplicación aparecerá en tu celular y podrás probarla.

Ahora...

Empecemos… Visita el siguiente enlace y trata de realizar esta aplicación