Entradas populares

viernes, 16 de diciembre de 2011

Aplicación Mobil ó Mobile Web App - Android, iphone y BlackBerry

Hoy les traigo algo de telefonía mobil y web, hace ya algunos meses me han pedido desarrollar una aplicación que interactua con la web y el celular, por eso hoy les escribo algo para salir de dudas.

Primero empezare aclarando las diferencias que hay entre una WebApp Mobil y una aplicación para el mobil (celular).
Una webapp mobil o aplicación web compatible para el celular, es una pagina que esta diseñada para verse y interactuar con los navegadores de los celulares, como todos ya sabemos que los celulares o mobiles vienen con navegadores web, podemos hacer nuestra web adaptable para estos navegadores y darle funciones que se realizarían en el navegador. Obviamente esto tendrá sus restricciones ya que no podremos usar todo el hardware a nuestra disposición (mobil ó celular). Pero podemos hacer que el usuario interactue directamente con nuestro sitio. Para esto nuestro sitio debe de estar ajustado para mobil, les dejo unos enlaces en los cuales después profundizare http://www.sencha.com/products/touch/download/ o http://jquerymobile.com/ con estos framework nos podemos ayudar para diseñar nuestra web más interactiva dentro de un navegador web.Lo bueno de esto es que la webapp que realicemos funcionaria varios modelos de y sistemas operativos de celulares(mobiles).

Aplicaciones, netamente dichas una aplicación mobil es aquella que se ejecuta dentro de nuestro teléfono y puede tomar información de la web, por ejemplo la aplicación Facebook para mobiles, esta aplicación esta dentro de nuestro celular y toma información de la web y a su vez puede interactuar directamente con el mobil tomando fotos, grabando vídeos, etc...Y luego subiendo esa información. Para desarrollar sobre estas plataformas debemos buscar en la documentación la cual nos ayudará a programar sobre el dispositivo que tengamos.
Pero para esto debemos de tomar algunos factores en cuenta... como: sistemas operativos eso quiere decir que no va hacer la misma aplicación para iPhone y BlackBerry. Para esto tendríamos que hacer varias aplicaciones tomando en cuenta la versión del sistema.

viernes, 9 de diciembre de 2011

Twitter se vuelve a renovar - Twitter 2011

Bueno como muchos ya sabes twitter es una de las redes sociales con más adeptos, nos anuncia una nueva renovación para ser más sencilla y organizada la interacción de los usuarios y para convertirse en un "un destino más persuasivo" para las marcas gracias a un nuevo sistema de recomendaciones. Esto ayudará a las marcas que se anuncian o promocionan sus tuits ó twitts..

Ahora, la página de inicio de Twitter tiene mayor velocidad y permite el acceso a las funciones preferidas. Las fotos, videos y conversaciones están incluidos en los ‘tuits’ para que se pueda conocer la información completa con solo un vistazo.

El nuevo menú ofrece 4 opciones: Inicio, Conecta, Descubre y  Tu Perfil.

Tanto twitter.com como su aplicación para smartphones (iPhone y Android) han experimentado este cambio ofreciendo el nuevo menú de igual manera para todos los dispositivos.


Los cambios serán progresivos según la cuentas, a continuación te ofrecemos un video en el que se explican de manera breve las nuevas herramientas de Twitter.



más información visiten su blog oficial http://blog.twitter.com/

lunes, 14 de noviembre de 2011

JAVA JDBC conexión de java con una base de datos (POSTGRES)

Hoy les hablare... del lenguaje en el cual he trabajado estos últimos meses, nada más y nada menos que nuestro gran y querido amigo JAVA, aunque no soy un experto es fácil si ya tienes experiencia en otros lenguajes y mucho más aún cuando utilizas un IDE (en inglés integrated development environment - Entorno de desarrollo integrado). Aunque no hablare mucho del IDE que uso que es NetBeans 7 les explicaré como se realiza una conexión a base de datos de una forma sencilla y reutilizable.
Primero deberán empezar seleccionando el gestor de base de datos que van usar MySql, PostGres, MSSql, ORACLE, etc... Bueno gran parte de los programadores que usan lenguaje de código abierto se inclinan a usar base de datos de código abierto en mi caso voy a usar POSTGRES.
Y como primer paso será descargar la biblioteca que nos facilita el acceso a la base de datos más conocido como JDBC (inglés Java Database Connectivity) u ODBC (Open Database Connectivity) en mi caso en particular tengo el postgresql-8.3-603.jdbc3 para buscar su librería bastará con googlear un poco. (BUSCANDO ALGO ASI COMO: JDBC DE SUBASEDEDATOS).
Una vez con su librería .jar vamos a nuestro IDE y añadimos un nuevo proyecto 

Nos movemos en la pestaña que nos muestra nuestro proyecto y damos click derecho agregar library o librerías.



import java.sql.*;
//Librería para usar el panel de mensajes
import javax.swing.JOptionPane;
public class ClsConexion {
    public Connection conect;
    public Statement sentencia;
    public ResultSet resultado;
public void Connection(String Server, String usuario, String contrasena, String DBname, Boolean test){
        String driver = "org.postgresql.Driver";
        String connectString = "jdbc:postgresql://"+Server+"/"+DBname;
        try{
            Class.forName(driver);
            conect = DriverManager.getConnection(connectString, usuario, contrasena);          
            sentencia = conect.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE, ResultSet.HOLD_CURSORS_OVER_COMMIT);
            if(test == true){
                //Cierro conexión -- DE LA BASE DE DATOS...
               conect.close();
               JOptionPane.showMessageDialog(null, "Conexión realizada con éxito");
            }
        }catch (ClassNotFoundException e ){
            JOptionPane.showMessageDialog(null, "Error al cargar el driver de datos.\n"+e.getMessage());
        }catch(SQLException ext){
            JOptionPane.showMessageDialog(null, "SQLException: Creacion Statement "+ext.getSQLState()+"\n"+ext.toString());
        }
       
    }
    //INICIAR TRANSACCION CON BASE DE DATOS
    public void BeginTrans() throws SQLException{
        conect.setAutoCommit(false);
    }
    //HACER UN ROLLBACK  
    public void RollBack() throws SQLException{
        conect.rollback();
    }
   
    public void Close() throws SQLException{
        if(conect != null){ conect.close(); }
        if(sentencia != null){ sentencia.close(); }
    }
}

jueves, 3 de noviembre de 2011

HTTPS en servidores compartidos - Hostgator.com

Honestamente no creí que esto se pudiera hacer... pero después de hacer unas pequeñas googleadas, me entere que existe conexión segura en servidores compartidos el famoso SSL (Secure Sockets Layers).


Pero no todos los servidores son iguales... en mi caso ahora estoy utilizando en hostgator.com y me he animado ha escribir este post ya que es uno de los hosting más usados en la web.

Para saber como usar su url segura necesitarán saber el nombre de su hosting y su nombre de usuario de cpanel, para saber el nombre de su host pueden revisarlo en el correo de bienvenida de hostgator... o ingresen a su cpanel, con su usuario y contraseña. En la parte izquierda se encuentra el nombre de nuestro servidor...



El nombre de nuestro servidor estará compuesto por un nombre y unos números. Sabiendo estos datos ya solo es cuestión de remplazar nuestros datos... quedando así nuestra url .

https://secure####.hostgator.com/~cpaneluser/

Reemplazaremos los # por nuestros números del nombre del servidor y cpaneluser por nuestro nombre de usuario con que ingresamos a nuestro cpanel.

Para usar nuestra url quedaría algo así https://secure####.hostgator.com/~cpaneluser/images/segura.jpg
Esto nos resulta muy útil para realizar pestañas en Facebook o aplicaciones...

miércoles, 7 de septiembre de 2011

Certificados fraudulentos - DigiNotar

Se generan certificados fraudulentos según los últimos datos un atacante con IP de Irán se hizo con usuario y contraseña de una autoridad de Comodo del sur de Europa. Y habria emitido certificados fraudulentos de paginas como login.live.com, mail.google.com, www.google.com, login.yahoo.com, login.skype.com, addons.mozilla.org...

Anterior se revocaron certificados de firma de código, era la primera vez que se hacía una revocación masiva de certificados SSL y a nivel de dominios importantes.

Al parecer el mismo intruso a conseguido emitir certificados fraudulentos a nombre de la compañia DigiNotar (de origen Vasco). Los certificados fraudulentos serán invalidados pero no por fraudulentos ya que esto prodiera afectar los certificados de grandes empresas y que los certificados de origen (propias de la empresa) sean tomados como dudosos.

Esto pone en tela de duda todas estas seguridades a través de certificados y demuestra la fragilidad del sistema para la emision de los mismos y involucra a grandes empresas de certificación ssl. Por eso hay tener mucho cuidado donde entramos en internet.

martes, 30 de agosto de 2011

Java - "ejecutar un jar desde java"

En los dos últimos post me dedica a escribir sobre java, ya que actualmente me encuentro desarrollando en este gran lenguaje de programación aunque he escuchado a el 90% de programadores que conozco que es difícil, hoy personalmente creo que tiene muchas cosas..... Y que solo hay documentación en inglés la poca que está en español no es muy bueno.

Por eso cada vez que puedo o que lo amerite escribo un post sobre java...Una necesidad que tuve es de hacer el llamado o la ejecución de otro archivo jar que son como los ejecutables de JAVA. Para empezar tenemos que tener nuestro archivo al cual vamos hacer el llamado o queremos que se ejecute.. Una vez ahí podremos hacer el llamado desde la nueva aplicación que estamos construyendo. Podremos hacer el llamado desde cualquier lugar o acción dentro de llama de una forma limpia y sencilla.

Runtime.getRuntime().exec("java -jar c:/rutademiarchivo/miarchivo.jar parametros1 parametro2");


Funciona en Windows y Linux Fedora 15 por lo general encontraran en la web un llamado parecido pero la mayoría solo funciona en Windows por que usan el cmd java -jar archivo.jar

Para que funcione en Linux tuve que omitir el cmd y darle la ruta absoluta del archivo que iba a ejecutar.

miércoles, 17 de agosto de 2011

Encriptar y Des-Encriptar con java

Hola a todos... ahora en mi corta vida de programador ha entrado un nuevo lenguaje al cual muchos programadores le temen (me incluyo XD) pero creo que esto se debe a la poca información que a veces encontramos en la web (información en español).

En mi trabajo actual se le ha ocurrido la grandiosa idea de cambiar las plataformas de trabajo (Sistema Operativo). Entonces nos hemos visto en la necesidad de buscar un lenguaje potente y versátil para migrar nuestro sistema interno, lo cual después de un intenso debate (no se nos vino otro a la cabeza :D) llegamos a la conclusión que debemos implementar java en todas nuestras nuevas aplicaciones. Ya que java puede correr en los dos S.O que manejamos en la empresa.

Y una de las grandes necesidades que se plantearon fue la de encriptar pequeñas cadenas de caracteres para una conexión a nuestra base de datos cosa que me tomo algún tiempo en encontrar por eso ahora les comparto el código con ejemplo.

package jpostconfig;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.security.spec.*;
import java.io.*;

public class ClsEncriptar {
     public static String encriptar(String cleartext, String key)
            throws Exception {
        return crypt(cleartext, key, Cipher.ENCRYPT_MODE);   
    }


    public static String desEncriptar(String ciphertext, String key)
            throws Exception {
        return crypt(ciphertext, key, Cipher.DECRYPT_MODE);   
    }

    private static String crypt(String input, String key, int mode)
            throws Exception {

        // Install SunJCE provider
        Provider sunJce = new com.sun.crypto.provider.SunJCE();
        Security.addProvider(sunJce);
        
        KeyGenerator kgen = KeyGenerator.getInstance("Blowfish");
        kgen.init(448);
        SecretKey skey = kgen.generateKey();

        byte[] raw = key.getBytes();
        SecretKeySpec skeySpec = new SecretKeySpec(raw, "Blowfish");
           
        Cipher cipher = Cipher.getInstance("Blowfish/ECB/PKCS5Padding");
        cipher.init(mode, skeySpec);

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ByteArrayInputStream bis = new ByteArrayInputStream(input.getBytes());
        CipherOutputStream cos = new CipherOutputStream(bos, cipher);

        int length = 0;
        byte[] buffer =  new byte[8192];

        while ((length = bis.read(buffer)) != -1) {
           cos.write(buffer, 0, length);
        }

        bis.close();
        cos.close();

        return bos.toString();
    }
}

Y les dejo un proyecto en NetBeans(versión 7.01) para que lo puedan revisar todo el codigo implementado.
Para llamar la clase no necesitan instanciarlo pero si capturar las excepciones.

SOLO FUNCIONA BAJO WINDOWS AUN NO SE PORQUE XD

http://www.megaupload.com/?d=TRAQICS7

Tomado de : http://www.forosdelweb.com/1063555-post13.html

martes, 16 de agosto de 2011

Google + La red social de google...

¿Qué es google+? 

Muchos dicen que google+ es el rival directo de facebook y que ha venido a destronarla, pero realmente que es google+... Google ha tenido varios proyectos de redes sociales que no han tenido mucho (wave, buzz, orkut) hoy por hoy google apuesta a otra forma de hacer las cosas.
Siendo Google un gigante del internet ha desarrollado y mejorado grandes aplicaciones sobre la web, (yo particularmente uso más del 80% de las mismas) y nos da esta nueva opción esta nueva herramienta en la cual socializa todas sus herramientas, dándole un nuevo significado a las redes sociales. Que en particular pienso que son las nuevas redes sociales de aplicación… donde podemos valernos de la nube al 100% y mantener nuestra información y nosotros siempre en línea, este nuevo criterio para el manejo de las redes sociales es innovador y se muestra muy atractivo.
Esperemos que muy pronto ya todos podamos acceder al sitio ya que actualmente se encuentra restringido para su registro.
Les dejo un video para que puedan apreciar las características de google+


viernes, 18 de marzo de 2011

Tildes y caracteres especiales en JavaScript

Uno de los principales problemas al utilizar javascript en nuestras paginas especialemente mensajes, es que no se muestran caracteres tildados, eñes entre otros (á, é, í, ó, ú, ñ...), aqui les muestro una manera sencilla de mostrar los caracteres especiales en javascript , por ejemplo en un alert obtenemos resultados indeseados.



Donde el mensaje es Año número 2011, como vemos el mensaje es totalmente incomprendible lo cual a muchos programadores les cuesta algo arreglar estos errores.

Para solucionar este preblema utilizaremos las cadena de escape de javascript solo deberemos reemplazar el caracter por \x seguido del valor que podemos ver en la tabla más abajo...
Cadenas de escape en Javascript
Las cadenas de escape permiten introducir caracteres especiales en Javascript como saltos de linea, tildes, tabuladores, etc. Entre estas cadenas de escape podemos listar:
  • \n: Salto de linea.
  • \r: Retorno de carro.
  • \t: Tabulación horizontal.
  • \v: Tabulación vertical.
  • \': Comilla simple o apostrofe.
  • \": Comilla doble.
  • \\: Barra invertida.
  • \xdd: Caracter especial especificado por dos dígitos hexadecimanes dd
Esta ultima cadena de escape nos permitirá mostrar todos los caracteres que deseamos, para ello solo nos hace falta conoces los equivalentes hexadecimales de los caracteres.
Tabla de Caracteres Especiales
Los caracteres especiales están expresados en números hexadecimales y con ellos podremos imprimir cualquier caracter de acuerdo nuestras necesidades


Fuente: http://blog.unijimpe.net/

domingo, 13 de marzo de 2011

Crear un USB Live Linux Ubuntu-Fedora-Kubuntu-Suse

También llamados USB Key, de arranque o inicio. Un USB Live no es nada más y nada menos que un USB con los archivos para la instalación del sistema operativo. En nuestro caso será Linux Ubuntu 10.10 (personalmente lo he probado con las otras versiones de Ubuntu y si corre muy bien).


Para empezar necesitaremos un Pen Drive (dispositivo de almacenamiento masivo USB) de un 1gb o más con sistema de archivo Fat16 o Fat32, la distribución de Linux (Ubuntu 10.10 en nuestro caso). Y un programilla unetbootin que es de código abierto.
Pagina del creador http://unetbootin.sourceforge.net/

Abre ahora unetbootin.
Su funcionamiento es muy sencillo, ábrelo e indica la distribución y versión del ISO (el archivo de imagen de tu Sistema operativo, en nuestro caso Linux Ubuntu 10.10), luego indícale la ruta o dirección del ISO y la unidad USB donde quieres crear el USB Live (Importante: Asegúrate de usar la ruta de una unidad USB, si te descuidas podrías seleccionar un disco duro y sobrescribirías los datos).




Pulsa en ok y comenzara el proceso de creación del USB Live.
 
Paso opcional:
Este paso no es necesario porque solamente es para que nuestro teclado cargue en español
Cuando termine, sales del programa y con nautilus entras en el pendrive, buscas el archivo “syslinux.cfg” y lo editas


default unetbootin
label unetbootin
kernel /ubnkern
append initrd=/ubninit file=/cdrom/preseed/ubuntu.seed boot=casper locale=es_ES bootkbd=es console-setup/layoutcode=es quiet splash --

Ojo, son dos guiones al final. Guardas los cambios y listo, ya tienes un USB con el que puedes arrancar la instalación de Ubuntu en español.