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

jueves, 6 de febrero de 2020

238 - Xamarin (6) - Los iconos no se muestran en Android tabBar


El problema es el siguiente al momento de ejecutar la aplicación en el emulador y con el tabBar en la parte inferior, los iconos no se muestran.



Pero al verlos desde la pantalla de diseño de visual studio estos si se ven.



¿A que se debe esto?

Android esta presentando problemas al momento de cambiar el tamaño del icono al correcto, existen 2 formas de solucionarlo, una es crear un custom render, no lo recomiendo ya que al cambiar la versión del SDK este método puede ocasionar problemas.

El segundo es emplear iconos de tamaño estándar.

Empleen un icono de 512 x 512 y con eso problema resuelto.

Otra cosa, la imagen que empleen debe tener color transparente y ser formato PNG, de lo contrario no se visualizara



Al ejecutarlo




Felices lineas

domingo, 26 de enero de 2020

237. Query para obtener todas las relaciones existentes entre las tablas de sql server

Hola:

Les dejo un query para obtener todas las relaciones que hay entre tablas de sql server

SELECT
    fk.name 'FK Name',
    tp.name 'Tabla padre',
    cp.name, cp.column_id,
    tr.name 'Tabla de referencia',
    cr.name, cr.column_id
FROM 
    sys.foreign_keys fk
INNER JOIN 
    sys.tables tp ON fk.parent_object_id = tp.object_id
INNER JOIN 
    sys.tables tr ON fk.referenced_object_id = tr.object_id
INNER JOIN 
    sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN 
    sys.columns cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN 
    sys.columns cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id
ORDER BY
    tp.name, cp.column_id


Felices Lineas

236. Query para obtener el tamaño de las tablas SQL

Hola

Les dejo este query que permite que sepan que cantidad de espacio y cantidad de registros ocupan las tablas en una base de datos

DECLARE @TableName VARCHAR(100)  
DECLARE tableCursor CURSOR
FOR
select [name]
from dbo.sysobjects
where  OBJECTPROPERTY(id, N'IsUserTable') = 1
FOR READ ONLY
CREATE TABLE #TempTable
(
    Nombre_tabla varchar(100),
    Renglones int,
    Espacio_reservado varchar(50),
    Tamano_datos varchar(50),
    Tamano_indice varchar(50),
    Espaciosinusar varchar(50)
)
OPEN tableCursor
FETCH NEXT FROM tableCursor INTO @TableName
WHILE (@@Fetch_Status = 0)
BEGIN
    INSERT  #TempTable
        EXEC sp_spaceused @TableName
    FETCH NEXT FROM tableCursor INTO @TableName
END
CLOSE tableCursor
DEALLOCATE tableCursor
SELECT *
FROM #TempTable order by Renglones desc
DROP TABLE #TempTable


Felices Lineas