Android Retail no Motorola Defy

Já é conhecido por todos que a querida Claro adora capar os celulares com Android. Tira GTalk, busca do Google por padrão do navegador, entre outras cagadas. Sem contar a porcaria do Motoblur que nasceu com a finalidade de deixar o celular mais lento.

Mas Seus problemas se acabaram-se. Android é um sistema pseudo livre e você pode alterá-lo a hora que lhe der na telha.

Nesse post vou descrever como tirar fora o Android capado da claro e instalar uma versão Retail, limpinha e cheirosa do sistema mobile mais legal de todos.

ATENÇÃO: Não me responsabilizo pelo mau uso das informações desta página. Se você ferrar o seu telefone, o problema é SÓ SEU. Alterar o sistema vai provavelmente cancelar a garantia do seu Defy.

Esta versão do sistema não é rooteavel e o downgrade não será possível. Caso você tente fazer downgrade, como eu tentei, verá o seu celular virar um peso de papel, nem ao menos ligará, mesmo assim é possível reinstalar esta versão ou outra mais mais recente. Portanto não se desespere, apenas inicie o celular no modo bootloader e rode o sbf_flash que a tela ligará assim que o sistema começar a ser instalado.

O que você vai precisar:

Imagem SBF do sistema

Eu usei a versão Indiana, pois ela está configurada para as mesmas frequências utilizadas pela Claro (850/2100).

Caso queira outra frequencia, veja a lista de imagens para Defy

sbf_flash para Linux e Mac

Este é o programa responsável por enviar a Imagem SBF para dentro do seu smartphone.

(Usuários do ruWindows devem se virar com o RSD Lite)

Se você não sabe nada sobre terminal do Linux ou Mac, é bom entender primeiro o que fazem os comandos chmod e sudo.

É recomendável que a bateria esteja 100% carregada.

Agora vamos a um passo-a-passo muito simples:

  • Faça downlod da imagem SBF e do sbf_flash, descompacte a imagem na mesma pasta do sbf_flash
  • Apague todas as configurações do seu Defy no Menu Configurações > Privacidade > Configuração Original. Isso apaga seus aplicativos e configurações de contas. Seu SDCard continuará intacto
  • Desligue seu Defy e religue segurando a tecla de aumentar o volume. (Uma tela preta com texto em branco deve aparecer. Este é o bootloader =)
  • Conecte o cabo USB
  • No Linux ou Mac abra o terminal e:
    • Torne o sbf_flash um executável digitanto: chmod +x sbf_flash
    • Por fim, execute sudo ./sbf_flash NOME_DO_ARQUIVO.sbf (o sudo pedirá a sua senha de administrador, digite e de enter)
  • Espere o processo terminar. O seu Defy irá reiniciar sozinho, já dentro do sistema novo.

Pronto! Agora seu Android provavelmente está muito mais leve e completo. Fora crapware da Claro e Motorola. Bem vindo ao mundo do Software Livre.

Atualizou? E aí, o que achou? Deixe o seu comentário.

Publicado em Android | 9 Comentários

Background transparent no gnome-panel do Ubuntu 10.04

Fiz este pequeno vídeo para demonstrar como resolver este probleminha:


(assista em tela cheia)

Publicado em Ubuntu | 1 Comentário

Funções para limitar palavras e caracteres em PHP

Inicialmente projetadas pra utilizar no WordPress, estas funções podem ser utilizadas em qualquer projeto que feito em PHP

Limitar Palavras

function limit_words($text, $limit = 25)
{
	$words = split(" ",$text);
	$str = "";
	for ($i = 0; ($i < count($words) && $i < $limit ); $i++)
	{
		$str .= $words[$i] . " ";
	}
	return $str;
}

O primeiro parametro ($text) da função é o texto que será utilizado,
O segundo parametro ($limit), referente a quantidade de palavras é opcional, caso ele não seja passado, o valor padrão, que é 25, será utilizado.

Exemplos

echo limit_words("Lorem ipsum dolor sit amet.", 3); //Imprime "Lorem ipsum dolor"
echo limit_words("Lorem ipsum dolor sit amet."); //Imprime todas as palavras, pois o limite padrão é 25 e o texto contém apenas 5 palavras.

Limitar Caracteres

function limit_chars($text, $limit = 55)
{
	$str = "";
	$word = "";
	for ($i = 0; ($i < strlen($text) && $i < $limit ); $i++)	{
		if ($text{$i} == " ") {
			$str .= $word . " ";
			$word = "";
		} else {
			$word .= $text{$i};
		}
	}
	return $str;
}

O primeiro parametro ($text) é o texto a ser trabalhado
O segundo parametro ($limit) é a quantidade de caracteres permitidos, o padrão é 100
OBS: esta função não corta uma palavra ao meio, como mostra os exemplos:

Exemplos

echo limit_chars("Lorem ipsum dolor sit amet.", 25); //Imprime "Lorem ipsum dolor sit"
echo limit_chars("Lorem ipsum dolor sit amet.", 10); //Imprime "Lorem", pois o décimo caractere é o "u" de ipsum, portanto esta palavra será totalmente removida.

No WordPress

Para limitar por exemplo a quantidade de palavras de um post, usa-se o seguinte código:

echo limit_words(get_the_content(), 10); //Assim as 10 primeiras palavras de um post serão mostradas
echo limit_chars(get_the_content(), 200); //Neste caso veremos os 200 primeiros caracteres de um post

O mesmo pode ser feito com get_the_excerpt ou com outra função que retorne um texto qualquer.

Publicado em Desenvolvimento, PHP, Wordpress | 3 Comentários

Debian + Apache + PHP + MySQL

Os pacotes utilizados serão os seguintes:

  • apache2 – Pacote principal do Apache versão 2.
  • php5 – O nome já diz tudo.
  • mysql-server-5.0 – Este instalar o MySQL 5.0, o nome não é tão obvio né?
  • php5-mysql – Este é o módulo do PHP5 responsável pela conexão com o MySQL!

Agora que já temos os nomes dos pacotes é só executar como root este comando: aptitude install apache2 php5 mysql-server-5.0 php5-mysql. Em poucos minutos tudo estará instalado e configurado.

Abra seu navegador e acesse http://localhost/ e então você verá a frase It works! Este é o sinal que o Apache foi instalado com sucesso.

Para definir a pasta onde o Apache irá buscar os arquivos edite o arquivo /etc/apache2/httpd.conf e adicione as seguintes linhas:

<VirtualHost *:80>
    DocumentRoot /var/www
    ServerName localhost
</VirtualHost>

Note que /var/www é a pasta que escolhi para colocar os arquivos dos sites. Após editar e salvar o arquivo de configurações rode o comando /etc/init.d/apache2 reload para carregas as novas configurações do Apache.

Para testar o PHP basta criar um arquivo com o código <? phpinfo(); ?> e salvar dentro da pasta para qual seu Apache está configurado, no meu caso salvei em /var/www/info.php, então no navegador acessei http://localhost/info.php e constatei que o PHP está funcionando corretamente.

Para testar o MySQL fiz algo parecido com o PHP, criei o arquivo /var/www/mysql.php com o código <? mysqli_connect("localhost","root","","information_schema"); ?>
e então acessei pelo navegador: http://localhost/mysql.php, Se nenhum erro ocorreu, então o PHP conseguiu conectar no MySQL com sucesso.

Pronto, agora está tudo documentado, não esqueço mais, e se esquecer eu acho bem rápido, hehe.

Publicado em Debian | Deixe um comentário

WWW é inútil

O significado de “www” é World Wide Web, numa tradução livre seria algo como Rede de alcance mundial, ou seja Internet.

Digo que odeio digitar “www” com indignação, eu realmente fico irritado quando um site necessita desse prefixo para ser acessado, acho isso desnecessário e continuarei achando até que alguem mostre outra utilidade desses 3 “dáblius”.

Ao meu ver um domínio é o endereço de uma empresa, um blog pessoal, um flog, ao adicionarmos o prefixo “www” estamos criando um subdominio, uma subdivisão, tal qual um empresa que tem um departamento de RH ou outro qualquer. Então, para que serve um site ter um subdominio falando, “Ó, temos uma subdivisão de www”? Deu pra perceber que temos uma informação adicional completamente inútil, a não ser para ajudar em uma possível LER, não é?

Mas daí vem um mané e me fala, “www” significa que é um site, assim o usuário saberá do que se trata, então eu retruco, para isso é inventaram o “http://” que aparece na barra de endereços do seu navegador, HTTP significa “HyperText Transport Protocol”, traduzindo, Protocolo de Transporte de HyperTexto – leia-se HyperTexto como páginas e seus links.

Então chegamos a conclusão que o “http://” foi feito para dizer, “Pô, isso é um site.” então esqueça o “www”!

Se alguem tiver alguma justificativa além da que “www é bonito”, por favor me dê.

Publicado em Internet | Deixe um comentário

Debian + Apache + mod_python

Recentemente tive a necessidade de instalar o mod_python no Apache para um trabalhinho da faculdade, como o trabalho era em grupo, quem se ferrou primeiro foi o Tony Sacanix que instalou tudo no Windows, com muito sofrimento, haha!

Como eu estou tentando migrar para Linux resolvi instalar as mesmas coisas no meu Debian Etch, utilizando o aptitude (apt-get), é claro!

Primeiro vamos a instalação do Apache , no meu caso, a versão 2.
Abra o console do seu Debian e digite esta longa linha de comando: aptitude install apache2, feito isso, espere no máximo alguns minutos até que o aptitude baixe tudo e deixe o Apache2 funcionando perfeitamente, então abra o seu navegador predileto e acesse “localhost” para ver a prova!

Agora instalaremos o mod_python em questão. Mas não se anime, este passo é tão dificil como a instalação do Apache.
Abra o seu console como root digite: aptitude install libapache-mod-python, espere poucos segundos e pronto!

Aí você se pergunta: Tá, mas e agora? vamos configurar o apache para rodar os arquivos com extenção psp.

Utilize seu editor de texto predieleto para abrir o arquivo /etc/apache2/httpd.conf e então adicione as seguintes linhas:

<VirtualHost localhost>
	ServerName localhost
	DocumentRoot /http/python
    	AddHandler mod_python .psp
    	PythonHandler mod_python.psp
    	PythonDebug On
</VirtualHost>

Onde DocumentRoot deve ser a localização da pasta raiz do seu site.

Para que as alterações feitas no httpd.cong entem em vigor simplesmente reinicie o apache com o comando /etc/init.d/apache2 restart

Agora é hora de criar um arquivo para ver se está tudo funcionando corretamente, eu criei um arquivo chamado hello.psp, que está no diretório http/python/ com o seguinte conteúdo:



Agora só nos falta testar, abra seu navegador e acesse localhost/hello.psp, e opa, temos um “Hello World!” na tela, o resto é por conta da sua imaginação =)

Publicado em Debian | Deixe um comentário

Um pouco sobre JSON

O JSON atua principalmente na resposta de requisições AJAX ao servidor, ele traz informações de forma organizada assim como um XML faria, porém, com muito mais vantagens.

Mas afinal de contas o que é esse tal de JSON? A sua sigla em ingles significa: JavaScript Object Notation, ou em bom português, “Notação de Objetos JavaScrit”, que nada mais é do que uma string padronizada, contendo dados que descrevem um objeto JavaScript

A sintaxe é simles: { atributo1:"asd", atributo2:10 }, onde {} diz que se trata de um objeto e atributo1:"asd" diz que existe um atributo com nome atributo1 com o valor asd.

Virgulas são utilizadas para separar os atributos e valores de atributos inteiros não necessitam da aspas ao seu redor.

Boiando? vamos a um exemplo:

<script type="text/javascript">
    string = {nome:"Luan Almeida", idade:22, site:"luanlmd.wordpress.com"};
    pessoa = eval(string);
    alert(pessoa.nome+" tem "+pessoa.idade+" anos e é dono do site "+pessoa.site);
</script>

Esta seria a descrição de um objeto que contem dados de pessoa em JavaScript, na segunda linha a função eval() que faz a mágica acontecer, e então na variavel pessoa temos um objeto java script com os atributos nome, idade e site.
na última linha apenas é dado um alert para exibir os dados, o resultado seria: Luan Almeida tem 22 anos e é dono do site luanlmd.wordpress.com

Acho que a partir de agora já da pra imaginar utilidade para o JSON, mas ele pode ir um pouco mais alem, pode representar um Array ou até mesmo objetos que contém propriedades que são outros objetos

Vamos a outro exemplo:

<script type="text/javascript">
    string = [{nome:"Luan Almeida", idade:22, site:"luanlmd.wordpress.com"}, {nome:"Joãozinho", idade:25, site:"example.com"}];
    pessoas = eval(string);
	pessoa = pessoas[1];
    alert(pessoa.nome+" tem "+pessoa.idade+" anos e é dono do site "+pessoa.site);
</script>

Desta vez os dados de Joãozinho serão impressos, pois ele está na segunda posição do Array, a qual foi utilizada.

Eu particularmente uso JSON em todas as requisições AJAX que faço em minhas aplicações, seja para login ou preencher um grid a partir de uma consulta, até mesmo em um formulário de contato, é bem mais simples que usar DOM para percorrer um XML além de necessitar que sejam tragos menos dados na resposta da requisição, pois se comparar ao XML pode-se perceber que a sintaxe do JSON é muito mais simples e limpa.

| Deixe um comentário