Problema de autenticación Bitbucket

Este problema me sucedió de un día para otro cuando quise hacer commit and push desde Visual Studio me pedía mis credenciales de Bitbucket, pero no las aceptaba a pesar de comprobarlas iniciando sesión directamente en web, siempre había trabajado de la misma manera y sin ningún problema hasta ahora, estos son los errores que me aparecían.

En la ventana de Team Explorer

En la ventana Output

Incluso en la consola de comandos

Probé todas las soluciones que ofrece el internet

  • Borrar las credenciales desde el Panel de Control
  • Borrar la carpeta Git de TeamFoundation\Team Explorer en la carpeta de instalación de Visual Studio
  • Cambie el usuario y contraseña de Bitbucket
  • Crear un proyecto nuevo para clonar el repositorio

Entre otras cosas, pero nada de esto funcionó, me di cuenta que el problema no estaba en la computadora sino en la cuenta de Bitbucket directamente

Solución

La solución fue crear una contraseña de aplicación en Bitbucket, en Personal Settings

Yo marqué todas las opciones, en Label le puse Git (“prueba” para este ejemplo) para identificarla

Te genera una contraseña y con el mismo usuario la puse en Visual Studio y ya se pudo conectar

Se pudo hacer push y sincronizar las ramas nuevas como siempre

Loading

INSTALL_FAILED_USER_RESTRICTED

Error al correr aplicación en celular desde Android Studio, molesto error que al parecer aparece en celulares Xiaomi y/o con sistema MIUI

Error:

Failed to commit install session 309689147 with command cmd package install-commit 309689147. Error: INSTALL_FAILED_USER_RESTRICTED: Install canceled by user

Error     Installation did not succeed.
	  The application could not be installed: INSTALL_FAILED_USER_RESTRICTED
	  Retry

Session 'app': Installation did not succeed.
	  The application could not be installed: INSTALL_FAILED_USER_RESTRICTED
	  Retry

Solución:

La solución es muy sencilla solo hay que activar la opción Instalar vía USB en las opciones de desarrollador del teléfono, junto a la Depuración USB

Solución 2:

05/20 09:45:36: Launching 'app' on Physical Device.
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_USER_RESTRICTED

List of apks:
[0] 'D:\Documentos\DESARROLLO\ANDROID\Random\app\build\outputs\apk\debug\app-debug.apk'
Installation via USB is disabled.
Retry

Si ya está activa la configuración Instalar vía USB y el error está sucediendo a causa de una actualización del SO del teléfono entonces podemos desactivar la optimización MIUI, esto hará que nos pregunte de nuevo si permitimos la depuración por USB, entonces aceptamos.

Desactivar la Optimización MIUI

Casi al final de las Opciones de desarrollador encontraremos la opción Restablecer valores predeterminados

restablecer_valores_predeterminados

Presionamos varias veces hasta que aparezca debajo la configuración Activar optimización MIUI y la desactivamos

optimizacion miui

Aceptamos la advertencia

aviso miui

En mi caso el teléfono me pregunto si permito la depuración por USB nuevamente

aceptar_depuracion_usb

*Pero después volví a activar la optimización MIUI y ya no apareció el error lo que nos lleva a la Solución 3.

Solución 3:

05/20 09:45:36: Launching 'app' on Physical Device.
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_USER_RESTRICTED

List of apks:
[0] 'D:\Documentos\DESARROLLO\ANDROID\Random\app\build\outputs\apk\debug\app-debug.apk'
Installation via USB is disabled.
Retry

Puede ser que debido a una actualización de Android como del sistema MIUI nos aparezca este error y que solamente necesitemos desvincular el teléfono de la depuración por USB y activarla de nuevo

opciones_de_desarrollador
opciones_de_desarrollador

Revocamos los permisos de depuración por USB

revocar_depuracion_usb

Desactivamos y activamos la depuración por USB

depuracion_por_usb

Aceptamos la depuración por USB

permiso_depuracion_usb
aceptar_depuracion_usb

Loading

Cómo saber si estoy conectado a Internet con C#

No es preciso saber si una computadora esta conectada a Internet con C# pero podemos saber si efectivamente se realizo la conexión a un sitio especifico y deducir si la computadora esta efectivamente conectada o no.

Podemos verificar un par de cosas que si bien no nos aseguran que se realice una conexión efectiva si pueden ayudarnos a verificarla.

Primero podemos revisar la conexión a la Red local, si no esta conectada entonces no hay Internet, de lo contrario solo podemos asegurar que esté conectada al módem por ejemplo mas no que tenga salida a Internet.

string Estado = "";
bool RedActiva = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
 
if (RedActiva)
     Estado = "Se estableció conexión con la red local";
else
     Estado = "No está conectado a la red";

Ahora si estamos conectados a la Red podemos enviar un ping a una pagina en Internet para asegurar la conexión.

string Estado = "";
System.Uri Url = new System.Uri("https://www.google.com/");

System.Net.WebRequest WebRequest;
WebRequest = System.Net.WebRequest.Create(Url);
System.Net.WebResponse objetoResp;

try
{
     objetoResp = WebRequest.GetResponse();
     Estado = "Se establecio conexión a internet corretamente.";
     objetoResp.Close();
}catch (Exception e)
{
     Estado = "No se pudo conectar a Internet " + e.Message;
}
WebRequest = null;

Si se realiza correctamente podemos asegurar que si hay conexión, de lo contrario tenemos que esperar a que entre al catch y eso puede tardar unos segundos.

No se puede hacer conexión con todos los sitios por la configuración de cada uno de ellos, con google.com si se puede y es el que mas se usa para estos casos, de lo contrario puede arrojar un mensaje como este

No se puede crear un canal seguro SSL/TLS.

Pero eso no asegura que la conexión fue fallida.

Loading

Crear una DataTable en C#

Vamos a crear una DataTable y agregarle columnas y filas manualmente

Primero declaramos la Tabla, la Columna y la Fila

DataTable tabla = new DataTable();

// Variables para las columnas y las filas
DataColumn column;
DataRow row;

Construimos la primera Columna asignándole Nombre y Tipo de datos y la agregamos a la Tabla

// Se tiene que crear primero la columna asignandole Nombre y Tipo de datos    
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "Codigo";
tabla.Columns.Add(column);

Tenemos que hacer lo mismo por cada Columna que queramos agregar

// Se tienen que crear todas las columnas que queramos
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Descripcion";
tabla.Columns.Add(column);
            
column = new DataColumn();
column.DataType = Type.GetType("System.Decimal");
column.ColumnName = "ValorUnitario";
tabla.Columns.Add(column);

Ahora agregamos los registros a nuestra Tabla, para eso creamos una Fila que tenga relación con la Tabla y por cada Columna llenamos los valores que queramos y por ultimo agregamos la Fila a la Tabla

// Se crea una fila por cada registro que necesitemos agregar    
for (int i = 1; i < 11; i++)
{
     row = tabla.NewRow();
     row["Codigo"] = i;
     row["Descripcion"] = "Nombre del codigo " + i.ToString();
     row["ValorUnitario"] = i * 2;
     tabla.Rows.Add(row);
}

Este es el resultado

Así queda el código completo

DataTable tabla = new DataTable();

// Variables para las columnas y las filas
DataColumn column;
DataRow row;

// Se tiene que crear primero la columna asignandole Nombre y Tipo de datos    
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "Codigo";
tabla.Columns.Add(column);

// Se tienen que crear todas las columnas que queramos
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Descripcion";
tabla.Columns.Add(column);
            
column = new DataColumn();
column.DataType = Type.GetType("System.Decimal");
column.ColumnName = "ValorUnitario";
tabla.Columns.Add(column);

// Se crea una fila por cada registro que necesitemos agregar    
for (int i = 1; i < 11; i++)
{
     row = tabla.NewRow();
     row["Codigo"] = i;
     row["Descripcion"] = "Nombre del codigo " + i.ToString();
     row["ValorUnitario"] = i * 2;
     tabla.Rows.Add(row);
}

Loading

Poner enlaces en las publicaciones de Instagram

Te enseñamos a poner enlaces en Instagram, imagino que ya has buscado hasta el cansancio la manera de poner enlaces en tus publicaciones de Instagram sin tener más resultado que poner el enlace escrito en texto plano sin ninguna función, esto funciona hasta cierto punto en nuestros seguidores que nos están viendo desde un navegador en una computadora.

Pero seamos honestos la gran mayoría de usuarios de Instagram lo consultan desde sus teléfonos inteligentes por lo que el proceso de copiar el texto y abrirlo en el navegador es un tanto complicado.

Desafortunadamente Instagram no permite poner enlaces directamente en las publicaciones y sabemos que el único enlace funcional es el de la biografía, pues con eso es suficiente.

Vamos a crear una pagina gratis con Google Sites en la que podemos poner botones o imágenes con los enlaces a donde quieras y puedes poner los que tu quieras y poner el enlace en nuestra biografía.

Crear el sitio

Lo primero es tener nuestra cuenta de Google y estar logueados.

Google Sites

Ahora crearemos un nuevo sitio para poder publicarlo, hay dos formas sencillas de crearlo.

La primera se hace yendo a las aplicaciones de Google (en los puntitos). Seleccionando Más y después Aún más de Google, siguiendo para abajo del scroll hasta llegar a donde dice Conoce todos los productos y seleccionar Google Sites.

Google Sites
Google Sites
Google Sites
Google Sites

La segunda se hace entrando en Google Drive directamente y Crear nuevo > Más > Google Sites.

Google Sites

Google Sites

Una vez que se haya creado el sitio nos aparecerá de la siguiente manera por defecto.

Google Sites

Primero vamos a modificar el título que es el que aparece en el título del navegador (en las pestañitas), después en Encabezado, podemos poner una imagen de fondo, la que nosotros queramos, en este caso dejaré sólo el título para que no tarde mucho en cargar.

Google Sites

Como podemos ver,  la estructura se maneja por bloques y para lo que queremos hacer que es una galería de imágenes con enlaces hacia nuestras entradas o vídeos. El que mejor se acomoda o que se ve más cómodo es el diseño de tres columnas y ese lo arrastramos a nuestro sitio.

Sólo queremos las imágenes pues le quitamos el título y descripción de cada columna, para eso solamente le damos clic y en las opciones que nos aparece seleccionamos el cesto de basura.

Google Sites

Ahora agregamos las imágenes que queremos que aparezcan seleccionando el icono del centro que nos muestra unas opciones de los elementos que podemos agregar incluyendo vídeos, mapas, calendarios y documentos de Google Drive, nosotros elegimos la opción de subir y seleccionamos la imagen de nuestra computadora.

Google Sites

Si la imágen no es cuadrada se hará un recorte para que puedan cuadrar las dimensiones con la altura del elemento del sitio, para que la imágen quede con las dimensiones correctas al elegir el elemento con la imágen la opción que dice Anular Recorte (Cuadrado Punteado).

Google Sites

Para agregar el enlace se hace seleccionando la imagen y pinchando en la opción Insertar enlace, la que nos permite agregar la dirección que queramos.

Google Sites

Hasta éste momento tenemos nuestro sitio en el editor, para ver el resultado final tenemos el botón de Vista previa, que nos muestra precisamente el resultado final, tanto en web, tablet y smartphone pero aún sin que el sitio esté publicado.

Google Sites
Google Sites

Si lo prefieres en lugar de poner imágenes también puedes poner botones con el nombre y el enlace que quieras.

Google Sites
Google Sites

Una vez que creamos que hemos terminado pues solamente nos queda el publicar el sitio ya que hasta ahora solo lo tenemos el archivo editable, bueno para eso tenemos el botón Publicar.

Google Sites

Tenemos que llenar algunas configuraciones para que eso suceda.

Dirección web: elegimos la dirección con la que queremos que se encuentre nuestro sitio en Internet, claro que después de la ruta de sitios de Google por ser un servicio gratuito.

Se puede utilizar una URL personalizada aunque tienes que demostrar propiedad del dominio.

También puedes gestionar quién puede ver tu sitio, en este caso lo dejamos tal como esta, para que cualquier usuario pueda verlo.

Por último podemos solicitar que los buscadores NO indexen nuestro sitio, lo dejaremos sin marcar para que pueda ser encontrado en alguna búsqueda cualquiera que nuestro objetivo es que lo vean la mayor cantidad de personas posibles y redireccione a nuestro contenido.

Google Sites

Listo ahora cualquier persona con el enlace o que lo encuentre de casualidad puede ver nuestro sitio y para obtener el enlace de nuestro sitio junto al botón de Vista previa tenemos el botón que nos copia el enlace del sitio al porta papeles listo para pegarlo en nuestro perfil de Instagram.

Google Sites

Editar el sitio

Cuando queramos cambiar cualquier elemento de nuestro sitio solo entramos a editarlo desde Google Drive.

Google Sites

Realizamos los cambios, pero hay que tener en cuenta que mientras no Publiquemos los cambios no los veremos reflejados en el sitio en la URL publicada.

Cabe decir que si ya está publicado el sitio, ya no tendremos que llenar las opciones de dirección y URL, etc. Solamente con publicar y listo.

Google Sites


Loading

Obtener url actual con Javascript y JQuery

Veremos cómo obtener la URL de la página en que nos encontramos con Javascript y JQuery.

Javascript

Dentro de Javascript tenemos un objeto llamado window.location que nos permite obtener la URL de la página donde nos encontremos.

https://www.localhost.com/algundirectorio/index.html?variable=valor#18

var Url = window.location;

Pero podemos separar nuestra URL por si queremos saber solamente una parte de esta.

 

JQuery

En JQuery para obtener la URL usamos:

var Url = $(location).attr('href');

Loading