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

CONCEPTOS BASICOS DE JAVA

Posted: sábado, 1 de febrero de 2014 by Skuarch in Etiquetas: ,
0


Esta es una pequeña guia para sobre los conceptos basicos de java

Interfaces
una interfaz es similar a una clase abstracta, esta se declara usando la palabra reservada interface y consiste en que solo contenga metodos abstractos y variables finales.

Constructores
Estos son usados para inicializar un objeto, cuando un objeto es construido el constructor es ejecutado, un constructor por default es uno que no tiene argumentos

Metodos
los metodos siempre estan dentro de una clase y la visibilidad del metodo es controlada por los modificadores de acesso

Signature del metodo
the signature of method consiste en
nombre del metodo
numero de argumentos
tipo de argumentos
orden de los argumentos

Static
metodo que puede invocarse sin crear un objeto

Modificadores de acesso
public: todo el mundo puede verlo
private: solo los miebros de la clase pueden verlo
protected: los miembros de la clase y las clases que la heredan pueden verlo
ninguno: solo lo pueden ver los miembros del paquete

LEER DATOS CRUDOS EN UN SERVLET

Posted: martes, 28 de enero de 2014 by Skuarch in Etiquetas: , , , ,
0


En ocaciones los datos que llegan a un servlet no estan dentro de una variable, los datos estan con el cuerpo de peticion, para poder obtener ese tipo de dato es necesario abrir un input y convertirlos a string, en el siguiente codigo muestro como hacer esto en un servlet

Primero checar si el contentLength tiene algo

int contentLenght = request.getContentLength();

Con la clase ServletInputStream se leeran los datos

ServletInputStream sis = request.getInputStream();

Ahora solo queda consumir los datos

byte[] buffer = new byte[contentLenght];
int len = sis.readLine(buffer, 0, buffer.length);
String data = new String(buffer, 0, len);

Nunca esta de mas hacer una verification del contentLenght que sea mayor a 0 al inicio de tu codigo.

Finalmente cierra todos los inputs para que no existan problemas despues.



JAVA ASINCRONO

Posted: martes, 24 de diciembre de 2013 by Skuarch in Etiquetas: , , , , ,
0


En ocaciones es necesario realizar ciertas tareas en hilos, pero los hilos son void entonces como puedes hacer que una tarea regrese algo y que corra en un hilo, voy a explicar como hacer esto con las clases de java Callable y Future en el codigo se puede entender mejor


import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
public class TestCallable {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        final StringBuilder stringBuilder = new StringBuilder();
     
        ExecutorService executorService = Executors.newFixedThreadPool(1);
     
        FutureTask future = new FutureTask(new Callable() {
         
            @Override
            public String call() throws InterruptedException {
                Thread.sleep(1000);
                System.out.println("inside of call");
                stringBuilder.append("something");
                return "hello";
            }
         
        });
        executorService.execute(future);
        executorService.shutdown();
        System.out.println("continue");      
    }
}
cuando corrar este programa te podras dar cuenta que aparece primero el texto continue y despues aparece inside of call, esto es por que se realizo un trozo de codigo asincrono