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 !!!

DETECTAR AMENAZAS AL INSTALAR APK'S EN ANDROID

Posted: jueves, 4 de septiembre de 2014 by Skuarch in Etiquetas: , , ,
0


En ocaciones nos encontramos en internet algunas aplicaciones (.apk) que deseamos instalar en nuestro android, pero como sabemos si estos archivos son seguros de instalar en nuestros dispositivos, pues me puse a investigar y a consultar google y encontre algunos sitios interesantes que acontinuacion les muestro

El que mas me sirvio fue este

http://apkscan.nviso.be/


solo arrastras tu .apk y sueltas, esperas un tiempo y te mostrara una pagina con los resultados

otro que es muy similar es este

http://scan.netqin.com/en/

basicamente es lo mismo

y por ultimo tenemos este

http://anubis.iseclab.org/?action=home

los tres hacen los mismo y algunos tienen la opcion de mandarte el resultado a tu correo.

Si el apk es de un tamaño pequeño puedes usar este servio y mandar tu apk por correo y recibir el resultado por el mismo

scan@virustotal.com

espero te sirva y si no, pues largate

CONSEJOS PARA PYTHON

Posted: sábado, 16 de agosto de 2014 by Skuarch in Etiquetas: , , ,
0


Python es un lenguaje con varios años y es muy maduro, aunque seria bueno que tengan algunas cosas como poder hacer un metodo privado y me refiero a que sea de en verdad privado y que cuente con un programador de tareas para realizar una tarea periodicamente, si tu no nececitas de estas cualidades python es un lenguaje ideal para ti.

Esta breve introduccion busca ser sencilla y practica y esta cenrada para equipos que estan basados en debian.

Todas las distribuciones linux tienen ya instalado python 2.+ asi es que para el desarrollo solo instalaremos algunos complementos para facilitarnos la vida

sudo apt-get install python-setuptools

Despues de instalar lo basico para python de te sugiero instalar estas dos utilidades

IPython y virtualenv

Y se instalan de esta forma sencilla

sudo apt-get install python-virtualenv ipython 

Ahora podras crear entornos virtuales y con ipython es una excelente shell para python con auto completado y colores, para crear un entorno virtual se realiza de esta forma

virtualenv env --no-site-packages

Eso creara un virtual enviroment con el nombre env y totalmente nuevo y se activa de esta manera

source env/bin/activate

Por ultimo si quieres saber que python esta corriendo en tu entorno puedes usar este simple comando

which python

Si quieres que un archivo .py se ejecute somo si fuera de bash agrega al principio del archivo esta linea

#!/usr/bin/env python

Como IDE te puedo recomendar ninja ide, es super sencilla intuitiva y ligera aqui esta su sitio oficial ninja ide


Por ultimo la palabra reservada self se puede comparar o parecer a la palabra this en otros lenguajes.

HERRAMIENTAS UTILIES PARA JAVA

Posted: miércoles, 16 de julio de 2014 by Skuarch in Etiquetas: , , , , ,
0


Siempre es bueno usar herramientas para checar la calidad de nuestro codigo, algunas de estas herramientas deben de ser impresindibles para todo desarrollador java

Eclipse Memory Analize
Este es un plug in de eclipse que nos ayuda a saber que puntos de nuetro programa pueden estar causando leaks, se nececita que configures la JVM para que trabaje correctamente

Proguard
El proposito general de proguard es ofuscar el codigo, como ya sabes decompilar el codigo en java es muy facil asi es que nunca esta de mas usar algun ofiscador, tambien tienen algunas otras cosas para mejorar el codigo


Dependometer

Analisis estatico o fisco de dependencias con dependometer, esta genial herramienta valida dependencias contra arquitecturas logicas estructurando esl sistema entro de clases, paquetes, subsistemas entre otras cosas.


DoctorJ

Es una aplication que analiza el codigo de java y la documentacion buscando errores comunes que javadoc no hace

MEJORAR EL PERFORMANCE DE JAVA

Posted: viernes, 11 de julio de 2014 by Skuarch in Etiquetas: , , ,
0


Siempres es bueno no gastar todos los recursos del procesador para poder correr mas aplicaciones, en este post voy a poner algunas de las mejores practicas para que tu codigo no influya tomando mas recursos de los que necesita, a claro que esta fue tomado de la guia de Glassfish oficial

Evitar serializacion y deserializacion

Serializacion y deszerializacion de objectos is proceso intensivo para el CPU y puede crear retrasos en tu aplicacion, Usa transient para reducir el monto de datos serializados

StringBuilder para concatenar Strings

Para mejorar el performance al menos al usar concatenacion de Strings, usa
StringBuilder.append();

Asignar null a las variables ya no se nececita

Esta practica ya no se nececita para ayudar al garbage collector identificando partes de memoria que pueden ser limpiadas

Declara metodos con final solo si es necesario

Modernos compiladores y otros procesos internos pueden hacer en linea  la optimizacion incluso si los metodos de java no son declarados como final

Solo usa final si tu estas absolutamente seguro de que el metodo no debe de ser sobreescrito.

Declara constantes como static y final

 El compilador dinamico puede hacer algunas optimizaciones facilmente cuando tu declaras constantes como static final

Evita Finalizers

Agregar finalizers al codigo hace que el garbage collector esa caro e impredecible, la maquina virtual no garantiza el tiempo que correran los finalizers; Finalizers no siempre son ejecutados antes de que el programa termine, evita usarlos para no crear una aplicacion impredecible.

Declarar los argumentos de un metodo como finales

Si estos no son modificados en el metodo, en general declara todas las variables final si no van a ser modificadas

Synchronize solo cuando sea necesario

Manten los bloques de sincronizacion lo mas corto posible y si es posible evita la sincronizacion.

INSTALACION DE VIRTUALBOX EN UBUNTU

Posted: sábado, 26 de abril de 2014 by Skuarch in Etiquetas: , , ,
0


Para poder instalar virtualbox sin problemas instala las siguiente librerias
sudo apt-get install build-essentials
sudo apt-get install linux-kernel-headers
sudo apt-get install dkms

ya solo queda bajar virtualbox del sitio oficial

CAMBIAR EL BRILLO DE LA PANTALLA EN UBUNTU

Posted: sábado, 19 de abril de 2014 by Skuarch in Etiquetas: ,
0


En ocaciones los botones para controlar el brillo de la pantalla no funcionan correctamente, esto lo puedes solucionar con este sencillo comando

xrandr --output eDP1 --brightness 0.7

solo cambia eDPI por el tipo de monitor que tienes, en mi caso lo observo en kscreen por que tengo kubuntu

SOBRE CARGAR LOS NUCLEOS EN LINUX

Posted: jueves, 17 de abril de 2014 by Skuarch in Etiquetas: ,
0


con este simple comando puedes hacer que tu procesador se ponga a trabajar y medir cuestiones de rendimiento

while :; do :; done

Simple y sencillo