domingo, 4 de dezembro de 2011

Final de semestre, final de projeto.. e Final Fantasy!

Final de semestre, correria, provas, muitos trabalhos, primeiro projeto quase pronto pra ser lançado.. Estou completamente in love com o desenvolvimento para Android, aprendendo muitas coisas com esse meu app, e espero postá-lo no Market dentro de aproximadamente quinze dias.
Quanto aos trabalhos, apesar de a maioria esmagadora ser completamente chata de se fazer, gostei muito de dois deles. Ambos foram feitos na disciplina de Instrumentalização Científica, ou seja, o objetivo era aprender a desenvolver documentos no formato da ABNT, utilizando aquelas dezenas de regras maçantes (se dependesse de mim, só não utilizar Comic-Sans nos trabalhos já seria suficiente, mas como não é..). Os temas eram livres, então pude escolher pesquisar e escrever sobre temas que gosto.
O primeiro é um artigo cujo tema é "Orientação a Objetos - Origem e Evolução do Conceito". História da computação (especialmente quando puxada pro lado do software) é um tema que acho muito bacana, e gastar algum tempo aprendendo sobre ela se torna facilmente algo divertido de fazer. E OO, bem, é OO. Não tem como não gostar de saber mais sobre o paradigma de desenvolvimento de software mais pop da atualidade. O segundo.. Ah, nesse aproveitei para libertar meu lado geek, e escrevi uma resenha sobre um dos meus games preferidos: Final Fantasy VI, de SNES! Sou fã de carteirinha da franquia, e esse título é um dos melhores da série, e um dos que mais gosto.
Para quem quiser dar uma conferida, o artigo pode ser lido aqui nesse link, e a resenha sobre FFVI aqui nesse outro. Qualquer erro ou bobagem tão absurda que indigne quem venha a ler, deve ser informado, para que eu corrija e não passe tanta vergonha caso mais pessoas venham a ler. E é isso! No próximo post espero falar sobre o lançamento do meu projeto, como foi desenvolvê-lo, e coisas do tipo. :-)

terça-feira, 8 de novembro de 2011

Nova Etapa

Ano passado eu escrevi esse post aqui falando do estágio no desenvolvimento de uma software house na minha cidade. Pois bem, foram dez meses que mudaram minha visão do mundo da programação. Abri minha mente para muita coisa, conheci pessoas incríveis e algumas tecnologias, enquanto tentava continuar meus estudos sobre desenvolvimento para a plataforma Android. Não foi fácil, fiquei um longo período sem aprimorar meus conhecimento, até que, no mês passado, tomei a decisão de sair da empresa e tomar um novo rumo.
E não me arrependo da decisão! Ano que vem provavelmente começarei meu trabalho de conclusão de curso e espero estar dominando a área em que planejo desenvolvê-lo: Android, claro!
Comecei essa nova etapa a mil. Tenho muitas coisas pra aprender para me adaptar completamente à esse mundo mobile. E nada melhor do que começar com um projeto, uma ideia! Estou trabalhando agora em cima de um aplicativo mobile que envolve Web Scraping e Web Service. Acho difícil achar um meio melhor de aprimorar meus conhecimentos do que trabalhando fortemente em cima de um app. Para isso, comecei a estudar Git, o melhor sistema de controle de versões existente, na minha opinião. Criei uma página no blog que penso que será útil para quem ainda está se acostumando com todos os comandos, assim como eu: http://www.castelanjr.com/p/comandos-git.html
Além de Android, outra tecnologia que gosto muito é Python, especialmente o framework de desenvolvimento web Django. Construirei o Web Service com ele, então além disso tenho que aprender a mexer com JSON! Quanto ao Web Scraping, utilizarei o Beautiful Soup, além de outras ferramentas para simular alguns eventos de usuários no site que pretendo "raspar" as informações. Essa etapa já está encaminhada, e para isso acabei aprendendo mais e mais sobre requests, responses..
Quando terminar o app, e ele estiver em um nível bastante "usável" pretendo torná-lo open source. E é isso! É bacana chegar em algum ponto da vida e ter que tomar uma decisão assim, como sair do trabalho para estudar o que se gosta, e tenho certeza que tomei a decisão correta. Sair da zona de conforto é essencial, ainda mais quando se é sedento por novas tecnologias.. Pretendo postar meus avanços aqui no blog.
Ah, antes que eu me esqueça! Estou colocando meu Motorola Atrix a venda, caso alguém se interesse, me chame no twitter (@castelanjr) para negociarmos. É um ótimo aparelho, poderosíssimo, atualizado com Android 2.3.4 (Gingerbread) e com nem seis meses de uso. Pretendo comprar um outro aparelho que possua NFC, pois penso que isso me dará ideias mais adiante. 
Por enquanto, isso é tudo que tenho pra escrever. Até a próxima então!

terça-feira, 4 de outubro de 2011

iPhone 4S e o novo "padrão de medida"

Pois então. O Keynote veio, mas o tão esperado iPhone 5 não. O que surgiu foi o iPhone 4S, que foi motivo para uma enchente de posts em blogs de tecnologia. É um smartphone perfeito, com funcionalidades absurdas, hardware poderosíssimo, mas que deixou todo mundo ligeiramente desapontado. Não só usuários do iOS, como todas pessoas viciadas em tecnologia.
O iPhone é a referência quando fala-se de smartphones, e continuará sendo o primeiro a ser lembrado por usuários comuns (ou seja, o mundo todo). A questão é que estávamos todos acostumados à uma revolução no "mundo mobile" a cada anúncio de um novo iPhone. Claro, o Android só foi se estabelecer (e se fixar) no mercado nesse último ano, o que também conta. Mas vejamos a versão anterior à essa lançada hoje. O iPhone 4 foi lançado há 16 meses. Para ser superado, em termos de hardware, levou aproximadamente um ano, com o Atrix e o Galaxy S II. Esperávamos algo que deixasse o smartphone top de linha da Samsung no chinelo. Foi posta muita expectativa em cima da empresa de Cupertino. E quando essa revolução não vem, há relatos como esse aqui.
Não me levem a mal, o Siri parece ser sensacional! Fez o que a Apple sempre faz: features de alta tecnologia (comandos de voz, no caso) ao alcance de pessoas normais, que não ligam tanto para tecnologia como nós, meros geeks. Mas não é algo revolucionário. Comandos de voz existem faz tempo, mesmo que infinitamente inferiores. Eu acho os Voice Commands do meu Atrix um lixo, por exemplo.
O processador também é extremamente poderoso e os gráficos mostrados hoje são incríveis. A experiência proporcionada pelo iPhone continua absoluta, pelo que foi visto. Mas algo que me chamou atenção foi a constante comparação com o Galaxy S II. E é aí, nos números, que vemos que as expectativas não foram atingidas. Essa matéria do Engadget mostra bem isso. Indo mais além, nessa comparação nem um pouco imparcial do Android Central, fica visível que tem gente apostando na Apple caindo do trono. 
O Galaxy S II continua sendo superior em diversos aspectos. Tá, mas o que tem de importante nessas comparações, sempre tão comuns no mundo da tecnologia? Pelo que me parece, temos um novo padrão de medida para smartphones. Outro aparelho tomado como top de linha, que é sempre comparado com novos gadgets. E isso é algo muito empolgante para mim, no papel de usuário do Android.
Não sou especialista em tecnologia, muito menos em negócios, mas sinceramente acho que a Apple deveria investir mais num produto superior, que continue sendo tomado como o smartphone top de linha, contra quem são feitas todas as comparações, do que em impedir a Samsung de vender seus produtos. Ora, se eu não pudesse comprar um produto por meios tradicionais, eu procuraria uma alternativa. Mercado Livre está aí pra isso.
Enfim, escrevo na condição de um não-fã da maçã que apenas esperava mais dela nessa tarde. Minhas atenções agora estão completamente voltadas ao Ice Cream Sandwich, que provavelmente também não fará nenhuma revolução no mundo tecnológico, mas que atenderá às expectativas de desenvolvedores que não querem ser mais tão atormentados pela fragmentação da plataforma. Até dia 11 de outubro, então!

sábado, 21 de maio de 2011

Comprei meu atrix!

Pois é! Depois de muito tempo esperando e guardando uma graninha, comprei o meu tão sonhado smartphone Android. Confesso que eu estava MUITO PILHADO pelo Nexus S, especialmente porque, por ser denominado "Pure Google Experience", esse smartphone receberá todas as atualizações possíveis com antecedência. Considerei demais essa vantagem. Mas por outro lado, o Nexus S não possui um processador Dual Core e tem apenas 512mb de memória RAM. É equivalente à um iPhone em termos de hardware, sim. Mas os últimos aparelhos do mercado estão vindo com configuração muito superior à essa. O Atrix possui processador Dual Core com 1gh de processamento e 1gb de memória RAM. Ao ver essa configuração (após a dica do amigo @cassiuspacheco_), tive poucas dúvidas. Apesar de preferir um aparelho com a última versão do Android, acabei optando pelo aparelho da Motorola.
E não me arrependo nem um pouco! É meu primeiro smartphone, ainda não tinha tido essa experiência de estar conectado praticamente o tempo todo e de maneira tão prática. O atrix é rápido, possui um touchscreen que responde bem, e um sistema operacional muito bom. Claro, o Froyo não é a melhor opção e já está levemente defasado, mas segundo a Motorola, a atualização para o Gingerbread virá ainda esse ano. Espero!
O ponto fraco citado em todos os reviews que eu li, além da versão do Android, é a câmera. Como praticamente não uso esse recurso, esse não vem a ser um defeito pra mim. Outro defeito também citado é o Motoblur, as "adaptações" da Motorola na interface do Android. Nessa parte concordo plenamente. Apesar da integração com redes sociais como facebook e twitter, o Motoblur é feio. Foi motivo suficiente pra eu instalar o LauncherPro, e deixá-lo com cara de Android de verdade. Ah, o Motoblur também não adaptava a home horizontalmente quando necessário..
Outro fator que não me agrada é que, por determinação da AT&T, apps de fora do Android Market não podem ser instalados, o que vem a ser extremamente chato quando se quer testar apps ainda em fase de testes ou que simplesmente não estão no market. Estou considerando seriamente rootear o aparelho. Mas peraí... AT&T? Pois é.. comprei o Atrix no Mercado Livre, e a operadora do celular era essa gringa mesmo. Por ser desbloqueado, não faz diferença alguma. A única parte ruim é que ele não veio com o dock multimídia, acessório que acompanha os aparelhos comprados pelas operadoras daqui do Brasil.
Quanto aos apps, desinstalei diversos que já vieram instalados nele e que eu considerava inúteis. E enchi de coisa útil: Dropbox, Google Docs, Meebo IM, Astro File Manager e os apps do Facebook e LinkedIn. E duas versões do EXTREMAMENTE VICIANTE Angry Birds: a normal e o Angry Birds Rio.
É.. agora não tenho motivos pra não ficar motivado pra desenvolver meus próprios aplicativos! A falta de tempo continua sendo o maior vilão, mas logo o semestre acaba e com as férias vem o tão sonhado tempinho livre pra eu enlouquecer estudando. Não possuir o aparelho que se deseja desenvolver era um fator muito negativo. Ao utilizar os aplicativos, ver como é estar conectado o tempo todo, temos ideia do poder que temos em nossas mãos. E muitas ideias também! Espero começar a colocar meus apps no Market logo e ver no que tudo isso vai dar.
Até!

domingo, 3 de abril de 2011

Web Scraping

Utilizar dados armazenados na web em aplicações móveis me parece ser algo essencial. E realmente é. Muitos aplicativos (móveis ou não) de sucesso utilizam essa técnica, que possui diversas maneiras de ser executada.  Basicamente, ela consiste em raspar o código HTML ou XML de sites alheios e utilizá-lo nas suas próprias aplicações,  organizando-o na forma de uma árvore, e acessando as informações hierarquicamente através das tags. Não é algo muito complicado, mas dá trabalho caso seja feito sem utilizar alguma ferramenta poderosa.
Recentemente, observando o código fonte do Consumo (aplicativo para iPhone que informa o usuário sobre o tráfego de dados, gastos, etc. que por acaso foi criado pelo @felipek), me deparei com o Beautiful Soup.
O Beautiful Soup é um poderoso HTML/XML parser, com recursos que facilitam a vida do desenvolvedor:  não é qualquer HTML mal escrito que o impede de organizar os dados em uma árvore de fácil compreensão. Ele também possui métodos dinâmicos e simples para navegar, pesquisar e alterar a árvore. 
Mas o que mais me deixou com vontade de utilizar essa ferramente foi o fato de ela utilizar Python, linguagem da qual sou fã e gosto de brincar de vez em quando (apesar de nunca ter estudado muito a fundo..). Em pouco tempo, construí um algorítmo em python que busca o último tweet do usuário informado, e abre-o em uma página no navegador. É algo MUITO simples, mas dá ideia do que é possível fazer. Contém uns erros de codificação, a velha história do utf-8 e mimimi que eu fiquei com preguiça de pesquisar a fundo. :P O código é esse: 


# -*- coding: utf-8 -*-

import urllib2
from BeautifulSoup import BeautifulSoup
import os

#Pede ao usuário que informe o user do twitter, e o
#concatena na url que será acessada
user = raw_input('Informe o user do twitter: ')
url = "https://twitter.com/" + user

#cria a árvore
page = urllib2.urlopen(url)
soup = BeautifulSoup(page, fromEncoding="utf-8")

#navegando pela árvore
tweets = soup.findAll('div')
tweets = tweets[12]
tweets = tweets.contents[5]

#cria o arquivo html que guardará o último tweet do usuário
arquivo = open("C:\site.html", "w")
arquivo.write(tweets.ol.span.span.span.prettify())
arquivo.close()
print u'Operação concluída!'

#abre o arquivo no navegador
os.system("C:\site.html")
os.system("exit")



Quem se interessar, aqui está a página do Beautiful Soup, que também contém toda a documentação dele.
Até!

sábado, 12 de março de 2011

Voltando!

Impressão minha ou esse blog andava meio abandonado?..
Pois bem. O motivo da ausência é simples, e o mais manjado de todos: falta de tempo, SEMPRE. Trabalhei durante as férias todas, e continuo lá, firme e forte. Essa rotina de trabalhar/estudar/estudar em casa/dormir um pouquinho é mega cansativa, mas tô levando na boa. É bem bacana essa sensação de "ser adulto".. :P
Sou obrigado a admitir: andei relaxando nos meus estudos sobre a plataforma Android. É que, além da falta de tempo, fiquei extremamente empolgado com Python e Django (desenvolvimento web), e me afastei um pouquinho do robozinho da google. Sem contar que, com o cansaço devido à rotina puxada, vem a desmotivação.
E essa desmotivação repentina sumiu por completo nessa última sexta-feira. Tive uma palestra ótima sobre desenvolvimento mobile. Extremamente conveniente. Nada melhor que alguém com uma história verdadeira pra empolgar e motivar.
A palestra foi dada pelo Felipe Kellermann para os alunos da ulbra e mais alguns estudantes de cursos técnicos de informática (mais informações sobre a palestra aqui). Resumindo: o cara tinha um emprego na Hewlett-Packard (a.k.a. HP), e largou pra desenvolver pra iOS. E se deu bem, muito bem.
Independente da plataforma, desenvolvimento mobile é um mercado em constante crescimento e que está apenas começando. Portanto, qualquer pessoa que se envolva com isso e se dedique, obtém resultados. Fica a dica aê RAPEIZES.
Espero voltar a atualizar o blog constantemente, mostrando meus avanços nos estudos. Até!