Archive for the ‘Sistema Operacional’ 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

Some tips about Ubuntu 11.04 Natty Narwhal

In April 28th, the Canonical released the version 11.04 (Natty Narwhal) of Ubuntu. On the same day I downloaded it to install on my workstation and I was surprised with Unity UI, the launcher and the dash.

In this post I gathered some tips to customize/adjust it. ;)

 

  • How to add terminal applications to launcher

For example, if you want to add the Eclipse IDE into your launcher, you need to create a file with “.desktop” extension and add the following content:

#Eclipse.desktop
[Desktop Entry]
Version=3.6
Name=Eclipse
Comment=
Exec=/home/rodrigo/Programs/eclipse/eclipse
StartupWMClass=
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/home/rodrigo/Programs/eclipse/icon.xpm
StartupNotify=true

Then, drag and drop this file into the launcher.

 

  • How to show all icons in the system tray

By default, only a few icons are displayed in the tray. To show all icons, you need to open your terminal and type:

gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"

Then, restart Ubuntu.

 

  • How to remove the launcher auto-hide behavior

For it, you need to install the Advanced Desktop Effects Settings (ccsm)

sudo apt-get install compizconfig-settings-manager

Then, use Alt+F2 shortcut key to open the “Run a command” dialog, type about:config and run it, change the property Hide Launcher to Never.

 

  • How to change the launcher icon size

Here, you also need install the Advanced Desktop Effects Settings (ccsm).

In the same window you used above, change the property Laucher icon size to another value.

 

  • How to add a CPU/memory monitor int the system tray

Just type in your terminal:

sudo add-apt-repository ppa:alexeftimie/ppa
sudo apt-get update
sudo apt-get install indicator-sysmonitor
indicator-sysmonitor

You can put it (incidator-sysmonitor) in your Startup Application Preferences.

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! ;)

[Video] Testing the Chromium OS in Virtual Box

Like most people, I also wanted to know about the new operating system Google’s Chromium OS, then in a quick search I found a link to download a virtual machine with Virtual Box Chromium OS.

An interesting point about the new OS is that logging in, you must have a Gmail account.

The link to download the VM is http://www.ausgamers.com/news/read/2816103

I made a video showing how to use the VM in Virtual Box.

[Video] Testando o Chromium OS no Virtual Box

Como a maioria das pessoas, também senti vontade de conhecer o novo sistema operacional do Google, o Chromium OS, então em um rápida pesquisa encontrei um link para baixar uma máquina virtual do Virtual Box com o Chromium OS.

Um ponto interessante sobre o novo OS é que para efetuar login, você precisa ter uma conta no Gmail.

O link para download da VM é: http://www.ausgamers.com/news/read/2816103

Fiz um vídeo mostrando como utilizar a VM no Virtual Box e tentei mostrar também um pouco do novo sistema.

Creio que ainda é muito cedo para tirar conclusões sobre o ChromiumOS, mas nesse pouco tempo que o usei, não me agradou. Me senti muito preso ao Chromium (Browser) e as ferramentas online, agora é aguardar até o lançamento oficial para testá-lo novamente e quem sabe mudar de opinião. :)

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