Mostrando las entradas con la etiqueta Desarrollando. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Desarrollando. Mostrar todas las entradas

jueves, 22 de diciembre de 2022

282. OpenSSL Analizar un certificado

 OpenSSL es un paquete de herramientas criptograficas, que entre otras cosas nos permite la manipulación de certificados digitales.

La siguiente instrucción nos permite validar estos certificados

openssl x509 -in [Nombre del certificado].cer -text


En algunos casos es importante revisar el contenido del certificado, y especificar de que se trata de un certificado digital


-----BEGIN CERTIFICATE-----

MIIF2zCCA8OgAwIBAgIUMDAw....kM65r

-----END CERTIFICATE-----


Felices lineas

lunes, 14 de noviembre de 2022

281. Borrar todas las tablas de una base de datos

 Hola dejo aqui este pequeño script que sirve para borrar todas las tablas de una base de datos sin destruir la misma.



 EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'

 GO

EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"

GO

EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'

 GO

sábado, 5 de febrero de 2022

279. Google colab (XVI)

 Existe una gran cantidad de editores sobre las que se puede trabajar con Python, cada uno de nosotros podemos trabajar con el editor que mas nos guste, así muchos usan Jupiter que en su forma mas popular viene como parte de anaconda






Otro como yo, quizás por que mi origen es C#, nos sentimos cómodos sobre Visual Studio Code


Pero si quieres aprender o usar profesionalmente python, y no tienes grandes equipos en casa hay una opción que quiero recomendarte.

Usa google colab




Google colab te permite usar equipos de google, incluso GPU para poder trabajar con python, toma en cuenta que el análisis de datos es una de las mayores actividades que se hacen con python y el tener buenos equipos es muy importante.

Solo debes entrar a la liga que te dejo, entrar en ciencia de datos y dejar volar tu imaginación





felices lineas




martes, 5 de octubre de 2021

272. Python (X) - Ciclos while

 Continuemos revisando un poco de las características del lenguaje, antes de entrar en características mas avanzadas.

Como mencione en la lección anterior los programas siguen flujos para su ejecución dentro de la ejecución encontramos elementos que nos permiten generar ciclos, estos ciclos o repeticiones nos permiten interactuar entre los datos.

Esta vez hablaremos del elemento while

numero = 0
while numero < 10:
    print(numero)
    numero = numero + 1

mientas el numero sea menor ha 10 haz lo siguiente, así es como lo podemos definir del código, el ciclo se ejecutara en tanto se mantenga la condición

1

2

3

4

5

6

7

8

9

10

while True:
    numero = 10
    if numero : break
    print("hola")

ahora compliquemos un poco mas con un ciclo infinito

El código indica que siempre será verdadero el ciclo, esto nos permite mantener flujos permanentes, pero en este flujo lo importante es

    if numero : break

ahi indicamos que si se cumple la condición se rompa el ciclo, por ello ya no se ejecutara el print

Ahora si a partir de este punto empezaremos a complicar las cosas




viernes, 1 de octubre de 2021

271. Python (IX) - Ciclos for

 En una lección anterior vimos el for como instrucción para recorrer una lista, pero esta instrucción lo que nos permite es crear ciclos, es decir el código que se encuentre dentro del for se ejecuta un cierto numero de veces.

Hagamos un pequeño contador, veamos el siguiente código

for contador in range(10) :
    print (contador)

Esto nos hace un contador en un rango de 0 a 9 en donde obtendremos la siguiente salida

0

1

2

3

4

5

6

7

8

9

Range nos permite indicar de donde a donde haremos el conteo, este no necesariamente necesita iniciar en cero, por ejemplo

for contador in range(99,101) :
    print (contador)

La salida será

99

100

Recordemos de una lección anterior, podemos interactuar sobre una lista por ejemplo

numeros = [10840100225]
for numero in numeros:
     print(numero)

En el código anterior creamos una lista con los números 10, 8, 40, 100, 22, 5

Al hacer el ciclo va a iterar por cada uno de los números por lo que tenemos esta salida

10

8

40

100

22

5

Y si fueran cadenas

frutas = ['Pera''Manzana''Uva''Naranja''Fresa''Mango']
for fruta in frutas:
     print(fruta)

La salida sera

Pera

Manzana

Uva

Naranja

Fresa

Mango

Por ultimo veamos que pasa en un diccionario, trataremos diccionarios en la próxima lección.

alumnos = {'Juan':'niño''Raquel':'niña''Miguel':'niño''Jimena':'niña''Laura':'niña'}
for nombresexo in alumnos.items():
    print(nombre"es "sexo)

la interacción en un diccionario nos permite tomar pares de valores en el ciclo, la respuesta de este sera

Juan es  niño

Raquel es  niña

Miguel es  niño

Jimena es  niña

Laura es  niña

otra forma de hacer esto es

alumnos = {'Juan':'niño''Raquel':'niña''Miguel':'niño''Jimena':'niña''Laura':'niña'}
for alumno in alumnos:
    print (alumno'es 'alumnos[alumno])

En donde obtenemos el mismo resultado, como ven en este caso lo que hacemos es preguntar al diccionario el valor llave - valor

Juan es  niño

Raquel es  niña

Miguel es  niño

Jimena es  niña

Laura es  niña


Saludos del alien



jueves, 30 de septiembre de 2021

270. Python (VIII) Controlar errores

 Un programa es susceptible de errores, ¿Qué es un error? es una condición para la cual no estamos listos, es decir ocurrió algo en que el programa no sabe que hacer, y sin embargo debemos controlar el error.

¿Por que controlarlo?

Por que si no lo controlamos el programa se detendrá

Un error puede ser cualquier actividad que el programa no sepa como manejar, el control de errores nos permite evitar que el programa se detenga y rompa y se pueda tomar una acción

Veamos este ejemplo

try:
    x=10
    print(x)
    y=x/0
except:
    print('Error')

En el ejemplo la division entre 0 es la que daña el programa, en este caso si ejecutamos el programa sin try: except: obtenemos esto

x=10
print(x)
y=x/0


10

Traceback (most recent call last):

  File "e:\PruebasConcepto\Pg02.py", line 4, in <module>

    y=x/0

ZeroDivisionError: division by zero

El programa se detuvo y si había otras condiciones no continua, en cambio con la excepción continua funcionando ya que al ocurrir el error, entra en el flujo de excepción y continua posteriormente el flujo.


Saludos del Alien

miércoles, 29 de septiembre de 2021

268. Python (VI) Operadores booleanos

 La lógica booleana es importante para la programación, por que esta da un sentido a las operaciones que ocurren en los flujos.

Los flujos son controlados por estas instrucciones, esto permite definir las rutas que va a seguir durante el proceso.

Así tenemos los siguientes operadores de comparación

#Inicialicemos un par de variables
x=1
y=2
print(x==y)   #La variable 1 igual a la variable 2
print(x!=y)   # x es distinto de y
print(x>y)    # x es mayor que y
print(x<y)    # x es menor que y
print(x>=y)   # x es mayor o igual que y
print(x<=y)   # x es menor o igual que y
print(x is y# x es lo mismo que y
print(x is not y)  # x no es lo mismo que y

Si ejecutamos obtenemos esta salida 

python3.9.exe Pg02.py

False

True

False

True

False

True

False

True

Como pueden ver estas comparaciones nos ayudan a generar los flujos para que un programa funcione.

Ahora bien, podemos aumentar complejidad por medio de las instrucciones and(y) y or (o) esto nos permite que se de lo siguiente

and quiere decir que tanto el lado derecho como el lado izquierdo de la expresión se debe cumplir por ejemplo:

x=1
y=2
z=3
print(x<y and x<z)

si x es menor que y (1<2) y x menor a z (1<3) es verdadero

al ejecutarlo obtenemos un true.

Ahora que pasa con or indica que se puede cumplir un lado o otro de la expresión o ambos

x=1
y=2
z=3
print(x<y or x>z)

sustituyámoslo por números y letras

1 menor a 2 o 1 mayor a 3

podemos ver que la primera parte de la expresión se cumple pero la segunda no, por lo que la expresión es verdadera por que puede ser "o" la parte derecha o la parte izquierda de la ecuación

Saludos del Alíen




martes, 28 de septiembre de 2021

267 - Python (V) - Listas

 Sigamos hablando de fundamentos de python, ahora hablemos un poco de listas, que es una lista, es un conjunto de objetos

Por ejemplo un conjunto de colores

Colores - Verde, Amarillo, Rojo, Azul

NotasMusicales - Do,Re,Mi,Fa,Sol,La,Si,Do

En el mundo real todo son conjuntos, grupos de objetos, en el lenguaje de programación necesitamos hablar de elementos que nos den semejanza, en python esto lo logramos con listas.

numeros=[1,2,3,4,5]
print(numeros)
for numero in numeros:
    print(numero)

Analicemos este programa

lo primero que estamos haciendo es crear una lista, esta lista se guarda en una variable, si vemos el tipo de variable este sera:

<class,'list'>

el primer print nos permite ver la lista completa

[1,2,3,4,5]

El segundo elemento es muy interesante por que nos permite leer elemento a elemento de la lista, que es lo que le decimos "por cada numero en números, imprime numero"

1

2

3

4

5

La lista se puede formar por cualquier tipo de variable en python

Ahora bien tenemos que aprender nos métodos para trabajar con listas

Notas=['Do','Re','Mi']  #Notas Musicales
print(Notas)
#Agreguemos una nota mas
Notas.append('FA')
print(Notas)
Notas.append(['FA','SOL'])
print(Notas)
#¿Que paso aqui? Una lista dentro de otra?, asi es podemos agregar 
#una lista dentro de otra lista

#Borremos una nota
Notas.remove('Do')
print(Notas)

#En donde esta una nota
print(Notas.index('Re'))

#Cuantas veces tenemos un elemento
print(Notas.count('Mi'))

Coloque este código y jueguen con este elemento que es tan importante

Saludos del Alien


sábado, 25 de septiembre de 2021

265. Python (III) Operadores de Asignacion

 Hoy hablaremos de los operadores de asignación, ¿Para que nos sirven? para asignar un valor a una variable.

¿Cuáles son?

=,+=,-=,*=,/=,**=,//=,%=

¿pero que significan?

a = 1      

Asigno una variable

a+=1

Incremento en 1 el valor de a

a-=1

Reduce en uno el valor de a

a*=1

Multiplica por uno el valor de a

a/=1

Divide entre 1 el valor de a

a**=2

Eleva a a la potencia 2

a//=2

Efectúa una división de enteros a/2

a%=2

a aplica el modulo 2

Es importante recordar que de la operación hecha el valor se guardara en la variable sobre la que operamos, en este caso a

264. Python (II) - Operadores aritmeticos

 Hola nuevamente a este curso de python, en esta segunda lección vamos ha hablar de operadores, ¿Qué son? los operadores son símbolos especiales que representan cálculos.

Los operadores son:

+, -, *, /,**,//,% es decir suma, resta, multiplicación, división, exponente, división entera y modulo


como los usamos, los usamos como usamos una calculadora

10+10

por ejemplo si escribimos

print(10+10)

obtendremos como resultado

10

Así pues las operaciones básicas son el inicio en un lenguaje que se caracteriza por ser primordial para el análisis de datos


Saludos desde un lugar del universo


viernes, 24 de septiembre de 2021

263. Python (I) - Variables

Variables

Como todo lenguaje de programación python tiene variables, pero que es lo interesante en python, que python la crea al momento en que nosotros la ejecutemos así nosotros asignamos de manera directa una variable en python

a=1

print(a)

obtendremos como respuesta 

1

aqui acabo de introducir la primera intruccion que veremos print, esta nos permite imprimir el valor de una variable

b="hola mundo"

print(b)

al ejecutar obtendremos

hola mundo

Sin embargo no todas las variables son iguales, cada variable es de un tipo, ¿Qué es un tipo? esto nos representa la información que podremos guardar en la variable, así tenemos números enteros, caracteres, cadenas etc.

usemos la siguiente instrucción

c=10

print(type(c))

nuestro resultado será

<class 'int'>


Saludos desde un lugar del universo

martes, 20 de abril de 2021

261. Reemplazar una cadena en un archivo en linux

 Algunas veces necesitamos reemplazar cadenas en archivos esto puede ser muy tedioso, una forma fácil de hacer esto es por medio de la instrucción sed, esta instrucción es muy poderosa ya que nos acepta patrones para especificar lo que queremos hacer.

en su forma mas sencilla es 


sed "s/palabra_A_remplazar/palabra_nueva/veces/" archivo > archivosalida

Ejemplo

sed "s/juan/pepe/" archivo > archivosalida

remplaza juan por pepe una vez en el archivo salida

sed "s/juan/pepe/5" archivo > archivosalida

remplaza juan por pepe las primeras 5 veces

sed "s/juan/pepe/g" archivo > archivosalida

remplaza juan por pepe todas las veces que aparesca


Felices líneas


lunes, 21 de diciembre de 2020

260. Java 32 bits Oracle

 Me preguntaran por que he estado  instalando en equipos de 32 bits, bueno es una parte del reto de usar equipos viejos, que todavía nos pueden servir por muchos años.

Un código optimizado puede operar perfectamente con estos equipos, puedo decir que estoy usando una netbook con un procesador atom y una memoria de 1 Giga como servidor de mariadb y funciona de maravilla, por cierto sera mi servidor de cassandra tambien.

La ultima version que se encuentra de Java Oracle, que es el que necesita Cassandra en 32 bits es la 8u271, esta la pueden encontrar dentro de https://www.java.com/es/download/

Debemos descargar el archivo


Descomprimir

Ahora tenemos que decirle a linux que esta ahi JAVA, debemos editar el archivo /etc/profile

sudo nano /etc/profile

y debemos agregar al final las siguientes líneas, en mi ejemplo puse la ruta /home/carlos, pero es recomendable que usen una ruta en bin


ahora debemos indicar en donde se encuentra la instalacion

sudo update-alternatives --install "/usr/bin/java" "java" "[Directorio extraccion]/bin/java" 1

sudo update-alternatives --install "/usr/bin/javac" "javac" "[Directorio extraccion]/bin/javac" 1

sudo update-alternatives --install "/usr/bin/javaws" "javaws" "[Directorio extraccion]/bin/javaws" 1

sudo update-alternatives --set java [Directorio extraccion]/bin/java

sudo update-alternatives --set javac [Directorio extraccion]/bin/javac

sudo update-alternatives --set javaws [Directorio extraccion]/bin/javaws


Una vez hecho esto contamos con JAVA instalado






sábado, 19 de diciembre de 2020

259. Descomprimir .tar.gz en Linux

 El formato tar.gz es muy comun en Linux, la forma mas sencilla de descomprimirla es


sudo tar -xvf [Archivo]


Felices lineas

258. Copiar archivo de ruta local a linux scp

 La manera mas facil de copuar un archivo de un equipo a otro es por medio del comando scp


scp [Archivo] usuario@ip:.


donde: 

Archivo indica el archivo que copiaremos, usuario es el usuario con el que se hará ha copia, y la ip es la IP del servidor a donde efectuaremos la copia ":" indica a donde vamos a copiar, en este caso es .




Felices lineas

viernes, 18 de diciembre de 2020

257. Instalar Cassandra (III)

 Bueno ahora si iniciemos, como instalamos Cassandra, bueno instalar Cassandra en Linux


1. apt-get install cassandra


Y con esto cassandra estara instalado en nuestro equipo




256. Cassanda Des instalar (II)

 Desinstalar? por que desinstalar antes de instalar, estoy pensando en un proceso de mantenimiento a Cassandra, y pues nunca esta de mas tener esta información aquí

1. apt-get remove cassandra

2. rm -rf /var/lib/cassandra

3. rm -rf /var/lib/log/cassandra

4. rm -rf /etc/cassandra


Felices lineas


martes, 15 de diciembre de 2020

255. Cassandra ¿Que es? (I)

 Es una base de datos NoSql, bajo el modelo clave - valor, de código abierto, esta base de tatos tiene como principal objetivo la disponibilidad y la escalabilidad.

Cassandra permite el acceso en múltiples centros de datos, se encuentra desarrollada por la apache software fundation.

No requiere de un servidor maestro.

Cassandra tiene la característica de que no bloquea las consultas.

Cassandra emplea un lenguaje llamado CQL. que es un lenguaje parecido a SQL, con una menor funcionalidad.

Fue lanzada en Julio de 2008.

En próximas entregas trabajaremos un poco con Cassandra

Felices Líneas

miércoles, 18 de noviembre de 2020

254. SQL Script - Ubicación y tamaño de las bases de datos de SQL

 Como parte del mantenimiento de una base de datos, es importante saber en donde se están almacenando los recursos, estos para poder planear el espacio necesario en caso de crecimiento, para ello les recomiendo e siguiente query:


select sf.name, si.name, si.rows,sf.growth, sf.filename, sf.fileid,  sfg.groupid, sfg.groupname

from sysindexes si inner join sysfiles sf on si.groupid = sf.groupid

inner join sysfilegroups sfg on sf.groupid = sfg.groupid

Order by sf.filename


Felices lineas

253.Redis (I) - ¿Que es?

Redis es una base de datos que se encuentra completamente en memoria, esto la hace muy rápida para consultas a la misma.

Su almacenamiento es una tabla de hashes, en la que la información se almacena en la forma de Clave/Valor

Su licencia es de código abierto.

Se usa en escenarios en los que se requiere que la consulta de la información de la base de datos sea muy rápida, sus tiempos de respuesta son muy pequeños en comparación de cualquier otra base en el mercado, pero al se una base de datos que se encuentra completamente en memoria, es posible que la información se pierda e una forma muy sencilla.

Redis puede ser implementado en las diversas nubes, y su costo depende directamente de la cantidad de RAM que se emplee en su uso.


El alien ha llegado