Retomando o Objective C e Cocoa
Bom, como retomei os meus estudos de Objective C e Cocoa voltei a ter algumas dúvidas básicas. Para ajudar a saná-las ando recorrendo ao livro que acabei de ler(Cocoa Programming for Mac OS X), que dá um geral em Objective C e dá uma boa noção nos principais aspectos do Cocoa.
Uso também o todo-poderoso-onipresente Google, ajuda bastante.
A página da Apple para desenvolvimento no Mac, tem muita coisa para estudo, exemplos, guias, seria o meu ponto de partida, se não fosse tão chato de procurar lá(mas o google ajuda
).
Um site que eu ando visitando ultimamente é o Stackoverflow que é um "fórum" (ou Q&A de acordo com a sua própria definição) onde são abordadas dúvidas de diversas linguagens, inclusive ObjC e Cocoa(ok, ok, não é linguagem é o bendito framework).
Tem também o Mac Developer Network, que possuí ótimos artigos, videos com palestras e um podcast bacanudo.
E pra fechar há no iTunes um canal da própria Apple com alguns vídeos de apresentações sobre alguns assuntos. São bons para overviews.
Ah e se alguém por um acaso quer ler algo sobre iPhone, continuo indicando os livros do Aaron(pois é uma leitura fácil e proveitosa) tem o do iPhone agora.
E claro, tem as aulas da Universidade Stanford, a do ínicio desse ano foi inclusive legendada. Ajuda para quem não consegue entender tudo o que os professores falam. Eu assisti algumas do ano passado Acelerômetro e ajudam bastante, tanto pra pegar o jeitão do ObjC quanto pro Cocoa Touch. O legal que esse ano o foco foi o SDK 3.0 e senão me engano codificaram algo com o CoreLocation e o Acelerômetro.
Programando com Maçãs e Cacau
E....... consegui!!! Mais um livro que eu chego ao fim!!! E não, não o Senhor dos Anéis, tão-pouco uma Auto-Ajuda... finalmente depois de quase 1 ano, terminei o Cocoa Programming for Mac OSX. Infelizmente não consegui estudá-lo num ritmo constante, passei alguns meses sem nem tocar nele.
Na verdade era pra ter terminado ele em no máximo 4 meses, tava extremamente empolgado, pois o livro ajuda muito, extremamente didático com um ritmo legal e com exemplos e "challenges" muito divertidos de se fazer.
Preciso dar uma passada em alguns capítulos importantes pra assim começar a montar alguma coisa pro Mac. Vamos ver. Ah acho que em breve o Aaron Hilegass vai lançar mais um livro sobre Cocoa: More Cocoa Programming for Mac OSX. E lá vamos nós investir mais um tempo e dinheiro. E por quê?
Pois programar pro Mac é desafiador, o ObjectiveC e a sua sintaxe maluca(pra mim) me chama atenção, e o Cocoa aguça a minha curiosidade pra destrinchar as suas entranhas. Diferente de programar pra Web, diferente de programar para ERPs (ou sistemas caseiros), diferente de linguagem de script, me chama a atenção.
Fora que a Apple fornece uma boa ferramenta IDE para desenvolvimento, e uma boa documentação, nesses pontos eu fiquei muito impressionado. O XCode(a IDE) e demais ferramentas já vem junto com o sistema operacional, tá lá no DVD, é abrir instalar.
Gostaria muito de poder num futuro poder trabalhar com isso e ganhar algum dinheiro, tal como eu fiz láááááááá em (1999 < X < 2002) quando me aventurei no mundo da linguagem C e li de cabo a rabo o C Completo e Total, que se não me engano comprei na extinta Fenasoft!!! (Outro excelente livro, se você ler sem pressa o C fica muito fácil e até lógico de se aprender). Os conceitos e ensinamentos me ajudaram e ajudam muito, até hoje, quando preciso me aventurar em uns códigos C com umas APIs malucas da Oracle.
Enfim, foi ótimo conhecer como é o básico do desenvolvimento para o Mac e conhecer um pouco da comunidade envolvida. Agora é só botar a cabeça e os dedos pra trabalharem.
Imposto de Renda 2010 no MacOS 10.5
Bom, como estou a espera de um milagre cliente, então aproveitei o tempo para fazer a minha declaração do Leão de 2010. Recentemente instalei o programa no Ubuntu para o meu pai usar e rodou lisinho, lógico que depois de atualizar para o Java 1.6 conforme imposição recomendação da Receita.
Como havia visto a opção de instalação para o Mac e já havia testado nos outros anos nem me preocupei em baixar e instalar assim que a Receita disponibilizasse.
Bom hj cá estou me debatendo com a p###a da instalação que teima em pedir o Java 1.6 sendo que ele está instalado e devidamente "priorizado" nas Preferências do Java no OSX.
E agora José? Uso o Windão pra fazer o IRPF? Corro nos correios e na papelaria pra pegar o formulário da declaração e uma par de BIC preta(prefiro essa, ao invés da azul)? Que nada, como a Receita sempre disponibiliza a versão "multiplataforma", no melhor estilo: "se nada deu certo usa essa que não tem erro".
Bom, erro, erro, realmente não deu, mas o arquivo que teoricamente seria o executável para o OSX abre no TextEdit... holy shit!!!
Quebrei um pouco a cabeça no terminal tentando fazer o bendito executar e não, chmod+x não resolve. Aí nada melhor que uma pequena consulta ao Google, e cá está a resposta no fórum do MacRumors!!!
Mais simples impossível, renomear o exec.sh para exec.command e pronto!
Quando mais é realmente mais
Estou retomando aos poucos os estudos do ObjC e Cocoa e cá estou eu mexendo com os FirstResponder's da vida quando me deparo com esse método extremamente fácil de se lembrar:
[self setKeyboardFocusRingNeedsDisplayInRect:[self bounds]]
Sorte que o XCode tem auto-complete e avisa quando o método não bate com a assinatura.
Ano Novo, WordPress Novo!!!
Pois bem, cá estou nos preparativos para o update para a versão 2.9 do Wordpress. Estou primeiramente fazendo o backup dos arquivos do servidor, depois do banco de dados e por fim fazer a atualização.
Bom logo de cara não lembrava qual front-end de FTP que eu estava usando. Vasculhando o "Aplications" lembrei que era o CyberDuck. Pus o pato pra trabalhar e baixar os backups para a minha máquina...
Bom, existe um ditado que se fulano(a) faz (ou diz que faz) muita coisa, fica igual ao pato, não nada direito e nem voa direito. Então não digo que o CyberDuck não faz nada direito, mas nem o download do diretório do WordPress ele conseguiu fazer.
Dei uma pequena pesquisada e achei o FileZilla, que já está aberto e espumando de fazer backups!!!
Enquanto isso segue o jogo dos backups, por hoje pretendo fazer apenas isso, amanhã meto as caras em botar a nova versão do WP com muita reza e trabalho na encruzihada. E pensando bem não é que eu moro de frente com uma???
Desenvolvimento no MacOS X
Como desenvolvedor e curioso por tecnologia, sempre gostei de experimentar os diversos sistemas operacionais e suas principais linguagens de programação.
Comecei no saudoso DOS 5.2, onde fucei nos .BATs, DBase III Plus e Clipper, depois me embrenhei no universo Windows e comecei fuçando no QBASIC depois fui pro Visual Basic, Ansi C, Java, Cobol, Prolog, Centura. No Linux fucei um pouco no BASH só, até tentei ver algo do GTK e QT mais pulei fora.
Hoje no MacOSX eis que me encontro nesse exato momento com o XCode aberto e fazendo alguns estudos de Cocoa, o principal framework de desenvolvimento para o MacOSX.
Bom, quando parti pro Mac esperava e procurava um SO sólido e que me facilitasse a vida e que por tabela me entregasse uma interface agradável e amigável. Encontrei tudo isso, achei lindo e maravilhoso (modo fanboy ON, hahaha). Aí lendo notícias sobre o Leopard, uma vez lembro de ter lido que o aplicativo Mail foi reescrito em Cocoa e diminiu de tamanho e ganhou performance. Nossa que diabos é isso? pensei comigo, vamos pesquisar...
Nas minhas pesquisas acabei caindo em toda a parafernalha(no bom sentido) que é o desenvolvimento para o Mac, a sopa de nomes: Objective-C, XCode, Interface Builder, Cocoa, Instruments, Outlets, Actions, etc...
Num primeiro momento instalei o XCode que vem junto com o CD do Macbook, isso eu achei s-e-n-s-a-c-i-o-n-a-l!!! Pois a Apple te entrega tudo quando você compra um Macbook/iMac ou o próprio MacOS, o SO e toda a suíte de desenvolvimento(fora as ferramentas de manutenção e diagnóstico de sistema). Peguei algumas documentações do próprio site de desenvolvimento da Apple o http://developer.apple.com/ e comecei meus estudos, me concentrei em um primeiro momento no Objective-C.
Bom, passei bem umas 2 semanas e dei um tempo, pois o choque pra mim foi meio grande, pois fazia algum tempo que não mexia com orientação objeto, design patterns e vamos e convenhamos, a sintaxe é muito diferente das linguagens tradicionais. Dizem que é parecido com Smalltalk, mas como nunca vi nada dela, pra mim foi um pouco chocante.
Passei um tempo longe do ObjC e Cocoa sim, me abalou um pouco. Os paradigmas eram outros totalmentes diferentes. Depois fiquei um pouco entusiasmado a estudar novamente Java, quase que me matriculei em um curso para fixar bem os conhecimentos, mas aí veio uma onda braba de trabalho que "amornou" esses estudos também.
Depois alguns tenebrosos meses, eis que volto(não sei porque) a pensar em estudar ObjC e Cocoa, mas deveria ser de outra maneira, algo mais didático.
Lembrei que havia visto no Macmagazine um post em que a Universidade de Stanford iria publicar na iTunesU as aulas de desenvolvimento para iPhone que eles ministravam. Pensei com meus botões:
Como o iPhoneOS é uma versão do MacOSX, e as ferramentas pra desenvolvimento são as mesmas, vou tentar aprender assim como se eu estivesse na faculdade assistindo as aulas
Realmente funcionou bem!!! Tinha baixado o SDK do iPhone e comecei a ir a faculdade novamente.
A única coisa que as vezes era meio chato é ficar empacado em algum exercício e não conseguir prosseguir. Usar cola da internet não era uma opção, lista de discussão disponibilizada era só pra os alunos. Enfim, prossegui firme e forte até que um dia...
Botei na cabeça que queria desenvolver algo pro MacOSX que me ajudasse em algo e que quem sabe um dia num futuro nebuloso eu pudesse vender e ficar rico com o software(ppppffffffffffff!!!!!), tentei insistir em ver as aula de Stanford mas iria levar algum tempo até "captar" a essência do ObjC+CocoaTouch e depois aplicar para o ObjC+Cocoa...
Vaguei meio cabisbaixo por alguns sites de pessoas que desenvolvem para Mac e listas de discussões e um consenso que a maioria chega é que o livro Cocoa Programming for Mac OS X do Aaron Hillegass é um bom livro para começar a pegar o jeito.
Legal, procurei o livro em alguma livraria aqui do Brasil... bom, deixa pra lá, male-male achei na Livraria Cultura por absurdos R$230 reais com prazo de diversas semanas. Aí toquei o F#### e arrisquei a compra do livro na Amazon mesmo, o máximo que podia acontecer é demorar um mundo pra chegar, mas iria pagar um preço justo.
E depois de 3 semanas quem aparece aqui em casa?
Bom, primeiramente a compra com entrega internacional pela Amazon não gera tracking number, então tive que me remoer todo dia pra saber se algo tinha chego pra mim na portaria do prédio...tirando isso, tudo ocorreu bem na compra.
Agora o livro é espetacular!!! Extremamente didático, com uma linguagem tranquilo de se compreender, já que não sou fluente em inglês, exemplos bem explicados e você pode lê-lo em capítulos separados como uma rápida referência ou de cabo à rabo que é como estou fazendo, pois há implementações que são feitas em um capítulo e aproveitadas em outro.
Um trecho interessante do livro:
How to Learn
...
The first trick to maintaining focus is to get enought sleep. I suggest ten hours of sleep each night while you are studying new ideas. Before dismissing this idea, try it. You will wake up refreshed and ready to learn. Caffeine is not a substitute for sleep.
Sensacional!!! Tudo bem que na hora eu pensei que era algo de sleep-learning, mas logo mais caiu a ficha, lendo os capítulos seguinte.
Veredicto sobre o livro é o mesmo que todos que recomendam o livro falam, é um ótimo passo inicial.
EOF.
E sobre o preço do Windows 7…
Estou eu passeando pelo MacMagazine, quando me deparo com um post sobre a tabela de preços do lançamento do Windows 7.
Pois bem, segue a tabela feita por eles pra ilustrar as diferenças de preços que são...digamos... indecentes:
Bom eu estou testando o Windows 7 Ultimate RC no meu note da Dell, confesso que é o melhor Windows que usei até hoje. Instalou tudo sem problemas e está perfeitamente funcional e performático, já que esse meu note é um tanto quanto velhinho.
Por conta disso fiquei realmente ponderando em comprar uma cópia dele quando fosse lançado, inclusive pensei em investir em um Family Pack para compartilhar com meu pai.
Aí vejo em um site aqui e outro colá que o preço vai sair mais caro que nos EUA, bom sempre é assim pensei, mas vamos aguardar...
Agora hoje me deparo com essa tabela de preços, primeiro que eu realmente desisti, se não tiver nenhum tipo de desconto fico usando o Vista Home Basic que veio no meu note, ou parto pro Ubuntu de vez. O que não dá é pagar R$670 mangos em um S.O. que tem um concorrente custando R$80!!! Por mais que a pessoa goste ou precise do Windows, há de se concordar que o preço está beeemm alto.
Depois reclamam que há pirataria de software...
Há e tem mais, no DVD do Mac, você encontra toda a suíte para desenvolvimento, não lembro ao certo se há documentação também(se não tiver você pode baixá-la pelo próprio XCode) e mesmo se não tivesse, pode-se copiar gratuitamente do site da Apple... já o Visual Studio...
Não quero defender ou denegrir a imagem de um ou outro S.O. , cada um sabe o que lhe é melhor tanto pra uso pessoal, como profissional, mas que a diferença entre ambos é muito grande, é.
EOF
GUI e a experiência com o usuário
Recentemente tive a oportunidade de mexer nos computadores da Positivo(meu pai comprou um) que vêm instalado Linux, nesse caso era o Mandriva 2008.
A configuração é relativamente boa para o usuo doméstico, Pentium Dual-Core, 4GB de RAM, 760GB de HD, monitor de 22 polegadas. Uma coisa que achei bacana, são as caixinhas de som, ligadas na USB ao invés de ser na tomada, não tem potência nenhuma mas pelo menos é uma tomada a mais livre.
Bom e lá vou eu configurar o computador para o uso das pessoas de casa(meu pai e meu irmão)...
Ah um bom tempo atrás me virava muito bem no linux, adorava fuçar e reinstalar à exaustão as diversas distros, na época a minha preferida era o Slackware. Parei de acompanhar o desenvolvimento e novidades depois da 2 ou 3 versão do Ubuntu.
Ligando o dito cujo me deparo com o KDE, muito bonito por sinal, e parto para a configuração do Speedy, retornar os backups, testar os sites mais acessados e dar uma olhada na suíte de escritório pra ver se atende as necessidades.
Bom o Mandriva como a grande maioria já sabe, é a fusão da Contectiva com a Mandrake, esta última nunca fui muito com a cara, mas sempre gostei da Conectiva, tanto que comprava as caixinhas quando lançavam(inclusive comprei uma na antiga Fenasoft!!! junto com uma penca de livros!!!)
Primeira coisa que fiz foi configurar o Speedy, usei o assistente para configurar o PPPOE, testei fiz umas atualizações dos softwares, criei um usuário novo e reiniciei o computador, até aqui tudo bem...
Loguei com o novo usuário e tentei acessar o Speedy... nada... aparentemente a interface eth0 entrava em conflito com a ppp0, desabilitando a eth0 manualmente o Speedy voltava a funcionar, teoricamente sem problemas, mas pra quem vêm de um Windows XP, com a configuração redondinha, isso é uma chateação(na minha opinião), fui fuçar como desabilitir isso "automagicamente".
- Tentei criar um shell script para dar um if-down criando um ícone bonitinho na área de trabalho... FAIL!!! imagino que seja incompetência minha, mas como não queria perder tempo deixei de lado.
- Pesquisei no Google para não subir a interface de rede no boot, excluí alguns links simbólicos no /etc/rc-alguma coisa e bootei a máquina... e na hora de subir o serviço HAL parava tudo. Era só desligando pelo botão.
Aí já tava perdendo a paciência, tentei iniciar a máquina pelo modo single para restaurar a m*rda que fiz mas sem sucesso, reinstalei todo o sistema pela imagem de fábrica.
Toda essa novela ficou dentro de um WHILE(i <= 2), aí depois disso larguei mão, como tinha um CD do Ubuntu 9.04 coloquei o bixo pra instalar. Mantive o Mandriva por questões de garantia e suporte caso seja necessário(tomara que nunca!).
Bom com o Ubuntu instalado fiz tudo o que eu precisava em 2 horas e deixei até manual com print-screen das telas para o pessoal de casa usar, e isso só reforça a minha idéia de que:
- Interface com usuário é tudo, uma vez vi uma entrevista com o Eric S. Raymond dizendo que um dos caminhos para o sucesso do software livre seriam GUIs que não fosse uma porcaria.
Realmente essa é a mais pura verdade, tomando como base o MacOSX que nada mais é um Unix(Darwin) com uma pãtcha camada de de interface com o usuário, que deixa a vida mais simples.
E tomo isso como base para deixar instalado o Ubuntu ao invés do Mandriva, para deixar redondo o sistema para os usuários, no Ubuntu fui infinitamente mais fácil e rápido para mim, que não queria perder tempo lendo páginas e mais páginas de man-pages, google, /etc e bla-bla-bla.... isso pra mim que entendo um pouco mais da Linux, imagina pra um usuário que sempre usou Windows e não quer perder tempo ou não ter traumas pra migrar de um para o outro.
Não só com o sistema operacional, mas em qualquer sistema desenvolvido é extremamente essencial ter uma boa interface com o usuário, que facilite a sua experiência no software(e pra ele também não querer complicar a vida do desenvolvedor depois).
Pomar de Macieira
Um tempo atrás, fui na casa do meu ilustre colega Barba Ruiva para conversar sobre não sei o que, e acertarmos não sei o que lá, e aproveitamos pra juntar todas nossas quinquilharias pertences da Apple. Juro que nunca imaginei que um dia ia me ver nessa situação.






