Skip to content


Conoces el Pencil de Firefox…

A muchos de nostrostros que estamos en el mundo de la informatica y a lo que no estan tambien, nos surge muchas veces la necesidad de describir una interfaz, ya sea para un programa que estamos desarrollando una idea en mente ETC. Anteriormente cuando me solicitaban el diseño de una apliacion en la universidad, realizaba la pantallas en Visual Basic 6, lo cual tenia que estar haciendo print screen en cada pantalla para guardarla con imagenes. En repuesta a esto existe una extension de firefox… si del navegador web, que nos permite diseñar interfaces tipo win32 y guardarla directamente a imagen o en su formato para luego hacer alguna modificacion. No que instalar nada adicional solo activar este plugin en firefox y lo veras en herramientas. Algunas caracteristicas son:

  • Multi Documento, puedes trabajar varias pantallas a la vez.
  • Sorta deshacer, algo muy util si cometemos un errorcito.
  • Funciones basicas con los controles, z-index, rotacion, alineacion….
  • Multi plataforma.
  • Puedes añadir objetos externos.
  • y mucho mas.

Url del plugin puedes visitarla e instalarla en tu firefox.

Posted in Web.

AsgReport, reporteador PHP.

Reporte

Reporte

En unos dias subo mas detalles, acerca de un reporteador que estoy desarrollando para php, explico en que consiste a ver si alguien me quiere acompañar en este proyecto.

No es para un cliente especifico, es solo para ahorrarme trabajo a la hora de realizar un software en php y sacar un reporte en PDF. basado en FPDF estoy realizando un GUI para dicha clase de producir PDFs, en algunos dias actualizo con mas detalles.

http://adamix.net/asgReport/

Posted in PHP, ¿Que estoy Haciendo?. Tagged with , .

SqLite, base de datos lite que resuelve.

La informática acostumbra a sorprendernos, pero estas sorpresas son mejores si podemos utilizarlas para algo en nuestras vidas. Hago este comentario por como me sentí cuando descubrí SqLite.

sqlite edicion de tabla

sqlite edicion de tabla

Según la Wikipedia. SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, y que está contenida en una relativamente pequeña (~500KB) biblioteca en C. SQLite es un proyecto de dominio público creado por D. Richard Hipp.

A diferencia de los sistemas de gestión de base de datos cliente-servidor, el motor de SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a través de llamadas simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre procesos. El conjunto de la base de datos (definiciones, tablas, índices, y los propios datos), son guardados como un sólo fichero estándar en la máquina host. Este diseño simple se logra bloqueando todo el fichero de base de datos al principio de cada transacción.

La biblioteca implementa la mayor parte del estándar SQL-92, incluyendo transacciones de base de datos atómicas, consistencia de base de datos, aislamiento, y durabilidad (ACID), triggers y la mayor parte de las consultas complejas.

Sqlite esta disponible en librerias prácticamente para cualquier base de datos, puedes usarla en diversos systema operativos, ya que solo depende de un archivo como si del mismo Access se tratase, pero sin los tantos problemas que este conlleva.

Puedes probarla desde ya, sin instalar nada adicional, con el programa SqLiteAdministrator y me cuenta que te parece. Puede ser usada en programas grandes para evitar guardar los archivos config en archivos planos. Es usada por versiones de Linux, Adobe, Firefox, yo y muchos mas. Anímate a probarla.

Si eres de lo que dices… ya esta Access, te dire que esto no es lo mismo, ya que el codigo que uses para conectarte a esta db no tiene nada que envidiarle a unas de las grandes y como acepta SQL Estándar no tendras que hacer muchos cambios si quieres migrar a otra.  Mas tarde publico una comparativa de Access y SqLite para aclarar dudas.

Posted in base de datos. Tagged with , , .

Prism, tu aplicacion web a un click.

googlecalendar550Si eres un desarrollador de aplicaciones web, seguro te topaste con algunos usuarios que no sabían usar los favoritos del navegador o tenían paciencia para trabajar con algo en su navegador sin que recordaran que es la misma interfaz que usan para ver su mail y se sintieran en un mundo de mentiras. Como parte de ayudarnos un poquito la gente de Mozilla tienen un proyecto llamado Prism, el cual es un navegador basado en mozilla pero con la ventaja de que al abrirse solo se ve la aplicación especificada (url). Tambien puede ser utilizado para ver tu aplicacion favorita sin tener que agrir directamente el navegador web.

Esto es una gran ayuda, en el sentido de que pueden ver su aplicación como si de una Windows se tratase, aunque protejas el codigo, cuando se desarrolla una aplicacion web se necesita que sea rapida, evite errores, sea facil de encontrar, etc.

A continuacion listo algunas de las ventajas que he visto en esta aplicacion.

  • Facil de utilizar para el usuario, solo un click y se abre una ventana con la aplicación.
  • Evita el click derecho del curioso, en el sentido de que no hay opciones especiales como ver html, etc.
  • El backspace en el espacio en blanco que hace ir para atras en una pagina esta desabilitado, por lo que se evita el tener que usar javascript. Tenia un usuario que siempre olvidaba que un campo era readonly, por tal motivo cuando iva a borrar aca iva hacia atras, esto me saco de ese apuro.
  • Sensación de realidad, el usuario se olvida que de una aplicacion web se trata.
  • Configurable, al punto de no mostrar ni barra de direcciones ni nada, solo la aplicación.
  • Compatible con los standares reales, css, javascript funcionan bien con logica.

Son muchas, pero como todas las cosas buenas tienen sus peros, hasta ahora solo me han afectado dos:

  1. Con los certificados es un poquito trucu, hay que hacer un truco para aceptarlo cuando el certificado que usas no es de una identidad verificable y lo generas por tu parte.
  2. No permite cambiar la url, a algunas personas le molesta configurar cada vez para un nuevo tipo de url, pero para lo que he trabajado con el me ha servido.

Para saber mas puede visitar la pagina oficial http://labs.mozilla.com/2007/10/prism/

Posted in PHP, Web.

Pico Duarte (Con lluvia)….

El inicio

El inicio. Tan animado ahi..

El pico duarte es el pico mas alto que tiene nuestra isla, 3087 msnm, lo cual para muchos tiende diversos significados de los cuales yo pude conocer algunos. Para algunos seria un logro personal, algo que se tiene que hacer, lugar que tiene que conocer entre otros, para mi luego de haber intentado es mucho mas que eso, si vas a pie, es encontrarte contigo mismo y ver realmente cuales son tus objetivos mas verdaderos. Inicialmente no tenia una motivacion pasional, quizas eso me impidio rendir aun mas, pero las dificultad del trayecto me hizo reconocer que mas que nada, llegar al pico es como una certificacion de que estas en buena condicion fisica y tienes la suficiente mentalidad para concentrarte en un objetivo. Ese es uno de mi punto de vista, para el proximo año planeo prepararme muuucho mejor para esto, pero si se me quedo algun detalle en esta breve introduccion a continuacion se lo cuento.

Antes de la subida.
Supe que iva para alla meses antes, por lo que daba mis caminaditas y lo comparaba con los viajes ocasionales en los que iva al campo, “La maravilla”, compre mi bulto, mi hermana se artillo con su casa de campaña y bolsas de dormir. Los organizadores hacian reuniones practicamente mensuales donde advertian de lo dificil del camino y que habia que estar preparado, nos decian que a los flojitos o se ponian a entrenar o alquilaran su burro, yo aun lo veia como una subidita y hize caso a medias, todo bien hasta ahora… Al llegar el momento de irnos (23/01/09)  salimos a la parada a las 1:00 am ya que habia que estar alla a las 1:30 pm. Salimos a las 2 y luego de ver como empesaba a llover, pensamos que era solo el sereno, pero increible la lluvia no se detuvo en todo el camino. Ahi me venia a la mente lo que habian comentado en una ocasion “la cosa se pone dificil alla cuando llueve un poco”, bueno… pero no me preocupe yo tenia mi capa para lluvia nada podria pasarme.

Yo en la Pelea

Yo en la Pelea, perdi pero le dare revancha el proximo año.

Llegamos (digo llegue yo)  alla como a las 4:30 am y lloviendo, pude ver lo que hace mucho no veia cuando me baje de la guaga (aun lloviendo) humo por la boca, luego de esperar un rato subimos a la caseta principal en la cieniga. Ahi nos diron un charla y nos nombraron a todos guardabosques boluntarios cargo que luego de entender la explicacion del director acepte con gusto. Hasta ese momento todo estaba bien, ivan y venian las fotos, hablaba con los conocidos de la reuniones y coordinaba junto a quienes a parte de mi hermana iva a caminar.

3,2,1 y fuera, arrancamos, alberto dio el visto bueno y nos fuimos, al principio se nota que es para arriba que vamos, nos encaminabamos hacia los tablones.  Se pasan dos pasos de rio y se sigue subiendo con unas pocas bajadas.  Pero antes de llegar como todavia seguia lloviendo habia un fango del diantres y de vez en cuando me auxiliaba de un palito, que con cada paso (como me dijo alvin) me haria mas falta. Llegue a la cotorra como a eso de las 10:00 am, tenia sed asi que aproveche para tomar agua. Pense que el pico duarte ivan a ser tres trayectos similares….. pero luego la cosa se iva a poner buena.

Los otros momentos hasta llegar a aguita fria no me tomare la molestia de detallarlos, pasamos la cotorra que pense que nunca llegaria, la laguna y el cruce. En aguita fria cruce sin darme cuenta (iva en una mula). todo el trayecto me parecio casi un castigo luego de los tablones, y vi porque la subida del arrepentimiento tenia ese nombre, mi principal lamento fue “por que no me prepare mejor”.

El encuentro con el ser extraño. Luego de subir a aguita fria como a eso de las 6:pm, aun estaba lejos de comparticion, por no decir que era de los ultimos, me montaron junto a alvin y yino en unas mulas turbo para alcanzar a los demas, pero realmente pense que era cosa de media hora y no sabia lo que me esperaba. El camino se fue volviendo negro, por la noche hasta el punto que no veiamos nada, nuestras vidas dependian de esos animales ya que no teniamos ninguno fuente de luz alguna. al llegar a un pequeño riachuelo el caballo de alvin(1ero) se detuvo, el mio(2do) se quedo como en una barranquita y el de yino(3ro) se paro tambien. (todo bajo lluvia).
- Alvin:          Aqui hay algo, ¿Quien esta ahi?, dale.
Ayyy, mi pie.
-  Amadis:     Que fue que paso.
- Alvin:          Aqui hay otro mulo, se amarran, estan peliando, Mi pie.
En ese momento intente darle para atras al mulo y lo que consegui fue encaramarme en una piedra, cuando recorde que mi reloj prendia luz yino me vio y de ese momento en adelante me puso el malabarista, por como estaba mi mulo en una piedra.
Luego de gritar varias veces AUXILIO (nunca lo habia hecho) gritar “Pa donde me lleva este caballo”, y a yino rompersele el silvato en la boca aparecio un guia que nos salvo.

Hay muchas historia que contar, asi que cuando quieras te comento un poco mas, pero hay una buena moraleja, “preparate y te hira mejor.” Lo  que si se es que para el 2010 vuelvo para alla, pero mucho mejor preparado y un objetivo que alcanzar, en esta no lo logre (parte por la lluvia), pero en la proxima con dios delante lo lograre.

Posted in ¿Que estoy Haciendo?. Tagged with , , .

Manejo de cadenas en PHP.

El manejo de cadenas de texto es algo que tarde o temprano nos toca usar en cualquier lenguaje de programacion. Tanto si estas empesando o no recuerdas bien, aca hay un recuento de las funciones mas utilziadas para estos fines.

substr()

Esta cadena devuelve una porción de la cadena de texto. Su sintaxis es la siguiente:
substr(cadena_a_cortar, posicion_inicial, largo_devuelto)
ejemplo:

<?php

$palabra = "Multimedia";
$palabra2 = substr($palabra, 2, 3);
echo "<p>$palabra2</p>";

//Esto devolvería la cadena "lti".
?>

No hay que olvidar que las cadenas en PHP son un arreglo unidimensional donde el primer elemento tiene el subindice 0, que en nuetro caso es la posición.

El tercer argumento (largo) es opcional, y en ese caso la cadena devuelta es toda la cadena a partir de la pocición indicada en la función substr(). Ejemplo:

<?php

$palabra = "Multimedia";
$palabra2 = substr($palabra, 2);
echo "<p>$palabra2</p>";

//Lo cual devolvería la cadena "ltimedia".
?>

trim()

La función trim limpia todo los espacios blancos, saltos de carro y tabuladores que hayan a los lados de una cadena de texto. Ejemplo:

<?php
$cadena1 = " La Araucana ";
$cadena2 = trim($cadena1);
echo "<p>$cadena2</p>";
?>

Si se quiere limpiar sólo al final de la cadena se usa la función chop() y si se quiere limpiar los espacios blancos al comienzo se usa la función ltrim()

strlen()

Esta función devuelve el largo de una cadena de texto. Ejemplo:

<?php
$cadena = "Instituto Las Americas";
$largo = strlen($cadena);
echo "<p>$largo</p>";
?>

strtolower() y strtoupper()

Para trasnformar una cadena a puras minúsculas se usa strlower(). Si se queire trasnformar la cacena a mayúsculas se usa strtoupper(). Ejemplo

<?php

$cadena1 = "Computación";
$cadena2 = strtolower($cadena1);
echo "<p>$cadena2</p>";
$cadena3 = strtoupper($cadena1);
echo "<p>$cadena3</p>";

?>

ereg() y eregi()

Estas fuciones sirven para ver si una cadena está dentro dentro de otra.Su sintaxis es:

ereg(cadena_a_buscar, cadena_donde_se_busca)

Por ejemplo:

<?php

$texto1 = "Sacerdotes";
$texto2 = "SACERDOTES";
$buscar = "cerd";

if(ereg($buscar, $texto1)) echo "<p>se ha encontrado la            cadena $buscar en la cadena $texto1</p>";
else echo "<p>no se ha encontrado la cadena $buscar en la            cadena $texto1</p>";

if(ereg($buscar, $texto2)) echo "<p>se ha encontrado la            cadena $buscar en la cadena $texto2</p>";
else echo "<p>no se ha encontrado la cadena $buscar en la            cadena $texto2</p>";

?>

Hay que hacer notar que erg() busca exatamente la cadena que se busca haciendo coincidir mayúsculas y minúsculas. En cambio eregi() busca sin distinguir entre mayúsculas y minñusculas. Ejemplo:

<?php

$texto1 = "Sacerdotes";
$texto2 = "SACERDOTES";
$buscar = "cerd";

if(eregi($buscar, $texto1)) echo "<p>se ha encontrado la            cadena $buscar en la cadena $texto1</p>";
else echo "<p>no se ha encontrado la cadena $buscar en la            cadena $texto1</p>";

if(eregi($buscar, $texto2)) echo "<p>se ha encontrado la            cadena $buscar en la cadena $texto2</p>";
else echo "<p>no se ha encontrado la cadena $buscar en la            cadena $texto2</p>";

?>

ereg_replace() y eregi_replace()

Estas funciones buscan una cadena determinada dentro de otra y la remplazan. Su sintaxis es:

ereg_replace(cadena_a _buscar, reemplazo, cadena_donde_buscar)

Ejemplo:

<?php

$buscar = "Manual";
$reemplazar = "MANUAL";
$cadena1 = "Este es un minimanual de PHP";
$cadena2 = "Este es un miniManual de PHP";
$cadena1 = ereg_replace($buscar, $reemplazar, $cadena1);
echo "<p>$cadena1</p>";
$cadena2 = ereg_replace($buscar, $reemplazar, $cadena2);
echo "<p>$cadena2</p>";

?>

ereg() busca la cadena exacta haciendo coincidir mayúsculas y minúsculas. En cambio eregi_replace() no hace distinción entre mayúsculas y minúscula.
Ejemplo:

<?php

$buscar = "Manual";
$reemplazar = "MANUAL";
$cadena1 = "Este es un minimanual de PHP";
$cadena2 = "Este es un miniManual de PHP";
$cadena1 = eregi_replace($buscar, $reemplazar, $cadena1);
echo "<p>$cadena1</p>";
$cadena2 = eregi_replace($buscar, $reemplazar, $cadena2);
echo "<p>$cadena2</p>";

?>

explode()

Esta función divide una cadena de texto en base a una cadena patrón devolviendo un arreglo constituido por los troxo obtenidos. Su sintaxis es:

explode(cadena_patron, cadena_a_dividir)

Ejemplo:

<?php

$linea = "Walter|Velásquez|98771338|Santiago Amengual 454|";
$datos = explode("|",$linea);

$nombres = $datos[0];
$apellidos = $datos[1];
$telefono = $datos[2];
$direccion = $datos[3];

echo "<p>Nombres: $nombres<br>
Apellidos: $apellidos<br>
Teléfono: $telefono<br>
Dirección: $direccion<br>
</p>";

?>

Posted in PHP. Tagged with , , , , , , .

Flibre, un proyecto para ayudar a los demas.

Saludos, en esta ocasion despues de un rato ya, me encuentro en un nuevo proyecto, esta vez con ayuda de mi amigo Roberto. Estamos almando el Flibre, que sera el software que revolucionara la facturacion en nuestro pais, y si soñamos mas en el mundo completo.

¿Para que sirve?
las respuesta a esto es muy secilla, es un software que tal y como su nombre lo indica es gratuito, por el cual solamente se cobra el servicio de instalacion, la mayor ventaja competitiva con respecto a los demas es que no es ilegal instalarlo si licencia, el rol de la persona que instala es comprobar que todo este listo y bien preparado para usar Flibre. No solo siver para hacer facturas, realiza mucho mas, como inventario,  cuentas por cobrar, cuentas por pagar, contabilidad basica, etc. Estamos trabajando en una nueva version, pa’ pronto.

Si quieren saber mas visiten: flibre.com

Posted in ¿Que estoy Haciendo?. Tagged with , , , .

Enumeradores en PHP (como en C#)

En el mundo de la programacion los enumeradores son utilizados, para mantener una mayor claridad en el codigo, ya que evitan en tener cosa amarradas a un numero fijo especifico, lo cual hace el codigo mucho mas facil de mantener, pero no me pongo a inventar y le dejo una definicion (tipo microsoft) de que es un enumerador:

La palabra clave enum se utiliza para declarar una enumeración, un tipo distinto que consiste en un conjunto de constantes con nombre denominado lista de enumeradores.

Ejemplo en C#

enum Dias{ Dom = 1, Lun, Mar, Mie, Jue, Vie, Sab};
int x = (int)Dias.Mar;
Console.WriteLine(x);
//Esto produce como salida un 3.

Opcionalmente se puede establecer el orden, pero por defecto se inicia en cero, en el ejemplo anterior se dice que el primer elemento vale 1, los demas toman los valores por secuencia, si no tiene valor predefinido incrementa el valor de su antecesor.

Como PHP, no maneja nativamente el concepto de enumceradores, esta es una manera de implementarlo, aunque no la mejor, pero algo es algo.

Ejemplo de como aplicar lo anterior en php:


$miEnumeradorDias = array ("Dom" => 1, "Lun" => 2, "Mar" => 3, "Mie" => 4, "Jue" => 5, "Vie" => 6, "Sab" => 7);
$d = $miEnumeradorDias ["Mar"];

echo $d;

//Esto produce 3

Otro ejemplo similar:


$otroEnumerador = array("rojo" => 1, "azul" => 2, "amarillo" => 3);
$a = $otroEnumerador["azul"];

echo $a;

//Esto produce 2

Existen otras formas de emular los enumeradores, pero mientras esta me saco del apuro que tenia. Luego con tiempo vere si implemento la solucion planteada aca:

http://it.toolbox.com/blogs/macsploitation/enums-in-php-a-native-implementation-25228

Posted in PHP. Tagged with , , , .

Configurando….. mi blog

Aqui estoy, configurando el blog, luego de haber borrado (ya no voy a actualizar mas) el hi5, el facebook y el sonico. Mi blog 2.0.  Talvez dirian que paso te llenaste de odio con las redes sociales, en cierta forma si, ya que cada dia sale una nueva y hay cuchumil contactos diciendo agregame como amigo, ya no iva a para otra mas, mejor concentro mis energias en mi propio blog personal, quien quiera saber de Amadis que entre a adamix.net. Usare las redes sociales como link a mi blog.

Ademas de esto, necesitaba una web personal, como profesional de la informatica, necesito una oficina en internet donde pueda dar a conocer ideas, novedades, proyectos entre otros.

Espero dar lo mejor de mi en esto, no cansarme, dedicarle un poquito de mi tiempo y gracias a ti por leer el post.

Posted in ¿Que estoy Haciendo?.


Blog de Amadis Suarez Genao