|
|
Certificação LPI-1 3ª Edição


Coleção Linux Pocket Pro | Virtualização

Coleção Linux Pocket Pro | Hardware

Coleção Linux Pocket Pro | Administração de Redes

Coleção Linux Pocket Pro | Gerenciamento e desenho de Projetos

Coleção Linux Pro | Certificação LPI-1
Coleção Linux Pro | Certificação LPI-2

Linux Pro Ubuntu
Certificação LPI-2 2ª Edição
Livro LPI-1 + LM #60 + LME PDF #1 #2 #3
Linux Pro Ubuntu + Easy Linux 16
Coleção Linux Pocket Pro | Kit com os livros 1 a 4
Coleção Linux Pocket Pro | Kit com os livros 1 a 8
Coleção Linux Pocket Pro | Kit com os livros 5 a 8
Essa edição aborda as tecnologias e soluções VoIP disponíveis para que você equipe sua empresa com o que há de mais moderno, eficiente e amigável, além de barato, é claro. Aprenda a instalar e configurar um servidor Asterisk com os principais recursos: Discagem Direta para Ramais – DDR –, Unidade de Resposta Automática – URA –, Distribuição Automática de Chamadas – DAC –, filas de atendimento, caixa postal de voz, planos de discagem e muito mais.
Também entrevistamos os executivos dos maiores fornecedores de equipamentos e das principais operadoras VoIP para você ficar a par de suas estratégias de mercado e descobrir qual se alinha melhor aos objetivos da sua empresa.

Seja reaproveitando hardware comodity, seja utilizando dispositivos próprios para a implementação de sistemas de terminais leves, o Linux e o Código Aberto tem tudo a ver com esse mercado. Nesta edição especial da Linux Magazine mostramos diversas soluções para a implementação de redes de terminais leves, sempre pensando em excelentes padrões de desempenho e em ótima relação custo-benefício.

LME 01 | Redes e SistemasA administração de sistemas é uma ciência ativa e multifacetada e é necessário mais do quer logs ou acompanhar os relatórios do Nagios para se considerar um iniciado nessa arte. É por isso que dedicamos ao sysadmin e a administração de sistemas nossa primeira edição da Linux Magazine Especial. Com cada uma das seções da revista iniciadas por um artigo de Augusto Campos, nosso colaborador assíduo em sua Coluna do Augusto, pretendemos abordar cada uma das facetas da administração de sistemas.

A evolução do IPS
Os sistemas de prevenção/proteção contra intrusão (IPS) não são mais os mesmos
Faça o download do Whitepaper
Por Oliver Frommel

A versão 1.1 do SDK do Android acabou de ser lançada, e corrige alguns erros da versão anterior, além de introduzir melhorias de compatibilidade do celular G1, que já pode rodar a nova versão 1.1.0 do Android. Há alguns dias publicamos um artigo inicial, que mostrava como preparar adequadamente um ambiente de desenvolvimento de aplicativos para o Android. Neste segundo artigo da série, vamos mostrar como desenvolver um programa de apenas poucas linhas de código, mas que é capaz de ler e exibir coordenadas GPS.
Com o SDK do Android e o plug-in para o Eclipse, é relativamente simples desenvolver aplicativos para celulares equipados com a plataforma operacional baseada em Linux desenvolvida pelo Google. As ferramentas contidas nesse kit de desenvolvimento funcionam bem, são fáceis de usar e a API é bem estruturada e documentada. Além disso, há na Internet uma grande quantidade de exemplos para todo o tipo de aplicação. Entretanto, é necessário estar atento ao fato de que o código-fonte de muitos desses programas é compatível com a versão anterior do sistema, mas não com a versão atual, recém-lançada. Conforme escrevemos acima, o aplicativo que vamos desenvolver neste artigo terá por função estender a estrutura do programa criada automaticamente pelo Eclipse no artigo anterior, tranformando-a em um aplicativo rastreador GPS, capaz de fornecer as coordenadas da posição geográfica atual.
Usando o ambiente instalado no artigo anterior, composto basicamente do kit de desenvolvimento do Android e o plug-in do Eclipse, é possível compilar um aplicativo rudimentar e executá-lo no emulador que faz parte do SDK. Caso um G1 “de verdade” seja conectado via USB ao PC ou laptop com Linux dotado com o ambiente de desenvolvimento, pode ser que ele não seja detectado pelas ferramentas do Android que o Eclipse roda em background, para — por exemplo — carregar aplicativos para o equipamento. A solução para contornar esse problema é configurar corretamente o subsistema udev, responsável pela criação e pelas permissões de arquivos de dispositivos no Linux. A seguinte regra fornece as permissões corretas ao arquivo de dispositivo criado quando o G1 é conectado ao computador:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
Basta incluir a linha acima no arquivo /etc/udev/rules.d/50-android.rules e tornar esse arquivo executável, e daí por diante tudo deveria funcionar corretamente.
Como a figura seguinte mostra, o código gerado pelo Eclipse quando configuramos o sistema no artigo anterior, ficou bastante sucinto.
![]() |
| Código gerado automaticamente pelo Eclipse, quando da criação do projeto do aplicativo que será desenvolvido, logo após a instalação do SDK e do plug-in. |
A própria classe hello estende a classe Activity do sistema, que está prevista para uso em aplicativos de interface gráfica padrão. O pouco que resta do código está no método de retorno de chamada (callback) onCreate(), que é executado quando o aplicativo é inicializado. Após a chamada do método de retorno de chamada da classe pai, resta apenas ativar o modo de exibição na componente de layout main. O Eclipse deixa esse tipo de recurso armazenado no arquivo R.java, que é atualizado constantemente. Modificações nesse arquivo devem, assim, ser evitadas, para que não ocorram conflitos.
Para imprimir o clássico Olá mundo! no visor do celular, não é necessário nada além de um TextView, que deve então ser ativado como elemento de exibição atual. A cadeia de caracteres a ser apresentada no visor é fornecida ao objeto TextView pelo método setText().
TextView tv = new TextView(this);
tv.setText("Hello Android");
setContentView(tv);
Se o que se deseja é mais do que exibir um texto sem graça no visor — por exemplo, a posição geográfica atual do celular —, é necessário estar familiarizado com o conceito de “ouvinte” (listener). Em várias ocasiões, esse conceito serve de interface para determinados eventos — regulares ou ocasionais —, tais como o fornecimento de dados pelo usuário. O programador deve criar suas próprias funções como ouvintes de determinados eventos, de modo que essas funções sejam executadas quando o evento ocorrer. A plataforma Android assegura que os aplicativos não consumam tempo de processamento desnecessariamente, mas que permaneçam em estado latente, reagindo prontamente quando o evento designado para ela aconteça.
Uma característica notável da API do Android é que ela está perfeitamente adaptada ao desenvolvimento de aplicativos específicos para o G1. Assim, bastam algumas poucas linhas de código, para que se possa determinar a atual posição geográfica do celular via GPS. Para isso, basta criar um novo LocationProvider e associar a ele, através de um de seus métodos, uma função customizada — no nosso caso, locationListener, que é chamada de modo recorrente de tempos em tempos.
LocationProvider provider = lm.getProvider("gps");
lm.requestLocationUpdates("gps",
60000, // 1min
1, // 10m
locationListener);
Além do uso das coordenadas do GPS, há também outros tipos de LocationProvider, que por exemplo conseguem obter a posição geográfica de maneira mais precisa a partir da célula em que o telefone se encontra. A nossa função customizada LocationListener só precisa ler a latitude e a longitude através dos métodos do objeto de localização geográfica e fornecê-las ao objeto TextView:
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location l) {
TextView tv = new TextView(LnmTrakr.this);
tv.setText("lat: " + l.getLatitude() + "\nlon: " + l.getLongitude());
setContentView(tv);
}
...
Como esse código cria empiricamente uma classe anônima, é necessário que a TextView faça uma referência à classe mais externa usando LnmTrakr.this. Para simular o funcionamento do equipamento de GPS no emulador do celular, é necessário realizar uma conexão via telnet ao emulador — usando para isso o comando telnet localhost 5554 — e, no console que se abrir, fornecer as coordenadas usando a seguinte sintaxe: geo fix 20 40.
![]() |
| Programa em execução, mostrando a latitude e a longitude no emulador do SDK. |
Ao rodar esse aplicativo no emulador ou no próprio celular, percebe-se logo que não há como fechar esse programa. Com mais alguma linhas de código pode-se dotar o aplicativo de um menu próprio com um botão de “Sair”. O código abaixo ilustra como criar um menu com diversas opções de entrada (algumas delas estão “comentadas”, isto é, desativadas):
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(Menu.NONE, 0, 0, "Exit");
//menu.add(Menu.NONE, 1, 1, "Settings");
//menu.add(Menu.NONE, 2, 2, "Other");
return true;
}
Com o manipulador de eventos apropriado, o programa pode ser encerrado, bastando para isso que se selecione o “0” no menu:
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case 0:
finish();
}
return false;
}
![]() |
| O Google quer coletar dados sobre o uso do Android. Claro, se não quisesse, não seria o Google... |
Assim, com apenas algumas linhas de código, um primeiro aplicativo — capaz de realizar várias tarefas — foi finalizado. O código fonte em Java do arquivo principal pode ser baixado aqui. Apenas mais algumas linhas de código e o aplicativo torna-se capaz de — adivinhe — mostrar a posição geográfica atual no Google Maps. Ao finalizar o Eclipse, o Google preparou uma janela extra, com o intuito de lhe pedir permissão para realizar estatísticas sobre o seu uso do Android.
O programador pode escolher não conceder essa permissão — ao contrário do usuário do G1, que não tem essa opção.
Saiba mais:
Pontualmente na data de lançamento programada — que acontece em um ciclo de seis meses — foi lançada a nova versão do Ubuntu, a 9.04, codinome Jaunty Jackalope. Devagar — mas sempre —, a distribuição patrocinada pela Canonical avança em usabilidade, desempenho e beleza. Este artigo traz uma análise do novo Ubuntu, apresentando as maiores novidades da versão 9.04.
Leia mais...Entrevista com Simon Crosby, CTO da divisão de virtualização e gerenciamento da Citrix, e Stephen Spector, gerente de comunidade Xen.org
Leia mais...Quase dois anos após o lançamento da versão 4.0 (codinome “Etch”) — e pouco depois do lançamento de sua sétima revisão —, a equipe de desenvolvimento do projeto Debian lançou finalmente a versão 5.0 (codinome “Lenny”) de uma das distribuições GNU/Linux mais conceituadas entre os profissionais habituados a trabalhar com o sistema do pinguim. Com nossa análise você ficará sabendo o que mudou, o que melhorou, se algo piorou e como está a nova versão do Debian.
Leia mais...Recentemente, publicamos o artigo Programe seu andróide, com o qual é possível aprender como desenvolver um primeiro aplicativo para o “celular do Google”. A partir de agora, vamos publicar uma série de artigos, em um formato que ilustrará passo-a-passo, como desenvolver programas para o Android, sendo que cada um dos artigos se ocupará apenas de uma parte do processo de criação de programas para a plataforma.
Leia mais...