Error al compilar en Android Studio 4.0: CIRCULAR REFERENCE:com.android.tools.r8.a: Invoke-customs are only supported starting with Android O

Resulta que estuviste construyendo tu APP desde Android Studio 4.0 y no te marcó ningún tipo de error de codificación pero al querer compilar para desplegar en tu ADV te manda el siguiente error:

CIRCULAR REFERENCE:com.android.tools.r8.a: Invoke-customs are only supported starting with Android O  (--min-api 26)

Pues nada y no pasas de ahí y le buscaste por todos lados, pues resulta que es un error que no tiene nada que ver con tu código ni con tu app, después de buscar mucho me encontré con la solución en esta entrada:


La solución consiste en:

1. Ve al menú de Android Studio en la sección ->Project Structrure





2. Del lado izquierdo da Click en "Modules"




3. En la sección "Source Compatibility" y "Target compatibility" selecciona: $JavaVersion.VERSION_1_8 si estás usando Java 8, seleccionad Java 7 si estás usando Java 7 o la 10 en su caso.





4. Da Click en el botón Apply y después en el botón OK.


5. Da Click en el menú Build y luego en Rebuild.

Recuperar o cambiar contraseña de MySQL 8.0 en MacOS Catalina 10.15

Resulta que por motivos de espacio (128 GB) en una Macbook Air 2017, procedí a cambiar de disco duro de estado sólido y reinstalé el Sistema Operativo y también las aplicaciones que necesito, por alguna razón al instalar MySQL 8.0 no anoté la contraseña y al llegar el momento de querer recuperar los respaldos que tenía almacenados no pude conectar con MySQL 😢😢

Bueno, este post es para todos los que como yo necesitan cambiar su contraseña olvidada de MySQL 8.0 y que usan MacOS, en mi caso Catalina 10.15

Primero que nada tienen que entrar a la manzana 🍏 de la parte superior izquierda en: Preferencias del Sistema->MySQL y en la ventana resultante dar click en "Stop MySQL Server"


Luego desde una terminal deberás ejecutar una nueva instancia del servidor MySQL en modo seguro y usando el modificador --skyp-grant-tables. Para esto debemos escribir la siguiente instrucción:

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

Debemos dejar ejecutando la instancia del servidor y abrir otra terminal o una nueva pestaña de la terminal e ingresar al servidor MySQL para poder modificar el password que se nos olvidó, para esto debemos ejecutar:

/usr/local/mysql/bin/mysql -u root

Con lo que nos abrirá el prompt de la terminal MySQL y podremos ejecutar los comandos necesarios:

mysql> use mysql;

En la versión 8.0 ya no existe la función password() de MySQL por lo que se tiene que usar lo siguiente:

UPDATE mysql.user SET authentication_string=null WHERE User='root';

No olvidemos escribir:

FLUSH PRIVILEGES;

Salimos:

exit;

Por último ya podremos ingresar para poner el nuevo password:

/usr/local/mysql/bin/mysql -u root
mysql> use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'nuevopasword';
FLUSH PRIVILEGES;
exit;

Deberas cerrar la instancia MySQL que iniciamos de forma segura con:

sudo /usr/local/mysql/support-files/mysql.server stop

y por último, no se olviden de entrar a la manzana 🍏 de la parte superior izquierda en: Preferencias del Sistema->MySQL y en la ventana resultante dar click en "Start MySQL Server"

Problemas al desplegar una aplicación Web mayor a 50Mb en Apache Tomcat 7 y 8 desde Ubuntu 14.04

La presente entrada la escribo ya que tuve problemas al tratar de desplegar una aplicación web que pesa 65 Mb, mi entorno de trabajo es una computadora con GNU/Linux Ubuntu 14.04 y comento que el despliegue lo intenté hacer desde el manager-webapp que lo instalas fácilmente desde la consola con la instrucción:

sudo apt-get install tomcat7-admin

Para acceder al manager-webapp lo haces con la IP de tu servidor Apache Tomcat seguido del puerto 8080 como se muestra a continuación, en mi ejemplo es: http://192.168.1.91:8080

Es importante mencionar que tienes que tener configurado un usuario y contraseña para ingresar, dicho usuario y contraseña lo configuras con:

sudo nano /etc/tomcat7/tomcat-users.xml

y puedes agregar lo siguiente en la sección <tomcat-users>

<tomcat-users>
<role rolename="tomcat"/>
  <role rolename="manager"/>
  <role rolename="manager-gui"/>
  <user username="tomcat" password="pass" roles="manager,manager-gui,tomcat"/>
</tomcat-users>

El problema al intentar subir archivos war (aplicaciones web) mayores a 50Mb que es el máximo tamaño que viene por default configurado.

Para cambiar dicha configuración, es necesario editar el archivo:

sudo nano /usr/share/tomcat7-admin/manager/WEB-INF/web.xml

Buscar la sección <multipart-config>, ahí indica que tiene configurado 50MB máximo en la parte de la instrucción que dice: <!50MB max ->. Por lo que si quieres subir archivos mayores y que tenga un máximo de 100 MB la sección quedaría de la siguiente forma:

<multipart-config>
   <!- 100MB max en nueva config ->
   <max-file-size>104857600</max-file-size>
   <max-request-size>104857600</max-request-size>
   <file-size-threshold>0</file-size-threshold>
</multipart-config>

Y por último reiniciamos tomcat con:

sudo service tomcat7 restart

Ahí la solución para cuando se presente de nuevo el problema :)

Instalando Youtube-dl en Ubuntu 16.04 Xenial Xerus

En la actualidad ya existen numerosas aplicaciones Web que nos ayudan a descargar videos de Youtube como lo es Savefrom.net, pero muchas de esas aplicaciones no nos dan muchas opciones para descargar lo que nosotros en realidad queremos, es por eso que youtube-dl sigue siendo mi mejor opción.

Para los que aún no están enterados de lo que es youtube-dl, les comento que es un programa que se ejecuta desde la terminal de línea de comandos, como se muestra en la siguiente captura de pantalla de mi terminal.


Ahora pasemos a lo interesante, resulta que recientemente migré a Ubuntu 16.04 Xenial Xerus para hacer pruebas de funcionamiento en una MacBook Air 13 y rápidamente procedí a instalar mi herramienta favorita para descargar música y videos, pero me llevé la sorpresa que al instalar usando:

sudo apt-get install youtube-dl

Y al tratar de ejecutar el comando para descargar el video y extraer el audio para convertirlo en mp3, lo único que obtuve fue el siguiente error: Signature extraction failed: Traceback (most recent call last): .....


Buscando un poco por la red, me di cuenta que la versión de youtube-dl que se instala desde el repositorio default de Ubuntu 16.04 no está tan actualizada como la versión que está publicada en la página oficial, por lo que busqué si existía un repositorio que tuviese actualizada la aplicación, con lo que les muestro que la solución consiste en instalar el repositorio de WebUpd8 PPA como se muestra:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install youtube-dl


Y ahora si, si lo que quieren es descargar un video usamos:

youtube-dl http://VIDEO_URL

Y si lo que queremos es descargar el audio en mp3 y en formato de buena definición usamos:

youtube-dl -t --extract-audio --audio-format mp3 --audio-quality 128K https://VIDEO_URL

Lo único que debemos cambiar es VIDEO_URL por la dirección de tu video de Youtube y a disfrutar :)

En el 6 de Enero, ¿qué festejar?

El 6 de Enero es el día que muchos festejan a los Reyes Magos, para otros muchos, los Reyes no fueron Reyes y tampoco fueron Magos y para otros nunca existieron. Pero, ¿qué debemos festejar?, no se si compartas lo que pienso, pero lo escribiré para que sea motivo de reflexión.

Debemos festejar el ver a nuestros hijos con ilusiones, el ver que aún creen en algo o en alguien, el ver que creen!.



Debemos festejar el proceso de la creación de la carta, la primera carta que escribe tu hijo es el mejor regalo, eso es lo maravilloso y vale oro.

Debemos festejar sus ojos iluminados, debemos festejar la unión, el vínculo, el pretexto para reunirnos como familia al rededor de la rosca, disfrutar de un café o chocolate de leche que es el favorito de mis hijos.

Debemos festejar la emoción de elegir el regalo que tus hijos quieren, la oportunidad de convertirte en Rey y en Mago por unos momentos.


Festejen la oportunidad de festejar, porque cuando ya no se puede, cuando algo lo evita, cuando falta, es cuando se extraña, cuando te sientes incompleto...

Se libera GNU nano 2.4.0 "lizf"

Con la novedad de que después de algunos años, nos encontramos con la noticia que desde ayer 23 de Marzo de 2015 está liberada la versión 2.4.0 de NANO, el editor de texto desarrollado por la GNU como remplazo de PICO. La nueva versión es conocida con el nombre de "Lizf". 



Dentro de las nuevas características de la actualización y que describen en la lista de correos de GNU Nano-Devel se encuentran:

Un sistema completamente funcional de deshacer (ahora por default).
Bloqueo de archivos compatible con VIM.
Soporte de formatos.
Resaltado de sintaxis.
Muchas correcciones para problemas reportados desde la versión 2.2.

Desde este lugar les mandamos un agradecimiento sincero a todos los desarrolladores involucrados en NANO por regalarnos las mejoras :) y que siga creciendo!

Instalar MySQL Workbench en Ubuntu 13.04

Al estar utilizando Ubuntu 13.04 me encontré con la duda de si podría instalar MySQL Workbench usando el PPA o si ya estaba en los repositorios de Ubuntu y me encontré con que efectivamente ya existe en los repositorios, por lo que únicamente tenemos que escribir en la terminal la siguiente instrucción para poder instalarlo:

sudo apt-get install mysql-workbench


Al terminar, búscalo en el Dash como MySQL y verás que ya existe el icono. La versión que se instala es la 5.2.40 Revisión 8790.


Ahora a trabajar que no hay pretextos.

¿Qué es una huella digital acústica?


Gracias al procesamiento de sonidos y el análisis de audio actualmente podemos contar con aplicaciones en nuestros dispositivos móviles que nos indican el título de una canción, el nombre del artista y hasta la letra de la canción. Algunas de las aplicaciones que pueden hacer tales funciones son SoundHound y Shazam.

Viendo las grandes posibilidades que tenemos actualmente los informáticos, me he dado a la tarea de investigar un poco en cómo trabajan dichas aplicaciones para poder replicar dicha funcionalidad pero ahora aplicándola a otras cosas que no sea la música que tenemos en la computadora. Primeramente veamos a qué le llamamos huella digital ( fingerprint ) y no hay que confundir a dicho término con la imagen visible que deja un dedo sobre una superficie ( huella dactilar ) ya que la huella digital es un mecanismo que permite identificar a un individuo.

De lo anterior podríamos decir que una huella digital acústica es es un pequeño resumen de un archivo de audio, por lo tanto una función f de la huella digital debe coincidir con un archivo de audio x, esto consiste en ir de un gran número de bits a una huella digital de sólo un número limitado de bits.

Actualmente en la UNSIJ estamos trabando en implementar algún algoritmo para crear hullas digitales acústicas de audio para poder almacenarlas en una base de datos, para después poder buscar coincidencias de audios similares.

Existen diversos métodos o técnicas para la identificación de contenido basada en una única y compacta firma ( hash ) derivada de los aspectos relevantes de una grabación de audio. Una función hash es una función que mapea un dato ( posiblemente grande y de tamaño arbitrario ) de un conjunto U a un dato pequeño, usualmente un número entero comprendido entre 0 y M − 1, el cual puede utilizarse como índice en un arreglo, por ejemplo. Al dato a mapear suele llamársele clave, mensaje o cualquier otro nombre dependiendo de la aplicación, mientras que al dato mapeado se le puede llamar valor hash, código hash, o simplemente hash.

hash : U −→ {0, 1, 2, 3, ..., M − 1}

Puesto que las funciones hash pueden mapear elementos de un conjunto más grande a uno más pequeño, es posible que dos o más claves sean mapeadas al mismo valor hash. En este caso se habla de una colisión. Una función hash optima sería aquella que no genere colisiones o que la probabilidad de éstas sea muy baja.

Más adelante intentaremos poner más información al respecto, pero por lo pronto podría servir que se visiten las siguientes ligas:


Por último, me gustaría agradecer a todos los que han visitado Cosmos y Caos haciendo posible las casi 30,000 visitas desde que inició el 16 de Marzo de 2011 ya que eso motiva a que siga publicando la información que podría ser de utilidad para todos ustedes.

Si quieres obtener más información sobre el trabajo de huellas digitales acústicas que estamos haciendo pues no dudes en leer el documento completo.

Instalando Oracle SQL Developer en Ubuntu 12.10

Si no tienes otra opción que trabajar con SQL Developer de Oracle pues te comento que se puede instalar en Ubuntu sin problemas, claro que el proceso de instalación no es automática con ejecutar un archivo que se descarga de Internet pero no es un proceso complicado, iniciemos:

Primeramente tenemos que dirigirnos a la página de descarga y aceptar los términos y condiciones de uso para después seleccionar la descarga que está hasta abajo de la lista ( Other Platforms ).



Tenemos que seleccionar esa opción debido a que Ubuntu trabaja con paquetes .deb que son originarios de la distribución Debian y como Ubuntu es una distribución basada en Debian pues utiliza ese formato de paquetes.

Para poder descargar el archivo sqldeveloper-3.2.20.09.87-no-jre.zip tenemos que tener una cuenta de Oracle Web así que prepárate para rellenar un formulario con tu nombre, correo, puesto, dirección de empresa etc, etc...

Una vez que tengamos el archivo .zip en alguna carpeta donde tengamos los permiso adecuados, debemos proceder a descomprimir el archivo y automáticamente quedarán dentro de un directorio llamado sqldeveloper. Posteriormente debemos ingresar a la carpeta donde se guardaron los archivos y seleccionar el archivo sqldeveloper.sh y con el botón derecho del ratón seleccionar la opción propiedades, con lo que saldrá la ventana que se muestra a continuación y lo que debemos hacer es seleccionar la pestaña llamada Permisos y dar click sobre la opción Permitir ejecutar el archivo como un programa.


Lo anterior es como escribir en una ventana de la terminal el comando:

sudo chmod +x sqldeveloper.sh

Acto seguido debemos ejecutar en la terminal el comando (claro que todos estos comandos debemos ejecutarlos dentro del directorio donde descomprimimos los archivos):

./sqldeveloper.sh


Recuerda que para poder ejecutar SQL Developer debemos tener instalada como mínimo la versión JDK 1.6.0_04 ya que si tenemos instalada la versión 1.7 o posterior podemos obtener el siguiente mensaje:


Yo pasé por alto el mensaje y si pude ejecutar SQL Developer pero aún me faltan hacer más pruebas para ver si no se tienen problemas en el trabajo diario.


Por último, se que a muchos no les gusta la idea de ejecutar el programa desde la terminal entrando hasta el directorio de trabajo y cosas de esas por lo que podríamos crear un lanzador de la aplicación y para ello tenemos que teclear en el Dash ( ALT + F2 ) de Ubuntu la palabra Menú principal y ejecutar el programa, con lo que nos aparecerá la siguiente ventana:


Debemos dar click sobre la opción Elemento nuevo para que podamos crear un lanzador de la aplicación y debemos rellenar los datos como aparece en la imagen anterior.

Espero que sea de ayuda :)

Problemas con acentos y ñ en JSP con MySQL

Resulta que trabajando con una página con JSP donde se debería poder capturar en un campo textArea de un Form un texto de máximo 200 caracteres pude toparme que no basta con tener configurado el tipo de codificación en la tabla de MySQL (yo lo tenía en latin1_spanish_ci) como se ve en la Figura 1.

Figura 1. Cotejamiento "latin1_spanish_ci"

Ya tampoco bastaba con tener la etiqueta META de especificación del conjunto de caracteres utilizados en la página con UTF-8 como se puede ver en la Figura 2.

Figura 2. Especificación del conjunto de caracteres para la página Web.

Aún me faltaba algo porque los textos me aparecían con símbolos raros como los mostrados en la Figura 3.

Figura 3. Texto con caracteres raros, no aparecía con acentos ni muestra Ñ.

Es por eso que buscando un poco en Internet, encontré la solución al problema en la página de A Wev0. Donde indica que se podría recodificar los datos obtenidos de MySQL al formato UTF-8 con la siguiente instrucción:

String msg=new String(request.getParameter("mensaje").getBytes("ISO-8859-1"),"UTF-8");

Así que con manos a la obra procedí a utilizarlo para convertir los datos y taran! como arte de magia el problema estaba solucionado!





Eliminar registros de Empathy y Pidgin en Ubuntu 12.04

Si eres de los que no les gusta dejar registros ( logs ) de todo lo que sucede en tu computadora puedes seguir estas sugerencias.

En caso que tengas Pidgin como cliente de mensajería y que hayas iniciado conversaciones primero tendrás que eliminar los registros ubicados en:

/home/systemUserName/.purple/logs/

Después tendrás que ingresar a Pidgin e ir al menú Herramientas->Preferencias o presionar ( Control + P ) para después seleccionar en la barra de menús de la izquierda la opción Registro y quitar la selección de las opciones que ahí se especifican.


En caso que tengas a Empathy como cliente de mensajería (que ya viene por default en Ubuntu desde hace ya unas versiones anteriores) tendrás que eliminar los registros ubicados en:

/home/.local/share/TpLogger/logs/

En las versiones anteriores a Ubuntu 12.04 al parecer esos registros estaban ubicados en:

/home/.local/share/Empathy/logs

Por lo que tendrás que verificar la ruta correspondiente a la versión que tengas instalada.

Una vez que tengas eliminados los registros, podrás indicarle a Empathy que ya no siga registrando los datos desde el menú Editar->Preferencias y quitando la selección Registrar conversaciones como se ve en la siguiente imagen.


Por el momento es todo, pero antes de despedirme me gustaría saber: ¿Qué cliente de mensajería sugieres utilizar y porqué?.

Problema con youtube-dl en Ubuntu 12.04

Hace unos días quise utilizar el programa youtube-dl para descargar un video de youtube y me encontré con el problema de que no se podía descargar :( el programa mandaba el siguiente mensaje: "ERROR: unable to download video".


Puse en la terminal:

youtube-dl --version

Y me mandó que la versión que tenía instalada era la 2012.02.27 por lo que busqué un poco en Internet para ver si había un reporte de error generalizado y efectivamente lo hay:

https://bugs.launchpad.net/ubuntu/+source/youtube-dl/+bug/1062966

Ahora, la solución es la siguiente:


Como se puede ver es escribir como super usuario la instrucción para actualizar youtube-dl a la versión 2012.09.27. Aquí las instrucciones para copiar y pegar:

sudo -s
//escribe tu password
youtube-dl -U
exit

Eso es todo! felices descargas y seguimos en contacto...

fuente

De pie el recuerdo caído en el camino - Che Guevara

Poética del Che.

De pie el recuerdo caído en el camino.

De pie el recuerdo caído en el camino,
cansado de seguirme sin historia,
olvidado en un árbol del camino.

Iré tan lejos que el recuerdo muera
destrozado en las piedras del camino,
seguiré siendo el mismo peregrino
de pena adentro y la sonrisa fuera.

Esa mirada circular y fuerte
en un mágico pase de muleta
esquivó en mi ansia toda meta
convirtiéndome en vector de la tangente.

Y no quise mirar para no verte,
sonrosado torero de mi dicha,
invitarme con gesto displicente.

Tomado del libro "Che XXX Vivo" de Leopoldo Ayala, ed. Pablo de la Torriente. 1997

Alternativa a conio.h en Linux Ubuntu usando curses.h

Para los que alguna vez aprendimos a programar con el famosos y antiguo Turbo C que si no mal recuerdo en ese entonces era de la extinta Borland, en esos ayeres pudimos ver que existían funciones como getch(), gotoxy(), color(); que eran parte de una biblioteca propia de Turbo C llamada conio.h y como no es parte del estándar ANSI C no la tenemos en Linux Ubuntu.

Bueno pues ésta entrada es para comentar que existe una biblioteca para Linux que aunque también no es parte del estándar ANSI C la podemos utilizar como alternativa a las funciones que teníamos en conio.h y aquí te digo qué tienes que hacer.

Primero que nada quiero comentar que actualmente estoy utilizando la versión 12.04 de Ubuntu por lo que lo que verás está con esa distribución de Linux.

Debes instalar los paquetes libncurses5-dev y libncursesw5-dev con:

sudo apt-get install libncurses5-dev libncursesw5-dev


Abres tu entorno de desarrollo y prueba escribiendo el siguiente código:


#include <curses.h>

int main() {
  initscr(); //activar el acceso a la pantalla
  clear(); //limpia la pantalla
  move(0,30); //mueve el cursos a la posición 0,30
  printw("Hola");
  refresh(); //mostrar en pantalla lo escrito por printw
  getch(); //espera la pulsación de una techa
  endwin(); //cerrar el acceso a la pantalla
  return 0;  
}



En lo personal me gusta mucho Geany como entorno de programación tanto para PHP como para lenguaje C así que comentaré que después de construir el programa y que puedas construirlo sin problemas tendrás que modificar el comando de construir desde el menú de Geany como se muestra en la siguiente captura:


Deberás poner la opción -lcurses al final del comando construir como se puede ver en la siguiente captura:


Por último, ejecuta el programa y podrás ver el funcionamiento de las funciones antes mencionadas. Bueno, por hoy es todo y no antes mencionar que la información fue vista en las siguientes ligas:

Instalando Google Earth en Ubuntu 12.04

Si quieres instalar Google Earth en Ubuntu 12.04 primeramente debes dirigirte a la siguiente dirección para descargar el paquete correspondiente a tu versión de Ubuntu 32 o 64.


Debes seleccionar el paquete .deb correspondiente que podrás ver en la parte derecha de abajo:


La descarga la puedes almacenar en cualquier carpeta, en mi caso seleccioné el Escritorio. Una vez terminada la descarga pulsa (doble click) sobre el archivo:


Con eso podrás iniciar la instalación desde el centro de software de Ubuntu con un click sobre el botón Instalar y te aparecerá la ventana para pedir la clave:


Una vez terminada la instalación, entra al Dash y escribe Google y aparecerá el icono con el que podrás iniciar el programa y listo! a disfrutarlo.



Mostrando la fecha y hora actual en el panel de Ubuntu 12.04

De forma predeterminada, cuando instalamos Ubuntu 12.04 Precise Pangolin no muestra la fecha en el panel, solamente muestra la hora actual como se muestra en la siguiente captura de pantalla:


Si te gustaría que también se mostrara la fecha actual al lado de la hora tendrás que activarlo poniendo el siguiente comando desde la terminal:


gsettings set com.canonical.indicator.datetime show-date true

Para desactivarlo solamente cambias el true que está al final de la instrucción anterior por: false

En lo personal me gusta mas que se muestre la fecha y hora así que lo dejaré en true :) espero que te sirva y buen día!!

¿Cómo instalar el soporte para MS SQLServer en PHP desde Ubuntu?

Hace ya algunos días que actualicé mi lap a la versión 12.04 de Ubuntu y por desgracia perdía algunos enlaces antes de ese cambio y uno de esos enlaces que tenía guardados era justamente cómo instalar el soporte mssql en PHP.

El día de hoy por más que buscaba siempre encontraba la clásica solución de que tengo que descargar los fuentes de PHP para después compilar el módulo en cuestión y pues yo recordaba que existía una solución más fácil y por fin encontré la información en: Virtual Helpme y ahora pongo aquí la solución para que la tenga como recordatorio y para que otros también la puedan encontrar más fácilmente.

Ingresa a la terminal y escribe:

aptitude install php5-sybase

Después reinicia el Apache:

sudo /etc/init.d/apache2 restart

En el enlace de Virtual Helpme indican que algunas de las funciones del paquete mssql no están disponibles en el paquete php5-sybase y que para solucionarlo se debe instalar lo que pongo abajo pero hasta ahorita no lo he instalado y no he tenido problemas:

pear install --nodeps MDB2_Driver_mssql

Nos seguimos leyendo :)

Cómo instalar Oracle Java 7 en Ubuntu 12.04

Bueno pues resulta que Ubuntu ya está en su Beta 2 y lo tengo instalado en una DELL XPS M1210 funcionando a la perfección :) pero como quería utilizarla no sólo para pruebas pues decidí descargarme el Eclipse Indigo para hacer algunas prácticas con Java y al querer ejecutarlo que me manda el mensaje de que no existe Java instalado :( así que me decidí a buscar en la red cómo instalarlo en Ubuntu 12.04 y me encontré con algunas páginas (UnixMen) que indicaban que existe un PPA pero al querer instalarlo me daba el siguiente mensaje de error:


Como no se instalaba por más que leí y modifiqué algunas cosas del archivo oracle-java7-installer.postinst que se encuentra en /var/lib/dpkg/info/ pues no quedó de otra que buscar otra alternativa y les comento cómo lo conseguí:

Primero que nada ingresar a la página de descarga del Java SE Development Kit y seleccionar que aceptan la licencia de uso, después deberán descargar el archivo tar.gz que corresponda a su versión de Ubuntu 32 o 64 bits, dejo una imagen de la página de descarga:


Por lo general el archivo descargado lo dejamos en la carpeta Descargas por lo que tenemos que descomprimirlo y no importa que sea en la misma carpeta de Descargas:


Después desde la terminal hay que mover el directorio llamado jdk1.7.0_03 a /usr/lib/jvm/jdk1.7.0

sudo mv jdk1.7.0_02 /usr/lib/jvm/jdk1.7.0

Ahora tendrás que ejecutar los siguientes comandos desde la terminal:


sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1


Y después deberás ejecutar:

sudo update-alternatives --config java

Con lo que deberás ver en la terminal algo parecido a:
-------------------------------------------------------------------------------------------------------------

$sudo update-alternatives –config java
There are 3 choices for the alternative java (providing /usr/bin/java).

Selection Path Priority Status
————————————————————
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode
2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode
3 /usr/lib/jvm/jdk1.7.0/jre/bin/java 3 manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/lib/jvm/jdk1.7.0/jre/bin/java to provide /usr/bin/java (java) in manual mode.
----------------------------------------------------------------------------------------------------------------

Y tendrás que seleccionar el número que le corresponda al jdk1.7.0 en el caso anterior es el número 3.

Ahora resta verificar que la versión utilizada será Oracle Java 7 y eso lo hacemos ejecutando desde la terminal:

java -version

Con lo que deberemos ver algo como:



Deberás repetir lo anterior ejecutando los siguientes comandos:

sudo update-alternatives --config javac
sudo update-alternatives --config javaws

Con eso deberás poder ejecutar tu Eclipse Indigo sin problemas :)

Fuente de instalación manual: askubuntu.com

Crítica: Lo estás haciendo mal

El día de hoy leí una entrada del blog de Michael Hall en la que relata lo que en realidad es una crítica y cómo deberíamos hacer una crítica positiva, su entrada Criticism: You’re doing it wrong está dirigida a los usuarios de GNU/Linux Ubuntu, ya que como sabemos, últimamente la distribución ha hecho grandes cambios y tiene planeado seguir haciendo aún mas cambios, por lo que si en realidad quieres hacer un aporte a la comunidad Ubuntu con tus buenas críticas deberías leer lo siguiente:


Crítica: Lo estás haciendo mal

Ha habido una acusación reciente de que la comunidad de Ubuntu no está tomando bien las críticas. Sin embargo, los que hacen las acusaciones parecen tener un malentendido sobre qué es exactamente la crítica.

En un esfuerzo por mejorar la calidad de esa información, he recopilado una lista corta y simple de las cosas que usted puede comprobar para asegurarse de que la crítica en efecto es crítica.

1) "Es una mierda" no es una crítica

Es un insulto. Significa "No tengo respeto por ti, tu tiempo o tus talentos". No se sorprenda cuando el destinatario de este mensaje no esté dispuesto a ayudarle, ni siquiera te escuchará, después de eso.

2) "No me gusta eso" no es una crítica

Es una queja. Con el fin de elevar la queja a crítica, es necesario explicar porqué está mal, pero de una manera que usted de la información suficiente para que pueda ser mejorado. Si usted no es capaz de explicar por qué está mal algo, entonces usted no entiende completamente por qué no le gusta. Y si usted no entiende por qué no le gusta, ¿qué esperanza tenemos de saber cómo solucionarlo?

3) "No es perfecto" no es una crítica

Sabemos que no es perfecto. No es perfecto, porque no somos perfectos. Otra de las consecuencias de nuestro ser mortal es el hecho de que no necesariamente sabemos que algo no es perfecto, así que por favor vuelva atrás y lea  el punto # 2 de nuevo.

4) "Que sea más como X" no es una crítica

Si lo que realmente quiere es X, entonces, utilice X.

Si usted piensa que X está haciendo algo mejor, entonces, explique en qué consiste y por qué es mejor de una manera mejor que "Es mejor porque tieneX, y X es mejor". Una vez más volver atrás y volver a leer el punto # 2.

5) "Se convirtieron en algo diferente" no es una crítica

Sólo porque algo no es lo que quieres, no significa que no es lo que se supone que es. No pida cambios en la naturaleza fundamental de algo. Si hay algo que es fundamentalmente diferente de lo que quiere, busque algo más.

Si sus comentarios no caen en una de estas cinco áreas, entonces hay una gran probabilidad de que sean bienvenidos y haya trabajado en favor de la comunidad de Ubuntu. Si lo hace, entonces yo recomendaría ir en serio atrás y volver a pensar su posición.

Salida a monitor externo con Ubuntu desde una DELL XPS 15 y tarjeta Nvidia

Hace poco en el trabajo nos dieron (por fin) nuestros equipos nuevos y les comento que fue una Laptop DELL XPS 15 L502X y dentro de unas características trae un GPU Nvidia GT540m con la famosa tecnología Optimus de Nvidia, además de que cuenta con salida a monitor externo por puerto HDMI y Mini Displayport pero no tiene la ya conocida salida VGA para conectar un monitor o un cañón común y corriente :(



En resumen, el equipo tiene 2 GPUs y esa tecnología lo que hace es ahorrar batería desactivando el GPU de Nvidia cuando no se necesite y utilizar el GPU de Intel para casi todo /* gran idea no? :(  */ pues el gran problema que esa activación y desactivación del GPU Nvidia se hace por medio del controlador de la tarjeta y en GNU/Linux aún no tenemos en el controlador esa capacidad por lo que no funciona correctamente.

Existe un proyecto que se llama Bumblebee el cual hace posible que se pueda utilizar el GPU Nvidia desde GNU/Linux desde la línea de comandos con algún programa en específico, por ej. Firefox o cualquier otro que quiera que se ejecute con el GPU Nvidia. Si quieres instalar Bumblebee en Ubuntu te puede servir esta información, y también aquí hay otra.

Bueno pues aquí no se resuelve el problema ya que el proyecto Bumblebee aunque ya está en la versión 3.0 aún no tiene la capacidad de utilizar el puerto HDMI como segundo monitor desde GNU/Linux :( por lo que hay que esperar a que eso suceda.

En la búsqueda de información por la red, encontré un comentario que dice que el puerto HDMI funciona con el GPU Nvidia pero que el puerto Mini Displayport funciona con el GPU de Intel y que  es posible conectar por medio de ese puerto una pantalla o monitor externo :) por lo que hay que darse a la tarea de conseguir un conector Mini Displayport que convierta la señal a un VGA como el que pongo en la siguiente imagen /* parte de abajo de la imagen */


Por último, comentarles que hice las pruebas con los dos conectores y con HDMI utilizando el driver Bumblebee sólo pude sacar a monitor externo la ventana del programa que se ejecuta con el comando: optirun nombre_programa así que no es posible ver tu escritorio completo, pero con el conector Mini Displayport si se puede ver todo tu escritorio completo en una pantalla o cañón y sin hacer ningún cambio a tus configuraciones  :) así que esa es la única solución por el momento.

Error al compilar en Android Studio 4.0: CIRCULAR REFERENCE:com.android.tools.r8.a: Invoke-customs are only supported starting with Android O

Resulta que estuviste construyendo tu APP desde Android Studio 4.0 y no te marcó ningún tipo de error de codificación pero al querer compila...