viernes, 30 de septiembre de 2011

Conexion ASP C# con PostgreSQL

Esta clase sirve para conectar un proyecto Web en asp con C# con la base de datos Postgresql, se debe reemplazar el nombre de la base de datos, el usuario y la contraseña, y se da la ruta del servidor, si es local se deja localhost, esta clase tiene el puerto por defecto de la base de datos.
Tiene metodos y atributos estaticos, o sea que no se instancia.

Recuerda que para usar esta clase debes tener la libreria  Npgsql para la conexion del proyecto con la base de datos. En esta pagina puedes bajarla:
http://npgsql.projects.postgresql.org/

public class Conexion
{
private static string connection = "server=localhost; port=5432;" +
  "Database=db;" +
  "User ID=usuario;" +
  "Password=contraseña;";
private static IDbConnection connect;
private static IDbCommand comando;
public static IDataReader reader;
public static IDbTransaction transaccion;
  public static IDataRecord update;
 public static void conexion()//con este metodo se abre la conexion
{
connect = new NpgsqlConnection(connection);
connect.Open();
}
  public static void executeQuery(string sql)/// este metodo recibe la cadena con la sentencia
{
comando = connect.CreateCommand();
comando.CommandText = sql;
reader = comando.ExecuteReader();
//updateQuery(sql);

}
  public static void insertQuery(String sql)// este metodo recibe la cadena con la sentencia
{
comando = connect.CreateCommand();
comando.Transaction = transaccion;
comando.CommandText = sql;
comando.ExecuteScalar();
}
  public static void updateQuery(String sql)// este metodo recibe la cadena con la sentencia
{
NpgsqlConnection conn = new NpgsqlConnection(connection);
conn.Open();
NpgsqlCommand comando = new NpgsqlCommand(sql, conn);

}

  public static void desconectar()//este metodo cierra la conexion del query
{
reader.Close();
comando.Dispose();
connect.Close();
}
  public static void desconectarinsert()// este metodo cierra la conexion del insert y update
{
comando.Dispose();
connect.Close();
}
}

miércoles, 7 de septiembre de 2011

Validar campo obligatorio en asp .net

De esta forma se valida que un campo sea obligatorio antes de enviar el form, cuando se le de clic en el boton para procesar la información:

En este caso se valida un campo de texto llamado "TxtCampo" que al momeno de dar clic en en el boton va requerir que este campo este lleno, de lo contrario saldrá un mensaje en color rojo que dice "El campo es requerido" 


<asp:TableCell><asp:TextBox ID="TxtCampo" runat="server" Width="180"></asp:TextBox>
            <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server"
              ControlToValidate="TxtCampo"
              ErrorMessage="El campo es requerido."
              ForeColor="Red">
            </asp:RequiredFieldValidator>


Espero sea de ayuda.

lunes, 4 de julio de 2011

utilizar ajax con jquery

hay diferentes formas de hacer llamadas ajax con jquery lo primero que tiene que hacer siempre es importar la libreria jquery antes del head de la siguiente forma:



luego antes del head o en el mismo body dentro de las etiquetas script:


$("#contenido").load("mipagina.php");

Teniendo en cuenta que #contenido hace referencia a un id de alguna etiqueta id="contenido", tambien puede ser un class="contenido" pero en este caso en lugar de # va un . ejemplo, ".contenido".

Tambien si quieres puedes acceder a un lugar especifico de la pagina a la cual se hace referencia.

$("#contenido").load("mipagina.php#menu");

Aunque esta es mi forma favorita de ajax en jquery hay otros que hacen cosas especificas incluso detectar errores en la peticion:

toda esta informacion la pueden encontrar en:

http://api.jquery.com/category/ajax/

domingo, 12 de junio de 2011

Validación de un correo con javascript

validaEmail es la función que se invoca, value es el parámetro que se recibe y ExpRegular es la expresión regular, es decir el patrón que tienen las direcciones de email:


function validaEmail(value)
{ var ExpRegular = /(\w+)(\.?)(\w*)(\@{1})(\w+)(\.?)(\w*)(\.{1})(\w{2,3})/;
if(ExpRegular.test(value)) { return true; }
else{ return false; }
}

Validar correo email en Java (codigo)

Con este metodo se puede validar un correo electronio de forma manual, recibe una cadena de caracteres y devuelve un boolen, true si cumple las caracteristicas o false si no las cumple.



/**
     * Este metodo valida el correo
     * El correo valida que antes de la @ 'arroba' debe de tener caracateres
     * alfanumericos solamenete, ademas entre la @ y el punto
     * tambien alfanuemricos y despues del punto
     *
     * @param m <code>String</code> es la cadena que recibe
     * @return <code>boolean</code> si el correo es valido retorna true
     */
    public boolean validarMail(String m) {

        char c1 = m.charAt(0);
        int pos1 = 0;
        int pos2 = 0;
        int a1 = 0;
        int a2 = 0;
        int a3 = 0;
        int x = 0;
        String cadena1 = "";
        String cadena2 = "";
        String cadena3 = "";

        if (c1 != '@' && c1 != '.') {


            for (int i=1; i < m.length(); i++) {
                if (m.charAt(i) == '@') {
                    pos1 = i;
                }
            }
            for (int i=1; i < m.length(); i++) {
                if (m.charAt(i) == '.') {
                    pos2 = i;
                }
            }

            cadena1 = m.substring(0, pos1);
            cadena2 = m.substring(pos1+1, pos2);
            cadena3 = m.substring(pos2+1, m.length());

            for (int i = 0;i < cadena1.length(); i++) {
                System.out.println("carcater "+cadena1);
                a1 = cadena1.codePointAt(i);//
                if ((a1 > 47 && a1 < 58  ) || (a1 > 64 && a1 < 91)
                        || (a1 > 96 && a1 < 123) || a1==46 ) {
                    x++;
                }
            }
            System.out.println("1 "+cadena2);
            for (int i = 0; i < cadena2.length(); i++) {
                a2 = cadena2.codePointAt(i);
                System.out.println("carcater "+a2);
                if ((a2 > 47 && a2 < 58  ) || (a2 > 64 && a2 < 91)
                        || (a2 > 96 && a2 < 123)) {
                    x++;
                }
            }

            for (int i = 0;i < cadena3.length(); i++) {
                a3 = cadena3.codePointAt(i);
                if ((a3 > 47 && a3 < 58  ) || (a3 > 64 && a3 < 91)
                        || (a3 > 96 && a3 < 123)) {
                    x++;
                }
            }
            System.out.println("xxx "+x+"    "+(m.length()-2));
            if (x == m.length()- 2) {
                if (pos1 != 0 && pos2 != 0 && (pos1 + 2) < pos2) {

                    if (m.length()-1 >= (pos2 + 2)) {

                        return true;
                    }else {
                        return false;
                    }
                }else{
                    return false;
                }
            }else {
                return false;
            }
        }else {
            return false;
        }
    }

sábado, 30 de abril de 2011

Código de una aplicación Java de la regla de Cramer

Este es un programa que resuelve matrices nXn.

Carga una matriz en un archivo .txt solo los valores de respuesta en el siguiente orden:
1 1 1 1 2 -1 -2 2 1 -2 3 -4 1 2 -4 2
Antes se debe indicar de cuanto es la matriz, para este caso es de 4x4 y en el tamaño ingresariamos 4, y en otro archivo .txt se cargan los valores de la respuesta asi:
10 2 2 1
O sea la matriz se veria asi:
| 1 1 1 1 | 10
| 2 -1 -2 2 | 2
| 1 -2 3 -4 | 2
| 1 2 -4 2 | 1

Espero sea de utilidad.

Descargar codigo en Netbeans Cramer.zip
------
Clic en la imagen para ampliar

------
El método de Cramer sirve para resolver sistemas de ecuaciones lineales. Se aplica a sistemas que cumplan las dos condiciones siguientes:
El número de ecuaciones es igual al número de incógnitas.
El determinante de la matriz de los coeficientes es distinto de cero.
Tales sistemas se denominan sistemas de Cramer.

Sea Δ el determinante de la matriz de coeficientes.

Y sean:
Δ 1, Δ 2 , Δ 3 ... , Δ n
los determinantes que se obtiene al sustituir los coeficientes del 2º miembro (los términos independientes) en la 1ª columna , en la 2ª columna, en la 3ª columna y en la enésima columna respectivamente.

jueves, 21 de abril de 2011

Bueno para los que hay visto la magia de javascript y canvas como en mi pots anterior ahora les tengo el codigo fuente de la aplicacion web llamada harmony creacion de mr doob y aportada para todo publico

domingo, 10 de abril de 2011

Applet colores



En este applet se muestra como se utiliza una mezcla de colores RGB con un deslizador.

import java.awt.*;
import java.applet.*;
import java.awt.event.*;


public class Ejercicio2 extends Applet implements AdjustmentListener {
Scrollbar s1,s2,s3;
int v1 = 0;
int v2 = 0;
int v3 = 0;
String m1,m2,m3;

public Ejercicio2() {
s1 = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
s2 = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
s3 = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,255);
add(s1);
add(s2);
add(s3);
s1.addAdjustmentListener(this);
s2.addAdjustmentListener(this);
s3.addAdjustmentListener(this);
}

public void adjustmentValueChanged(AdjustmentEvent ae) {
v1 = s1.getValue();
v2 = s2.getValue();
v3 = s3.getValue();
m1 = "deslizador 1 " + v1;
m2 = "deslizador 2 " + v2;
m3 = "deslizador 3 " + v3;
repaint();
}

public void paint(Graphics g) {

g.setColor(new Color(v1,v2,v3));
g.drawRect(0,0,150,300);
g.fillRect(0,0,150,300);
g.setColor(Color.BLUE);
g.drawString(m1,30,100);
g.drawString(m2,30,150);
g.drawString(m3,30,200);

}

}

domingo, 27 de marzo de 2011

Ejemplo de Hilos

Este es un ejemplo sencillo de ejecucion de hilos, donde el metodo run es simplemente un ciclo for que mediante una variable de control i, se ejecutará 10 veces; dentro de su ejecución simplemente va a imprimir el string que le mandamos de parámetro al constructor y después el valor de la variable i, inmediatamente después de haber ejecutado la impresión en pantalla, vamos a poner al hilo a dormir, esto lo hacemos con el método sleep.


public class Hilos1{
public static void main(String[] args){
Hilo1 h1 = new Hilo1("Uno");
Hilo1 h2 = new Hilo1("Dos");
Hilo1 h3 = new Hilo1("Tres");
Hilo1 h4 = new Hilo1("Cuatro");
h1.start();
h2.start();
h3.start();
h4.start();
}
}

class Hilo1 extends Thread{
String s;

public Hilo1(String s){
this.s = s;
}

public void run(){
for(int i=0; i<10; i++){
System.out.println(s+" "+i);
try{
sleep(Math.round(Math.random()*1000));
}catch(InterruptedException e){
}
}
}
}

miércoles, 23 de marzo de 2011

Practica con Sprite y Tiles

//Declaramos las variables.
private Image imgGoofy;
private Sprite sprGoofy;
private int xPosGoofy, yPosGoofy;
private int sequence = 12;

//Inicializamos las variables
imgGoofy = Image.createImage("/imagenes/goofy/issac.png");
sprGoofy = new Sprite(imgGoofy, 32, 48);
xPosGoofy = 95;
yPosGoofy = 250;

//Lo pitamos en el graphics

sprGoofy.setPosition(xPosGoofy, yPosGoofy);
sprGoofy.setFrame(sequence);
sprGoofy.paint(g);


//le damos movimiento al presionar las teclas
if ((keyStates & RIGHT_PRESSED) != 0){
    if (i < 9 || i > 11){i = 9;}
    xPosGoofy = Math.min(w-50, xPosGoofy + 5);
    sequence = i;
     i++;
}






//Este es el tile que vamos a utilizar para cargarlo por partes

private Image mapaImg;
private TiledLayer tile;


private int [] map =    {1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
                             3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,12,
                             5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,12,
                             5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 8,10,10,10,10,10,10,10,10,10,10,10, 9, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7,12,
                             5, 7,10,10,10,10,10, 9, 7, 7, 7, 7, 8,10,10,10, 9, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 9, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 9, 7, 7, 7, 8,10,10,10, 9, 7, 7,12,
                             5, 7, 7, 6, 6, 7, 7, 9, 7, 7, 7, 7, 9, 7, 7, 7, 9, 7, 7, 7, 9, 7, 7,12,
                             5, 7, 7, 6, 6, 7, 7, 9, 7, 7, 7, 7, 9, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7,10,10,10,10, 9, 7, 7, 7, 7, 9, 7, 7, 7, 9, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 7, 7, 7, 9, 7, 7, 7, 7, 9, 7, 7, 7, 9, 7, 7, 7, 9, 7, 7,12,
                             5, 7, 7, 7, 7, 7,17, 9, 7, 7, 7, 7,10,17, 7, 7,10,10,10,10,17, 7, 7,12,
                             5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,12,
                             5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,12,
                             5, 6, 7, 7, 7, 7, 7, 7, 7,15,16, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,12,
                             5, 4, 4, 4, 4, 4, 4, 4, 4,13,14, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,12};


        w = getWidth();//ancho de la pantalla
        h = getHeight();//alto de la pantalla

        xTiles = 24;//cantidad de tiles en x
        yTiles = 22;//cantidad de tiles en y
        xPosTile = -130;//posicion x del tile en pantalla
        yPosTile = -225;//posicion y del tile en pantalla

        mapaImg = Image.createImage("/imagenes/mapa/tilesMapa.png");//cargamos la imagen
        tile = new TiledLayer(xTiles, yTiles, mapaImg, 24, 24);//

//Metodo para cargar el sprite en el tile

private void cargaSprites(){
        for(int i = 0;i < map.length;i++){
            int columna = i % 24;
            int fila = (i - columna) / 24;
            tile.setCell(columna, fila, map[i]);
        }
    }


tile.setVisible(true);
tile.setPosition(xPosTile, yPosTile);
tile.paint(g);

if ((keyStates & RIGHT_PRESSED) != 0){
    xPosTile -= 5;
}

jueves, 17 de marzo de 2011

hoy le voy a hablar del web Gl una nueva tecnologia que se dessarrollo con ayuda de google y mozilla fundation para hacer de la web una experienza vacana aqui unos ejemplos pero solo se ven si tienes actualizado el mozilla a 4.0 y el google chrome canary http://alteredqualia.com/

Ejemplos de juegos en J2ME

JUEGOS EN J2ME

Buenas noches, esta vez subimos varios ejemplos de juegos para dispositivos móviles, hecho por alumnos, en los cuales podemos encontrar colisiones, movimientos, sprites, movimiento de objetos entre otros. Son muy buenos y sirven para tener en cuenta muchos otros puntos de vista y dar nuevas soluciones, espero sea de ayuda, y gracias los que hicieron los programas.
juegos mobile J2ME.zip por 4shared

click aqui-DESCARGAR_CODIGOS por mediafire

Saludos

NOTA: Si alguien está interesado en mandar publicaciones de codigos u otras cosas que sirvan para compartir el conocimiento por favor enviarlas al siguiente correo: desarrollox2@gmail.com

lunes, 7 de marzo de 2011

Validar campo tecla digitada en un JTexField

Con este metodo puede validar cada tecla digitada en una caja de texto, para este caso se valida que solo se puedan digitar numeros, si se presiona una letra no la deja escribir, a su vez en este metodo podemos modificarlo para que se puedan validar mas cosas, esta modificacion va en la condicion if, donde podemos validar con el codigo ASCII, el metodo codePointAt() de un String saca ese codigo ASCII y validamos los caracteres que queramos. Este metodo debemos ponerlo en un evento KeyReleased del JTexField, en Netbeans en modo grafico le damos clic derecho a la caja de texto, eventos, key y KeyReleased.


private void metodoKeyReleased(java.awt.event.KeyEvent evt) {
javax.swing.JTextField objJTF = (javax.swing.JTextField)evt.getSource();
String texto = objJTF.getText();
char[] fuente = texto.toCharArray();
char[] resultado = new char[fuente.length];
int j = 0;
boolean error = false;
for (int i = 0; i < fuente.lenght; i++) {

if (fuente[i] >= '0' && fuente[i] <= '9')

resultado[j++] = fuente[i];
else {
error = true;
java.awt.Toolkit.getDefaultToolkit().beep();
}
}
if ( error )
objJTF.setText(new String(resultado, 0, j));
}

sábado, 5 de marzo de 2011

Validar contraseña (ejemplo)

Este metodo valida la clave segun las condiciones.
Primera letra en mayuscula y ultima en un numero
el resto minusculas

/* @param c String
* @return bolean
*/

public static boolean validarClave(String c) {

int pi = c.charAt(0);
int p = 0;
int x = 0;
String cad = c.substring(1, c.length()-1);
int pf = c.charAt(c.length()-1);
if (c.length() >= 5 && c.length() <= 9) { if (pi > 64 && pi <> 47 && pf <58 ) { for (int i = 0; i < cad.length(); i++) { p = cad.codePointAt(i); if (p > 96 && p < 123) {
x++;
}
}

if (x == cad.length()) {
return true;
}else {
return false;
}
}else {
return false;
}
}else {
return false;
}
}

Cargando imagen en J2ME

protected void paint(Graphics g) {
        Image img = null;
        try {
                img = Image.createImage("/Images/logo.png");
        } catch (IOException e) {
                 System.err.println("Error: " + e);
        }
        g.drawImage(img, 0, 0, Graphics.LEFT|Graphics.TOP);
    }

viernes, 4 de marzo de 2011

web interactiva.

Comenzare esta entrada, diciendote que hay nuevas tecnologias para el desarrollo web interactivo libre de desarrollo en flash y rico en informacion marquetada y javascript, como lo es el html5 y el css3 una prueba buena son los experimentos de google donde hallaras impresionantes experimentos y algunos con open source.

para saber mas acerca de javascript recomiendo esta pagina web .

y para conocer php y diferentes aplicaciones open desarrolladas en esta tecnologia recomiendo esta.





Canvas en J2ME



protected void paint(Graphics g) {
        g.setColor(211, 211, 211);
        g.fillRect(0, 0, getWidth(), getHeight());

        g.setColor(0, 0, 0);      
        g.drawLine(30, 30, 100, 100);//Cabello
        g.drawLine(60, 25, 100, 100);//Cabello
        g.drawLine(90, 20, 100, 100);//Cabello
        g.drawLine(120, 30, 100, 100);//Cabello
        g.drawLine(150, 25, 100, 100);//Cabello
        g.drawLine(180, 20, 100, 100);//Cabello
        g.drawLine(210, 25, 100, 100);//Cabello

        g.setColor(255, 217, 198);
        g.fillRoundRect(50, 50, 130, 130, 130, 130);//cabeza

        g.setColor(255, 255, 255);
        g.fillRoundRect(70, 80, 30, 40, 40, 40);//Ojo derecho
        g.fillRoundRect(110, 80, 30, 40, 40, 40);//Ojo izquierdo

        g.setColor(0, 0, 0);
        g.fillRoundRect(75, 95, 20, 20, 20, 20);//Ojo derecho
        g.fillRoundRect(115, 95, 20, 20, 20, 20);//Ojo izquierdo
        g.drawLine(105, 125, 105, 135);//Nariz
        g.drawLine(105, 135, 110, 135);//Nariz
        g.fillRoundRect(100, 140, 20, 30, 10, 10);//Boca

        g.setColor(255, 255, 255);
        g.fillRoundRect(101, 141, 18, 8, 8, 5);//Dientes arriba
        g.fillRoundRect(101, 161, 18, 8, 8, 5);//Dientes abajo
      
    }

jueves, 3 de marzo de 2011


Aqui unos libros en PDF de programacion en JAVA ME (micro edition) para dispositivos móviles en español y en ingles para descargar, son recomendados.
Linux for humans

DESCARGAR PDF
pdf j2me.zip

Ejemplos Menus #1

Menu
1. Fibonacci
2. Serie A
3. Tabla de multiplicar
4. Convertir Mayusculas, minusculas y contar letras

Fibonacci:
La sucesión inicia con 0 y 1, y a partir de ahí cada elemento es la suma de los dos anteriores.
Esta sucesión fue descrita en Europa por Leonardo de Pisa, matemático italiano del siglo XIII también conocido como Fibonacci. Tiene numerosas aplicaciones en ciencias de la computación, matemáticas y teoría de juegos.
Ejemplo:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55.........


public String cadFibo(int d1, int d2, int serie){
        int suma = 0;
        int n1 = d1;
        int n2 = d2;
        String cadena = "";
        for (int i = 0; i < serie; i++){
            suma = n1 + n2;
            cadena = cadena + " " + n1;
            n1 = n2;
            n2 = suma;
        }
        return cadena;
    }


Serie A: 1/2 + 2/4 + 3/7 + 4/11.........

 Tabla de Multiplicar: Las tablas de multiplicar se usan para definir la operación binaria del producto para un sistema algebraico n x n = n.


public String resMulti(int d1, int d2){
        String r = "" + (d1 * d2);
        return r;
    }


Convertir palabras y contarlas:


public String canCaracteres(String d1){
        String cadena = d1;
        int n = cadena.length();
        return ""+n;
    }


 Archivo del codigo - Descarga

miércoles, 2 de marzo de 2011

El siguiente código muestra un ejemplo completo de uso de RMS.

import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.rms.*;

public class RMS extends MIDlet {
// nombre de la BD
static final String BD = "datos";

String dato;
int id, i;
char b;

public RMS() {
RecordStore rs = null;

// Borramos la BD si tenía algo
try {
RecordStore.deleteRecordStore(BD);
} catch( Exception e ){}

try {
// Abrimos el recordStore
rs = RecordStore.openRecordStore(BD, true);

guardaRegistro(rs,"Datos del registro 1");
guardaRegistro(rs,"Datos del registro 2");
guardaRegistro(rs,"Datos del registro 3");

// Leemos los registros
RecordEnumeration registros = rs.enumerateRecords(null, null, false);
// Recorremos todos los elementos
while (registros.hasNextElement()) {

// Obtenemos el ID del siguiente registro
verRegistro(rs, registros.nextRecordId());
}
rs.closeRecordStore();
} catch( RecordStoreException e ){
System.out.println( e );
}
notifyDestroyed();
}

public void verRegistro(RecordStore rs, int id) {
try {
ByteArrayInputStream bais = new ByteArrayInputStream(rs.getRecord(id));
DataInputStream is = new DataInputStream(bais);
// leemos el registro
try {
dato = is.readUTF();
System.out.println("-> "+dato);
} catch (EOFException eofe) {
} catch (IOException ioe) {}
} catch (RecordStoreException e) {}
}

public void guardaRegistro(RecordStore rs, String dato) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream os = new DataOutputStream(baos);
try {
// guadar el dato
os.writeUTF(dato);
} catch (IOException ioe) {}

// extraer el array de butes
byte[] b = baos.toByteArray();

// lo añadimos al recordStore
try {
rs.addRecord(b, 0, b.length);
} catch (RecordStoreException rse) {}
}

public void destroyApp( boolean unconditional ) {}
public void startApp() {}
public void pauseApp() {}
}

martes, 1 de marzo de 2011

RMS: Almacenamiento en MIDP

MIDP define una sencilla base de datos orientada a registros que permite almacenar a las aplicaciones datos de forma persistente. Esta base se denomina Record Management System (RMS).

A continuación, se puede ver un sencillo ejemplo de creación de un RecordStore:

import javax.microedition.midlet.*;
import javax.microedition.rms.*;

public class RecordStoreTest1 extends MIDlet {
public RecordStoreTest1() {
}
public void startApp() throws MIDletStateChangeException {
RecordStore rs=null;
try {
rs = RecordStore.openRecordStore("file1",true);
System.out.println("Archivo se abre");
}catch(Exception e){
System.out.println("Error: "+e.getMessage());
}
finally{
try {
rs.closeRecordStore();
System.out.println("archivo cerrado");
}catch (Exception e){
System.out.println("Error: "+e.getMessage());
}
}
destroyApp(true);
notifyDestroyed();
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
}

Metodo valida el correo

/**
* Este metodo valida el correo
* El correo valida que antes de la @ 'arroba' debe de tener caracateres
* alfanumericos solamenete, ademas entre la @ y el punto
* tambien alfanuemricos y despues del punto
*
* @param m String es la cadena que recibe
* @return boolean si el correo es valido retorna true
*/


public boolean validarMail(String m) {
char c1 = m.charAt(0);
int pos1 = 0;
int pos2 = 0;
int a1 = 0;
int a2 = 0;
int a3 = 0;
int x = 0;
String cadena1 = "";
String cadena2 = "";
String cadena3 = "";
if (c1 != '@' && c1 != '.') {
for (int i=1; i <>
if (m.charAt(i) == '@') {
pos1 = i;
}
}
for (int i=1; i <>
if (m.charAt(i) == '.') {
pos2 = i;
}
}
cadena1 = m.substring(0, pos1);
cadena2 = m.substring(pos1+1, pos2);
cadena3 = m.substring(pos2+1, m.length());
for (int i = 0;i <>
System.out.println("carcater "+cadena1);
a1 = cadena1.codePointAt(i);//
if ((a1 > 47 && a1 <> 64 && a1 <>
|| (a1 > 96 && a1 < a1="="46">
x++;
}
}
System.out.println("1 "+cadena2);
for (int i = 0; i <>
a2 = cadena2.codePointAt(i);
System.out.println("carcater "+a2);
if ((a2 > 47 && a2 <> 64 && a2 <>
|| (a2 > 96 && a2 <>
x++;
}
}
for (int i = 0;i <>
a3 = cadena3.codePointAt(i);
if ((a3 > 47 && a3 <> 64 && a3 <>
|| (a3 > 96 && a3 <>
x++;
}
}
System.out.println("xxx "+x+" "+(m.length()-2));
if (x == m.length()- 2) {
if (pos1 != 0 && pos2 != 0 && (pos1 + 2) <>
if (m.length()-1 >= (pos2 + 2)) {
return true;
}else {
return false;
}
}else{
return false;
}
}else {
return false;
}
}else {
return false;
}
}

jueves, 24 de febrero de 2011

Calculadora y Factorial en J2ME



package gui;
import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.*;
public class main extends MIDlet implements CommandListener{
//Manejamos la pantalla con el display
public Display display;
//Aqui cargamos los texfield, list y group
public Form screen;
//Opciones del menu principal
public Command salir, calcular;
//Menu de opciones
public List menu;
public TextField dato1, operacion, dato2, total;
public ChoiceGroup operador;
public int mc;
public main(){
mc = 0;
dato1 = new TextField("1er Numero: ", "", 15, TextField.NUMERIC);
operador = new ChoiceGroup("Operacion:", ChoiceGroup.EXCLUSIVE);
dato2 = new TextField("2do Numero", "", 15, TextField.NUMERIC);
total = new TextField("Resultado", "", 15, TextField.UNEDITABLE);
calcular = new Command("Calcular", Command.OK, 2);
salir = new Command("Salir", Command.EXIT, 1);
}
public void startApp() {
display = Display.getDisplay(this);
menu();
}
public void menu(){
menu = new List("MENU PRINCIPAL", List.IMPLICIT);
menu.append("Calculadora", null);
menu.append("Factorial", null);
menu.addCommand(salir);
display.setCurrent(menu);
menu.setCommandListener(this);
}
private void organizaCalculadora() {
mc = 1;
screen = new Form("Calculadora");
display.setCurrent(screen);
screen.append(dato1);
operador.append("+", null);
operador.append("-", null);
operador.append("*", null);
operador.append("/", null);
screen.append(operador);
screen.append(dato2);
screen.append(total);
screen.addCommand(calcular);
screen.addCommand(salir);
screen.setCommandListener(this);
}
private void organizaFactoria(){
mc = 2;
screen = new Form("Factorial");
display.setCurrent(screen);
screen.append(dato1);
screen.append(total);
screen.addCommand(calcular);
screen.addCommand(salir);
screen.setCommandListener(this);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional){notifyDestroyed();}
public void commandAction(Command c, Displayable d) {
//Si seleccionamos alguna de las opciones del menú
if (d == menu){
switch (menu.getSelectedIndex()){
case 0:
organizaCalculadora();
break;
case 1:
organizaFactoria();
break;
}
}
//Si seleccionamos calculadora realizamos esta operación
if (c == calcular && mc == 1){
int n = 0;
switch (operador.getSelectedIndex()){
case 0:
n = Integer.parseInt(dato1.getString()) + Integer.parseInt(dato2.getString());
break;
case 1:
n = Integer.parseInt(dato1.getString()) - Integer.parseInt(dato2.getString());
break;
case 2:
n = Integer.parseInt(dato1.getString()) * Integer.parseInt(dato2.getString());
break;
case 3:
n = Integer.parseInt(dato1.getString()) / Integer.parseInt(dato2.getString());
break;
}
total.setString(""+n);
}
//Si seleccionamos factorial realizamos esta operación
if (c == calcular && mc == 2){
int n,x = 0;
n = Integer.parseInt(dato1.getString());
if (n == 0 || n == 1){
n = 1;
}else{
for (x = n; x >= 2; --x){
n = n * (x - 1) ;
}
}
total.setString(""+n);
}
if (c == salir){
destroyApp(true);
}
}
}

jueves, 6 de enero de 2011

GRUB: cambiar el sistema operativo por defecto en Ubuntu 10.10

Para cambiar el sistema operativo que se arranca por defecto en esta versión de GRUB (1.98+20100804-5ubuntu3) hay que seguir los pasos siguientes:
  • Abre una consola y escribe el siguiente comando: sudo gedit /etc/default/grub
  • Busca la línea GRUB_DEFAULT=0 y cambia el valo r 0 por la posición que ocupa el sistema operativo que quieres arrancar por defecto. El valor 0 equivale al primero, así que debes tener en cuenta que si el que quieres activar por defecto ocupa la quinta posición, debes indicar el valor 4.
  • Guarda los cambios y ejecuta la siguiente línea para actualizar el archivo grub.cfg:sudo update-grub2
Si también deseas cambiar el tiempo de espera, modifica la siguiente línea del archivo grub GRUB_TIMEOUT=”10″. La unidad empleada es el segundo.
Para más información, consulta la siguiente URL: http://www.guia-ubuntu.org/index.php?title=GRUB#Modificaciones_en_el_men.C3.BA_de_arranque

domingo, 2 de enero de 2011

Acelerar la bajada de datos de internet en ubuntu

El procedimiento es simple, basta modificar el archivo "aliases":
sudo gedit /etc/modprobe.d/aliases
Eliminar esta linea de la primera sección:
alias net-pf-10 ipv6
y reemplazarla con estas tres:
alias net-pf-10 ipv6 off
alias net-pf-10 off
alias ipv6 off

luego de hacer esto guardamos el archivo y reiniciamos la pc, para que la conexion entre con la nueva configuracion y notaras el cambio entre dar click.

fuente: http://george2002.obolog.com/acelerar-bajada-datos-internet-ubuntu-26832

------------------------------------------------------------------------------------------------------------------

O tambien Abri el terminal y teclea:
5b415a0a74765006f122f979f487f751sudo gedit /etc/sysctl.conf

Y colocar al final del archivo las siguientes líneas:

net.ipv4.tcp_window_scaling = 0

net.ipv6.conf.all.disable_ipv6 = 1


Guardamos, reiniciamos y a partir de ahora ganaras un poco de velocidad en tus conexiones sobre todoo para navegar.




http://www.tuxapuntes.com/drupal/node/1751