_jvitor

muita besteira, mas talvez tenha algo que preste por aqui...

Finalmente novo site no ar!

Opa pessoal, beleza?

Bom, pelo título fica meio que óbvio o motivo deste post né? :)

É isso aí, depois de muitos anos com aquele site horrível em wordpress, finalmente tomei vergonha na cara e fiz um novo. Nessa empreitada tenho que agradecer ao Nicolas pela força no layout (força nada, ele que fez toda a parte gráfica, valeu rapaz!!).

Também aproveitei e adicionei os últimos projetos que trabalhei e foram entregues desde a última atualização, que são vários hehe.

E como cereja do bolo, nestes últimos tempos ando brincando bastante com JQUeryMobile (usando PhoneGap - que no futuro, deve render um post a respeito) e resolvi implementar bem rapidinho uma versão mobile do site. É só acessar por um iPad, iPhone, Android, WP7 e ver o resultado!

Ah, o link: http://www.jvitor.com.br

É isso pessoal.

Valeu e Feliz Natal!

2 semanas e pouco desenvolvendo com Titanium

Primeiro de tudo, acho legal começar este post falando sobre o que é Titanium, o que ele faz, como ele apareceu na minha vida e etc. 

Bom, o Titanium é uma plataforma de desenvolvimento capaz de gerar aplicativos nativos para mobile, incluindo iOS e Android, e que usa JavaScript como base. 

Ti_monitors

Alguns meses atrás, fiz um estudo bem superficial sobre ele, montando uma app bem simples e apenas validando como funcionava.

Recentemente, onde trabalho, começamos o desenvolvimento de uma aplicação toda feita em Titanium focada para iOS (iPhone/iPod Touch). Bom, depois do choque inicial, e 2 semanas depois de muito código, já tenho uma opinião um pouco mais formada sobre ele.

Uma das principais vantagens é usar uma linguagem mais comum aos devs que estão vindo de desenvolvimento web. Tudo roda em cima de JavaScript, usando o conjunto de classes e métodos que o Titanium disponibiliza. Ao compilar, o Titanium não gera uma WebView pra exibir o conteúdo como se fosse HTML, na verdade, ele transforma todo o código JavaScript em código nativo, que inclusive, abre e compila no XCode. 

Poc_-_1

Imagem de projeto exemplo que fiz alguns meses atrás

A documentação é razoável, não é tão completa quanto poderia, mas te auxilia bem. Pesquisas no Google não rendem tanta informação útil, mas existem alguns blogs que possuem tutoriais interessantes sobre a plataforma. O Q&A deles é razoável, tem de dúvidas básicas e coisas mais complexas, mas tem que dar uma boa filtrada até achar a solução.

Uma das coisas legais que acho válido comentar é que toda a arquitetura do projeto em que trabalhei foi pensada em MVC, tentando separar o máximo possível os controllers do model, e da view. Isso não é default no Titanium, você pode fazer como quiser, mas acho bem melhor (pelo menos pra mim) fazer assim. Tem alguns tutoriais que dão dicas de como fazer, mas no final, não tem muito segredo.

Um dos pontos negativos que percebemos durante esse tempo de desenvolvimento é a falta de um Interface Builder para montar as views. Posicionar tudo manualmente é bem chato e demorado. Sem contar, que você precisa tomar alguns cuidados extras pra alinhar os conteúdos quando está fazendo um layout mais complexo (ScrollView com várias views dentro, por ex.). 

Outra coisa que complica um pouco é que certas coisas que deveriam ser super rápidas de fazer, como uma barra de botões, se mostraram razoavelmente desafiadores. Também tivemos alguns problemas com o  gerenciamento dos clicks nas views, e na falta de um "viewWillAppear" nativo. Como solução criamos o nosso, pra recarregar os conteúdos conforme o usuário vai navegando pelas telas. Como a aplicação que desenvolvemos tinha alguns fluxos a mais de navegação, também customizamos o Navigation Controller nativo do Titanium, criando um nosso próprio e mais parecido com o iOS (com Push, Pop, PopToRootView, e etc). Acho que a parte de navegação foi o maior desafio do projeto, mas uma vez dominado, vimos que todo o resto funcionava muito bem.

O esquema de debug é legal, pra quem está acostumado com Java é super tranquilo. A interface da IDE é feita em cima do Aptana (ao menos na versão Free) e funciona bem. Faltam recursos para montagem de views visualmente, mas tem autocompletar e etc. Cumpre o básico sem problemas.

A primeira vista, a linguagem parece meio estranha pra quem se acostumou com Objective C, mas no geral, é bem simples de aprender/acostumar. Como citei acima, às vezes você acaba batendo cabeça com coisas que seriam extremamente simples programando direto no XCode, mas em outros, você acaba ganhando tempo. Pra quem não sabe nada de Objective C, olhou pra ele e disse: "WTF?" mas ainda assim quer dar os primeiros passos em desenvolvimento iOS. Bom, dê uma chance ao Titanium.

Kitchensink_-_2

Então tá né? 

Uma das coisas que eles pregam é que se você desenvolver em Titanium, teu código vai funcionar tanto no Android quanto no iOS. Isso sim é mito! Caso você tenha modularizado bem a aplicação e feito em MVC, provavelmente vai conseguir aproveitar os Models e alguns controllers, porém, as views, com certeza, terão de ser refeitas se quiser uma experiência decente em ambas as plataformas. Uma coisa óbvia aqui é: se você usou Navigation Controller no iOS tua aplicação já não rodará no Android, pois, obviamente, isso não existe no robalinho verde. Para se "resolver" isso, uma abordagem seria criar um controle de navegação próprio como fizemos e depois ir mais adiante, montando versões dele para iOS e Android, assim, sua chamada de troca de tela seria igual no controller, o que pode lhe ajudar a aproveitar mais código.

Se você me perguntar hoje se eu faria outra app em Titanium, a minha resposta seria sim, mas acho que dependeria muito dos requisitos da aplicação. Preciso montar uma POC (Proof of Concept) aqui em casa pra validar como é o desenvolvimento pra Android, mas não acho que deva ser muito diferente. 

Bom, se depois de ler esse texto você se animou em dar uma olhada no Titanium, recomendo que baixe o SDK de desenvolvimento deles e o Kitchen Sink (aplicação de demonstração mantida pela própria equipe de desenvolvimento com uma grande quantidade de exemplos de como se utilizar os componentes e etc). 

Kitchensink_-_1

Um dos muitos exemplos do Kitchen Sink

Pra finalizar, alguns sites de referência:

http://cssgallery.info/category/titanium-appcelerator/ - Tutoriais básicos

http://wiki.appcelerator.org/display/guides/Titanium+Mobile - Wiki com diversos exemplos

http://developer.appcelerator.com/apidoc/mobile/ - Referência das APIs

https://github.com/appcelerator/KitchenSink - GitHub do Kitchen Sink

http://www.appcelerator.com/ - Site da empresa

Integração com Redes Sociais

Hoje em dia, vem crescendo a necessidade dos websites oferecerem integração com as redes sociais, seja com um link de compartilhamento no twitter ou um "Curtir" no Facebook. Alguns sites não ficam só nisso, e oferecem login pelo Facebook, ou opção de comentar no site direto pela conta do Facebook, etc…

Na nova versão do CMS Arashi que estou trabalhando (atualmente utilizo ela em 2 novos projetos em desenvolvimento) comecei a estudar mais a fundo possíveis redes para fazer integração, vendo pontos positivos e negativos no desenvolvimento, e até mesmo aplicação deles no website.

Minha primeira integração foi com o Facebook. Logo na Dashboard (Tela Inicial do CMS após o Login) você pode ver a interação dos usuários do Facebook com o seu site. Desde comentários, até um curtir. Dá uma boa ajuda para avaliar o que está acontecendo com a sua empresa na rede. 

Também já fiz alguns testes com o Twitter, para acompanhar o que acontece com a sua marca dentro da rede deles...é bem bacana o potencial disso. 

Além disso, em um novo projeto que estou trabalhando, o nível de integração aumentou consideravelmente. O usuário vai poder se registrar no site usando os dados do Facebook. E melhor, depois de cadastrado, vai se logar no site sempre que o Facebook estiver conectado. Interessante né? Mas bem complicadinho, hehe…

Falando um pouco sobre a integração com o Facebook, eles oferecem um SDK (atualmente na versão 3.0) para PHP que é até bem legal. Faz o básico e de forma competente. O problema é que não tem lá muita documentação, muito menos grandes exemplos… Para integrar com frameworks é meio que um "do your way". No caso do CodeIgniter que utilizo, existem alguns projetos da comunidade que fazem a integração, mas a maioria para as SDKs antigas, já que a nova complicou um pouquinho isso. No fim, consegui integrar, mas perdi algumas horas com coisas obscuras que poderiam ter sido explicadas facilmente em um FAQ ou documentação. 

É importante medir os ganhos que essas integrações podem trazer para o seu projeto. A web está cada dia tentando facilitar mais e mais a vida do usuário, e este tipo de integração é muito interessante, já que todo o conceito da web atualmente gira em torno de compartilhamento, não é mesmo? Mas vale também o cuidado para não tornar um site empresarial muito "social" e acabar tirando um pouco o foco do que sua empresa faz. 

 

1 mês e pouco depois...

Bom, acho que são quase 2 meses, ou até mais, que eu não atualizo o blog não é? É que nesse último mês e pouco, muita coisa mudou por aqui, e espero que pra melhor =)

Começando pelo básico…. desde o dia 12 de Abril, troquei de emprego e agora estou trabalhando numa empresa de grande porte aqui em Campinas, mas a melhor parte disto é que agora trabalho com desenvolvimento em iOS.  Yes, isso mesmo, agora "mim mexe" com Mobile =P

Nesse primeiro mês, o mais difícil foi me acostumar com a linguagem. Pois bem, Objective C é beeeeeem estranho à primeira, segunda, e até terceira vista. Passado todo esse tempo, posso dizer que agora estou entendendo melhor como funcionam as coisas, lógico, tem muita coisa pra aprender ainda, mas pelo menos consigo montar um aplicativo minimamente utilizável, ou até um joguinho (aguardem novidades quanto a isso! =x ou não!). 

O legal de estar aqui agora, fora a parte de todo o aprendizado em iOS, é também o aprendizado com a metodologia ágil. A empresa aqui roda Scrum em tudo, o que é bem legal. Nada como uma documentação e um planejamento pro projeto andar tranqüilo né? Finalmente um pouco de planejamento hehehe.

Outro ponto bacanudo que, depois com tempo, vou tentar escrever um post detalhando melhor, é que consegui "emprestado" por uma semana o Motorola Xoom aqui da empresa pra poder dar uma fuçada, ver qualé que é do negócio, e o melhor, experimentei com a versão 3.0 e 3.1 do Honeycomb.  Deu pra dar uma comparada com meu iPad e tal, foi bem interessante.

Nestes dias, estou numa correria lascada, tanto no trabalho quanto em casa com outros projetos, mas vou tentar atualizar mais por aqui, principalmente com um reviwzinho do Xoom. 

Acho que é isso. 

See u all! 

Atualizando o CodeIgniter 1.7 para 2.0

No final do ano passado e até meio de janeiro eu acessava quase que diariamente o site do CodeIgniter pra saber quando ia ser o lançamento da versão 2.0, mas depois disso acabei esquecendo de acessar por conta de outros afazeres. Hoje entrei lá e "boom", versão 2.0 lançada em 28 de janeiro. My bad! 

Corri pra fazer o download e ler o Changelog pra entender melhor o que havia mudado. Vou falar de algumas mudanças aqui, mas a lista completa (em inglês) você pode encontrar neste link: http://codeigniter.com/user_guide/changelog.html
  • Primeiro de tudo: Se seu servidor ainda roda o velho PHP 4, esqueça a versão 2.0. Nesta nova versão, o suporte a ele foi removido;
  • Plugins não existem mais, você vai ter que transformá-los em Helpers. O plugin de calendário não existe mais, recomendo o Jquery UI DatePicker;
  • Foi adicionado um prefixo "CI_" para todas as classes "core" do CodeIgniter;
  • A ordem das pastas mudou. A pasta Application não fica mais dentro de System;
  • Não existe mais classe de validação (se é que alguém já a utilizou alguma vez);
  • Não é mais necessário informar a base_url dentro do config;
  • Adicionaram uma opção de setar "*" quando se vai fazer o upload de arquivos para que você não tenha mais que ficar especificando os tipos a serem subidos. Isso realmente era um saco, e que bom que acertaram! Para usar, basta colocar:
    $config['allowed_types'] = '*'
E por aí vai... são várias mudanças, algumas legais, outras necessárias e talvez, algumas não tão legais assim. 
Assim que eu baixei a nova versão, fiz backup da aplicação atual (rodando 1.7.x) aqui do trabalho e comecei a instalar/configurar a nova versão 2.0. Abaixo vou descrever as mudanças que tive de fazer pra aplicação voltar a rodar...

Um problema que tive de cara é que o index.php padrão para chamada do CI mudou algumas configurações. Eu tinha configurações próprias lá dentro, então, tive que pegar as minhas configs e jogar no novo index deles. 

Feito isso, tive problema com todos os controllers e models, por motivos acima citados (adição do CI_ nas classes "core"). Fui lá, renomeei todas. Uma coisa que percebi também é que, quem usava, por exemplo:

function Meu_Controller() {
 parent::Controller();
}

Vai precisar remover isto... Vários códigos exemplos de sites que falam do CodeIgniter falam pra fazer isso nos controllers e nos Models (parent::Model()) e agora, bom, não funciona mais. 

Faça as configurações clássicas, acesse o config.php, autoload.php, database.php e acerte seus parâmetros. Não pude testar o esquema de deixar o base_url em branco pois aqui, várias aplicações acessam os mesmos controllers/views/models, então, mantive os dados setados para não ter problemas.

Pra quem utiliza Sessão e não havia definido uma chave de encriptação (e usava encriptação), agora ela é requisito. Entre no config, e coloque lá:

$config['encryption_key'] = "minha_chave";

Depois disso, tive problemas com "& get_instance();". 
Antes, o uso recomendado (dentro de Models) era:

$this->CI = & get_instance(); 

Agora, não dá pra utilizar o $this, então o ideal é utilizar:

$CI = & get_instance();

Pronto, minha primeira tela de login apareceu, porém, erro no captcha. Esta parte é simples, entre no controller e troque a chamada do Plugin para a nova do Helper, assim:

Antes era:

$this->load->plugin('captcha');

Agora vai ficar:

$this->load->helper('captcha');

Só isso já fez o Captcha voltar a funcionar 100%, porém, não existe mais o campo "length", onde você definia quantos caracteres queria no captcha.

Ao tentar efetuar o login, percebi que a minha regra de rewrite para ocultar o "index.php" já não funcionava mais. Funcionava, mas ele não entendia quando eu chamava um método dentro do controller (ex: www.jvitor.com.br/controller/metodo). Fui no config.php e setei o uri_protocol para QUERY_STRING e tudo voltou a funcionar. Ficando então:

$config['uri_protocol'] = 'QUERY_STRING';

Outro problema que enfrentei é que o "orderby", "groupby", etc do Active Record foi removido.... Tive que dar um "Replace All" e colocar os novos métodos. 

Antes era:

$this->db->orderby();

Agora vai ficar:

$this->db->order_by();

Ufa, finalmente logado, e as coisas parecem funcionar!

Como eu disse acima, os Plugins já eram. Eu tinha um plugin de geração de PDF e para transformá-lo em Helper, bastou colocá-lo na pasta do Helper e trocar a extensão "pi" para "helper".
Ah, claro, e fazer o replace de $this->load->plugin() para $this->load->helper().

Feito isso, tudo funcionou as mil maravilhas! 

Dei uma boa testada na aplicação, coisas que achei que poderiam dar problemas e parece que a migração rolou tranquila, após os ajustes citados acima. 

Agora, preciso testar em casa o meu CMS com a nova versão do CI. Vou aproveitar e adicionar umas coisas que eu estava pensando em colocar e não tinha tido tempo ainda.

Espero que isso dê uma ajuda pra quem vai atualizar da versão antiga pra nova, evitando que passem por problemas semelhantes aos meus.

Boa sorte na migração (não vai doer tanto assim)!

 

Manutenção em projeto feito por terceiros? E agora?

Por diversas vezes, os freelancers se deparam com propostas de manutenção em projetos já existentes. Seja porque as empresas brigaram com o desenvolvedor (freelancer ou agência online) ou simplesmente, os caras sumiram. Os motivos são os mais diversos, mas o resultado é sempre o mesmo: problemas.

Geralmente, ao recebermos uma proposta de manutenção em um projeto desenvolvido por terceiro é necessário verificar a qualidade do código desenvolvido, o que precisa ser alterado, e por fim, o prazo para que as coisas sejam feitas. Vamos detalhar melhor o maior problema: o código.

Esta parte geralmente é a mais triste de toda a história. Tem muita gente ruim no mercado, e quando digo ruim, é ruim mesmo. Que nem aquela padaria que não consegue acertar o ponto do pão e o deixa sempre tostado e duro, sabe? Não é porque o cara tem um curso ou é uma agência renomada no mercado, que significa que os trabalhos sejam bons... O grande problema de projetos em TI é isso: o cliente nunca sabe dizer se o site foi bem feito, afinal, ele apenas vê o layout, e um layout bem feito pode ter sido um template e esconder tudo por de baixo dos panos (ou do source-code).

Ao pegarmos um site para avaliar, uma rápida olhada no código fonte já nos diz muito sobre quem desenvolveu. Site feito todo em tabela já me deixa com 30 pés atrás quanto a qualidade do código, mas de qualquer forma, se elas ao menos forem bem estruturadas, significa que o cara não é tão ruim assim. De nada adianta ser feito em div mas estar uma zona e todo quebrado. Um código bem feito vai ter ao menos uma ordem lógica, usar elementos simples e coerentes, estilos claros e organizados.

Ok, o código do site até não está ruim. Vamos dar uma olhada no CMS? É aí que eu desanimo com 90% dos projetos de manutenção... Não é por nada não, mas como tem coisa feita nas coxas nesse mundo! Sério... Começa pelo layout, que é simples e feito às pressas. Passa para o código, que é pior ainda, com includes randômicos, variáveis que não dizem nada e comandos SQL jogados em qualquer canto. Ver um código identado nessas horas é quase como ganhar na loteria... 

E como explicar isso para o cliente? Você vai falar pra ele que o código não está identado, que o PHP está com falhas de segurança nos includes? Que os comandos SQL que ele usa são ruins? Que as tabelas estão sem índice? Não dá pra falar isso pra ele, quer dizer, até dá, mas não espere que ele entenda o que você está falando...

Qual a melhor solução nesses casos? Em tese, refazer. Mas, e pra explicar isso pro cliente? 

Geralmente, após você dizer: "precisamos refazer" ele retrucará com: "mas eu só quero mudar uns 2 ou 3 detalhes". E é aí que temos um problema...

Hoje são três detalhes, amanhã mais dois, daqui um mês mais quatro ou cinco... Daqui a pouco, você mudou o sistema inteiro e ele ainda está ruim, afinal, foi todo projetado de forma errada.

Então, chegamos ao dilema: refazer ou não refazer? O cliente raramente está disposto a pagar o valor para se refazer o projeto, principalmente, porque ele já pagou uma vez e não dá pra saber se o desenvolvedor (novamente, freelancer ou agência online) antiga meteu a faca nele e entregou "isso aí" que você está vendo. 

Bom, você tem dois caminhos:
  1.  Convencer o cliente da necessidade de se refazer o projeto. Caso ele não aceite, simplesmente recuse o job;
  2.  Aceite o serviço e se vire na manutenção.
O primeiro caminho requer muita lábia, o que alguns desenvolvedores não tem. Mas vá com calma, busque uma forma simples de explicar os contras de se continuar dando manutenção nos códigos antigos e por que fazer um novo vai ser vantajoso a longo prazo.

O segundo caminho, depende muito da qualidade do código. Se ele não estiver tão ruim, você conseguir entender e quiser topar o desafio, ótimo. Vai uma dica muito importante: em trabalhos assim, lembre-se que o custo de manutenção/customização e o prazo não podem ser o mesmo caso fosse um trabalho teu, afinal, o que parece simples, pode não ser tão simples assim dependendo do código que você tem em mãos...

Não importando o caminho que você escolha, lembre-se que este cliente já tem uma experiência anterior ruim, então, trate-o com respeito e faça um trabalho de qualidade, pra ele não achar que nossa área é formada apenas de profissionais meia boca, ok?

O CMS certo pro serviço

Esses dias andei mexendo em um e-commerce todo montado na plataforma do Wordpress. Sinceramente? Uma droga...

O Wordpress é uma ótima ferramenta para blog, no máximo para um site, mas agora, achar que ele vai fazer tudo é um pouco de exagero, não é?

 Da mesma forma que existem vários CMS que são complexos demais para um simples site com páginas e notícias, existem CMS que são simples demais para outras. Isso sem contar o foco do CMS né?

Quando se começa a desenvolver um CMS, você pensa em onde irá aplicá-lo, certo? Se você tem um cliente que precisa de uma intranet para gerenciar processos, você não vai tentar utilizar o teu CMS de gestão de páginas para fazê-lo, vai? Ok, você pode aproveitar algumas coisas, as classes básicas, mas o layout provavelmente não vai ser o mais indicado, muitos módulos não teriam utilidade e o resultado pode ser uma colcha de retalhos.

Mas e como fazer algo que sirva para várias situações? Modularizando oras!

Monte um bom "core", ou seja, classes e funções que vão servir para vários casos. 

Como por exemplo, a sua classe de login/segurança pode prever um esquema de permissão por módulos ou simplesmente não. No CMS Arashi, por exemplo, eu tenho um campo chamado de "$permissoes" que, quando "false", não lista permissões e nem checa por elas quando o usuário usa o sistema. Quando "true", exibe no cadastro do usuário a lista de módulos, pra ele marcar o que cada usuário verá.

Além disso, prepare funções simples de upload, tratamento de imagens e etc. Monte um bom código JavaScript/CSS também, pra ficar fácil de reutilizar ou adaptar. 

Depois, monte teu Menu e estruturas em includes, caso você precise alterar todo o layout, vai ficar bem mais fácil. 

Se você optar por modularizar todo o sistema, você pode incluir e remover features conforme o pacote que você fecha com o cliente. Você tem lá, um controle de páginas, blog, notícias, enquetes, newsletter, galeria de fotos e etc. Daí você vai e vende apenas o que teu cliente deseja. É neste ponto que gosto de CMS customizados contra sites feitos em wordpress, drupal, joomla e etc. 

O ponto negativo é que, quando você customiza, fica mais complicado de atualizar o CMS globalmente. Mas existem formas de contornar isso, só que, novamente, você precisa de uma boa estrutura.

Dias estranhos...

Este post nada vai tratar de tecnologia, vai falar um pouco da zona que foram os meus últimos dias...

Tudo começou na semana de ano novo e meus 4 dias de folga pra dar uma relaxada e entrar em 2011 mais animado! Oh doce ilusão!

Na madrugada do dia 30 pro dia 31 acordei com uma forte dor no lado esquerdo, tanto na parte da barriga quanto nas costas...na hora pensei que fosse apenas uma dor muscular, mas passadas 2 horas e nada de melhorar, decidi ir pro hospital ver o que era. O médico ficou todo pimpão as 5h da matina quando descobriu o que eu tinha, pedra no rim!

Remédio na veia, e tomar dipirona até conseguir ir no urologista ou expelir por conta...era tudo que eu podia fazer. Tudo indo, até que domingo eu percebi que a dipirona tava me dando uma alergia lascada, corpo empipocado, muita coceira..uma beleza! Tentei parar de tomar o remédio mas não deu, algumas horas depois a dor mandava um oi... Tomei o remédio de novo, antes coceira do que dor... E bam! Na madrugada de domingo pra segunda, lá vou eu pro hospital com dor de novo..

Dessa vez, peguei um médico muito ruim, que male má me deu uma injeção de voltaren e me mandou pra casa. Pelo menos já era segunda-feira e eu podia caçar um urologista.

Fui no doc, e ele me passou várias tomografias para fazer... Fui lá, fiz e deu mesmo, uma bela duma pedrinha de 7mm! Algo impossível de sair naturalmente! #yes #mefodi

Retornei no doc na terça com os exames, ele olhou e falou que teriamos de fazer uma pequena e urgente cirurgia! O___o A pedra tinha ido pro canal da uretra e ficado presa lá, o que tava fazendo meu rim inchar e a dor aumentar. Cirurgia marcada pra quarta, às 15 horas.

O nome do procedimento é uro não sei das quantas, e sério não vou entrar em detalhes pq é bizarro... Basicamente, tomei um baita chá de cadeira no hospital e minha cirurgia começou lá pelas 16:30 - 17:00, quer dizer, eu acho, já que as últimas coisas que lembro de antes da cirurgia são as enfermeiras se matando pra colocar a agulha na minha veia e o anestesista falando que daria uma anestesia nas costas pro procedimento... Depois, disso, só lembro de acordar na sala do pós operatório e ver que já tava passando jornal nacional na tv que tinha lá....

Fui pro quarto, comi, levantei, e escorreu sangue....ae, que beleza hehe... Agora toda vez que vou no banheiro, parece que to jogando carmagedon, é sangue pra todo lado! #dramatico

Mas sério, a noite da quarta pós cirurgia foi uma desgraça, dor, desconforto, nervoso, falta de sono e vontade de ir embora....resumindo, não durmi nada e passei a noite assistindo tv cultura (único canal que tava pegando na tv).

Ontem o doc me deu alta e cá estou...dopado de remédio, com um pedaço da pedra minuscula numa caixinha e com o sentimento de que 2011 não vai ser bem como eu queria...

Meu único consolo é que também na última semana de 2010 meu financiamento do apê foi aprovado definitivamente e assim que ficar pronto, vou ter um lar doce lar! Isso se eu conseguir pagar tudo, claro!

Chega de falar de mim, vou deitar e dormir de novo!
Ps: tenho mais de 2000 feeds pra ler de TI, CES2011 deve tar bombando! Parece que faz meses que não leio algo sobre o assunto...

Ps2: o iPad é meu único amigo nas horas de dores que não dá pra sair da cama... Comprri na hora certa hahahahahaha

Edit: Segue a foto da 'pedra': 

221330276


Enviado via iPad

Minha primeira semana com o iPad

Bom, foi inevitável...depois de muito comentar sobre tablets com meus amigos e até aqui no blog, minha lumbriga geek falou mais alto e acabei comprando um iPad. 

Ipad

Antes de falar sobre o brinquedinho (digo, iPad!), vamos falar em como eu consegui botar as mãos nele! A história começou lá em meados de novembro, quando descobri que meu antigo companheiro de trabalho, e hoje, amigo, Thales, que atualmente mora na Australia (Terra dos Cangurus, alguém?), estava vindo pra cá passar o Natal. Depois de alguma insistência, consegui convencer o rapaz a trazer um iPad, mas ainda estava meio assim se comprava ou não...

O preço do iPad na Australia é mais caro que o preço cobrado nos EUA, mas mesmo assim, ainda mais em conta que no Brasil. Eis que no dia da #BlackFriday eu, por um acaso, olhei o preço do iPad na Store Australiana... Grata surpresa: AU$ 50,00 de desconto! Não teve jeito...conversei com o Thales Ribeiro e fechamos a compra de um iPad Wi-Fi+3g de 16gb. 

Bom, o Thales chegou na semana passada aqui, mais precisamente na quarta-feira à noite. E desde quinta passada, eu ando brincando com essa tablet e posso dizer: So far, so good!

15122010871
[Foto do Nightstand]

A primeira coisa que fiz quando peguei o iPad foi correr no iTunes e atualizar o iOS para a última versão, que finalmente liberava multitask. O update rolou tranquilo, fiz o registro da iTunes Account, botei lá meu cartãozinho de crédito internacional e pronto, tudo ativado! Vale ressaltar também que, por um milagre da natureza, semana passada ganhei um iTunes Gift Card do pessoal doMacMagazine e to com 20 doletas pra gastar lá =) Muito obrigado pessoal!

Confesso a vocês que nunca fiquei muito tempo fuçando no iOS, então, os primeiros passos no iPad foram realmente, os primeiros passos no iOS. Tá, my bad, todo ligadão em tecnologia e nunca comprei um iPhone/iPod Touch. 

Tudo atualizado, bora comprar Apps! Fui lá, baixei o VLC, iBooks, Shazam, Amazon Kindle, Saraiva Digital, Marvel Comics, e etc... 

Primeiro, vamos falar de leitura: basicamente eu queria me reencontrar com minha criança interior que adorava ler quadrinhos quando mais novo. Baixei o "Bookman" que permite ler arquivos CBR, Zip, Rar, PDF e etc para testar mangás/hqs. Queria ver como ficaria ler um mangá nessa tela linda de 10 polegadas: dá pra ler tranquilo, mais do que tranquilo, eu diria perfeitamente bem. Adorei o iPad pra leitura de quadrinhos. Depois dele, descobri o MangaMF, que é uma biblioteca online de mangá traduzidos para inglês onde você pesquisa e já baixa direto no App. Muito bacana! Ah, o App da Marvel é lindo também, já vi que vou comprar várias sagas por lá =P

15122010875
[Lendo Beck]

Depois, fui testar ver vídeos no iPad. A tela tem um tamanho bom pra isso, então, achei que seria uma excelente combinação. Bom, baixei o VLC e não gostei. A última versão que eles lançaram não traz mais suporte a legendas, ou seja, ou você vê sem legenda, ou vê dublado, ou embute a legenda no arquivo. O grande problema é que, até onde eu entendi pesquisando na internet, o VLC não vai mais ser atualizado, já que um desenvolvedor levantou umas questões sobre licenciamento e etc. Por conta disso, desisti do mesmo e comecei a procurar outras alternativas. 

Acabei comprando o Buzz Player, que é barato (U$1.99) e roda bem. Comprei ele principalmente por poder customizar formato de legenda, cor, tamanho, fonte, tudo. Este foi o fator de escolha no meu caso. Testei vídeos em AVI, RMVB, MPEG e tudo rolou tranquilo. Testei vídeo com Dual Audio também e consegui trocar os áudios sem grandes problemas! O único problema do player é que ao pausar ele perde sincronia de áudio/vídeo por alguns segundos. Por isso, não pause! Hehe...

Pra parte "social" da coisa, o aplicativo do Twitter (o "original") funciona bem! Sem reclamações quanto a ele. Agora, pra usar MSN/Gtalk e afins, as soluções clássicas como Nimbuzz e Ebuddy não estão otimizadas para iPad, ou seja, fica uma tela pequena e você tem de dar zoom. O único que encontrei bom foi o iMO.

Pra ler RSS, comprei o excelente River of the News. A interface dele é linda, funciona muito bem e é integrado ao GReader. Minha única ressalva é que não tem uma lista (igual no GoogleReader) e você é obrigado a ler a notícia toda. Pra mim, é meio chato, mas dá pra viver. 

Com o iPad em mãos, abri o Safari e fui testar alguns sites que fiz, meu CMS e etc para ver como estão as coisas. O CMSArashi roda bem, por ter um layout simples e menu grande, dá pra você navegar sem grandes problemas e a maioria das coisas funcionou perfeitamente. Um problema é que editores WYSIWYG não funcionam no iOS (tampouco no Android). Sites Mobile genéricos ficam estranhos pra caramba, muito vazios! Sites com interface otimizada pra iPhone com menus em lista ficam legíveis e facilitam a navegação. No geral, sites sem otimização funcionam bem, o problema é quando o menu é muito grudado, daí tem que dar zoom pra não clicar errado!

Uma coisa que queria ressaltar aqui como um excelente ponto positivo: a bateria. Já sabia que ela tinha uma excelente duração, mas nossa, realmente é excelente! Durou de quinta até segunda-feira, usando bastante internet via wi-fi. Achei a duração dela excepcional, muito acima do que eu esperava.

Falar de interface é chover no molhado... A interface do iPad é simples, o touch é excelente e a App Store um belo plus pra se baixar os apps. A parte multitask requer um pouco de atenção, já que os aplicativos não tem um botão de Fechar e apertar o botão de home não necessariamente fecha o aplicativo. Para abrir o gerenciador, aperte duas vezes o botão home e ele te mostrará o que você esqueceu aberto. Já consegui deixar quase tudo aberto uma vez, sem querer =) e recebi aquela mensagem: "Amigão, você é doido? Tu abriu tudo que tinha no teu iPad e ainda quer fazer mais coisa? Fecha alguma coisa ai, manolo!"

Um downside que nem é culpa da Apple é o custo elevado das capas! Nas lojas aqui no Brasil, você não encontra nada por menos de 200 reais e elas não são lá essas coisas. Cases da iLuv estão acima de R$ 100,00 também. Películas por em média R$ 50,00. A opção é importar o que você precisa e pesquisar bastante...

Comprei peliculas (4 pra falar a verdade....sou péssimo pra aplicar essas coisas!), um dock, fones de ouvido da Apple (aqueles branquinhos, igual do iPod Shuffle) uma bag de neoprene baratinha e uma iLuv Sleeve (essa comprei num e-commerce aqui no Brasil). Ah, preciso comprar ainda um adaptador de tomada, por que o formato de tomada australiano não tem nada a ver com o nosso...

15122010886
[Foto do iLuv Sleeve de Neoprene]

Acho que é isso. Pro que eu comprei, acho que valeu a pena. Tá servindo bem pra leitura, pra carregar pra cima e pra baixo e etc. Estou deixando ele mais na sala, daí não preciso ficar indo no pc pra ver algo no google, ou checar twitter. 

Ahh, se alguém puder recomendar apps legais, eu to aceitando sugestões =)

PS: Acabei de comprar Need for Speed Hot Porsuit HD (versão do iPad) que tá em promoção hoje na AppStore por $0.99!

Portfólio atualizado!

Atualizando o Portfólio...

Putz, esses dias acessei o meu Portfólio para ver como tavam as coisas e percebi que tava faltando alguns projetos por lá! E pior que nem todos são novos, alguns já estão prontos desde o ano passado. 

Bom, adicionei os seguintes projetos (com descrição e fotos):

- AD Rendón
- Brava Painéis
- Caraminholas
- Spas Versati
- Rick Bowers

Ufa, antes tarde do que nunca né? Ainda preciso refazer esse portfólio todo, mas por enquanto, tá servindo ao propósito de divulgar os trabalhos em que participo.

PS: Sempre que forem atualizar o wordpress, façam backup! Ele (ou algum plugin que atualizei) apagou todos os "campos personalizados" de meus posts, tive que reescrever tudo =( Nunca mais atualizo o WP sem fazer um backup antes =P

PS²: Essa semana ainda, posto um review meu do iPad. O texto tá pronto, falta só tirar umas fotos. Finalmente comprei um tablet, yey! \o/