aws S3 Commands

Posted: sábado, 13 de julio de 2019 by Skuarch in
0


Estos son algunos de los comando para S3 que pueden ser útiles, para crear un bucket o vaciarlo
Subir archivos al bucket (el . significa desde este folder)
aws s3 sync . s3://nombre-bucket

Habilitar el bucket como website
aws s3 website s3://nombre-bucket/ --index-document index.html

Agregar un archivo de policy para dar permisos
aws s3api put-bucket-policy --bucket nombre-bucket --policy file://policy.json

Borrar el contenido del bucket
aws s3 rm s3://nombre-bucket --recursive

Ejemplo de archivo de policy.json

{
  "Version": "2008-10-17",
  "Statement": 
     [
       {
         "Sid": "AllowPublicRead",
         "Effect": "Allow",
         "Principal": {
           "AWS": "*"
         },
         "Action": "s3:GetObject",
         "Resource": "arn:aws:s3:::nombre-bucket/*"
       }
     ]
}

CONCEPTOS BASICO DE EXPRESIONES REGULARES

Posted: domingo, 23 de octubre de 2016 by Skuarch in Etiquetas: ,
0


Las expresiones regulares no son tan regulares como lo dice su nombre algunas cosas no estan soportadas en ciertos lenguajes, en esta entrada tratare de dar algunos ejemplos de expresiones regulares (regex) que se adaptan a la mayoria de los lenguajes, pero por favor checa con tu lenguaje si la expresion funciona igual debido a que no son un standar pueden varias entre lenguajes

^ inicio de linea
Cuando queremos buscar algo en nuestra cadena el signo ^ le indica a la expresion regular que lo que buscamos debe de estar al principio de la linea

$ fin de linea
Muy parecido al ejemplo anterios pero este indica que lo que buscamos debe de estar al final de la linea

podemos hacer una mezcla de esto por ejemplo buscar lineas vacias que seria algo como esto

^$
Eso nos regresara las lineas vacias

[ée] clases de caracteres
Con los corchetes indicamos que nos busque esos caracteres exactos, la expresion regular solo buscara la e y la e con acento

[A-Z] rangos
Los corchetes tambien sirven para establecer rangos, en este caso es un rango con letras mayusculas, la expresion solo buscara de la A a las Z en mayusculas

[a-z] rangos 
Es exactamente los mismo pero con minusculas

[A-Z][a-z] combinando rangos
Se pueden hacer combinaciones entre rangos, en este ejemplo se combinan las mayusculas y las minisculas

[^a-z] negacion
En este caso el caret o circumplejo se utiliza para negar, entonces la expresion buscara todo lo que no es minusculas

[A-z][^a-z] el primer caracter tiene que ser mayusculas y lo que le sigue tiene que ser negado a minusculas
La expresion que se encuentra arriba busca el primer caracter en mayusculas de la A-Z y despues cualquier cosa que no sea una minuscula de la a-z

[$] los corchetes hacen que no lo cuente como fin de linea

El signo de dolares es un caracter especial, pero si esta entre corchetes, la expresion regular no lo tomara encuenta y buscara un signo de dolares

| pipe 
El pipe se utiliza para hacer un OR

(gmail|yahoo) grupos
En la expresion anterior estamos usando pararentesis para crear grupos y lo combinamos con un pipe para que busque cualquiera de las dos cadenas que se encuentran en los parentesis

. cualquier caracter
El punto se utiliza para que la expresion busque en cualquier caracter

? opcional
El signo de interrogacion indica que el match es opcional

+ busca uno o mas veces
El signo de + buscara una o mas veces la cadena a buscar

{e} busqueda de caracteres
Con las llaves hacemos una busqueda que puede ser repedia y de un caracter en concreto

3{e} buscar el caracter
El ejemplo anterios buscara 3 veces el caracter "e"

[a-z]{3} busca tres minusculas 

El ejemplo anterior buscara tres minusculas en la cadena

\b[a-z]+@
Busca de la a-z y tiene un tope o frontera que es la arroba

Si deceamos un ejemplo para buscar etiquetas html esto puede ayudar

<.+> ejemplo para buscar etiquetas html
Las expresiones regulares son ambiciosas, eso quiere decir que buscaran todas las ocurrencias en la cadena, si queremos evitar eso se puede utilizar el ?

<.+?> esto hace una busqueda detenida

Para realizar la busqueda de numeros se puede utilizar la siguiente expresion

\d busca numeros

\d+(?= pesos) look a head
Busca los numeros y que tengas despues la palabra pesos

(?<=MXN )\d+ look behind
Lo contrario al anterior, MXN es la cadena a buscar, que puede ser cualquier otra

\W caracter alfanumerico
(?1) insensetive 
Estos son otros ejemplos de como crear grupos

(\W+)@(\W) grupos la arroba no es algo especial
Espero que esta pequeña introduccion de sirva de algo, si no es asi pues largate y buscale por otro lado


HABILITAR ACCESO REMOTO A DOCKER API

Posted: miércoles, 30 de marzo de 2016 by Skuarch in Etiquetas: , , , ,
0


Si deseas enviar comandos a la api de docker en ubuntu 14.04 tienes que realizar estos sencillos pasos
sudo sed -i -e 's/#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"/DOCKER_OPTS="-H tcp:\/\/127.0.0.1:2375 -H unix:\/\/\/var\/run\/docker.sock"/g' /etc/default/docker

reiniciar el servicio

sudo service docker restart

verificar que todo este correcto

curl -s http://127.0.0.1:2375/images/json

USAR JAVA Y JAVASCRIPT COMO SCRIPTING

Posted: jueves, 4 de junio de 2015 by Skuarch in Etiquetas: , , , , ,
0


Para poder usar java y javascript en un archivo .sh solo tienes que seguir estos sencillos pasos

crear un archivo con la extencion .sh

poner en la primeria linea el path donde se encuentra el ejecutable de nashorn

#!/usr/lib/jvm/jdk1.8.0_45/bin/jjs -fv

obviamente esta ruta puede cambiar pero no olvides essto "-fv"

ahora puedes usar java y javascript como scripting y este es un ejemplo completo


#!/usr/lib/jvm/jdk1.8.0_45/bin/jjs -fv
var Runnable = Java.type('java.lang.Runnable');
var Printer = Java.extend(Runnable, {
    run: function() {
        print('printed from a separate thread');      
    }
});
var Thread = Java.type('java.lang.Thread');
new Thread(new Printer()).start();
new Thread(function() {
    print('printed from another thread');
}).start();


Como te puedes dar cuenta aqui se esta usando los hilos de java dentro de javascript.
Para hacer esto asegurate que tienes la version 8 de java instalado.


espero te sirva y si no pues largate !!!

MAVEN PARA LA BUENA CALIDAD DEL CODIGO

Posted: lunes, 19 de enero de 2015 by Skuarch in
0


Cuando trabajas en un equipo con varias personas en ocaciones la calidad del codigo empieza a disminuir proporcionalmente al aumento de lineas de codigo, por esta razon me puse a investigar como mantener la calidad del codigo sin tener que revizarlo por ti mismo de una forma automatizada y que no te deje pasar o compilar si no cumples con los requisitos Estos plugins estan basados para una aplicacion web, eso no significa que no lo puedas usar para crear otro tipo de archivo.

1.- Analizar el codigo

Para esto se va a utilizar findbugs que ya se puede usar con la version 8 de java y este seria el fragmento de codigo para usarlo
org.codehaus.mojo findbugs-maven-plugin 3.0.2 High Default false ${project.build.directory}/findbugs analyze-compile compile check
Con esto findbugs analizara el codigo y mostrara la salida, en el caso de que algo este mal, marcara error en el build, otro buen analizador de codigo es PMD entre algunas de las cosas buenas que tiene es que identifica el codigo repetido, esto lo hace mediante tokens y esta es la configuracion. org.apache.maven.plugins maven-pmd-plugin 3.5 true utf-8 40 1.8 true check cpd-check Checa que los tokens esta en 40, obviamente lo puedes configurar a tu gusto.

2.- Formato del codigo

Quien no odia el tipo de desarrollador que por querer hacer las cosas mas rapidas hace mal formato en el codigo, para eso vamos a usar checkstyle org.apache.maven.plugins maven-checkstyle-plugin 2.9.1 checkstyle validate check false true A veces checkstyle es muy estricto en sus reglas y no te deja compilar por que hiciste un pequeño mal codigo, por ejemplo hay si linea de codigo que mide mas de 80 caracteres, por eso la configuracion esta en false para no ser tan estrictos, pero la salida se muestra en consola de todas formas.

3.- Javadoc

checkstyle tambien checa que exista documentacion en nuestro codigo y eso lo vamos a aprovechar generando automaticamente la documentacion para eso utilizaremos javadoc org.apache.maven.plugins maven-javadoc-plugin 2.10.1 attach-javadocs jar

4.- Compilacion

Nunca esta demas compilar y mostrar los errores o posibles metodos/clases que ya no debemos de usar para eso le indicaremos al compilador que nos lo muestre org.apache.maven.plugins maven-compiler-plugin 3.1 ${java-version} ${java-version} -Xlint:all ${endorsed.dir} true true Todos los errores como deprecation, warnings y otros seran mostrados en la consola. Si esto lo aplicamos a un codigo que apenas empieza es mas facil mantener la calidad del codigo, cuando ya se escribieron cientos/miles de lineas de codigo obviamente seria una pesadilla hacer el javadoc, cambiar el formato y esas cosas, aun que nunca esta demas hacerlo. Por ultimo tenemos a proguard este es usado para ofuscar el codigo, desafortunadamente no lo pude integrar con una aplicacion web, por esa razon no hay un fragmento de xml que lño muestre