Suscribirse al Feed
06Jun

sudo grosero >:(

De seguro la mayoría ya lo conoce, pero para los que no... resulta que el famsos y útil comando sudo tiene un pequeño "huevo de pascua" XD. Es posible configurarlo para que, en caso de errar en el password, no nos pida perdón (Sorry, try again), sino que nos "insulte".

¿cómo se hace? Fácil, editamos el archivo /etc/sudoers, preferiblemente con el comando visudo:

sudo visudo

Colocamos el cursor donde dice Defaults, y agregamos la palabra insults:

Guardamos los cambios (Ctrl+o) y cerramos nano (Ctrl+x). Ahora para borrar los passwords que sudo deja en el caché digitamos:

sudo -K

Ahora para probar, ejecutaremos algún programa con sudo, dandole contraseñas falsas, con lo que nos salen cosas como estas:

Saludos!!!

06Jun

Actualizados los video tutoriales

Se han agregado cuatro nuevas entradas en:

Video Tutoriales

Saludos!!!

28May

Tutoriales de Programación de Pics [semi-actualizados]

Algunos tutoriales de Programación de Pics...

Espero les sirva!!!

28May

Ordenamiento de arreglos con la clase Arrays

Pues bien, esta vez vamos a tratar uno de los temas típicos, en lo que a la programación se refiere, y me refiero al ordenamiento de arreglos. Esto no solo es un paso más en el desarrollo de la lógica, cuando estamos aprendiendo, sino una herramienta muy útil en el campo de la programación.Ahora bien, a nosotros nos enseñan los métodos típicos de ordenamiento de arreglos (arrays o vectores, como quieran llamarlo), como lo son el Burbuja, el Quicksort, etc. Pero hay una clase de la API de utlierías de Java (java.util) que nos facilita esto, y es la clase Arrays. Y utilizandola es fácil ordenar un arreglo, con tan solo una instrucción.

La clase Arrays proporciona métodos (funciones) estáticos para manipular arreglos. Estos métodos son de alto nivel, como el sort para ordenar un arreglo, binarySearch para buscar en un arreglo ordenado, equals para comparar arreglos y fill para colocar valores en un arreglo. Y además estos métodos se sobrecargan para los tipos primitivos de arreglos (int, double, etc.) y para los arreglos Object (String, JPanel, Jbutton, etc.).

Para que todo esto quede claro vamos a realizar un fácil ejemplo:


import java.util.*;
public class UsoArrays {
private int numerosEnteros[] = { 1, 2, 3, 4, 5, 6 };
private double numerosDouble[] = { 8.4, 9.3, 0.2, 7.9, 3.4 };
private int llenoEnteros[], copiaNumerosEnteros[];
// inicializar los arreglos
public UsoArrays()
{
llenoEnteros = new int[ 10 ];
copiaNumerosEnteros = new int[ numerosEnteros.length ];
Arrays.fill( llenoEnteros, 7 ); // llenar con 7s
Arrays.sort( numerosDouble ); // ordenar numerosDouble en forma ascendente
// copiar el arreglo numerosEnteros en el arreglo copiaNumerosEnteros
System.arraycopy( numerosEnteros, 0, copiaNumerosEnteros, 0, numerosEnteros.length );
}
// mostrar los valores en cada arreglo
public void imprimirArreglos()
{
System.out.print( "numerosDouble: " );
for ( int cuenta = 0; cuenta <numerosDouble.length; cuenta++)
System.out.print( numerosDouble[ cuenta ] + " " );
System.out.print( "\nnumerosEnteros: " );
for ( int cuenta = 0; cuenta <numerosEnteros.length; cuenta++)
System.out.print( numerosEnteros[ cuenta ] + " " );
System.out.print( "\nllenoEnteros: " );
for ( int cuenta = 0; cuenta <llenoEnteros.length; cuenta++)
System.out.print( llenoEnteros[ cuenta ] + " " );
System.out.print( "\ncopiaNumerosEnteros: " );
for ( int cuenta = 0; cuenta <copiaNumerosEnteros.length; cuenta++)
System.out.print( copiaNumerosEnteros[ cuenta ] + " " );
System.out.println();
} // fin del método imprimirArreglos
// comparar el contenido de los arreglos
public void imprimirIgualdad()
{
boolean b = Arrays.equals( numerosEnteros, copiaNumerosEnteros );
System.out.println( "numerosEnteros " + ( b ? "==" : "!=" ) +
" copiaNumerosEnteros" );
b = Arrays.equals( numerosEnteros, llenoEnteros );
System.out.println( "numerosEnteros " + ( b ? "==" : "!=" ) +
" llenoEnteros" );
}
public int buscarUnEntero(int x)
{
return Arrays.binarySearch(numerosEnteros, x);
}
public static void main( String args[] )
{
UsoArrays usoArrays = new UsoArrays();
usoArrays.imprimirArreglos();
usoArrays.imprimirIgualdad();
int ubicacion = usoArrays.buscarUnEntero( 5 );
System.out.println( ( ubicacion >= 0 ? "Se encontro el 5 en el elemento " +
ubicacion : "No se encontro el 5" ) + " en numerosEnteros" );
ubicacion = usoArrays.buscarUnEntero( 8763 );
System.out.println( ( ubicacion >= 0 ? "Se encontro el 8763 en el elemento " +
ubicacion : "No se encontro el 8763" ) + " en numerosEnteros" );
}
} // fin de la clase UsoArrays;

En este sencillo ejemplo, se muestra el uso del método:

  • Arrays.fill(): que recibe un como argumentos un arreglo, y el valor con el que se va a rellenar el mismo.

  • Arrays.sort(): que recibe como argumento un arreglo, que será ordenado ascendentemente.

  • System.arraycopy(): que recibe 5 argumentos. El primer argumento (valoresEnteros) es el arreglo a partir del cual se van a copiar los elementos; el segundo argumento (0) es el índice que especifica el punto de inicio en el rango de elementos que se van a copiar del arreglo; este valor puede ser cualquier índice de arreglo válido. El tercer argumento (copiaNumerosEnteros) especifica el arreglo de destino que almacenará la copia. El cuarto argumento (0) especifica el índice en el arreglo de destino, en donde deberá guardarse el primer elemento copiado. El último argumento especifica el numero de elementos a copiar del arreglo en el primer argumento. En este caso copiaremos todos los elementos en el arreglo.

  • Arrays.equals(): este método recibe como argumentos dos arreglos que serán comparados, y que retorna un valor boolean como resultado de la comparación. true si son iguales, false en caso contrario... si, ya se que es obvio, pero es que hay gente que... en fin.

 

Aunque me salí un poco del tema principal (ordenamiento de arreglos), creo que la esencia del mismo queda más que comprendida. Solo agregar que si hasta ahora estás aprendiendo a programar, es mejor que implementes los métodos de ordenamiento a mano, es decir, empleando la lógica y utilizando instrucciones como for, if, else, etc. ya que no tendría gracia utilizar estos métodos sin siquiera tener un poco de experiencia... esta API la implementaron para hacernos las cosas más fáciles, pero no abuses.Saludos!!!

28May

Acerca de OpenJavaDay - OpenSolarisDay

No, esto no es un video tutorial XD... es un vídeo acerca de OpenJavaDay y OpenSolarisDay, copio y pego información:

Sun Microsystems y las Comunidades Abiertas de Java y OpenSolaris te invitan al OpenJavaDay - OpenSolarisDay, que se celebrará el próximo dÍa 31 de Mayo, en la Universidad Carlos III de Madrid (campus de Leganés), un encuentro que constituye la décima edición en España de la sesión para desarrolladores.

Concebido como un foro abierto de carácter tecnológico, reunirá a los principales expertos para que compartan las últimas novedades sobre JavaFX, NetBeans, Glassfish, OpenSolaris, OpenJDK, BPEL, OpenESB y SOA entre otras muchas.

El objetivo: hacer realidad la Era de la Participación, promovida por Sun, en el que las Tecnologías Abiertas cobran protagonismo gracias a las Comunidades que se crean en torno a ellas, dando un valor social a los usuarios, y haciendo posible la Web 2.0.

Bonita manera de hacer publicidad, no creen?

26May

Lo prometido es deuda… Sun libera el código fuente de Java

El proyecto OpenJDK bebe de las fuentes intelectuales de OpenSolaris y tiene como objetivo reunir a su alrededor una comunidad de desarrolladores en código libre que continúen con la plataforma Java.

Tal y como prometió hace ya algún tiempo, Sun Microsystems ha liberado la parte principal del código fuente de Java, fundando para ello el proyecto OpenJDK y colocando online todo el código fuente necesario para compilar una versión funcional del JDK de Java SE (Standard Edition).
La cesión de este código fuente se hace bajo la protección de la licencia GPL versión 2, lo que pese a no sorprender en exceso, por lo menos sí puede provocar nuestra sonrisa al haber sido liberado el código de Solaris bajo un tipo de licencia reconocida como libre pero incompatible con la GPL: la CDDL (Common Development and Distribution License), que es la que habitualmente utiliza Sun y que deriva de la licencia Mozilla en su versión 1.1 .

A partir de este punto, la vida de Java será como la de OpenOffice/StarOffice o OpenSolaris/Solaris: por un lado, la comunidad independiente de programadores desarrollará el estándar y todas las herramientas necesarias para trabajar con él. Esto quiere decir que tanto los entornos de ejecución como el kit básico de programación (JDK) serán desarrollados por esta comunidad.

Por la otra parte, Sun Microsystems utilizará el código fuente de estos proyectos para sus propios productos a los que ofrecerá soporte técnico de pago. Además, la multinacional norteamericana ha prometido que hará lo necesario para que sus herramientas se integren al máximo con el nuevo Java, como por ejemplo el entorno integrado de programación (IDE) NetBeans.

Por el momento, la dirección del proyecto OpenJDK ha sido puesta en manos de un comité interino hasta que sea la propia comunidad formada a su alrededor quien esté lo suficientemente consolidada y cohesionada para elegir por ella misma y de forma democrática un comité director.

La importancia de esta decisión

Java es un lenguaje de programación y plataforma muy importante hoy en día. Su presencia en computadoras de sobremesa y dispositivos móviles (especialmente teléfonos) es notable, existiendo entornos de ejecución para los principales sistemas operativos: Windows, Mac OS X, Linux, Symbian...

Su uso es sobretodo empresarial en las computadoras de sobremesa, aunque también existen numerosas aplicaciones de usuario, y es uno de los reyes indiscutibles de Internet, facilitando la creación de aplicaciones que funcionan online. No obstante, su estrella se ha visto un poco apagada por la irrupción de AJAX.

En el sector de la telefonía móvil son numerosos los programas lúdicos o aplicaciones serias que utilizan Java para ser multiplataforma, ya que hoy en día son pocos los terminales de telefonía que salen de fábrica sin tener instalada la máquina virtual Java.

Con este movimiento, Sun se gana las simpatías del movimiento del software libre (Richard Stallman ya ha apreciado el gesto llevado a cabo por la empresa norteamericana) con toda la cantidad de desarrolladores que ello implica, y que ahora pueden verse tentados por los cantos de sirena de Java y sus posibilidades multiplataforma.

La inclusión de Java en distribuciones GNU/Linux como Debian que hasta ahora no era posible debido a su licencia restrictiva, va a ser ahora factible, lo que implica una mayor penetración de Java en el mercado. Además, ahora ya no nos tendremos que plantear dudas sobre que pasará en el futuro de esta plataforma, pues cualquier cambio va a ser dictado por la comunidad. La continuidad es algo que preocupa al sector empresarial, en el cual -y como he comentado antes- Java tiene un buen mercado, por lo que con este movimiento se tranquiliza a los clientes que puedan estar preocupados por el futuro a medio/largo plazo de la plataforma pese a la solidez demostrada por Sun Microsystems como empresa.

Más información:
OpenJDK: http://openjdk.java.net/
Nota de prensa de Sun anunciando la publicación del código fuente del JDKhttp://www.sun.com/aboutsun/pr/2007-05/sunflash.20070508.3.xml
DiarioRed

© 2007 - 2008 Dezinerfolio. Todos los derechos reservados.
Powered by Wordpress. Entradas RSS