miércoles, 19 de agosto de 2020

248 - SSH Linux

 Cuando  te conectas por ssh a linux debes hacer esto:

ssh Usuario@ip

por ejemplo

ssh carlos@192.x.x.x

una vez que hagas esto linux solicitara el password de acceso, por este medio podrás trabajar en linux

ahora para terminar una sesión únicamente escribe exit



Felices líneas

viernes, 31 de julio de 2020

247. Obtener un valor de un campo de sql separado por un caracter (split)

Tenemos el siguiente problema, existe en una tabla un campo separado por un ID especial por ejemplo

1|hola|mexico|que tal

Estos valores se encuentran en un solo campo, pero deseamos que solo uno de ellos aparezca en la consulta por ejemplo 

mexico

¿Cómo lo hacemos?

1. Para poder manipular el dato de manera eficiente, podemos convertirlo a un campo de tipo XML

 cast(('<X>'+replace(SalidaSeparada,'|' ,'</X><X>')+'</X>') as xml)

este paso reemplaza el separador y convierte el campo en un campo de XML

2. Ejecutemos esta consulta dentro de otra para poder manipularla como un capo tipo XML

select  
   salida.value('(./X)[15]', 'nvarchar(max)') as Salida from (
  select cast(('<X>'+replace(SalidaSeparada,'|' ,'</X><X>')+'</X>') as xml) as salida 
   from  [tabla] with(nolock) ) as tabla

3. La siguiente función nos permite obtener el campo que se encuentra en una posición especifica

salida.value('(./X)[15]', 'nvarchar(max)') 

felices lineas

domingo, 19 de julio de 2020

246. service comand not found linux

Este año planeaba que la escritura de este blog se normalizara paro ha pasado todo lo contrario, cada vez he escrito en forma mas esporádica, sin embargo continuara siendo una pequeña guía para aquel que lo necesite, con temas de computo....

En algunas ocasiones en linux los comandos no se muestran pese a estar instalados, si el comando que buscas se encuentra en sbin, como en el caso de service que es el que se muestra en este ejemplo, es tan sencillo como ejecutar desde la consola.

PATH=$PATH;/sbin

con esto se incluirá la ruta y se podrán ejecutar los comandos


Felices líneas
El alien de México ha llegado

viernes, 19 de junio de 2020

245. Obtener código de pagina web desde linux sin validar certificado

Habíamos visto el uso en el pasado de wget, sin embargo es posible que recibamos el error

ERROR: The certificate of '' is not trusted

tenemos 2 opciones de solución, una descargar los certificados validos, esto lo hacemos con:

sudo apt-get install ca-certificates
Una segunda opción es con

wget --no-check-certificate https://...
Esto nos eliminara este error

Felices lineas

viernes, 5 de junio de 2020

244. Linux 101 - Alta de usuarios

He dejado un poco abandonado el blog, por un lado la pandemia, por otro un incremento de trabajo, se que no me he mantenido en una sola ruta, pero sistemas es tan amplio y hay tanto por aprender que una ruta no es suficiente.

Parte del objetivo de este blog, es ser una ayuda rápida para diversos temas.

Asi tocaremos temas desde muy sencillos a temas complejos.

Bueno el tema del día, ¿Cómo dar de alta un usuario en Linux?

Antes que nada para hacer esto se deben contar con los permisos de administrador, asi que se debe ejecutar:

sudo useradd [usuario]

ya que creamos el usuario, es necesario establecer un password para el mismo, para ello debemos ejecutar

sudo passwd [usuario]


Felices líneas

viernes, 17 de abril de 2020

243. Entity Framework MySQL

Existen algunos prerequisitos que se deben tener instalados para poder usar entityFramework con MySQL.


MySQL for Visual Studio y Connector/NET

Una vez hecho esto creamos un proyecto en Visual Studio


Es necesario que agreguemos algunos paquetes de nuget a la aplicación

MySql.Data



MySql.Data.Entity



MySql.Data.EntityFramework



Ahora es necesario hacer una modificación en el archivo de configuración de nuestra aplicación.

En la sección Provider vamos a encontrar que existen 2 provider para MySql.Data.MySqlClient




Uno corresponde a la versión que acabamos de instalar, y uno es de una version anterior, asi que comentemos el de la versión anterior.


Es necesario recompilar la aplicacion.

Y generemos un archivo de EntityFramework




Y con esto podemos usar Entity Framework


Felices Lineas

martes, 14 de abril de 2020

242 - Claves foráneas SQL Server

La forma facil de obtener las tablas relacionadas a una tabla en SQL Server es

exec sp_fkeys 'Tabla'

Esto nos mostrara las relaciones de una tabla con otras tablas en la base de datos


Felices lineas

241 - MySQL obtener esquema de la base de datos

mysqldump.exe es una utilidad que nos permite obtener el esquema de una base de datos de MySQL, esta herramienta se encuentra dentro de las utilidades de MySQL.

Para ejecutarla es necesario hacer lo siguiente:

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqldump.exe  --routines --add-drop-table --disable-keys --extended-insert --host=192.X.X.X --column-statistics=0 --port=3306 --user="root" --password="**********" Base_De_datos

Esto nos mostrara el esquema de la base de datos


Felices lineas

martes, 18 de febrero de 2020

240 - Xamarin (8) - Escribir QR

Continuemos con Xamarin, como comente el objetivo de esta serie de post es trabajar en la interfaz de usuario, para generar una mejor experiencia.

Hoy vamos a revisar como generar un QR en nuestro celular, esto es muy útil sobre todo en nuestro dias por que la cantidad de aplicaciones que generan un QR se ha incrementado día a día.

Bueno pues ¿Que debemos hacer?

1. Agreguemos las referencias


2. Inicialicemos la dll en cada uno de los dispositivos.
2.1 Para el caso de android en el archivo MainActivity.cs debemos agregar lo siguiente:


Vamos a agregar en OnCreate la linea que se encuentra resaltada

ZXing.Net.Mobile.Forms.Android.Platform.Init();

2.2 Para el caso de IOS, en el archivo AppDelegate.cs


Agregaremos en FinishedLaunching la siguiente linea

ZXing.Net.Mobile.Forms.IOs.Platform.Init();


3. Agreguemos un nombre a nuestro stacklayout para poder agregar un nuevo control desde código

 <StackLayout x:Name="stacalta" HorizontalOptions="Center" VerticalOptions="Center">
        </StackLayout>

4. Ahora si a generar nuestro QR


            ZXingBarcodeImageView barcode = new ZXingBarcodeImageView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions = LayoutOptions.FillAndExpand,
                BarcodeFormat = ZXing.BarcodeFormat.QR_CODE,
                BarcodeValue = "hola",
        };

            barcode.BarcodeOptions.Width = 700;
            barcode.BarcodeOptions.Height = 700;
            barcode.BarcodeOptions.Margin = 10;

            stacalta.Children.Add(barcode);

¿Y que hace este código?

 ZXingBarcodeImageView barcode = new ZXingBarcodeImageView
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions = LayoutOptions.FillAndExpand,
                BarcodeFormat = ZXing.BarcodeFormat.QR_CODE,
                BarcodeValue = "hola",
        };
            barcode.BarcodeOptions.Width = 700;
            barcode.BarcodeOptions.Height = 700;
            barcode.BarcodeOptions.Margin = 10;

Establece las características que tendrá el control que estamos generando.

La propiedad que dice cual es el valor a generar es BarcodeValue.

por ultimo agregamos el control a nuestra interfaz.

stacalta.Children.Add(barcode);




Felices lineas


jueves, 13 de febrero de 2020

239 - Xamarin (7) - Switch

Uno de los controles de mas uso en una aplicación móvil es el swich, este control nos permite hacer una selección entre un conjunto de opciones, su forma mas sencilla de invocación es:

Esto nos genera algo como esto



Sin embargo esto muchas veces no nos sirve, ya que nos falta el texto que nos indique el objetivo de este control.

Esto lo haremos con el siguiente código:

                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*" />
                            <ColumnDefinition Width="Auto" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="auto" />
                        </Grid.RowDefinitions>
                        <Label Text="Nombre Completo"
                                   FontSize="18"
                               Grid.Row="0" Grid.Column="0"
                                   TextColor="White"/>
                        <Switch Grid.Row="0" Grid.Column="1"
                                VerticalOptions="Center"
                                OnColor="LightBlue"
                                ThumbColor="LightGray" />
                    </Grid> 

Al ver esto en el emulador



Con esto podemos empezar a dar formato al control.

Felices líneas