PHP: Convertir objeto a array
function objectToArray($d) {
if(is_object($d)){
$d = get_object_vars($d);
}
if(is_array($d)){
return array_map(__FUNCTION__, $d);
}else{
return $d;
}
}
Placeholder crossbrowser (para Explorer)
Paso de explicar.
getInternetExplorerVersion = function getInternetExplorerVersion(){
var rv = -1;
if (navigator.appName == 'Microsoft Internet Explorer'){
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if(re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
if(getInternetExplorerVersion()!=-1){
$('[placeholder]').focus(function() {
var input = $(this);
if(input.val() == input.attr('placeholder')){
input.val('');
input.removeClass('placeholder');
}
}).blur(function() {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('placeholder');
input.val(input.attr('placeholder'));
}
}).blur();
}
USB Mass Storage para Android 4.x.x ICS
Hace alrededor de una semana que me compré un Samsung Galaxy S2 de segunda mano y el primer día acabé con un Kernel Panic pensando que acababa de tirar 250€ a la basura. A base de horas, un portatil viejo y Odin para Windows, conseguí restaurarlo y usar la versión 4.0.3, perdiendo el root que tenía el antiguo propietario. Con el mismo programa volví a tener root.
En la versión 4.x de Android se deja de poder utilizar el dispositivo como almacenamiento masivo por el uso del protocolo MTP, que sólo está implementado en Windows (si no me equivoco es propiedad de ellos mismos).
Para recuperar la opción de montar la tarjeta SD (y la memoria interna si fuera el caso) hay que usar terminal y tener permisos de root, a partir de ahí es muy sencillo.
La aplicación de terminal que he usado yo es Android Terminal Emulator, de código libre y disponible en Google Play.
Abrimos la aplicación y escribimos su para tener permisos de root, la aplicación que nos lo gestione (en mi caso SuperSU) nos preguntará si queremos darle permisos a la aplicación de terminal, aceptamos.
Ahora se escribe esta linea sin cambiar ni una coma:
setprop persist.sys.usb.config mass_storage,adb
Y ya está, después de reiniciar el dispositivo se podrá acceder como se hacía con normalidad en versiones anteriores.
Java: Calcular área y perímetro de triángulo rectángulo
Estoy empezando a estudiar Java, un ejercicio:
Se da la base y la altura de un triángulo rectángulo y te calcula el perímetro y el área. Si se escribe algo que no sea un número dará error, pero aún no he llegado al tema en el que me expliquen como arreglarlo.
package calcula;
import java.util.Scanner;
public class Main {
static int area(int base,int altura){
return (base*altura)/2;
}
static int perimetro(int cateto1, int cateto2){
int hipotenusa = (int) Math.sqrt((cateto1*cateto1)+(cateto2*cateto2));
return cateto1+cateto2+hipotenusa;
}
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("Escribe la base: ");
int base = sc.nextInt();
System.out.println("Escribe la altura: ");
int altura = sc.nextInt();
System.out.println("Area: "+area(base,altura));
System.out.println("Perimetro: "+perimetro(base,altura));
}
}