martes, 30 de abril de 2019

198. Obtener la lista de mis maquinas virtuales desde Azure Cloud Shell

En el post anterior vimos como crear una maquina virtual en Azure, esta vez vamos a ver desde la linea de comando de Azure Cloud Shell, como saber que maquinas virtuales tenemos.

Para ello emplearemos el siguiente comando

az vm list --output table

el parámetro output es importante, por que nos ayuda a visualizar la información, este comando nos muestra las maquinas virtuales que tenemos en azure y la ubicación de las mismas



Felices lineas

197. Crear una maquina virtual de azure por medio de Azure Cloud Shell

Una de las características que posee Azure, es la capacidad de crear infraestructura como servicio, el servicio mas basico que se puede crear en Azure es una maquina virtual, vamos a crear una maquina virtual, pero desde linea de comandos.

¿Por que hacerla desde linea de comandos?

La principal razón, la maquina siempre se crea igual ademas de que de una manera sencilla se puede crear un nuevo ambiente

Para hacer esto se emplea la siguiente instrucción

az vm create
  --name [Nombre_de_la_Maquina_Virtual]
  --resource-group [Grupo_al_que_pertenece]
  --image [Imagen_de_azure]
  --size [Tamaño]
  --location [Ubicacion_cluster]
  --admin-username [UsuarioAdministrador]
  --admin-password [Password]

ejemplo

az vm create \
  --name MaquinaVirtual \
  --resource-group XXXXXXXXXX \
  --image Win2016Datacenter \
  --size Standard_DS2_v2 \
  --location eastus \
  --admin-username usuario \
  --admin-password aabbcc22


Felices lineas

196. Open SSL Password

Los passwords hoy en día son uno de los puntos más débiles en la seguridad informática, dado que estos, se encuentran influenciados por el usuario que los crea.

Una forma de crear estos es por medio de openssl, este da la herramienta para poder generarlos de una manera aleatoria, para ello empleamos la siguiente instrucción:

openssl rand base64 [cantidad_de_caracteres]

Ejemplo


La mano invisible controla al mundo



sábado, 27 de abril de 2019

195. Funciones utiles R (1)

R es un lenguaje estadístico muy útil para el analisis de grandes cantidades de información, la siguiente es una lista de funciones útiles para esta actividad.

ls(): Permite ver todas las variables que se encuentran en el sistema
ls.str(): Permite ver un detalle de las variables que se encuentran en el sistema
rm(elemento): Borra objetos declarados en el sistema, su uso es muy importante por que debemos recordar que no tenemos recursos ilimitados
rm(list=ls()): Borra todos los objetos del sistema
mode(elemento): Obtiene el tipo de dato de un objeto
read.table(archivo): Permite leer informacion de archivos
read.csv(): Lee archivos separados por comas
read.delim(): Lee archivos con algun delimitador
scan(): Permite especificar lo que se va a leer misdatos<-scan("datos.txt",what=list("",0,0)) lee 3 datos, del archivo datos.txt donde el primero es un caracter y los otros 2 son numeros
read.fwf(): Lee archivos de formato fijo
write.table(): Guarda el contenido de un tabla a un archivo
c("dato1","dato2"....): Genera un vector
expand.grid(vector,vector,....): Genera todas las combinaciones de un vector
sum(): Suma los numeros
prod(): Producto de los numeros
max(): Valor maximo
min(): Valor minimo
which.max(c(..,..,...)): Indica cual es el elemento maximo (indice) del vector
which.min(c(...,...,...)): Indica cual es el elemento minimo (indice) del vector
range(): Indica el rango de los datos de un vector
length(c(....)): Numero de elementos de un vector
mean(c(...)): Valor promedio en un vector
median(c(...)): Mediana de un vector
round(c(...),decimales): Efectua el redondeo de una matriz
rev(c(...)): Revierte los elementos de una matriz
sort(c(...)): Ordena los elementos de una matriz



La mano invisible domina el mundo



miércoles, 3 de abril de 2019

194. SQL borrar duplicados en una tabla

Una forma sencilla de borrar los registros duplicados en una tabla es

WITH Duplicados AS (
SELECT ROW_NUMBER() OVER(PARTITION BY [campoId1],[campoId2] ORDER BY (SELECT NULL)) AS R_ID,[campoId1],[campoId2]
  FROM Tabla1)
  delete Duplicados WHERE R_ID > 1;


La mano invisible controla el mundo

domingo, 31 de marzo de 2019

193. Youtuber???

Bueno, vamos a evolucionar un poco este blog, el objetivo es aprender, platicar, dejar una pequeña huella en nuestro mundo, si el conocimiento no se comparte se pierde, y pues también una forma de aprender es el debatir, así que hoy cree mi primer video de youtube, y aquí se los dejo

https://youtu.be/hKYdSvC1PZo

La mano invisible nos controla

martes, 12 de marzo de 2019

192. While SQL Server

Los scripts de SQL son una herramienta poderosa para el desarrollo, es importante que dejemos que cada parte de un sistema haga lo que mejor sabe hacer, así la base de datos que sabe hacer, manipular datos.

Los scripts de base de datos son un arma de dos filos, ya que por un dado nos simplifican el trabajo, pero por otro, pueden sobrecargar el servidor de actividades innecesarias, y esto generar cuellos de botella.

Un ciclo en un Query es de gran ayuda ya que da mucha potencia al lenguaje.

La estructura del while es

DECLARE @Contador INT = 0;
DECLARE @Contador_Total INT = 0;

WHILE @Contador < @Contador_Total
BEGIN
   {Acciones del Script}
   SET @Contador = @Contador + 1;
END;



La mano invisible controla el mundo

miércoles, 6 de marzo de 2019

191. Ping de la muerte - Tipos de ataques

Este es un ataque que se encuentra en la historia de la computación, muy importante por los problemas que causo, consistía en crear un datagrama de un tamaño mayor a 65536 bytes, debido a que superaba el tamaño máximo autorizado, el sistema operativo no sabia como interpretarlo y colapsaba.

Este ataque tuvo su auge en 1996 - 1997, afecto la mayoria de los sistemas operativos, todos los fabricantes han buscado solucionar este problema por lo que hoy en dia solo en equipos de los 90s persiste


La mano invisible controla el mundo

190. Performance Counter - Procesador - Porcentaje de tiempo total de DPC

Vamos a revisar algunos contadores de rendimiento, es importante destacar que ninguno funciona por si solo, sino que se deben interpretar en su conjunto.

¿Que es?

Es una medida del tiempo en que el procesador ejecuta llamadas DPC (llamadas a interrupciones con baja prioridad)

Si su valor es alto, el rendimiento del sistema se vera afectado, es importante que nunca supere el 50%

Un numero alto puede ser ocasionado por un cuello de botella en el procesador, un problema de software, o un dispositivo de hardware con problemas.

Cuando el valor es superior a 50%, se requiere validar % Interrupt Time, y % Processor Time, si son altos, el procedador necesita ser actualizado.

En Azure, es muy comun revisar estos contadores para tomar la desicion de incrementar las características del equipo


La mano invisible controla el mundo

martes, 5 de marzo de 2019

189.Monitor de rendimiento

Una de las cosas mas interesantes del sistema operativo windows, es que mide todo lo que se hace en el sistema, los performance counter, son una gran herramienta ya que su uso no causa una baja de rendimiento en el sistema.

Es en este punto en donde tengo que llamar la atención a los desarrolladores, ya que el desarrollador normalmente no usa esta herramienta en sus desarrollos, esto le quita visibilidad a las aplicaciones, ya que no puede tener estadísticas de su comportamiento.

Una buena practica durante el diseño es el crear el conjunto de contadores necesarios para determinar como se esta comportando la aplicación, esto ayuda mucho sobre todo en aplicaciones de alta demanda.

Bueno eso es por el lado del programador, pero también el análisis de los contadores existentes ayuda a determinar si se explota o no el hardware y el software correctamente.

Un programador, un administrador debe de conocer el uso de los principales performance counter en un sistema, estos son de gran utilidad para encontrar cuellos de botella, y para poder mejorar el uso de nuestro equipo.


La mano invisible controla el mundo