Soft reset Fenix 3

Posted: 25th July 2016 by Jak in Fenix 3

El fenix 3 es un excelente dispositivo sin embargo, como todo software tiene sus deficiencias, en el caso de este reloj, tiende a pasmarse repentinamente, no sucede a menudo, pero cuando suceda es bueno saber que hacer…. y es muy fácil, presiona el botón de light por varios segundos hasta que el reloj se apague, y para encenderlo con el mismo botón durante varios segundos, con esto basta para que vuelva a funcionar sin ningún problema.

Share

En el context.xml

 

<bean id=”ds” class=”org.springframework.jndi.JndiObjectFactoryBean”>
<property name=”jndiEnvironment” value=”java:comp/env”/> —> esta propiedad es indispensable
<property name=”jndiName” value=”DSNAME” />
<property name=”lookupOnStartup” value=”false”/>
<property name=”cache” value=”true”/>
<property name=”proxyInterface” value=”javax.sql.DataSource”/>
</bean>

Share

Java y Tor

Posted: 30th October 2015 by Jak in Java, Proxy, Tor

A veces es necesario usar un cliente Tor para realizar algunas peticiones a sitios donde tienen un limite. Por ejemplo a googlemaps 😛

Bueno todo lo que tenemos que hacer es bajarnos un cliente de java para Tor, en este caso el de Orchid.  https://subgraph.com/orchid/running/index.en.html


TorClient = new TorClient();
TorClient.addInitializationListener(new Tor().createInitalizationListner());
TorClient.start();
TorClient.enableSocksListener();

&nbsp;

&nbsp;

public TorInitializationListener createInitalizationListner() {
return new TorInitializationListener() {
@Override
public void initializationProgress(String message, int percent) {
Logger.getLogger(Tor.class.getName()).log(Level.INFO, ">>> [ " + percent + "% ]: ");
}

@Override
public void initializationCompleted() {
Logger.getLogger(Tor.class.getName()).log(Level.INFO, "Tor is ready to go!");
}
};
}

&nbsp;

URL url = new URL(ruta);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("localhost", 9150));

HttpURLConnection uc = (HttpURLConnection) url.openConnection(proxy);
uc.setConnectTimeout(10000);
resp = IOUtils.toString(uc.getInputStream());

 

Share

Habilitar CORS con JERSEY 1

Posted: 30th October 2015 by Jak in Ajax, angular, EXTJS, Java, JavaScript, jersey, jQuery, Sencha

Resulta, que angular y extjs en algunas ocasiones envían las peticiones con preflight y si tienes en el back jersey pues hay que habilitar un filtro para que las peticiones no mueran en el intento. Para hacer esto

 


public class ResponseCorsFilter implements ContainerResponseFilter{
 private static final Logger log = Logger.getLogger("log");
 
 
 @Override
 public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
 log.info("Entro al ResponseCorsFilter Request Path:" + request.getAbsolutePath());
 
 
 //LOGICA:
 // Las peticiones que sean x-www-form-urlencoded, multipart/form-data, or text/plain son simples, van directo al metodo (post,get, etc)
 ///// Leer el header Access-Control-Allow-Origin en el response con * o el mismo que el header origin del request
 
 // Las peticiones que NO SEAN x-www-form-urlencoded, multipart/form-data, or text/plain son preflight o sea pasan por options
 ///// Set Access-Control-Allow-Origin en el response con * o el mismo que el header origin del request del options
 ///// Leer el header Access-Control-Request-Method y debe existir el valor en el header Access-Control-Allow-Methods: [POST, GET, OPTIONS] del response del options
 ///// Leer el header Access-Control-Request-Headers y debe existir en valor en el header Access-Control-Allow-Headers del response del options
 // Ahora para el siguiente paso[GET,POST].
 ///// En el request de la peticion debe existir el valor del header Access-Control-Request-Headers por ejemplo: X-PINGOTHER: pingpong, para cuestiones de seguridad, se verifica su valor
 ///// el header origin debe ser igual, y en el response, el header Access-Control-Allow-Origin debe tener el mismo valor
 
 
 if ( request.getMethod().equals( "OPTIONS" ) ) {
 log.info("Entro al ResponseCorsFilter OPTIONS");
 
 response.getHttpHeaders().add("Access-Control-Allow-Origin", "*");
 response.getHttpHeaders().add("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
 //response.getHttpHeaders().add("Access-Control-Allow-Headers", "x-requested-with, Content-Type, authorization");
 // se verifica el Access-Control-Request-Headers: X-PINGOTHER para poder enviar el Access-Control-Allow-Headers en el response
 // este header parece que en el angularjs usa la cabecera x-requested-with
 response.getHttpHeaders().add("Access-Control-Allow-Headers", "x-requested-with, content-type, authorization");
 
 
 response.setStatus(200);
 }else{
 log.info("Entro al ResponseCorsFilter Method: " + request.getMethod());
 
 response.getHttpHeaders().add("Access-Control-Allow-Origin", "*");
 //response.getHttpHeaders().add("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
 //response.getHttpHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization, x-requested-with");
 //response.getHttpHeaders().add("Access-Control-Allow-Credentials", "true");
 }
 
 
 
 return response;
 }
}

En el web.xml

<init-param>
 <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
 <param-value>com.a.utils.ResponseCorsFilter</param-value>
 </init-param>

Con esto ya todas las peticiones pasaran!

Share

Java InputStreaming read and send to front

Posted: 6th August 2015 by Jak in Uncategorized

Para enviar un stream al front, el truco esta en que se mande como “chunks” de 1024 bytes, esto evitara que el outputstream se cierre y evitara la saturacion en la recepcion del stream en el front.


byte[] x= getPDF(id);
response.setHeader("Content-Length", String.valueOf(x.length));
InputStream myInputStream = new ByteArrayInputStream(x);
ServletOutputStream os = response.getOutputStream();
byte[] buf = new byte[1024];
int len;

while ((len = myInputStream.read(buf)) > 0) {
os.write(buf, 0, len);
}
os.flush();
if(os!=null)os.close();

Share

Sencha constants

Posted: 6th August 2015 by Jak in Uncategorized

Con este codigo se pueden usar constantes en Sencha o Extjs, son utiles para tener datos desde el back o tener urls siempre disponibles.

Ext.define('App.util.Constants',{
 singleton:true,
 URLBACK:'http://host:8080/ws/rest/',
 URLFRONT:'http://host:8080/front/',

 config: {
 data: 'undefined',
 },

 constructor: function(config) {
 this.initConfig(config);
 this.callParent([config]);
 } 

});

 

App.util.Constants.setData(jsonResponse.data);
 console.log(App.util.Constants.getData());
 console.log(App.util.Constants.getData().nombre);

Share

Postgresql – Text to Json

Posted: 3rd July 2015 by Jak in Uncategorized

select json_array_elements(to_json(cast(aplicaciones AS json))) ::json->>’id’ from sar.asignacion_empleado_estacion where numero_empleado=’15998018665′

Share

Changing IMEI on Android

Posted: 4th December 2014 by Antraxa in Android, hack
Tags:
First, the phone must be rooted. I’ve tested it on Samsung phones only.
Delete these files:
/factory/nv_data.bin
/factory/nv_data.bin.md5
/factory/core*     (all core files)
/data/radio/nv_data.bin
/data/radio/nv_data.bin.md5
and reboot the phone
This generate a generic IMEI for your phone  :)
If anyone knows another way or another phone, please share us.
Share

Samsung S4 – Activar modo desarrollador

Posted: 27th October 2014 by Jak in Uncategorized

1. – Ve a la pantalla de configuración

2.- clic al icono “mas…”

3.- clic a la opción “acerca de…”

4.- en la opción “Numero de compilación o de versión”, dar 7 veces clic y aparecerán las opciones de desarrollador en la pantalla anterior.

Share

Muchas veces necesitamos utilizar una constante en toda la aplicación, y que esa constante tome el valor desde el back, en ExtJS no tiene este concepto como tal, sin embargo vamos a usar un truco para lograrlo en el archivo app.js.

En este código podemos observar que se define una  variable estática, de tal forma que podemos acceder así:

Proyecto.Utils.URL

Ext.define('Proyecto.Utils',{
singleton:true,
URL:'<?php echo URL ?>;'
});

 

En este caso el archivo app.js pasa por php, es por ello que podemos usar sus sentencias.

 

 

Share