Añadir origen de nuget por defecto

Problema

Recientemente he tenido que reinstalar mi equipo de trabajo, y comprobando que la nueva instalación funcionaba como la anterior me he encontrado que al recompilar un proyecto hecho con .NET5 no compilaba (le falta encontrar los origenes de Nuget), dando el siguiente mensaje:

Continue reading

Instalar Oh My Posh y personalizar el prompt del terminal

Introducción

Oh My Posh es un motor para el prompt del terminal de windows, que permite ser personalizado para cualquier shell que tenga la capacidad de ajustar la cadena de solicitud con una función o variable (usaremos powershell).

Es muy útil si programas y usas GIT porqué te muestra información útil, depende del tema que se use, pero si estás en un directorio en un repo git, la rama de trabajo, cuantos commits estás por detras del remote, cuantos ficheros pendietes de commit, si ha habido un error, y más …

El objetivo es tener un prompt (parecido, no esté en concreto necesariamente) como sl siguiente:

Continue reading

Cómo unir commits en git en uno sólo [ACTUALIZADO]

En ocasiones ocurre que necesitamos juntar varios commits the git. Casó típico: en tu trabajo diario con git vas cumpliendo poco a poco mini hitos que te pones, pero a la hora de compartir el trabajo o de enviar los cambios a un repositorio compartido sólo se permite enviar el trabajo en un único commit agrupado.

¿Cómo solucionarlo? La solución se llama hacer un squash de los commits.

Continue reading

Log de mensajes HTTP en Mule 4

Introducción

Mule es ESB (Enterprise Service Bus) Se usa para enviar/recibir mensajes heterogéneos entre diferentes productos/consumidores.

Admite muchos componentes de transporte y servicio como JMS, SOAP, JBI, BPEL, EJB, AS/400, HTTP, JDBC, TCP, UDP, SMTP, FILE, FTP y más.

Como en Internet el idioma padre es HTTP vamos a ver cómo hacer logging de las peticiones y respuestas HTTP que pasan por mule.

Continue reading

Configurar SSH para usar diferentes pares de claves con bitbucket y otros servicios git [ACTUALIZADO]

Introducción

Normalmente uso git como herramienta de control de código fuente. Por lo general el escenario que me he encontrado es una única cuenta en mi equipo. Ya que en equipo personal hago mis pruebas con bitbucket y en el trabajo con el servidor GIT que ponga a mi disposición la empresa.

En la actualidad, trabajo con un servidor GIT centralizado pero algunas entidades con las que colaboramos en el trabajo tienen sus propios servidores GIT. Esto plantea un escenario nuevo. Ya que si usas git sobre protocolo HTTP te da igual pero hoy en día por cuestiones de seguridad es muy recomendable SSH y en este caso es donde aparece el “problema”.

No es un problema, claro, pero para poder trabajar contra varios servidores con claves de acceso RSA para SSH diferentes es necesario configurar un poco el equipo. El siguiente ejemplo lo he hecho en Windows 10 con Git Bash pero en un shell de GNU/Linux o macOS sugpongo que irá igual (o muy parecido).

Continue reading

Cómo recuperar un ZIP de una versión antigua de un commit en Git

Introducción

En ocasiones, estamos desarrollando y queremos obtener una versión anterior de un proyecto. Lo normal es hacer uso de los tags, ¿pero qué hacer cuando no se dispone de  un tag marcando una versión completa? Se puede obtener un zip del proyecto simplemente indicando el código hash del commit deseado.

Solución

Podemos usar el comando git archive, así

git archive --format zip --output example.zip <codigo_hash_commit>

Referencias

  1. Comando git-archive

Para que sirve using en c#

La instrucción using:

using(var disposableObject = new object_that_implements_IDisposable()) { ... }

es una construcción usada para ahorra código al usar una estructura que implemente IDisposable cómo esta:

var disposableObject = new object_that_implements_IDisposable()
try
{
    ...
}
finally
{
    if(disposableObject != null)
    {
        ((IDisposable)your_object).Dispose();
    }
}

Esta instrucción sólo tiene sentido para declarar objetos que implementen el interfaz IDisposable

Referenciausing (Instrucción, Referencia de C#)

Obtener contenido binario en un Select en Informix

Ver hexadecimal en Informix

En ocasiones resulta interesante poder ver el cotenido de un campo de base de datos en binario (o hexadecimal). Por ejemplo para tema de charsets, o por verificar la forma de almacenarlo.

En infromix tenemos una manera de hacerlo muy sencillo:

SELECT CAST(nombre_campo AS BYTE)
FROM nombre_tabla
WHERE expresion_condicion;

Un ejemplo de resultado:

(nombre_del_campo)                                        
----------------------------------------------------
af  61  6c  75  7a  6a  65  20  64  72  65  77  6e  
52  6f  6c  65  74  79  20  70  6c  65  63  69  6f

Espero que resulte útil.

Referencias

CAST Expressions: (visto 6 de julio de 2017) https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_0191.htm

Configurar proxy para Atom

Problema

En el trabajo usamos un proxy como en muchas grandes empresas. Uno de los diferentes editores que so es Atom (https://atom.io/). Y el problema es para instalar cualquier nueva características como un paquete, tema, etc.

Al acceder al gestor de paquetes (pulsar CTRL + COMA) y buscar un paquete no podremos instalarlo. En ese caso obtendremos el error:

tunneling socket could not be established, cause=connect ETIMEDOUT 192.169.35.2:3000

Solución

Para solucionarlo debemos configurar el gestor de paquetes de atom (APM) y esto sólo se puede hacer desde consola:

apm config set proxy "http://localhost:3128"
apm config set https_proxy proxy "http://localhost:3128"

Hecho esto, abrimos Atom y a trabajar:

Referencias

Obtener vistas relacionadas en Oracle

Introducción

En ocasiones estamos manejado vistas o elementos de PL/SQL que necesitamos saber que relación existe entre ellos. Para esto oracle nos ofrece la vista user_dependencies que relaciona un objeto (vista, package, function, procedure) con otro si éste es dependencia de otro.

Caso de pruebas

Supongamos una vista ALUMNOS que se usa para hacer consulta, se consume en 1 procedure y 1 function. Si ejecutamos una consulta como la siguiente:


SELECT * FROM user_dependencies
  START WITH name = 'ALUMNOS'
  CONNECT BY PRIOR TRIM(referenced_name) = TRIM(name);

Obtendremos un resultado como el siguiente, donde veremos en la columna de la izquierda para cada ocurrencia de la izquierda en que elemento de la derecha esta como una dependencia.

Referencias

  1. USER_DEPENDENCIES:
    https://docs.oracle.com/cd/B28359_01/server.111/b28320/statviews_5252.htm
  2. ALL_DEPENDENCIES:
    https://docs.oracle.com/cd/B28359_01/server.111/b28320/statviews_1066.htm#i1576452