1

NeoIndent 2.0

sshot-1Buenas hoy les traigo NeoIndent 2.0, una actualización que tenia archivada hace tiempo en un DVD con algo de polvo.

Que tiene de nuevo?

  • Super rápido. Si, rapidísimo ya que utiliza NeoPHP para realizar el indent.
  • Nueva interfaz simulando una app de win 8.
  • Editor actualizado a hpwPlusmemo con un tema similar al sublime text.

Que más puedo esperar de NeoIndent?

Pues tengo pensado unas funcionalidades para tratar de integrarlo a neobook, pero está en pruebas y no prometo nada jeje

Está genial…de donde lo descargo?

Acá abajo

  NeoIndentSetup.exe (8,9 MiB, 3.353 hits)

 

6

Neobook y Arduino

arduino-b

Buenas hoy  voy a mostrarles un ejemplo de conexión con arduino pedido por Cheolucho.

Plugins utilizados:

gtComms (G Turner) (Descargar)

Lado Neobook:

Para conectarnos al puerto serie tendremos que utilizar la función

gtCommOpenStd "14,9600"

Como vemos la función recibe 1 parámetro pero separa por “,” y los transforma en 2 lo que seria:

14 > El puerto COM al cual queremos conectarnos

9600 > Velocidad (baudios)

Para cerrar la conexión debemos usar la función gtCommClose pasandole como parámetro solo el puerto que deseamos cerrar.

Para mandar datos:

Usamos gtCommSend con los siguientes parámetros

gtCommSend "14,3"

14 > El puerto COM

3 > Dato a enviar

Tambien podriamos enviar el contenido de una variable con lo que quedaria:

gtCommSend "14,[enviar]"

Para recibir datos de arduino:

Usamos gtCommRxS con los siguientes parámetros

gtCommRxS "14,1,return"

14 > El puerto COM

1 > Numeros de bytes a leer

return > Nombre de la variable donde almacenara la lectura (sin las [])

Si tenemos errores estos aparecerán en las variables [gtOpenCommErr] y [gtCommErr].

Lado Arduino:

Para este ejemplo use 1 Display de 7 segmentos (Common Cathode) siguiendo el siguiente esquema

arduino-7-segment-LED-display-circuit

Por ultimo utilzamos el siguiente sketch

//Creamos el array de numeros
const byte numeros[11] = {
    B11111100, //0
    B01100000, //1
    B11011010, //2
    B11110010, //3
    B01100110, //4
    B10110110, //5
    B00111110, //6
    B11100000, //7
    B11111110, //8
    B11100110, //9
    B00000000, //nada
};
const int pins[8] = {
    5, 8, 9, 7, 6, 4, 3, 2
};
void setup() {
    //iniciamos el puerto serie
    Serial.begin(9600);
    //iniciamos los pines en modo salida
    for (int i = 0; i & lt; 8; i++) {
        pinMode(pins[i], OUTPUT);
    }
}
void loop() {
    //si existe algo en el serie
    if (Serial.available()) {
        //leemos lo que mandamos por serie
        int r = Serial.read() – ’0′;
        //enviamos respuesta lo que leimos (a modo debug)
        Serial.print((int) r);
        //y por ultimo mostramos el numero correspondiente del array
        mostrarDigito((int) r);
        delay(100);
    }
}
void mostrarDigito(int numero) {
    boolean BitSet;
    for (int segmento = 0; segmento & lt; 8; segmento++) {
        BitSet = bitRead(numeros[numero], segmento);
        digitalWrite(pins[segmento], BitSet);
    }
}

Screenshots

sshot-1

sshot-2

Utilizando el mismo ejecutable con otro proyecto

IMG_20130818_151253

Descarga

  ejarduino.rar (1,6 MiB, 2.677 hits)

Espero que sea útil

Saludos

4

Bases de Datos (I)

Hola hoy vamos a ver Bases de Datos (DB) y como implementarlas en neobook. Será una serie de entradas las cuales vamos a ir agregando funcionalidades a la misma. DB es un tema bastante amplio que no voy desarrollar ya que voy a centrarme directamente en como implementarlas en neobook. Dejo para uds que lean sobre el tema.

que es una base de datos?

Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.

tipos de bases de datos

Existen varios pero los mas importantes hoy en día son mysql y sqlite. Sin olvidar que también existen mssql, Access (.mdb), tablas libres (.dbf), etc.

cual me conviene?

Depende del volumen de inf, tipos de datos, seguridad, acceso (local o remoto) que necesitemos para nuestra DB.

que plugins puedo usar?

Existen varios algunos free algunos pagos, dependiendo del tipo de DB a la cual conectarnos, etc. Ya veremos ésto mas adelante.

Manos a la Obra

En este ejemplo voy a utilizar NeobookDB (gratis).

Antes de comenzar tenemos que analizar que vamos a guardar para poder establecer cómo lo vamos a guardar. Vamos a crear un simple catalogo de CDs de musica que almacenara los siguientes datos:

Titulo (cadena de texto max 35)
Artista (cadena de texto max 35)
Genero (cadena de texto max 35)
Año (entero)
Discografica (cadena de texto max 35)

Creando la base de datos

dbfCreate "[PubDir]MisCds.dbf" "Titulo,String,35|Artista,String,35|Genero,String,35|Anio,Integer,0|Discog,Integer,0" "DbActu"

dbfCreate requiere 3 parámetros:

1: La ruta de la DB a crear.
2: Campos.
3: Subrutina a ejecutar cuando haya cambios.

*Si le hacemos doble click podremos acceder a un “asistente” para crear los campos de la tabla con los tipos de datos disponibles.

Hay que recordar que esta acción primero intenta abrir la base de datos y si no existe la crea.

Con eso ya tenemos creada la DB, ahora vamos a mostrarla. Para mostrar usaremos la acción dbfShowTable.

dbfShowTable "[PubDir]sample.dbf" "Rectangle1" "NavigationBar"

dbfShowTable requiere 3 parámetros:

1: La ruta a la DB.
2: Rectángulo destino.
3: Opciones para mostrar (Con o sin barra de navegación, Solo lectura o no).

También podemos personalizar un poco el estilo de la grilla con estas funciones:

.Definimos el tamaño de las columnas
dbfSetColumnWidths "[PubDir]MisCds.dbf" "133|132|104|46|164"
.Definimos el estilo del titulo de las columnas
dbfSetTitleStyle "[PubDir]MisCds.dbf" "White" "Arial" "9" "Normal" "Black"
.Definimos el estilo de las celas
dbfSetCellStyle "[PubDir]MisCds.dbf" "249,249,249" "Arial" "9" "Normal" "WindowText"
.Definimos el estilo de la celda seleccionada
dbfSetHighlightColor "[PubDir]MisCds.dbf" "255,255,225" "Black"
.Traducimos el texto de los botones de navegacion
dbfTranslateHints "Primero|Anterior|Siguiente|Ultimo|Agregar|Eliminar|Editar|Guardar Cambios|Cancelar Edicion"

Con esto ya aprendimos a crear una base de datos y mostrarla en un rectángulo donde podemos navegar los registros. Luego veremos cómo personalizar el ingreso de los datos a la DB.

Screenshots

sshot-1

Descarga:

  db-MisCds.rar (1,3 MiB, 13.407 hits)

Espero que sirva.

BuNKeR

2

Comparando números en neobook

Hace unos días recibí un mail donde me decían que si tenían 2 números (grandes) y éstos diferían en alguna parte, el comando IF daba como resultado que eran IGUALES aunque no lo fueran.

Para ver a partir de que cifra es que neobook los considera iguales hice este ejemplo en el cual genero un numero y cambio el ultimo dígito por uno diferente, luego hago las comparaciones con IF, rlStrCmp (rlfunctions) y dec_CompararDosCadenas (dec_plus).

Al parecer el comando IF tiene algún tipo de limite para comparaciones, al menos en las numéricas cuando supera la cifra 17 (a veces incluyéndola).

Entonces cual seria la solución?

La solución es utilizar alguna de las funciones de los siguientes plugins:

rlStrCmp (rlfunctions)

dec_CompararDosCadenas (dec_plus)

Con esas funciones se aseguran de obtener el resultado correcto.

Captura

Descarga

  ejcomparacion.rar (1,3 MiB, 1.770 hits)

 

0

Chequear actualizaciones de plugins


Esta es mi idea de como sería el botón

Bueno esta entrada es para expresar una sugerencia que puse en el foro de oficial de neobook:

Hola no estoy seguro si ya fue posteado esta sugerencia… pero creo que seria bueno tener un botón con el cual se pueda comprobar la disponibilidad de nuevas versiones de los plugins instalados. Igual que lo hacen otros programas como firefox con sus extensiones.

Como todos sabemos algunos cambian de servidores, urls, etc. por lo cual la versión actualizada debería estar almacenada de alguna forma en neosoftware. Es lo que yo pienso.

Saludos

Yo creo que nos facilitaría mucho saber que hay actualizaciones de plugins para mantenernos al día. Que les parece a ustedes?

11

NeoPHP mi intento de plugin

NeoPHP es un plugin que te permitirá ejecutar código php en tus publicaciones de neobook. Si bien yo utilizaba php en mis proyectos, la idea de un plugin nace cuando leí una pregunta en el foro oficial de neobook http://www.neosoftware.com/forum/viewtopic.php?t=18022 en la cual se quiere transformar una fecha (17/08/2010) en (Seventeenth August Two Thousand Ten), inmediatamente pensé en php (solución en el pub de ejemplo).

NeoPHP v1.0 trabaja con Php v4.4.4 las funciones mysql funcionan con Mysql v5.0.24a.

NeoPHP v1.0 incluye las siguientes librerías:

Turck MMCache
bcmath
calendarcom
ctype
ftp
GD
mysql
odbc
pcre
win32std
xml
zlib

——————————————————————————————————–

Actualizacion: NeoPHP v1.1

– Ahora NeoPHP trabaja con PHP v5.3.1.

– Las extensiones pueden ser agregadas manualmente.

Debido a que NeoPHP utiliza el compilador phc-win para que funcione deberás distribuir los siguientes archivos con tu aplicación.

  • neophp.exe
  • php5ts.dll
  • php_win32std.dll
  • php_bcompiler.dll
  • php-embed.ini

Usuarios de XP necesitan tener instalado Microsoft Visual C++ 2008 Redistributable Package (x86) (incluido en el .rar del plugin).

Como agrego una extensión para utilizarla con NeoPHP?

Agrega una linea al archivo php-embed.ini con lo siguiente extension=nombre_de_la_extension.dll

Ej si quiero agregar la librería GD el archivo quedaría así:

[PHP]
extension_dir='./'
extension=php_win32std.dll
extension=php_bcompiler.dll

;Pon tus extensiones abajo ejemplo: extension=php_curl.dll
;Put extensions down here example: extension=php_curl.dll
;VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV

extension=php_gd2.dll

Luego deberás distribuir el dll de las extensiones junto a los archivos necesarios.

Donde consigo extensiones para php 5.3.1?

Puedes encontrarlas en la carpeta ext de la distribución 5.3.1 disponible en:

http://windows.php.net/downloads/releases/archives/php-5.3.1-Win32-VC9-x86.zip

——————————————————————————————————–

Como utilizo NeoPHP?

En las acciones de entrada de la publicación escribe:

SetVar "[NeoPHP_password]" "neobookeros.com.ar"

Simplemente escribe tu código en una variable.

Luego:

NeoPHPEjecutar [PubDir] [codigo]

NeoPHPEjecutar es la única función del plugin y requiere 2 parametros.

El primero es el directorio en el cual se encuentra neophp.exe

El segundo es la variable que contiene el código.

El resultado del código se guardará en la variable [NeoPHPResultado]. Los errores del plugin se guardarán en [NeoPHPError]. Los errores de código se mostraran en [NeoPHPResultado] y son manejados por el usuario en su código.

Como le paso una variable a NeoPHP?

Se pone $NeoPhp antes del nombre de la variable ej.: [$NeoPhpTextEntry1].

<?php
echo '[$NeoPhpTextEntry1]';
?>

Captura

Descarga v1.0

  neophp10.rar (1,3 MiB, 1.875 hits)

Descarga v1.1

  neophp1.1.rar (4,7 MiB, 5.047 hits)

Archivo Pub actualizado con ejemplo de XML y HTML.

Licencia

NeoPHP se distribuye con licencia Beerware 😛

NeoPHP es un plugin que te permitirá ejecutar código php en tus publicaciones de neobook. Si bien yo utilizaba php en mis proyectos, la idea de un plugin nace cuando leí una pregunta en el foro oficial de neobook http://www.neosoftware.com/forum/viewtopic.php?t=18022 en la cual se quiere transformar una fecha (17/08/2010) en (Seventeenth August Two Thousand Ten), inmediatamente pensé en php (solución en el pub de ejemplo).

NeoPHP trabaja con Php v4.4.4 las funciones mysql funcionan con Mysql v5.0.24a.

NeoPHP incluye las siguientes librerías:

Turck MMCache
bcmath
calendarcom
ctype
ftp
GD
mysql
odbc
pcre
win32std
xml
zlib

Como utilizo NeoPHP?

En las acciones de entrada de la publicación escribe:

SetVar "[NeoPHP_password]" "neobookeros.com.ar"

Simplemente escribe tu código en una variable.

Luego:

NeoPHPEjecutar [PubDir] [codigo]

NeoPHPEjecutar es la única función del plugin y requiere 2 parametros.

El primero es el directorio en el cual se encuentra neophp.exe

El segundo es la variable que contiene el código.

El resultado del código se guardará en la variable [NeoPHPResultado]. Los errores del plugin se guardarán en [NeoPHPError]. Los errores de código se mostraran en [NeoPHPResultado] y son manejados por el usuario en su código.

Como le paso una variable a NeoPHP?

Se pone $NeoPhp antes del nombre de la variable ej.: [$NeoPhpTextEntry1].

<?php
echo '[$NeoPhpTextEntry1]';
?>

Captura

Descarga

  neophp10.rar (1,3 MiB, 1.875 hits)

Licencia

NeoPHP se distribuye con licencia Beerware 😛

6

Instale plugins fácil y rápido con NeoPlugin Installer

Seguramente te pasó que formateaste la pc y tuviste que instalar uno por uno tus “cientos” de plugins. Tedioso ¿no? Ahora NeoPlugin Installer (NPI en adelante) te ayudara a la hora de instalar tus plugins.

Sólo deberás seleccionar la carpeta donde tienes tus plugins, seleccionar cuales quieres instalar y NPI hará el resto. Lo mismo a la hora de desinstalar, seleccionar y NPI se encargará.

Características de NPI:

Multilenguaje (Inglés y Español).
Interfaz totalmente intuitiva.
Permite Instalar y Desinstalar plugins.
Instala cientos de plugins en cuestión de minutos.
Desinstala aún más rápido.

Capturas


Plugins seleccionados para instalar


Listado de plugins para desinstalar

Descarga

  neonpugininstaller.rar (3,7 MiB, 5.122 hits)

NOTA/NOTE:
-Por favor al instalar plugins selecciona desde arriba hacia abajo, ésto lo hará mas rápido.
Neobook debe estar cerrado.
-To install plugins please select from top to bottom, this will make faster.
-Neobook must be closed.

Historial de Actualizaciones:

update Actualización 1/03/10 [Versión 1.0.0.1]:

  • – Añadida la posibilidad de guardar y restaurar datos de plugins registrados
  • – Corrección de pequeños detalles
  • – Link de descarga actualizado!

12

GPNeo: Plugins gratuitos para Neobook

gpneo

Hace un par de días Mariano Chiaverano (DAMANEO) me mando un mail el cual transcribo a continuación:

Me comunico con ustedes para hacerles llegar una Website que he creado recientemente y que intentaré completar a la brevedad. La Website intentará reunir todos los plugins gratuitos que existen para Neobook, desde los más antiguos a los más nuevos. En todos los casos se respetará el autor de los mismos, pero los archivos (en zip y/o cab) estarán en el sitio GPNeo disponibles para todo aquel que quiera hacerse de ellos. Igualmente existiran casos, como los plugins de HPW, los cuales no incluiré en la website debido a que todos son gratuitos y todos estan actualmente disponibles en la website oficial de HPW. Solo se hara mensión y se incluirá el enlace de ellos en GPNeo.
Estoy trabajando para traducir todas las descripciones al inglés (En breve).

Personalmente me parece una gran contribución a la comunidad, pues los que nos iniciamos recientemente en el mundo de neobook no pudimos ver algunos plugins.

Con esta web podremos tener (si contribuimos todos) la base de plugins gratuitos a nuestro alcance.

Desde neobookeros.com.ar el mejor de los deseos para GPNeo.

Link: http://gpneo.eshost.com.ar/

4

Ejemplo hpwImage

Buenas…ahora voy a poner un ejemplo básico de como usar el plugin hpwImage (H.P.Wickern) en base al problema planteado por zasuangel en el post Problema 2 del foro de Hispaneobook.

Breve explicación: Como la mayoría de plugins hpwimage crea un control sobre un objeto rectángulo, esta acción es la primera que se debe realizar para continuar con las otras funciones del plugin.

Creamos el control sobre el objeto:
hpwImageCreate objeto_rectangulo

Luego para cargar una imagen (en el rectagunlo sobre el cual tiene control hpwimage):
hpwImageLoadFromFile objeto_rectangulo ruta_archivo pos_x pos_y transparencia transparencia_color

Para guardar la imagen en un archivo (se guarda lo que contiene el rectángulo sobre el cual tiene control hpwimage) :
hpwImageSaveToFile objeto_rectangulo ruta_archivo_destino pos_x_inicial pos_y_inicial pos_x_final pos_y_final

Ver detalles en el .pub incluido en la descarga.

Screen ejemplo hpwimage
Screenshot del ejemplo

  Ejemplo_hpwimage (1,1 MiB, 1.642 hits)