martes, 10 de noviembre de 2009

Escoger ruta: JFileChooser

A la hora de seleccionar la ruta para guardar o obtner un archivo el control JFileChooser es la solucion. A continuacion doy una pequeña descripcion de como usar el control:

JFileChooser jfc= new JFileChooser(); //Se define el nuevo control JFileChooser
int seleccion=jfc.showOpenDialog(this); //Se muestra el control y se guarda un valor
if(seleccion==jfc.APPROVE_OPTION) //int asociado con la accion del usuario
{
File archivo=jfc.getSelectedFile(); // Se guarda una referencia al archivo
path=jfc.getSelectedFile().getAbsolutePath(); //tomo la ruta del archivo
}

Con eso ya tenemos la ruta y el archivo....

domingo, 1 de noviembre de 2009

Compartir directorio VirtualBox: Anfitrion Ubuntu, Huesped Windows

Es muy útil compartir un directorio entre el SO anfitrión y el SO que hospeda VirtualBox, a continuación voy a explicar como hacer ese procedimiento entre Ubuntu - Windows.


Primero con click derecho sobre la maquina virtual en cuestión ve a configuración, y al ítem Directorios Compartidos, ahi click en icono de la carpeta con el mas en el lado derecho; se abre una ventana que se llama Agregar Comparticion, tiene la opcion Folder Path y la opcion Folder Name; se despliega el combo Folder Name y en la opcion Otro podemos navegar a la ruta de Ubuntu a compartir.



















Click en aceptar y de nuevo en aceptar.
Inicia la maquina virtual y ve a inicio y da click derecho en Mi PC, en conectar a unidad de red




















Se abrirá una ventana llamada Conectar a unidad de red y ahí en el ítem carpeta damos click en examinar, que abrirá Buscar Carpeta.
Si expandimos el arbol en la opcion VirtualBox shared Folders podemos ver las carpetas que hallamos compartido, en este caso mi home y media, para tener todos los dispositivos de almacenamiento conectados automáticamente, aunque VirtualBox puede gestionar la conexión de las memorias usb como tales.
Selecciona el que quieres agregar y click en aceptar, suele ser un poco lento para esta parte pero funciona. Luego en Conectar a unidad de red click en Finalizar. Y repetimos hasta haber agregado todo lo requerido.





















Ahora, si vamos a Mi PC podemos ver y acceder a las carpetas como si fueran unidades de red.



domingo, 4 de octubre de 2009

Pasar un arreglo en PHP a uno en JavaScript


El otro día necesitaba hacer una aplicación para administrar contactos que trabajan para sucursales de un almacén en distintas ciudades.
Ahora bien, en el formulario para llenar la información de contacto hay un combo que se despliega mostrando las ciudades en las que hay almacenes, ahí se puede seleccionar la ciudad en la que labora el contacto y el siguiente campo es un combo que se despliega mostrando los almacenes de dicha ciudad, por que no seria ni estético ni funcional mostrar todos los almacenes si ya se discrimino una ciudad, y para llenar el combo de almacén debo ejecutar a una consulta en la BD que seleccione los almacenes que están en la ciudad escogida en el combo:

select almacen from almacenes where ciudad = "ciudad seleccionada en el combo"

donde almacen es el nombre del almacen y almacenes la tabla, pero esto me implicaria enviar la pagina solo para obtener eso y luego enviarla de nuevo para guardar, me pregunte entonces si no podria obtener todos los almacenes con sus ciudades:

$con="select almacen, ciudad from almacen";
$res=mysqli_query($link,$con);


y guardarlo todo en un arreglo:

$f=mysqli_fetch_array($res)

y que se envié el arreglo de php a la pagina en un arreglo javascript para que en una funcion javascript se decida como se va a llenar el combo de almacén.

Asi fue como lo hice:

$i=mysqli_num_rows($res);

Rescato cuantas filas devolvio la consulta, cuantos almacenes tenemos.


echo "<script language='javascript'> var almacencito= new Array($i); </script>";
echo "<script language='javascript'>var ciudad = new Array($i); </script>";


Defino desde el codigo php dos arreglos que tengan por tamaño tantas filas tiene la consulta.
Y cargo cada campo del arreglo de javascript con cada campo de la consulta que esta en php.

while($f=mysqli_fetch_array($res)){
$temporal=$f['ciudad'];
echo "<script language='javascript'>ciudad[$i]='$temporal';</script>";
$temporal=$f['almacen'];
echo "<script language='javascript'>almacencito[$i]='$temporal'; </script>";
$i++;
}



Asi cuando ya se ha seleccionado el campo ciudad una funcion javascript llena el combo almacen.

function almacen()
{
var i=0;
var k=0;
var j= document.f1.ciudad.selectedIndex;
while(i<ciudad.length)
alert(document.f1.ciudad.selectedIndex+" "+i.toString()+" "+almacencito[i].toString());
if(document.f1.ciudad.options[j].text==ciudad[i])
{
document.f1.Almacen.length=k+1;
document.f1.Almacen.options[k].value=almacencito[i].toString();
document.f1.Almacen.options[k].text=almacencito[i].toString();
k++;
}
i++;
}
}


Se que existen formas mas eficientes y sofisticadas de hacer esto, pero esta me saco de un apuro.

Comando apt-get al rescate

El otro día intente torpe y tontamente actualizar mi Amarok 2.1 (que me dejo con ganas de mi Amarok 1.4) a Amarok 2.2, pero cual fue mi sorpresa cuando al día siguiente prendí de nuevo el compu, todo era caos y desolación, habia perdido plasma. Se estaba ejecutando pero, y aunque no lo puedo explicar mejor que esto, muchas de sus partes no funcionaban, tenia el panel de kde (barra de tareas), el reloj, pero de ahi en adelante nada, no aparecias las aplicaciones en ejecución el panel y tampoco tenia escritorio, nada ni fondo ni plasmoides ni nada.
Soy bastante novata y la verdad estaba bien perdida y no fue mucho, practicamente nada lo que encontre en Internet.
Asi que intente razonar que podia estar pasando y que era lo que habia hecho que podia producir eso, asi due como le heche la culpa a Amarok, pues al intentar actualizar seguramente se habian instalado librerias y paquetes que entraban en conflicto con KDE 4.2 (si estoy hablando muchas tonterias que alguien me corrija), pero el caso es que la solución que le di funciono y me hace pensar que estoy no totamente pero casi complatamente en lo cierto.

Al iniciar por gnome me decia que se habia intentando una actualizacion que no habia terminado bien, (lo que es tecnicamente cierto).

Intente sudo apt-get update: que se usa para sincronizar el índice de paquetes respecto a sus fuentes, de los lugares especificados en /etc/apt/sources.list. Por ejemplo, cuando se usa un archivo de Debian, esta orden descarga y analiza los ficheros Packages.gz, de tal forma que la información acerca de nuevos paquetes pasa a estar disponible. Siempre se debe realizar un update antes de un upgrade o un dist-upgrade. (según el manual de apt-get).

No funciono obviamente por que apt-get update solo descargará descripciones. Es con propósito informativo.

Pude haber intentado un upgrade: se usa para instalar la versión más nueva de todos los paquetes instalados en el sistema provenientes de alguna de las fuentes listadas en /etc/apt/sources.list. Los paquetes instalados con una nueva versión disponible son descargados y actualizados, bajo ninguna circunstancia se desinstalarán paquetes, o se instalarán paquetes nuevos. Las nuevas versiones de programas instalados que no puedan ser actualizados sin cambiar el estado de instalación de otros paquetes no se instalarán, manteniéndose la versión actual. Debe realizarse un update antes para que apt-get sepa cuales son las versiones disponibles de los paquetes.

Pero al final me decidi por dist-upgrade: además de realizar las acciones de upgrade, maneja inteligentemente los cambios de dependencias debidos a nuevas versiones de paquetes, tiene un sofisticado sistema de resolución de conflictos, si es necesario tratará de actualizar los paquetes más importantes a costa de los menos importantes.

Esto se oye mas impresionante y prometedor, sobre todo si se tiene un conflicto tan extraño de dependencias.

Lo intente: sudo apt-get dist-upgrade.
Pero no funciono, mas conflictos. Asi que por consejo de la terminal intente lo mismo pero con --fix-missing, que no tiene en cuenta los paquetes que no se hayan podido descargar o que después de la descarga se encuentren dañados, estos paquetes se tratan como no modificables y se continúa con el resto. Si un paquete se selecciona para su normal instalación (particularmente si se hace mediante la línea de órdenes) y no puede ser descargado, será tratado como no modificable.

Esto obviamente tiene sus riesgos, pues luego de leer queda claro que arrasara con quien se interponga en su camino, pero la verdad aun no encontrado nada de lo que deba arrepentirme, quede con kde 4.3 y todo esta bien, un paquete quedo roto, kstart, y lo arregle con synaptic.
Y sigo con Amarok 2.1, creo que lo voy a dejar asi unos días.

Supongo que no es la solución mas ortodoxa, ya que lo que hice fue actualizar. Pero funciono y kde 4.3 esta super.

Bibliografía: paginas que me fueron de utilidad. Muchas gracias!!!! xD

jueves, 10 de septiembre de 2009

MessageBox en Java

Desde C# en .NET se puede lanzar una ventanita de alerta con MessageBox, para obtener lo mismo en Java se usa:

JOptionPane.showMessageDialog(Form formulario,String mensaje);

ASi no lo olvido de nuevo!!!.xD.

sábado, 18 de julio de 2009

Escuchar Emisoras On-Line Linux

Cuando en Windows quieres escuchar una emisora que tiene un flujo on-line es muy simple...un click y listo, por que están directamente relacionadas con el Reproductor de Windows Media Player.

Bueno...en Linux hay solución.

Instala en Firefox el siguiente complemento:

Media Player Connectivity

Luego de que se ha instalado el te pide que lo configures, aunque también se puede configurar luego en Herramientas -> Media Player Connectivity -> Configurar, en la pestaña Reproductores Multimedia, en Windows Media viene configurado con VLC pero no funciona, cambialo por Amarok que se que funciona y yo uso, o cualquier otro reproductor que acepte flujos de radio.
El ejecutable de Amarok y de casi todos los demás esta en: /usr/bin.

Cuando llegues a donde las paginas de las emisoras te envían para oír la emisora sale un icono negro con un play en la mitad, click y ya.

martes, 5 de mayo de 2009

Imagen .nrg a .iso

Resulta que me descargue una imagen de un programa pero estaba en el formato de Nero .nrg y encontre esta forma para pasarlo a .iso, por ejemplo para que lo reconosca k3b.



  1. Instalas este programita, nrg2iso, muy diciente: $ sudo apt-get install nrg2iso.

  2. Luego simplemente vas a la carpeta donde esta guardado tu .nrg y dices: nrg2iso [nrg-file] [iso-file]. Basicamente, archivo de origen archivo de destino.

miércoles, 22 de abril de 2009

De nuevo VirtualBox!!!!!! kernel driver not instaled

Yo tengo un problemita de sonido....y me puse a molestar con versiones del kernel para ver si se arreglaba asi, pero no....en cambio VirtualBox resintio tantos cambios y la verdad no se por que se negaba a iniciar la maquina virtual sacando un mensaje de error asi:

kernel driver not instalñed virtual box
  • Pero lo sierto es que si estaba instalado y yo seguia usando el mismo kernel de siempre.....el caso es que como buena despistada se daño no se porque. Pero lo que me interesa compartir es como lo arregle. Tienes que instalar las cabeceras kernel, que son algo asi...y no es una definicion precisa...sino lo que yo entendi....bien, incluyen los archivos de cabecera de C que especifican la interfaz entre el Kernel de linux y el userpace de bigliotecas y programas. Los archivos de cabecera definen estructuras y constantes que son requeridas para construir programas mas tipicos. Esto se hace asi:
sudo aptitude install linux-headers-$(uname -r)
  • Luego hay que instalar el controlador para el kernel de VirtualBox, asi:
sudo /etc/init.d/vboxdrv setup

Y luego funciono......
Si alguien me cuenta por que funcionaba....jugue los las versiones del kernel....y aun volviendo a la anterior funciono lo agradeceria.

Chau....