Archive for the ‘Mac OS X’ Category

How to install htop on MacOS

htop is a great interactive process viewer in text-mode, but unfortunately it works only on Linux.
Fortunately I found in Github a htop version for OSX and it works perfectly.

To install it, before you’ll need to have git (if you already don’t have git installed :) ).
So, below you can see how to install it.

git clone git://github.com/AndyA/htop-osx.git
cd htop-osx
git checkout -b osx origin/osx
export CFLAGS="-m32"
./autogen.sh
./configure
make
sudo make install

To run it, just execute htop in your terminal. ;)

htop screenshot

Programas úteis para o Mac OS – 2011


No começo de 2009 eu escrevi um post sobre este tema relatando alguns aplicativos que na época eu gostava e agora quase 2 anos depois resolvi (re)escrever um novo post com novos aplicativos que uso quase que diarimente e costumo recomendar.


Desta vez irei apresentar uma lista contendo 13 aplicativos onde alguns substituiram outros aplicativos que eu usava e alguns são novos mesmo.


  1. Fraise: não sei se todos sabem mas o aplicativo opensouce Smultron foi descontinuado (parece que agora ele voltou a ser atualizado e inclusive está a venda na Mac App Store), e isto só não se tornou um perda enorme porque um fork do projeto chamado Fraise apareceu. O Fraise seria algo similar ao notepad++ ou gedit. Simples mas funcional.

  2. Sparrow: no começo eu usava o Mail.app como cliente de emails, depois que centralizei todas as minhas contas de email no GMail passei a utilizar apenas o GMail através do Fluid (escrevi um post sobre isso). Mas agora estou utilizando o Sparrow como cliente de email do GMail e estou gostando da interface simples dele e do seu consumo de memória que é bem menor que a do aplicativo que criei pelo Fluid.

  3. YoruFukurou: Ok, esse nome é péssimo! :D Mas depois de muito tempo utilizando o Tweetie e aguardando atualizações que nunca aconteciam, resolvi testar outros clientes para twitter até que encontrei este e foi o que mais gostei até o momento. E Sim, já testei o Twitter for Mac, mas por enquanto ainda prefiro o YoruFukurou.

  4. Reeder: Um ótimo cliente para Google Reader com uma interface bem elegante.

  5. PS3 Media Server: Esse aqui é para quem tem Playstation 3 e quer compartilhar fotos, músicas e vídeos com o PS3 via rede Wifi ou por cabo mesmo.

  6. Better Touch Tool: Só quem já experimentou o Multi-touch do trackpad de algum Macbook sabe como é. Mas mesmo o trackpad possuindo várias opções de toques e configurações, ainda assim você pode querer criar seus próprios toques e é aí que entra em cena o Better Touch Tool. Com ele você aumenta a quantidade de toques possíveis para o Trackpad, Magic Mouse e Magic Trackpad.

  7. CyberDuck: Um bom cliente de FTP/SFTP. Antes utilizava o FileZilla mas comecei a ter alguns probleminhas com ele e por isso comecei a usar o CyberDuck.

  8. Google Chrome: Usei durante um bom tempo o Safari e gostava bastante, mas passei a usar o Chrome como browser padrão depois que vi alguns recursos como a sincronização de bookmasks e plugins instalados.

  9. Sequential: Se você costuma ler gibi, quadrinhos ou mangá pelo computador, esse aplicativo é para você. ;)

  10. iChm: Leitor de arquivo CHM. Costumo evitar sempre que posso arquivos nesse formato, mas nem sempre é possível.

  11. iStat Menus: Este aplicativo é muito útil, com ele consigo ter várias informações no Menu Bar como: Memória usada/livre, atividade de rede, sensor de temperatura e consumo de cpu.

  12. Time Machine: Só quem já perdeu um ou mais arquivos importantes sabe o quanto fazer backup é necessário e embora este aplicativo já venha instalado por padrão no Mac OS resolvi citá-lo, pois considero a melhor ferramenta de backup que já usei para Mac.

  13. Dropbox: Uma outra ótima opcão de backup, mas online. Além de uma forma simples e rápida de compartilhar arquivos com outros computadores, smartphones e pessoas.


Então é isso, #fikdik desses aplicativos! ;)


Como criar um aplicativo do GMail para Mac OS

O Mail.app é um ótimo aplicativo para acessar emails assim como sua integração com o Mac OS, mas eu particularmente tenho preferido utilizar diretamente a interface web do GMail para acessar meus emails (sim, todos meus emails são redirecionados para minha conta do GMail).

Porém o fato de ter que reserver uma aba do browser para o GMail me incomodava e também sentia falta de um ícone no Dock com a quantidade de emails não lidos.

Isso me motivou a procurar uma solução e foi aí que encontrei o aplicativo Fluid.

Com o Fuild, você consegue criar um aplicativo nativo para o Mac (.app) a partir de uma URL qualquer, adicioná-lo ao Dock e até mesmo exibir labels com informações (como a quantidade de emails não lidos do GMail).

Seu uso é bem simples, basta informar uma URL, um nome qualquer, local onde o aplicativo será criado e um ícone (no Google Images existem diversos ícones para GMail ;) ).

Uma desvantagem ao usar essa abordagem é que se perde o recurso de pesquisa nos emails via Spotlight, porém raramente precisei usar o spotlight para fazer alguma busca nos meus emails, então não considero um alto preço a se pagar.

Então é isso, fica a dica a todos usuários do GMail e Mac OS! ;)

Fui ao segundo iPhoneDevBR!

Neste sábado (24/10) eu fui ao MIS -Museu da Imagem e do Som assistir as palestras do segundo encontro iPhoneDevBR.

IMG_0347

O evento começou com a palestra Introdução ao desenvolvimento para iPhone e iPodTouch com o Alan Silva, uma palestra bem legal mostrando um pouco para quem  não conhece ou tem pouco contato com o iPhone SDK.

Depois tivemos uma pausa para o almoço e ai complicou um pouco pois não tivemos opções disponíveis para ir, mas tudo bem, acho que todo mundo conseguiu se virar e encontrar algo! rsrs

No retorno o Ivan Salina Fernandes palestrou sobre Publicidade em aplicativos dando dicas importantes e exemplos vividos por ele próprio.

IMG_0351

Em seguida o Rafael Fischmann da macmagazine falou sobre Melhores práticas para promoção de apps e passou inúmeras dicas valiosas para melhorar a visibilidade das nossas apps na app store.

O Ricardo Augusto fez uma breve e ótima palestra sobre Mapkit, mostrando as opções disponíveis e um exemplo de implementação.

E encerrando o clico de palestras o Mads Rasmussen falou sobre in-app payments passando muitas dicas para todos.

IMG_0357

Gostei muito deste evento, pois todos (palestrantes e espectadores) participam ativamente nas palestras questionando, dando dicas e exemplos.

Agora fico aguardando a próxima edição do evento! :D

Programando para Mac e iPhone SDK

Pelo meu blog dá para perceber que meu foco sempre foi desenvolver aplicações para a plataforma Java, mas depois que migrei de sistema operacional passando a utilizar o Mac OS comecei a testar a ferramenta de desenvolvimento Xcode, a linguagem Objective-C e o iPhone SDK.

Como sempre encontrei quase nenhum material em portugues sobre desenvolvimento para essa plataforma, tive a idéia de criar um site para mudar esta situação e foi então que surgiu o MacDevelopers.

http://www.macdevelopers.com.br

A idéia inicial do MacDevelopers era ter somente um fórum onde as pessoas pudessem trocar informações, tirar dúvidas e etc.  Mas depois acabei decidindo também que além do forum iria criar um site com conteúdo voltado exclusivamente para o desenvolvimento nessa plataforma.

O intuito desse post é justamente esse, divulgar o site e pedir a todos os interessados que participem, comentem no site e postem no forum.

Então é isso, fica ai a dica para quem tem interesse em desenvolvimento voltado para Mac e iPhone SDK, é so acessar http://www.macdevelopers.com.br

Atualizei o IPhone para a versão 3.0

Ontem vi a noticia da liberação de uma nova versao do sistema operacional do iphone e assim que cheguei em casa coloquei o iphone para atualizar.

O Download demorou um pouco, afinal a atualizacao tem cerca de 230mb. Depois disso foi mais uns 10 minutos aguardando o iphone atualizar-se.

Depois de tudo pronto, o iphone reinicia e começo a procurar novidades no meu gadget.

IMG_0169

Meu iphone estava com jailbreak e a primeira mudança que notei foi que todos os aplicativos que instalei via Cydia/Installer foram perdidos ( os únicos que sentirei falta serão o Sycoder para filmar e um outro que funcionava como um terminal Unix  :( ).

Mas não tem problema, afinal eu já sabia que iria perder tudo que instalei com o jailbreak.

A primeira coisa que “estranhei” foi que os icones ficaram todos bagunçados, mas nada que uma rapida organizada nao resolva.

Depois disso vi uma pequena lupa abaixo dos aplicativos, trata-se de um Spotlight ( recurso já existente no Mac OS X ) para o iphone. Um recurso bem legal onde podemos pesquisar qualquer coisa (Aplicativos, Contatos, Musicas e etc) dentro do iphone.

IMG_0168

Em seguida abri a camera com esperança de poder filmar com software nativo do iphone, mas infelizmente isso não foi possivel.

Testei o novo Voice Memos e funciona muito bem, agora posso gravar audio! :D

Testei tambem o Copiar/Colar ( Copy/Paste ) e foi bem fácil de utiliza-lo nas mensagens assim como o envio de fotos nas mensagens tambem é possivel.

Em geral nao percebi mudanças de performance na atualização, mas uma coisa que notei que melhorou bastante foi o GPS, agora meu iphone está apontando sua localizacao no Google Maps bem mais rápido do que antes e parece estar mais preciso tambem, mas ainda preciso testar mais este recurso.

Senti falta do Voice Control, a apple poderia ter incluso este recurso na atualizacao! :(

Aproveitei e também já baixei e instalei o novo SDK 3 do iphone e esse sim demorou bem mais para baixar e atualizar, pois ele tem 2.1gb.

Resolvendo problema do MySQL5 com Ruby on Rails no Mac OS X

Estou fazendo alguns pequenos testes em Ruby on Rails utilizando sqlLite3 e até ai tudo ok.Foi quando resolvi utilizar o MySQL5 em um projeto que meus problemas começaram! :(

Primeiro criei um projeto:

rails algum_projeto –database=mysql

Depois criei um model, um controller e executei a migration, com isso recebi a mensagem indicando a falta de driver para o MySQL:

The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.

Ok a mensagem é bem clara, então fui instalar o driver, e:

MacBook:projectTest rodrigo$ sudo gem install mysql
Building native extensions. This could take a while…
ERROR: Error installing mysql: ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install mysql
checking for mysql_query() in -lmysqlclient… nochecking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… nochecking for main() in -lz… yes
checking for mysql_query() in -lmysqlclient… nochecking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… nochecking for main() in -lnsl… no
checking for mysql_query() in -lmysqlclient… no
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/mysql-2.7/gem_make.out

Ops, não deu certo! Pesquisando na internet, encontrei algumas formas em que consegui instalar a extensão, porem ao iniciar o servidor e tentar acessar meu projeto o servidor retornava o seguinte erro:

dyld: Symbol not found: _mysql_init
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql-2.7/lib/mysql.bundle
Expected in: dynamic lookup

Pesquisando mais um pouco, vi que o problema era o MySQL instalado no meu Mac, pois este era para a plataforma 64bits e o Rails so aceita a versão 32bits (Pelo menos no Mac OS X :( ) do MySQL.

Com isso, removi a instalação atual do MySQL assim:

sudo gem uninstall mysql
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*

edit /etc/hostconfig and remove the line MYSQLCOM=-YES-

sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*

Baixei e instalei a mesma versão do MySQL porem para 32bits e adicionei o driver novamente, com esse comando:

sudo env ARCHFLAGS=”-arch i386″ gem install mysql — –with-mysql-dir=/usr/local/mysql –with-mysql-lib=/usr/local/mysql/lib –with-mysql-include=/usr/local/mysql/include –with-mysql-config=/usr/local/mysql/bin/mysql_config

Pronto, agora consegui criar um projeto Rails e fazer ele funcionar perfeitamente com o MySQL, então fica aí esta dica para quem passar por este problema. ;)

Atualizando Rails no Mac

Desde que comecei a utilizar o Mac OS X Lepard, utilizei muito pouco ruby e rails nele, pois tenho utilizado mais meu querido Java e aprendido um pouco de Objective-C.

Agora estou incluindo também no meu “TODO List” de coisas a aprender, aprofundar meus conhecimentos tambem em Ruby on Rails e para minha alegria tudo que precisava para desenvolver em RoR já estava instalado no meu Mac (só precisei instalar o famoso TextMate! :D ), porém o rails estava na versão 1.2.6.

Como eu tenho visto muito sobre as novidades da versão 2.x do rails, corri atrás de como atualizar o garoto e vi que é muito simples. A dica é abrir o terminar e digitar:


$ sudo gem update --system
$ sudo gem install rails
$ sudo gem update rake
$ sudo gem update sqlite3-ruby

Pronto, simples assim! Com isso o rails foi atualizado para a versão 2.3.2, o rake para 0.8.4 e o sqlite para 3.4.0.

Agora é so abrir o textmate e começar a cair na real! :D

Brincando com Objective-C no Mac

Faz um certo tempo que venho querendo desenvolver algo para o iPhone, mas ultimamente tenho estado meio ocupado por inúmeros motivos, agora felizmente ja me livrei de algumas coisas que consumiam meu tempo e pude começar a brincar com a linguagem Objective-C que é utilizada para desenvolver aplicativos para o iphone, então abri o XCode e alguns pdf’s sobre Objective-C e comecei a testar a linguagem.

Nesse post irei colocar um dos exemplos que fiz, procurei comentá-lo bastante (em inglês :D ) para facililar o entendimento do código.

Basicamente criei uma classe Pessoa com duas variaveis de instancia (nome e data de nascimento), um metodo estático (class method) e três métodos de classe. Criei uma representação UML utilizando tipos do Java para representar a classe, pois não achei como utilizar os tipos do ObjC no argoUML. :(

class diagram people

Não vou ficar explicando para que serve exatamente cada parte do código para nao alongar muito o post.

Todo o codigo pode ser colocado em um único arquivo (algumNome.m) ou em arquivos separados @Interface ( algumNome.h) @Implementation e metodo main (algumNome.m).

Com este pequeno exemplo já pode-se entender de uma forma simples como trabalhar com classes e suas instancias, Strings, Datas e algumas definições OO em Objective-C.

Finalmente vamos ver o exemplo, vou começar pela @Interface (É diferente de uma interface Java) que especifica o que a classe People irá conter:

#import <Foundation/Foundation.h>

//Interface of the class People
@interface People : NSObject
{
 //defining the instance variables as private
 @private
 NSString *name;
 NSDate *birthDate;
}

//static method or class method
+ (void) doSomething;

//instance method
- (void) sayMyName;
- (void) sayMyAge;
- (int) calculateMyAge;

//properties (getters and setters)
@property (readwrite, copy) NSString *name;
@property (copy, readwrite) NSDate *birthDate;

@end

Agora vou mostrar como ficou a implementação da classe People (antes que alguém reclame o calculo da idade so esta sendo feito ate o nivel Mês, ou seja, nao esta utilizando o dia do aniversario, apenas ano e mes para calcular a idade):

//Implementation of the class People
@implementation People

/*
 tell the compiler that it should synthesize
 the setter and/or getter methods for the property
*/
@synthesize name;
@synthesize birthDate;

//implementation of the method class
+ (void) doSomething {
 printf("Do something!n");
}

//implementation  of the instance method class
- (void) sayMyName {
 printf("Hi, my name is %sn", [name UTF8String] );
}

//implementation of the instance method class
- (void) sayMyAge {
 NSString *myBirthDay = [birthDate descriptionWithCalendarFormat:@"%d/%m/%Y" timeZone:nil locale:nil];
 printf("Hi, my birth day is %s ", [myBirthDay UTF8String]);
 printf("and i have %i years", [self calculateMyAge]);
}

//implementation of the instance method class
- (int) calculateMyAge {
 NSDate *currentDate = [NSDate date];
 int birthYear = [[birthDate descriptionWithCalendarFormat:@"%Y" timeZone:nil locale: nil] intValue];
 int birthMonth = [[birthDate descriptionWithCalendarFormat:@"%m" timeZone:nil locale:nil] intValue];
 int currentYear = [[currentDate descriptionWithCalendarFormat:@"%Y" timeZone:nil locale:nil] intValue];
 int currentMonth = [[currentDate descriptionWithCalendarFormat:@"%m" timeZone:nil locale:nil] intValue];
 int age = currentYear - birthYear;
 if (currentMonth <= birthMonth) {
 age--;
 }
 return age;
}

@end

Pronto, já temos a classe pronta! Agora vou testá-la:

int main (int argc, const char * argv[]) {
 //call class method
 [People doSomething];

 //create a instance of People
 People *rodrigo = [[ People alloc] init];

 //set the name
 [rodrigo setName: @"Rodrigo Lazoti"];

 //set the day of birth. Format: month/day/year
 [rodrigo setBirthDate: [NSDate dateWithNaturalLanguageString:@"08/08/1981"]];

 //call instance method
 [rodrigo sayMyName];

 //call instance method
 [rodrigo sayMyAge];

 //end program
 return 0;
}

O resultado do código executado será:


Do something!

Hi, my name is Rodrigo Lazoti.

Hi, my birth day is 08/08/1981
and i have 27 years

Programas úteis para seu Mac OS X

Sou um grande defensor do Linux e usuário durante alguns anos, passando desde ubuntu até slackware, como já tinha abandonado meu windows mobile (HTC Touch) e partido para o iphone, resolvi também migrar meu note com linux para um macbook.

Assim como sempre vi outras pessoas comentanto, digo que o macbook é muito bom, tando em hardware como em software.

A migração foi bem tranquila, me acostumei rápido ao novo SO e ao macbook. Então comecei a “caçar” programas similares aos que usava no Linux para a plataforma da Apple. Em 95% dos casos encontrei um software similar ou até o mesmo utilizado no linux para o Mac OS.

O mais problemático foi achar um programa similar ao DeVeDe do linux, um programa extraordinário para conversão de vídeos e criação de imagens para serem gravadas em DVD (com menu e tudo).

Resolvi postar aqui uma pequena lista de 12 softwares que recomendo para utilizar no Mac OS X. Agora vamos a lista:

  1. Adium: comunicador instantâneo, suporta msn, gtalk, entre outros. Pena que não oferece suporte para webcam, mas é muito bom e tem um interface bonita.
     
  2. AppCleaner: excluir aplicativos no mac os é muito facil, mas as vezes acabam ficando arquivos perdidos, este programa procura por arquivos do programa que você pretende excluir.
     
  3. Burn: otimo gravador de cd/dvd. Também converte alguns formatos de video.
     
  4. OpenOffice/BrOffice: já utilizava no linux, então já estava acostumado com ele. Faz tempo que abandonei o MS Office.
     
  5. DiskAid: esse é muito util para quem tem iphone/ipod touch, como ele pode-se transferir arquivos via usb entre o mac e o gadget.
     
  6. FileZilla: outro que veio da migração do linux. Este programa de ftp é muito bom, recomendo.
     
  7. iAlertU: esse é bem interessante, funciona como um alarme para seu macbook. Assim com um leve deslocadomento do macbook de seu local já é o bastante para o alarme disparar.
     
  8. Kigo Video Converter: tenho muitos arquivos em RMVB e estava tendo problemas para converter e gravar no dvd, depois de testar vários programas para converter, acabei encontrado este que é o melhor de todos. (Agora posso continuar assistindo Naruto e Lost tranquilamente na TV :D ).
     
  9. Smultron: seria algo similar ao notepad++ ou gedit. Simples mas funcional, bem melhor que o TextEdit.
     
  10. TextMate: como sempre vi muito comentários recomendando este programa, resolvi testá-lo e realmente é muito bom, estou adorando programar em Ruby com o textMate, este app é totalmente clean.
     
  11. Remote Desktop Connection: conexão remota para windows. tenho um Desktop utilizado pela minha esposa com windows XP e as vezes preciso acessa-lo.
  12. FluidTunes: programa muito interessante onde podemos controlar o itunes com gestos utilizando a webcam, é bem legal para impressionar as pessoas. :D

 

Então fica aí a dica. ;)