11 junio 2013

Actualizar Samsung Advance (I9070GT) a Android 4.1.2


Hace poco actualicé mi celular de la versión 2.3.6 con la cual lo venden en Argentina (en mi caso Claro) , a la ultima versión disponible para este celular: la 4.1.2.
No es la actualización oficial ya que me cansé de esperarla y cada vez Google saca aplicaciones nuevas que ya no funcionan en 2.3.6 (Google Chrome, Google Keep, Google Now entre otras).
Yo lo hice en mi celular y en otro igual y no tuve problemas con ninguno de los 2, pero OJO que esto anula la garantía asi que haganlo bajo su propio riesgo,
Ahi van los pasos. Estan basados en un tutorial de HTCMania (si, se llama HTC pero tiene de todo de Samsung)

Antes de empezar les recomiendo guardar todo lo que no quieran perder en la tarjeta de memoria (fotos, archivos de sonido, mensajes de whatsapp, SMS, etc). Tambien ver que tengan copia de los contactos en Google o en algun lugar.
Despues de la actualización tenemos que limpiar TODO asi que estan advertidos.
Tambien se recomienda tener la bateria por lo menos al 50% de carga por las dudas.

1) Bajan los drivers sino lo tienen. Si ya tienen instalado el Kies quizás no les haga falta. Ahi va el link http://ul.to/lsatxdbe , lo instalan.

2) Descargan ODIN (es el programa para actualizar): http://d-h.st/Pf6
(Son 400KB asi que se baja al toque).

3) Descargan el firmware (el "android nuevo" que le van a instalar al telefono: http://www.sammobile.com/firmwares/3/?download=13931

Pesa 468MB asi que tienen para un rato si su conexión no es muy rapida...
Si la pagina les pide usuario y password ponen: adolf88 y de pass 123456789
(Sino buscan otro en Bugmenot)
Dice Alemania, no se preocupen el telefono es el mismo en todo el mundo y si trae castellano. La razón es que es como "versión mas nueva del firmare" es de Abril del 2013. Es la que yo instalé y funciona ok.

4) Extraen el odin (es un rar, que adentro tiene solo un archivo ejecutable).

5) Extraen el firmware

6) Ejecutan el odin

7) Con el telefono desconectado del USB y apagado lo ponen en modo descarga presionando al mismo tiempo Volumen Abajo y el boton Home (el boton principal) y mientras tienen presionados esos 2 presionan el de power unos seg hasta que se prenda y luego sueltan el de power sin soltar los otros 2.
Aceptan el aviso, si lo hicieron bien van a ver un robotito verde

8) Conectan el cable USB a la PC

9) ID: COM del Odin se tiene que poner en amarillo. Sino sucede es porque instalaron mal o no instalaron los drivers (paso 1).

10) Una vez que está en amarillo seleccionan el archivo desde PDA

11) Buscan el archivo del firmware que se llama algo como I9070XXLQE_I9070DBTLQ1_HOME.tar.md5

12) Presionan el boton START en el Odin verificando que solo tengan tildadas las siguientes opciones: AUTO REBOOT, F. RESET TIME y PDA.

13) Esperan hasta que se cargue el firmware (unos 5 min) si dice PASS (en el Odin) es porque salió todo bien

14) Se va a reiniciar 2 veces. Va a aparecer un Android verde. Después le aparece ya como que esta iniciando en modo normal, si llegan a hacerlo a tiempo apaguenlo para que no arranque del todo, sino no importa pero van a tener que esperar que optimice todas las aplicaciones que tenían antes, para esta nueva versión. Hasta este paso en realidad no borramos los datos del telefono, pero sino lo hacen les va a andar mal.

15) Cuando ya no hace nada lo apagan (o quizás ya lo apagaron en el paso anterior, da lo mismo). Lo prenden en modo Recovery presionando al mismo tiempo Volumen Arriba, boton Home y el de Power (igual que lo que hicieron antes solo que con el de volumen arriba esta vez).

Ahora se viene la limpieza!:
16) Eligen: Wipe Data/Factory Reset y luego Reboot System Now (eligen con las teclas de volumen y con el home).

¡Ahi ya va a quedar limpito y con el nuevo firmware!
Les va a quedar una imagen de bloqueo como la del S3 y el menu les va a quedar algo asi:


Lo trate de hacer facil y entendible (técnicamente) asi está al nivel de todos. Parece largo en 16 pasos, pero en realidad si lo resumimos son 4 o 5 pasos.

Fuentes: http://www.htcmania.com/showthread.php?t=524858



15 febrero 2013

Nueva version de Whatsapp (Android)


Whatsapp estrenó nueva versión para Android, con varios cambios en la interfaz. La ultima versión  (2.9.2294) aún no esta disponible en Google Play pero la pueden descargar e instalarla desde el sitio oficial de Whastapp (http://www.whatsapp.com/android/). Requiere Android 2.1 o mayor.





29 mayo 2012

Automontar particion NTFS en Ubuntu

Vamos a tratar de hacerlo breve y simple...
- Unidad NTFS (puede ser FAT también pero quien usa FAT todavia!)
- Tienen datos que necesitan en esa unidad que comparten en Windows y Ubuntu
- Ya probaron toquetear el /etc/fstab y no funciona (a veces da error de permisos, entre otros)
- Ya probaron utilizar el ntfs-config y tampoco funca
- Si no se acordaron de hacerle click en gnome y que se monte, al abrir algun programa que la utilice les da problemas (ej: Rhythmbox con su libreria, o Banshee, transmission con datos en ese disco, etc).

Va la solución:

Necesitamos el UUID del disco (un cadena larga de letras y numeros). Podemos obtenerla de la siguiente forma:

1) Escriben sudo blkid -o full -s UUID. Van a obtener algo asi:

/dev/sda1: UUID="76A61C7CA61C3ED5"
/dev/sda2: UUID="6E4AF4884AF44E79"



Ahi tienen el bendito UUID, lo copian y lo pegan en un editor de texto, o donde quieran

2) Otra forma, se instalan gparted (sudo apt-get install gparted o synaptics o centro de software)
    -  Lo abren (se suele instalar en Sistema, adminitración), Buscan el disco, click derecho y propiedades

Les va a aparecer una linea con el UUID, y proceden igual que en el caso anterior.

3) Escriben en un terminal: sudo gedit /etc/fstab

4) Agregan la linea de esta forma

UUID=el uuid que sacaron, luego /media/carpeta de montaje ntfs-3g default 0 0

Por ejemplo:
UUID=76A61C7CA61C3ED5 /media/datos ntfs-3g default 0 0

Graban, reinician y listo. Cuando entren deberian tener la carpeta montada en el escritorio de Gnome.

Espero les sirva.

Basado en un post de http://onoametal.wordpress.com

07 mayo 2012

Tips y funciones utiles PHP

Les paso algunos tips y pequeños fragmentos de código útiles al programar en PHP. Seguro hay mil formas de hacer lo mismo, pero es para sacarlos del apuro cuando no se acuerden "¿como se hacía ... ?"
La parte importante en amarillo

Conexión a MySQL:



$servidor="localhost";
$usuario="root";
$password="1234";
$oConn=mysql_connect($servidor,$usuario,$password);

(los datos son de ejemplo, dicho sea de paso no les recomiendo utilizar el root salvo quizás en entornos de desarrollo).
La variable $oConn guarda la conexión. Lo pueden hacer dentro de una función, como un método de una clase, etc, ya queda a gusto de uds.

Conexión a MySQL (con PDO):



$oDb = new PDO("mysql:host=$servidor;dbname=$database", $usuario, $password);
($database es el nombre de la base de datos que van a utilizar)

La ventaja de utilizar PDO es que luego las instrucciones de consulta sirven para cualquier sistema de base de datos (SQL Server, Oracle, Postgres, etc).

Consulta a MySQL:


$sql="SELECT * FROM personas"; //(seleccionar todos los elementos de  la tabla personas)
$result=$mysql_query($oConn,$sql);



Consulta a MySQL (con PDO, sin prepare):



$sql="SELECT * FROM personas"; 
$result=$oDb->query($sql); //siendo $oDb el objeto que creamos en el ejemplo de la conexión con PDO


Consulta a MySQL (con PDO, con prepare):



$result=$oDb->prepare('SELECT apellido, nombre FROM personas WHERE apellido=? AND nombre = ?');
$result->execute(array('gomez', 'barney')); //paso los valores que reemplazaran los ?
$row = $result->;fetchAll();



Se utiliza cuando vamos a repetir una consulta muchas veces y necesitamos mayor rendimiento. Además al preparar la consulta también filtramos un poco la inyección de SQL.


Extracción de Parámetros


extract($_POST); 

Suponiendo que enviemos por POST, si es por GET cambiamos el $_POST por $_GET. Lo que hace esta función es crear una variable con el nombre de cada parametro dentro del $_POST (o de cualquier array asociativo). Es decir si tenemos un parámetro $_POST['nombre'] y un parametro $_POST['apellido'] nos crea una variable $nombre y otra variable $apellido con el valor de cada item. Más rápido que asignar cada variable manualmente, pero OJO este método no es recomendado si no se verificó antes lo enviado por el usuario ya que podría suponer problemas de seguridad o fallas.


Include, include_once, require y require_once


include "archivo.php";
Nos permite incluir un archivo, por ejemplo con funciones, la conexión, etc.

include_once "archivo.php"; 

Incluye el archivo solamente sino habia sido incluido antes. Util si utilizamos funciones externas o clases y no queremos instanciar nuevamente la conexión, etc.

require "archivo.php"

A diferencia de include, require detendrá la ejecución si no se encuentra el archivo, en cambio include solo generará un warning.
Es útil cuando el archivo que estamos incluyendo es indispensable para el funcionamiento del resto del código. Por ejemplo la conexión a la BD cuando así sea el caso.

Funciones de Fecha:


date("dd/mm/yy") 

devuelve fecha en formato dia, mes, año con 2 digitos cada parte y con / como separador la fecha actual.
Por ejemplo 07/05/12.

Se puede especificar un timestamp. Si se omite toma la fecha actual.
Más ejemplos aqui

$hoy=getdate();

Crea un array asociativo con las partes de la fecha actual.
por ejemplo si hago:

echo $hoy['mday']
muestra el dia de hoy en formato numérico, es decir para hoy mostraría 7.

Bueno eso es todo por hoy, seguro hay mil cosas más y otras formas de hacerlo, pero espero que les haya servido.
Cualquier duda, consultar en http://ar.php.net/manual/es/ donde esta el manual completo de PHP en español con la referencia de cada función con todos sus parámetros y comentarios al respecto.


05 marzo 2012

Probando Distros

El dia de hoy me la pasé instalando distribuciones de Linux. Usuario de Ubuntu desde hace mucho, y cansado del menu Unity al que nunca me acostumbraré (odio no poder ver mas facilmente las aplicaciones abiertas y detesto que la barra me estorbe), además de tener un problema con mi placa de sonido (Creative X-Fi Xtreme Audio) y Ubuntu 11.10 decidí probar suerte con otra distribución.
No soy un nerd de Linux asi que me decidí por alguna de las mas populares. Eché mano a Distrowatch para ver cuales eran las más populares. 1er Lugar: Linux Mint, 2do Lugar: Ubuntu, 3er Lugar: Fedora y 4to Lugar: OpenSUSE.
Bajé el Live CD de Linux Mint, y tambie me bajé el DVD de OpenSUSE (Fedora ya lo había probado hace un tiempo y no me convenció y además tampoco funcionaba el sonido bien).
Va mi opinión concisa y breve al respecto ya que los analisis que encontré en internet no me advertían de nada de esto y además eran muy viejos.



Linux Mint


Linux Mint está basado en Ubuntu, y me atrevería a decir para hacerla breve: Es Ubuntu para los que odian Unity. Un aspecto grafico muy cuidado, Gnome 3 sin Unity y con algunos cambios muy utiles como ser la barra abajo y algunos detalles más gracias a un add-on propio de Mint. La instalación es muy similar de la de Ubuntu.
Al ser un derivado de Ubuntu tampoco resolvía mis problemas y tuve un par de problemas adicionales en la parte gráfica (como si se corrompiesen los graficos), aun habiendo habilitado los drivers propietarios de mi placa (ATI Radeon HD 5700). Lo único que no probé es bajar los drivers oficiales e instalarlos.
En resumen: si odian Unity pero les gusta Ubuntu, bajenlo y pruebenlo.


OpenSUSE


OpenSUSE da el aspecto de una distribución más clasica. Con KDE como shell predilecto, opté por Gnome ya que es al que estoy acostumbrado. La instalación es algo un poquito más complicada que Ubuntu o Mint, pero lo bueno es que va informando paso por paso que es lo que va a hacer, y tiene más opciones durante la instalación.
Se instaló sin problemas, pero la sorpresa llegó despues: no tenía conexión de red. Los adaptadores estaban detectados (tengo placa de red y placa WLAN) pero no me pude conectar. El applet de Gnome para las conexiones WiFI brillaba por su ausencia. No había tampoco una opción dentro de la configuración gráfica para cambiar esto.
Probé de todo un poco, y además también tenia el problema en el sonido. Otra cosa que me molestó es que las unidades NTFS las monta en una carpeta /Windows/C, Windows/D, etc. pero no aparecen en la parte gráfica. Así que decidí abandonar OpenSUSE.
En resumen: una distro potente, algo "paranoica" con la seguridad (no se puede hacer ni un ifconfig sin elevar permisos) y no muy amigable para el acostumbrado a Ubuntu o similares. Una recomendación extra: usenla con KDE que es el fuerte de esa distro.

Al final de tantas pruebas y horas invertidas, decidí volver a mi viejo Ubuntu 11.04 donde mi sonido funciona de maravillas y puedo utilizar el Gnome Clasico como en los viejos tiempos.
Aparentemente el problema de mi sonido viene con Gnome 3 o alguna versión de Kernel en particular.

20 enero 2012

¿Olvidaste patron de desbloqueo Android?




Si te olvidaste el patrón de desbloqueo Android y te pide la cuenta de Google por demasiados intentos y no te acordás los datos o no te los acepta, aquí van varios métodos para recuperar tu celular:

Método 1:

Este método no funciona con todos las marcas pero es el más simple:

1) Llamar desde otro telefono
2) Atender la llamada
3) Poner la llamada en espera (en algunos modelos este paso puede obviarse)
4) Ingresar al menú del teléfono, ir a la parte de seguridad y desactivar el bloqueo

En algunos modelos (por Ejemplo algunos Samsung) no permite ir al menú de ninguna manera y sale la pantalla pidiendo los datos de Google. En el Motorola Milestone aparentemente funciona.

Método 2: (Hard Reset)

Este método es un poco más "agresivo" ya que implica resetear el telefono al modo de fábrica y por lo tanto se pierden datos (se mantiene lo de la SIM y la tarjeta de memoria).
Consiste en ingresar al menu Android Recovery (No confundir con modo Dowloading que es para actualizar firmware).

Para Samsung Galaxy S y algunos otros modelos de Samsung
1) Apagar el telefono
2) Presionar el boton de power+volumen arriba y mantener presionado hasta que aparezca el logo de Samsung, luego soltar y deberia aparecer el menu de recuperación (ver guia Recovery Menu más abajo).

En otros modelos sugieren apretar power+tecla menu principal+volumen arriba.
También power+los dos botones de volumen juntos.

Metodo 3: activar Menu recovery por software

Este método es el más complicado pero el único que funciona en algunos modelos (Por Ejemplo el Galaxy i5500):

1) Descargar JDK desde aqui e instalar
2) Descargar Android SDK desde aqui (se recomienda bajar el exe) e instalar
2.1) Deben instalarse en ese orden ya que el 2do requiere del 1ero.
3) Abrir el SDK Manager que se instalo en la carpeta Android SDK Tools de nuestro menu de inicio.
4) Seleccionar Android SDK Tools, Android SDK Platform Tools y de la carpeta Extras el Google USB Driver Package y presionar el boton de Install xx Packages
Una vez instalados los paquetes pueden cerrar el programa.
5) Abrir una ventana de simbolo de sistema y van hasta la carpeta \Archivos de Programa\android-sdk\platform tools\
Revision 06-Ago-2012: Agrego una explicación aqui ya que muchos tuvieron problemas en esta parte.
Una vez abierta la ventana de simbolo de sistema escriben cd\ y luego cd %programfiles%\android-sdk\platform tools\ y una vez que esten dentro de esa carpeta recien ejecutan el adb reboot recovery (paso 7).
Si quieren asegurarse que el archivo esta en esa carpeta pueden ir por el explorador de windows hasta esa carpeta y ver que esté un archivo llamado adb.exe (quizás aparezca solo como adb).

6) Conectan el telefono por USB prendido. En los Samsung (especificamente en el Galaxy i5500 que es el que probé) eligen el modo Samsung Kiez del USB.
7) Desde la ventana de simbolo del sistema que abrireron teclean:
adb reboot recovery y presionan ENTER.
El celular se reiniciará e ingresará automáticamente en modo Android Recovery tras lo cual verán una pantalla como esta:


Eligen la opción que dice wipe data/factory reset (NO LA QUE ESTA MARCADA) y presionan el boton de Menú.
El teléfono luego hara algunas operaciones y volverá a la misma pantalla tras lo cual pueden elegir la que dice "reboot system now" para que se reinicie.
A mi me volvió a aparecer la misma pantalla asi que lo que tuve que hacer es quitarle la batería y volverla a poner, encender el equipo y ahi ya inició normal. Si todo sale bien deberían tener de nuevo el telefono tal cual recién lo compraron.

Espero les sirva. Yo lo hice con un Samsung Galaxy i5500 y me llevó bastante tiempo recopilar toda esta info y llegar con este ultima solución que fue la que funcionó y evitó que el celular se convierta en un pisapapeles.

Nota: actualizar el firmware no resuelve el problema ya que sigue apareciendo el equipo bloqueado y sigue pidiendo los datos de google.

Fuentes principales: androidforums.com / theunlockr.com


16 enero 2012

Mostrar nombre de mes en español en PHP

Les paso una función cortita que armé para mostrar el nombre del mes en PHP, sin utilizar arrays ni cosas raras.
Utiliza funciones nativas de PHP.


function nombremes($mes){
setlocale(LC_TIME, 'spanish');
$nombre=strftime("%B",mktime(0, 0, 0, $mes, 1, 2000));
return $nombre;
}


El nucleo es la función strftime que utilizamos con 2 parametros: el primero es el formato en que quiero que me devuelva la fecha y el 2do es la fecha en si (en formato TIMESTAMP por eso la armamos con mktime) que sino lo pasamos toma la fecha actual.  En este caso pongo el dia en 1 y el año en 2000 ya que no los voy a utilizar.

El setlocale es importante porque selecciona los locales de fecha y hora en "spanish", sino saldrian los nombres de los dias y meses en ingles.

El uso de la función es muy simple. Ej:

$mes=nombremes(8);
echo $mes; //devuelve "agosto"

o algo más simple: echo nombremes(8) devuelve "agosto".

Espero les sirva, ya que en la mayoría de las webs encontré ejemplos mucho mas complicados con arrays y otros métodos más largos y complicados. Si en vez del mes quieren el día solo deben cambiar el %B por %A para el día completo y por %a para el día con 3 letras y luego cambiar la ubicación de la variable $mes (y cambiarle el nombre para que quede entendible).
Pueden ampliar la función para que devuelva el mes o el día según el parámetro pasado, se los dejo como ejercicio.