Adf.ly

domingo, 18 de diciembre de 2011

Imagen en JLabel, JButton

Algunas veces queremos colocar una imagen en un label o colocar imagenes en un boton aqui les dejo una solucion completamente sencialla solo basta de dos lineas utilizando la clase ImageIcon.

En la primera idicamos el path de la imagen, en la segunda le indicamos la escala que queremos utilizar y finalmente solo agregamos la imagen donde sea de nuestro agrado.

Espero les haya servido exitos.



Descargar Códio Fuente

lunes, 5 de diciembre de 2011

JFileChooser para abrir y/o guardar archivos

JFileChooser es una clase java que nos permite mostrar fácilmente una ventana para la selección de un fichero. En esta oportunidad les dejare un ejemplo de una de las muchas formas de como Abrir y Guardar un archivo aplicando filtros también que al momento de guardar genere automáticamente la extensión y que evite abrir un archivo que ya se encuentra abierto.

Para abrir hacemos lo siguiente.


Para guardar hacemos lo siguiente.

Descargar Código Fuente

domingo, 4 de diciembre de 2011

JFrame/JDialog en pantalla

Cuándo usar JFrame y cuándo JDialog


En una aplicación java con ventanas debería haber un único JFrame, correspondiente a la ventana principal de la aplicación. El resto de ventanas secundarias deberían ser JDialog

¿Por qué es esto?

Un JFrame en una ventana que en Windows crea, en la barra de herramientas, donde está el menú de "inicio" y las aplicaciones que tenemos abiertas, un nuevo botón de aplicación abierta. En una aplcación lo normal es que sólo haya un botón ahí. Si creamos varios JFrame en nuestra aplicación, apareceran varios botones, uno por cada JFrame.

El JDialog no muestra este botón. Por ello, el resto de las ventanas de nuestra aplicación deberías ser JDialog.

Hay otro motivo más. Un JFrame no admite a ninguna otra ventana como padre. El JDialog sí admite como padres un JFrame u otros JDialog. Esto es importante porque una ventana hija siempre quedará por encima de su ventana padre. Si al crear los JDialog les pasamos el JFrame como padre, los JDialog siempre estarán visibles por encima del JFrame. No se podrán ir "detrás" de él.

Si además, en el constructor del JDialog ponemos a true el flag que indica que es modal, además de pasarle una ventana padre, entonces el JDialog impedirá el acceso a las otras ventanas hasta que se cierre. Esta seria una forma de crear el JFrame y el JPanel pueden también descargarse el código fuente el link lo deje mas abajo.


Descargar Código Fuente

viernes, 2 de diciembre de 2011

Técnicas Básicas de Programación

La programación estructurada sigue tres reglas: la secuencia, la iteración y la decisión. La primera de ellas indica que las instrucciones del código se leerán de principio a fin; la segunda indica que, según cierta condición, un número de instrucciones podrían repetirse un numero determinado de veces, y la tercera indica que según unas ciertas condiciones se ejecutarán o no un conjunto de instrucciones. En el siguiente algoritmo para limpiar platos se aprecian estas tres características. La indentación de las instrucciones indican cuáles son englobadas y cuáles no por sus predecesoras.

En código no estructurado, quedaría algo más extraño, pero igualmente valido.

En programas más grandes, esto es muchísimo más complicado, pero puede aprender.

Ahora conocemos la ejecución de los algoritmos. Sin embargo, un programa se compone tanto de algoritmos como de una estructura de datos sobre la cual operar. Así que veamos primero algunas cosas importantes:

Antes de empezar un programa


Estructura de un programa

En la programación estructurada hay un inicio y un fin perfectamente bien definido de acuerdo al diagrama de flujo que se planteó al concebir la idea del programa.

Un programa bien estructurado debería tener algún subprograma que capture cualquier error dentro del programa principal o de cualquier subprograma dentro de la aplicación de tal modo que el subprograma que captura los errores genere un registro de datos que describa el error generado y/o en qué subprograma se generó el error para posteriormente corregirlo. Para facilitar la corrección de estos errores se hace uso de los comentarios agregados en el código fuente.

Variables y constantes

Como hemos visto, el ordenador sigue una serie de instrucciones. Pero esas instrucciones tienen que operar sobre una serie de datos. El ordenador típico sólo procesa una instrucción a la vez, por lo que necesita 'espacios de memoria' donde guardar o depositar, a modo de cajones, por usar un símil conocido, los diversos datos con los que trabaja. Aquí es donde entran en juego las variables y constantes.

En los inicios, con el ensamblador, se podía decir al ordenador, por ejemplo: 'Ejecuta la instrucción de esa posición de memoria' o también 'En esa posición de memoria está guardada mi edad, imprímela por pantalla'. Todo esto se deriva del hecho de que los programas también son datos. Esta ambigüedad presenta numerosos inconvenientes cuando se producen errores, como imaginarás fácilmente: de ahí que, a medida que los lenguajes promocionan hacia niveles superiores, se impida el tratamiento indistinto de los datos. A partir de entonces, un programa tiene que decirle al sistema operativo los cajones que necesita y éste se los proporciona independientemente de cuáles sean. Es decir, como quizá hallas leido en algún lado, se deben declarar las variables y/o constantes y su tipo.

Quizás suene más complicado de lo que es. Un ejemplo: Queremos sumar dos números. Nuestro programa tendrá que tener tres cajones: Uno para cada número y otro para el resultado. Cada cajón tiene un nombre en vez de una posición de memoria, de manera que sólo hay que nombrarlo:

He aquí nuestro programa. Como cabe pensar, un procesador no tiene la instrucción "Imprime por pantalla"; esto es una llamada a otra porción de código que, gracias a la abstracción, nosotros no hemos escrito, o hemos escrito una sola vez; a partir de lo cual podemos imprimir todo el texto que queramos en la pantalla.

Las posiciones de memoria A y B son Variables. Si queremos leerlas o escribirlas, podemos hacerlo. Típicamente, existirán datos que no pensamos modificar; no querremos que el usuario tenga que introducirlos cada vez, pues son de naturaleza más constante que otros (como puede ser el valor Pi para calcular el perímetro o área de un círculo). Para evitar modificarlos por error, podemos pedir al sistema variables especiales, que no puedan ser reescritas. Son las Constantes. Un ejemplo:

El uso de variables y constantes se asemeja al uso que se les da en el álgebra o en otras ramas matemáticas.

Nótese también la clara separación entre estructuras de datos y algoritmos. Según los lenguajes, esto puede ser o no obligatorio, pero es recomendable en aras de una mayor claridad del trabajo.

Comentarios

El útil concepto del comentario: son líneas de texto que el compilador o el intérprete no consideran como parte del código, con lo cual no están sujetas a restricciones de sintaxis y sirven para aclarar partes de código en posteriores lecturas y, en general, para anotar cualquier cosa que el programador considere oportuno.

Uno como programador debe tener como prioridad documentar nuestro código fuente ya que al momento de depurar nos ahorrará mucho tiempo de analisis para su corrección o estudio.

Los programadores profesionales tienen la buena costumbre de documentar sus programas con encabezados de texto(encabezados de comentarios) en donde describen la función que va a realizar dicho programa, la fecha de creación, el nombre del autor y en algunos casos las fechas de revisión y el nombre del revisor.

Por lo general algunos programas requieren hacer uso de llamadas a subprogramas dentro de una misma aplicación por lo que cada subprograma debería estar documentado, describiendo la función que realizan cada uno de estos subprogramas dentro de la aplicación.

Estructuras de datos y de control

 

Estructuras de control

Las estructuras de control pueden dividirse en dos: Estructuras de control Condicional y Estructuras de control Repetitivo.

Las estructuras de control condicional son las que incluyen alternativas de selección en base al resultado de una operación booleana(El resultado de una operación booleana es siempre verdadero o falso), como por ejemplo, una comparación (A=B). Según la expresión sea cierta o falsa, se ejecutará un trozo de código u otro. Es el caso de la sentencia IF(Si) THEN(Entonces) ELSE(Sino) de Pascal o Basic:

Otra sentencia de control son las de tipo SWITCH CASE. En este tipo de sentencias se especifica la variable a comparar y una lista de valores con lo que comparar. Aquel que sea el verdadero, se ejecutará:

Otras herramientas imprescindibles del control de la ejecución de nuestro código son los BUCLES o CICLOS. Consisten en un método que permite repetir un trozo de código varias veces.

Hay básicamente dos tipos:

- Bucle FOR:

El bucle FOR (Para) consiste en una sentencia que engloba un grupo de instrucciones y tiene una variable(normalmente llamada i, de tipo entero) cuyo valor se va modificando en cada vuelta.


- Bucle WHILE:

El bucle WHILE (Mientras) consiste en un bucle en el que el código se repite hasta que se cumpla alguna condición booleana (es decir, una expresión que dé como resultado verdadero o falso). Hay variaciones, como el REPEAT...UNTIL, que se diferencia en el momento de comprobar si se hace verdadera o no la condición.

Estructuras de datos

 


Estructura de una aplicación

Cualquier programa que se realices debe de llevar una estructura para disminuir la tarea de depuración ya que esta labor lleva más tiempo del estimado.

Si eres principiante en el área de programación debes definir el programa a realizar, documentar cada uno de los pasos que realizas en tu programa, debes de considerar algún metodo de captura de errores, etc.

En esta subsección abarcaremos el cómo estructurar una aplicación para eficientar o disminuir el tiempo en depuración, así como localizar más rápidamente los errores.

Puedes buscar en Internet el concepto "pseudocódigo", que no es más que la escritura de un algoritmo en un lenguaje más cercano al natural. Es decir, la orden en lenguaje Javascript que repetiría el proceso de quitar suciedad añadiendo agua y jabón mientras se frota sería la siguiente:

Mientras que el algoritmo o pseudocódigo quedaría así:

En primer lugar, es muy recomendable hacer un esquema sobre el papel con toda clase de datos que se vayan a utilizar. Por ejemplo, si queremos hacer un programa para controlar una empresa dedicada al alquiler de coches, podríamos necesitar:

* Matrícula del coche
 * Marca del coche
* Modelo del coche
* Color del coche
* Estado del coche (si está alquilado, en reparación o disponible)
* Situación del coche (en qué lugar del garaje o en qué localidad está)
* Kilometraje del coche
* Precio por hora del coche

por un lado, y:

* Nombre del cliente
* Apellidos del cliente
* Dirección del cliente
* DNI del cliente
* Permiso de conducir del cliente
* Número de cuenta del cliente

.... etc. por otro.

Ahora a programar.

“Primero resuelve el problema. Entonces, escribe el código.”
— John Johnson

domingo, 27 de noviembre de 2011

Hilos en JAVA (Thread)

A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy pesada, por ejemplo, consultar realizar una consulta de todos los nombres de que tengan la letra n, o colocar un cronometro, etc, que tarda mucho y no deseamos que todo se quede parado mientras se realiza dicha tarea. Para conseguir que Java haga varias cosas a la vez o que el programa no se quede parado mientras realiza una tarea compleja, tenemos los hilos(Threads).


Crear un hilo en java es una tarea muy sencilla. Basta heredar de la clase Thread y definir el método run(). Luego se instancia esta clase y se llama al método start() para que arranque el hilo. También podemos llamar al método suspend() para hacer una pausa y resume() para continuar el hilo pausado. Les dejo un ejemplo de un reloj que quedaría mas o menos así espero les ayude.


Descargar Código Fuente

Crear una pagina html con java.

Aqui les dejo un ejemplo de como generar una pagina html utilizando el lenguaje java, esto lo podemos hacer con la clase PrintWriter y FileWriter como ya lo he explicado en mi post anterior Lectura y Escritura de Ficheros en Java del cual nos basaremos. Creo que esta de mas la explicación de como es la estructura del html. La idea aquí es en el archivo ir escribiendo linea a linea la estructura de como quisiéramos que quede nuestra pagina web, si lo deseamos podemos agregar un css a la par de la pagina generada para darle un mejor diseño entonces quedaría de la siguiente manera.

 String cad = "VISITA MI BLOG";
       
 FileWriter filewriter = null;
 PrintWriter printw = null;
       
 try{
     filewriter = new FileWriter("ejemplo.html");//declarar el archivo
     printw = new PrintWriter(filewriter);//declarar un impresor
           
     printw.println("<html>");
     printw.println("<head><title>by Eduardo</title></head>");
    
     //si queremos escribir una comilla " en el
     //archivo uzamos la diagonal invertida \"

     printw.println("<body bgcolor=\"#99CC99\">");
    

     //si quisieramos escribir una cadena que vide de una lista o
     //de una variable lo concatenamos

     printw.println("<center><h1><font color=\"navy\">"+cad+"</font></h1></center>");
     printw.println("<center><h4><font color=\"purple\">www.losiej.blogspot.com</font></h4></center>");
    
    
//podemos añadir imagenes con codigo html
     printw.println("<center><img src=\"img/www.losiej.blogspot.com.png\" width=\"200\" height=\"150\"></center>");
    
     printw.println("</body>");
     printw.println("</html>");
           
     //no devemos olvidar cerrar el archivo para que su lectura sea correcta
     printw.close();//cerramos el archivo
           
     System.out.println("Generado exitosamente");//si todo sale bien mostramos un mensaje de guardado exitoso


Descargar Código Fuente

sábado, 26 de noviembre de 2011

Cola hecha en java con demostracion modo grafico

Hice este código para explicar el funcionamiento de las pilas en java , esta bastante sencillo el ejemplo es para tener una idea de las pilas incluí push para insertar datos y pop para remover los mismos tomando en cuenta su estructura FIFO (first-in, first-out). Les dejo unas capturas.






Descargar Código fuente

viernes, 25 de noviembre de 2011

Pila hecha en java con demostracion modo grafico

Hice este código para explicar el funcionamiento de las pilas en java , esta bastante sencillo el ejemplo es para tener una idea de las pilas incluí push para insertar datos y pop para remover los mismos tomando en cuenta su estructura LIFO (last-in, first-out). Les dejo unas capturas.





Descargar codigo fuente

jueves, 24 de noviembre de 2011

Lectura y Escritura de Ficheros en Java

Buen dia hoy les traigo un ejemplo de como crear y leer ficheros utilizando el lenguaje java para su escritura utilizaremos la clase PrintWriter y la clase FileWriter de la siguiente forma.

            filewriter = new FileWriter("archivo.txt");//declarar el archivo
            printw = new PrintWriter(filewriter);//declarar un impresor
           
            //podemos imprimir sin salto de linea
            printw.print("Esta es ");
            printw.print("la primera linea del ");
            printw.print("archivo.\n");
           
            //tambien podemos escribir lineas con su salto de linea
            printw.println("Esta es la segunda linea");
            printw.println("Esta es la tercera linea");
           
            //tambien podemos escribir con variables previamente declaradas
            printw.println(cadena);
            printw.println(numero);
           
            //no devemos olvidar cerrar el archivo para que su lectura sea correcta
            printw.close();//cerramos el archivo

Asi quedaria el archivo despues de generado.


Para la lectura del mismo utilizamos la clase FileReader. Esta clase tiene métodos que nos permiten leer caracteres. Sin embargo, suele ser habitual querer las líneas completas pero dicha clase no contiene los métodos que nos permitan leer lineas completas, pero sí BufferedReader a partir del FileReader de la siguiente forma.

            // Apertura del fichero y creacion de BufferedReader para poder
            // hacer una lectura comoda (disponer del metodo readLine()).
            file = new File ("archivo.txt");
            fileR = new FileReader (file);
            bufferedR = new BufferedReader(fileR);
           
            // Lectura del fichero
            String linea;
            while((linea=bufferedR.readLine())!=null){
                System.out.println(linea);
            }

si unicamente dese
as ver el archivo LecturaEscrituraArchivos.java esta en
/LecturaEscrituraArchivos/src/lecturaescrituraarchivos/LecturaEscrituraArchivos.java

Descargar Codigo Fuente

¿Quién puede suplir a Steve Jobs?

¿Quién puede suplir a Steve Jobs?
El vacío que deja la muerte de Steve Jobs entre sus seguidores pareciera anunciar que pocos pueden ocupar su puesto en el Silicon Valley, la meca mundial de la tecnología.

Según apuntan muchos fans, Jobs no sólo fue la personificación humana de Apple sino también la de toda una región de firmas tecnológicas. Y al parecer, pocas firmas tienen con qué para hacerle sombra. Por citar un ejemplo, tres de las compañías punteras de este valle, Apple, HP y Google, facturaron en conjunto 70,090 millones de dólares en el tercer cuarto del 2011.

Y es que en Silicon Valley, ejecutivos y empresas de nuevas tecnologías pueden contarse por decenas, pero escasean cuando se trata de elegir a alguno con el arriesgue y el sentido de innovación, con el carisma y espontaneidad de quien ya es considerado, incluso por el fundador de Microsoft, Bill Gates, como uno de los grandes “pioneros” de la industria tecnológica global.

¿Dónde encontrar a un CEO como Steve Jobs que pueda meter en el imaginario humano y en los hogares de casi todo el mundo, a una marca cuyos seguidores le profesan una verdadera religión, como sostiene el documental “la tecnología es una nueva religón” de la BBC?
Terna de sucesores

La cuestión es si ha dejado Steve Jobs huérfano a Silicon Valley. Si existe alguien en este valle que pueda replicar su popularidad personal y el éxito comercial de Apple, y decirle al mundo que aún existe en esta región un genio creativo para cambiar al mundo.

Las respuestas pudieran encontrarse en Facebook, Google, Microsoft, Twitter, Amazon, inclusive en la misma Apple, con su nuevo director, Tim Cook.
Sin embargo, encontrar al reemplazo de Steve Jobs no es un trabajo sencillo.

* Yahoo! no tiene líder visible luego de la estrepitosa salida de su directora Carol Bartz, tras no haber cumplido con los objetivos de la compañía, misma que hoy se perfila a ser adquirida por Microsoft.

* Con Hewlett-Packard (HP) y su presidenta Meg Whitman y expresidente Léo Apotheker, ocurre algo similar.

* A Sam Palmisano, CEO de IBM, pocos le conocen y se sabe que además, está por retirarse. Lo mismo con Paul Otelline, CEO de Intel.

* ¿Bill Gates, el fundador de Microsoft? Además de que ya abandonó los terrenos de la innovación para dedicarse a la filantropía, las opiniones respecto a su persona parecen dividirse: muchos lo consideran la antítesis de Jobs y otros, como Mark

Zuckerberg, fundador de Facebook, aseguran admirarlo y tomarlo aún como icono emprendedor.

Otros nombres que podrían relevar a Steve Jobs como el empresario más popular en el sector de la innovación y la tecnología: el presidente de Oracle, Larry Ellison; también el del actual director ejecutivo de Microsoft, Steve Ballmer; y el creador de Twitter, Jack Dorsey. Sin embargo, los tres rara vez se dejan ver en los medios de comunicación, por ello sus nombres poco han permeado en el imaginario colectivo.
Otro posible candidato posible puede ser Jeff Bezos, el fundador de Amazon.com, una de las plataformas de comercio electrónico más extendidas del mundo. Como puntos a favor, Bezos comenzó, al igual que Jobs, desde muy abajo para formar su empresa, también tiene fama, como Steve Jobs, de identificar los momentos apropiados para lanzar un nuevo producto

En contra, Bezos no radica tan a menudo en Silicon Valley, se menciona además por la prensa especializada, -TechCrunch-, que carece de cierta capacidad en el manejo de relaciones públicas y además, tiene un producto que ya compite contra el iPad, el Kindle Fire, algo que no perdonarían los seguidores de Jobs.
Page o Zuckerberg

El siguiente en la lista es Larry Page, fundador de Google. Aunque muchos consideren que su nombre no es muy popular y se deje ver poco (no concede entrevistas), se encuentra a la cabeza de la empresa más poderosa de Internet (calificativo otorgado por consultora Business Consulting).
Muchos consideran a su favor, que “enfrió”, -si alguna vez la tuvo- su relación con Bill Gates, luego que Microsoft rechazara en 1998 el adquirir a Google junto con el algoritmo que harían de esa empresa el motor de búsquedas más popular del mundo (según StatCounter y ComScore, 80% de los internautas usan a Google como buscador).
La terna la cierra el creador de Facebook, Mark Zuckerberg.

Zuckerberg tiene a su favor que es mundialmente conocido, tiene facilidad para la programación y sabe de nuevas tecnologías, también le es fácil mantener comunicación, habla de Jobs como su “mentor” y es uno de los millonario más jóvenes del Silicon Valley.

Sin embargo, pareciera que ahora está más preocupado por lo que hacen sus competidores –en especial Google+–, que por lo que pueden significar las redes sociales en el futuro y cómo aprovecharlas entonces desde hoy.
¿Entonces quién? Quizás sólo el tiempo lo responda.

miércoles, 23 de noviembre de 2011

Intel lanza un superchip de 50 núcleos

El primero de la serie de microprocesadores MIC de Intel, el llamado Knights Corner, puede inaugurar una nueva época. Con el tamaño de un microprocesador convencional, esta bestia de más de 50 núcleos puede generar 1 teraflop de poder de procesamiento en una estructura de 22nm.
Oímos hablar todo el tiempo de tecnologías e infraestructuras que se renuevan constantemente, evolucionando lo que hoy conocemos como informática de uso masivo, pero sólo algunos desarrollos son lo suficientemente importantes como para revolucionar, al menos en parte, la actualidad del ordenador de escritorio.
Los microprocesadores tienen mucho que ver en esta área, donde hemos asistido con igual capacidad de asombro ante micros de 2, 4, 6 y hasta ocho núcleos, pero cuando hablamos del futuro los dedos de la mano no nos dan para contar los núcleos que Intel ha logrado introducir en el Knights Corner. Digámoslo juntos: CIN-CUEN-TA. Sí. Intel ha logrado acoplar (más de) cincuenta núcleos de procesamiento en un mismo microprocesador sin que el tamaño se vaya de los estándares que actualmente vemos para los microprocesadores terrenales, porque éste es de otro planeta.

22 nanómetros es la estructura de este nuevo microprocesador que Intel presentó en la SC ’11 y que promete sobrepasar la modesta cantidad de 1 TFLOPS de operaciones de punto flotante. Este sistema de procesamiento de ensueño está incluido en la arquitectura MIC (many integrated core) de Intel y se encargará de tareas de alta complejidad computacional como las que corresponden a la topografía, sismografía, simulación de escenarios y todas esas actividades que estás acostumbrado a leer junto a un artículo de un superordenador. Este, elKnigths Corner, sería el primer producto manufacturado con la etiqueta de la arquitectura MIC, que promete retrocompatibilidad con x86, aun utilizando tecnología 3D Tri-gate de 22nm. 10.000 procesadores en una mano.

La noticia no puede evitar la comparación con lo sucedido en 1997, cuando Intel alcanzó por primera vez el teraflop a través del uso de 9.680 procesadores Intel Pentium Pro como parte del proyecto ASCI RED system del laboratorio Sandia. Así que todo lo que podíamos hacer hace una década y media con casi 10.000 procesadores, hoy está en nuestras manos –nunca mejor dicho- con un solo procesador.

Lo que este desarrollo implica para la computación del futuro es realmente asombroso, pues sólo hay que pensar en la multiplicación del poder de un superordenador si en vez de utilizar 1.000 procesadores hogareños utiliza la misma cantidad pero de mini supermicroprocesadores como el Knigths Corner y sus más de 50 núcleos sin ocupar más espacio que los anteriores.

Comparar cadenas (String) en java

Un ejemplo practico para la programación en java orientada a objetos espero les sirva de ayuda. Les adjunto el código fuente para que lo puedan descargar.
public static void main(String[] args) {
        // TODO code application logic here
        String s1 = new String( "hola" );  // s1 es una copia de "hola"
        String s2 = "adiós";
        String s3 = "Feliz Cumpleaños";
        String s4 = "feliz cumpleaños";

        String salida = "s1 = " + s1 + "\ns2 = " + s2 + "\ns3 = " + s3 +
              "\ns4 = " + s4 + "\n\n";

        // probar igualdad
        if ( s1.equals( "hola" ) )  // true
              salida += "s1 es igual a \"hola\"\n";
        else
           salida += "s1 es distinta de \"hola\"\n";

        // probar igualdad con ==
        if ( s1 == "hola" )  // false; no son el mismo objeto
              salida += "s1 es igual a \"hola\"\n";
        else
              salida += "s1 es distinta de \"hola\"\n";

        // probar igualdad (ignorar mayúsculas)
        if ( s3.equalsIgnoreCase( s4 ) )  // true
              salida += "s3 es igual a s4\n";
        else
              salida += "s3 es distinta de s4\n";

        // probar compareTo
        salida += "\ns1.compareTo( s2 ) es " + s1.compareTo( s2 ) +
              "\ns2.compareTo( s1 ) es " + s2.compareTo( s1 ) +
              "\ns1.compareTo( s1 ) es " + s1.compareTo( s1 ) +
              "\ns3.compareTo( s4 ) es " + s3.compareTo( s4 ) +
              "\ns4.compareTo( s3 ) es " + s4.compareTo( s3 ) + "\n\n";

        // probar regionMatches (susceptible a mayúsculas)
        if ( s3.regionMatches( 0, s4, 0, 5 ) )
              salida += "Los primeros 5 caracteres de s3 y s4 concuerdan\n";
        else
              salida += "Los primeros 5 caracteres de s3 y s4 no concuerdan\n";

        // probar regionMatches (ignorar mayúsculas)
        if ( s3.regionMatches( true, 0, s4, 0, 5 ) )
              salida += "Los primeros 5 caracteres de s3 y s4 concuerdan";
        else
              salida += "Los primeros 5 caracteres de s3 y s4 no concuerdan";

        JOptionPane.showMessageDialog( null, salida,
               "Comparaciones entre cadenas", JOptionPane.INFORMATION_MESSAGE );

        System.exit( 0 );
       
    }

TouchPad de HP, la tableta más vendida en EU después del iPad

La TouchPad del fabricante Hewlett-Packard (HP), que va a ser eliminada del mercado, fue la tableta más vendida en Estados Unidos por detrás del iPad en los primeros diez meses del año, informó la empresa de investigación de mercado NPD Group este martes.
La TouchPad concentró un 17 por ciento de los 1.2 millones de tabletas que se vendieron en Estados Unidos entre enero y octubre (excluida el iPad), dijo NPD, superando a la tableta Galaxy, del grupo surcoreano Samsung, que logró un 16% de cuota de mercado.

La taiwanesa Asus vendió un 10% del total de tabletas que no eran de Apple durante el mismo período, mientras que la Xoom de Motorola y la Acer de Taiwán compartieron un 9% del mercado.

Apple vendió 11.2 millones de iPads únicamente en el último trimestre de este año.
HP, alegando una cifra de ventas decepcionante, anunció el pasado 18 de agosto que iba a terminar la fabricación del TouchPad, solo siete semanas después de que saliese al mercado.

Dos semanas más tarde anunciaba su última serie de producción del dispositivo, que se convirtió en el más vendido debido al anuncio de su retirada del mercado y luego de que su precio fuera reducido de 499 dólares a sólo 99.

Google Chrome supera a Firefox por primera vez

Las estadísticas siempre frías dirán que hacia fines de Noviembre de 2011 Google Chrome ha logrado superar a Firefox por primera vez y desbancarlo del segundo puesto en el mercado de los navegadores, al tiempo que Internet Explorer ha conseguido recuperar una (muy) pequeña parte del terreno perdido.
Es que de acuerdo a las cifras que maneja StatCounter, Chrome ha llegado a una cuota de mercado del 25,51%, relegando a Firefox al tercer puesto con un 25,3%. Una diferencia mínima y hasta despreciable en términos de cantidad real de usuarios, pero que muestra a las claras una tendencia que hemos venido siguiendo a lo largo de muchos meses y que al parecer irá aumentando.
Internet Explorer, el navegador siempre amado y odiado por partes iguales, ha logrado este último mes algo muy importante que es romper con la racha de descenso que ha mantenido durante más de un año (y que por primera vez le ha llevado a registrar un porcentaje inferior al 50%) gracias a lo cual llega hasta el 40,64%.

martes, 22 de noviembre de 2011

Crear roles de usuario ORACLE

Aquí les dejo la forma de crear los usuarios en oracle, los roles los creamos de una vez en el sql developer una vez creados los podemos reutilizar para n usuarios creando role db_programador

en mi caso lo hare con las tablas bodega y cliente

CREATE ROLE db_programador;

asignar permisos al role a las tablas bodega y cliente
GRANT SELECT, INSERT, UPDATE, DELETE ON bodega TO db_programador;
GRANT SELECT, INSERT, UPDATE, DELETE ON cliente TO db_programador;

si se quiere revokar un permiso
revoke SELECT, INSERT, UPDATE, DELETE ON bodega FROM db_programador;
revoke SELECT, INSERT, UPDATE, DELETE ON cliente FROM db_programador;

ahora procedemos a crear los usuarios en mi caso creare uno que se llame user y contraseña pondre 1234 Nota: el TABLESPACE es el usuario en el cual creamos las tablas en mi caso yo las cree en system

CREATE USER user IDENTIFIED BY 1234
DEFAULT TABLESPACE system
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON system;

permisos para logearse e iniciar sesion
GRANT CREATE SESSION TO user;
GRANT CONNECT TO user;
asignar el role al usuario user
GRANT db_programador TO user;

para hacer un insert tendriamos que hacerlo de la siguiente forma
INSERT INTO system.nombre_tabla values (parametros)

donde parametros podria ser nombre, edad, direccion telefono, etc. como notamos siempre tenemos que hacer mension al usuario donde tenemos creadas las tablas.

Notificador de correo en el escritorio Ubuntu, Debian

Bueno pues yo uso gmail pero la verdad es que prefiero revisar mis correos directamente de la pagina, gmail y hotmail, sin embargo para hotmail me avisa el mensajero emesene, pero el plug-in que tiene para ver el correo de gmail no es muy efectivo, por eso traigo este nuevo aporte para saber si tenemos correo en nuestra bandeja de entrada gmail.

Se llama gm-notify y se instala desde la terminal, synaptic o Ubuntu center.
como yo prefiero la terminal lo instalo así:

sudo apt-get install gm-notify

ya que esta instalado se va a integrar con el sobre que esta en la mini aplicacion de indicadores.




Le damos clic ahí para que nos salga la ventana de configuración.


Instalar ipresora iP1800 e iP1900 en ubuntu, debian

Hola amigos taringeros creo muchos se han topado con lo que dicen en los foros para instalar la impresora canon pixma ip1900 teclear en la terminal sudo apt-get install libcupsys2 y al teclearlo esto aparece

Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
El paquete libcupsys2 es un paquete virtual provisto por:
libcups2 1.4.1-5ubuntu2.1
Necesita seleccionar explícitamente uno para instalar.
E: El paquete libcupsys2 no tiene candidato para su instalación

bueno la solucion es sencilla primero sigan este enlace http://hotfile.com/dl/26694549/43acbf8/ip1900.tar.gz.html se descargan el paquete lo descomprimen

primero instalan el archivo libcupsys2_1.3.9-17ubuntu3.4_all.deb

luego descomprimen el archivo iP1900_debian_printer.tar

una vez lo descomprimimos instalamos primeramente el archivo cnijfilter-common-3.00-1.tar.gz seguidamente cnijfilter-ip1900series_3.00-1_i386.deb y listo.

Ahora vamos a Sistema>>Administración>>Impresoras y si te fijaste bien, al conectar la impresora era reconocida, más no la podías usar porque no tenías los controladores, Asi que dale click a la impresora y de ahi en "marca y modelo" busca el "cambiar", dale en canon, de ahi siguiente, de ahi busca la que dice 1900 ver 3.o y dale siguiente hasta que termine esa cosa y listo.... ya tenemos impresora configurada...

si no funciona el link me avisan para arreglarlo porfavor...

Archivos binarios en JAVA

Aqui les dejo un ejemplo de como crear archivos binarios con JAVA utilizando la clase RandomAccessFile.
¿Qué es un archivo binario?

Un archivo binario es una archivo informatico que contiene informacion de cualquier tipo, codificada en forma binaria para el proposito de almacenamiento y procesamiento de ordenadores. Por ejemplo los archivos informaticos que almacenan texto formateado o fotografias. 

Muchos formatos binarios contienen partes que pueden ser interpretados como texto. Un archivo binario que solo contiene informacion de tipo textual sin informacion sobre el formato del mismo, se dice que es un archivo de texto plano. Habitualmente se contraponen los terminos “archivo binario” y “archivo de texto” de forma que los primeros no contienen solamnete texto.



Descargar codigo fuente

CONVERTIR UNA IMAGEN .NRG A .ISO EN UBUNTU

.nrg es la extensión que identifica a imágenes de disco realizadas por la aplicación Nero Burning Rom en Ms/Windows.

La solución la ofrece nrg2iso. Una aplicación que se encuentra en nuestros repositorios. La instalación es simple y basta con:

:~$ sudo apt-get install nrg2iso
Una vez instalado y desde el terminal(consola), nos dirigimos al directorio donde se encuentra el fichero que queremos convertir. Donde "tu_imagen" es el nombre del la imagen que deseas convertir.
:~$ nrg2iso tu_imagen.nrg tu_imagen.iso

Y en unos segundos tenía una imagen iso accesible con botón derecho sobre el fichero
-> Abrir con ->Abrir con montador de discos.

INSTALAR MENU CLASICO EN UBUNTU 11.10

Desde que existe Unity en Ubuntu el menu que todos conocian desde siempre en Gnome desaparecio. Pero para algunos era mucho mas comodo.

No se lo puede recuperar y que se posicione en cuenta del Dash de Unity pero si se puede instalar un indicator llamado ClassicMenu Indicator en el area de notificacion en la panel superior que devolvera el clasico menu de aplicaciones.

Instalarlo es sumamente sencillo. Copien cada una de estos comandos en una consola

:~$ sudo add-apt-repository ppa:diesch/testing
:~$ sudo apt-get update
:~$ sudo apt-get install classicmenu-indicator
 


 

martes, 27 de septiembre de 2011

Como instalar un Localhost en Ubuntu

Tener un localhost nos permite probar paginas web, blogs (Wordpress, Joomla, Drupal, etc.)y demas, como si estuvieran montadas en un servidor. Existen pack de herramintas que instala todo el paquete para tener un localhos funcional (XAMMP) pero en GNU/Linux es mas sencillo, mejor y configurable de esta forma:


1 - Abrir el Synaptic:

Sistema -> Administracion -> Gestor de paquetes Synaptic
Nota: si tenemos problema en que no encontramos uno en la lista abrimos la terminal y tecleamos
sudo apt-get install nombreDelPaquete


2 - Instalar Apache: Buscar e instalar los siguientes paquetes
  • apache2
  • libapache2-mod-php5

3 - Instalar el servidor de base de datos:
  • mysql-server
  • mysql-server-5.0
  • libapache2-mod-auth-mysql
  • php5-mysql

4 - Instalar el servidor PHP:
  • PHP5

5 - Reiniciar los servicios del Apache: Abrir una terminar y escribir
  • sudo /etc/init.d/apache2 restart
  • sudo /etc/init.d/mysql restart

6 - Instalar el gestor de base de datos
  • phpmyadmin

7 - Copiar phpmyadmin: abrir terminal y escribir
  • sudo cp -R /usr/share/phpmyadmin /var/www/phpmyadmin

La carpeta del servidor local se encuentra en /var/www/ y para configurar las bases de datos tienen que entrar a http://localhost/phpmyadmin. La contraseña es la misma que definieron cuando se instalo el Apache.

viernes, 26 de agosto de 2011

Montar una particion desde el arranque Debian/Ubuntu

 

En algunos casos, luego de instalar una distribución de Gnu/Linux, nos damos cuenta de que no se montan por default las particiones cada vez que inicia el sistema (a excepción de la partición en donde está instalado el sistema en cuestión). Tenemos que montar cada partición que querramos usar, y cada vez que apagamos la máquina se desmontan nuevamente (y no se vuelven a montar). 


Voy a explicar cómo hacer para configurar el sistema de tal forma que al iniciarlo, se monten las particiones que querramos, en la forma y con las atribuciones que querramos. 

Nota: Si alguna de nuestras particiones está en formato NTFS, primero debemos instalar el programa “ntfs-3g” para poder tener acceso a la misma. 
(por ejemplo, en cualquier distro basada en debian: # apt-get install ntfs-3g)
 

Voy a explicarlo poniendo como ejemplo las particiones que tengo yo: 
Una partición NTFS en donde tengo instalado windows7, <Esta partición no me es indispensable montarla pero si la queremos montar podemos hacer lo mismo que con la siguiente partición >
una partición NTFS en donde guardo mis archivos,  <Esta partición es la que queremos montar>una partición EXT3 en donde guardo mis videos, <tambien la vamos a montar>
una partición EXT3 en donde instalado debían,    <Esta partición me la monta automáticamente entonces no hace falta hacerle nada> 


1. Crear los puntos de montaje para nuestras particiones 

En el directorio: “ /media ”, hemos de crear los directorios que serán los puntos de montaje para cada una de nuestras particiones en mi caso solo para la partición de archivos. 
“ disk-c ” para la partición NTFS en donde tengo mis archivos

“ disk-d ” para la partición EXT3 en donde guardo mis videos  

en la consola tecleamos$ cd /media 
$ mkdir disk-c 
$ mkdir disk-d 
Después nos aseguramos de que tengan como dueño al usuario que nosotros querramos.


# chown tu_usuario -R disk-c 
# chown 
tu_usuario -R disk-d 

Y también hemos de asignarle los permisos que querramos.


# chmod 777 -R disk-c 
# chmod 777 -R disk-d 

2. Modificar el archivo fstab 

Una vez creados lo puntos de montaje, sólo nos resta especificar al sistema donde tiene que montar cada partición y de qué forma. Para eso sirve el archivo fstab. El archivo está ubicado en “ /etc “ 

Entonces lo editaremos con nuestro editor favorito, por ejemplo 

# nano /etc/fstab 

o sinó 

# vi /etc/fstab 

o sinó 

# gedit /etc/fstab 

Agregar al final del archivo una línea cómo ésta por cada partición: 

<dispositivo> <punto_de_montaje> <sistema_de_archivos> <opciones> <dump-freq> <pass-num> 

Dispositivo: Están en “ /dev “ y pueden ser por ejemplo: sda1, sdb5. Se expresan como “ /dev/sdb1 “ por ejemplo. 
(podemos ver cual es cual con el comando " fdisk -l " , o sinó gráficamente usando gparted o algún otro programa similar) 

Punto de montaje: Serán los directorios que creamos antes en “ /media ”. 

Sistema de archivos: Puede ser por ejemplo EXT2, EXT3, NTFS 
(si vamos a montar una NTFS, debemos poner “ntfs-3g”, habiendo instalado antes dicho programa) 

Opciones: Por ejemplo “ defaults “ para asignarle todos los atributos, “ ro ” para sólo lectura, etc. 

dump-freq: (número) Tiene que ver con el programa “ dump “, que sirve para hacer respaldos de seguridad. Si se deja en “ 0 ”, no se toma en cuenta. 

Pass-num: (número) Tiene que ver con el programa “ fsck “, que sirve para buscar errores en la partición. De nuevo, si se deja en “ 0 ”, no se toma en cuenta. 
En este caso se le tiene que dar prioridad al sistema raiz ( / ) que tiene asignado el " 1 " por default, para que lo revise primero. A las otras les asignaremos un " 2 " (o un " 0 " si no queremos que la escanee) 

A modo de ejemplo, a continuación muestro lo que agregué yo, al final del fstab: 

/dev/sdb1 /media/disk-c ntfs-3g defaults 0 0 
/dev/sdb5 /media/disk-d ext3 defaults 0 0 

Guardamos y eso es todo; la próxima vez que arranque el sistema, lo va a hacer montando las particiones como corresponde