LaunchD: app para Mac facilita agendar tarefas do sistema e reagir a eventos do OS X

O LaunchD é uma interface gráfica e fácil de usar para os serviços de agendamento de tarefas de sistema e de resposta a eventos (como início de sessão, escrita em determinado diretório, etc.) do OS X, bem como para manter determinado script rodando, reiniciando-o se ele encerrar.

Ele permite ainda configurações especiais, como definir o diretório de trabalho e o diretório root (chroot) para o app ou script que você estiver agendando, redirecionar a entrada e saída padrão, definir o nível de prioridade de CPU e de I/O, e mais.

Usuários de Unix (e clones, como o Linux) devem estar reconhecendo nas funcionalidades o que estão acostumados a fazer manipulando subsistemas como o cron e o init, e usuários avançados do Mac devem ter dado um passo além e reconhecido as características do launchctl, interface de comando para o sistema de agendamento e resposta a eventos nativo do OS X.

E aparentemente é isso mesmo: o LaunchD oferece de forma gráfica (e com recursos de configuração do ambiente de execução) acesso aos serviços do subsistema interno launchd (com minúsculas), que também pode ser operado por meio do launchctl, e fica nos bastidores de sistemas mais amigáveis (como o Automator e o app Hazel) e absorveu as funcionalidades de sistemas tradicionais como cron e init – que no OS X são front-ends tradutores para o launchd ou simplesmente inexistem.

Compliquei? Talvez, mas tenho o palpite de que as pessoas que são público-alvo para o app LaunchD entenderão, e a esta altura já estão pensando no que vão automatizar com scripts ツ

Não perca o sono pelos ícones feios e outros problemas do beta do iOS 7

O primeiro beta público do iOS 7 foi lançado para desenvolvedores na semana passada, e desde então tenho visto críticas (variando de bem-informadas a mal-intencionadas) e análises que, sejam rasteiras ou profundas, frequentemente perdem completamente um contexto essencial: é o primeiro beta, e para desenvolvedores: não há garantia ou expectativa de que o design e a implementação estejam completos, e os feedbacks são bem-vindos, mas desperdiçam a atenção que recebem quando tratam o software como se fosse uma versão final, disponibilizada para produção.

Não que a Apple seja isenta de lançar versões finais toscas (iOS Maps, estou olhando para você), ou que um beta não possa ser criticado – algumas críticas são até excelentemente fundamentadas, como esta do @saam, editor da Mac+. É que um pouco de contexto é necessário, e o golpe midiático de falar mal do beta como se não entendesse que é beta vem sendo cada vez mais abusado por gente que avalia sua popularidade pelo tamanho das polêmicas que provoca.

Afinal, beta é beta, mas como ultimamente acabamos acostumados a softwares que são oficialmente disponibilizados para uso em produção pelos usuários finais mantendo essa classificação, cabe lembrar: no ciclo de desenvolvimento de software, as versões de teste alfa são disponibilizadas antes mesmo de o software ter implementação de todos os seus recursos, as versões de teste beta ocorrem a partir do momento em que há implementação (ainda que incompleta ou falha) de todos os recursos, depois dela ainda pode vir um ou mais release candidate (ou "último beta", que nem sempre será de fato o último), para o ensaio geral, e só então chegam as versões de produção.

O Jim Dalrymple, do The Loop, publicou sua opinião, e ele costuma estar excepcionalmente bem informado sobre o que rola por trás das cortinas de Cupertino. Em resumo, além de lembrar que se trata de um beta para desenvolvedores adaptarem seus apps a novas APIs, sem compromisso de finalização de design ou implementação, ele também afirmou que os desenvolvedores da própria Apple congelaram suas tarefas pouco antes do WWDC para permitir o lançamento de um beta suficientemente estável, e o desenvolvimento por lá já recomeçou (e, na minha opinião, eles ainda têm um longo caminho pela frente, incluindo aquele tom de verde em ícones novos...).

Fora isso, ele também relembrou o que eu sempre digo: beta para desenvolvedores não é sinônimo de "versão de avaliação", nem de "versão para já ir usando em produção". Criticar é válido e bem-vindo sempre, mas mantendo o contexto no seu enquadramento!

Lado a lado: o que mudou no visual dos componentes básicos do iPhone no iOS 7

O desenvolvedor italiano MPow publicou um comparativo que coloca lado a lado vários dos elementos visuais do iPhone na versão atual e no preview do iOS 7 disponibilizado na semana passada.

O iOS foi anunciado há poucos dias e enquanto alguns recursos foram recebidos de braços abertos (inclusive vários que eram razão para desejar um jailbreak), vários elementos visuais, como os ícones default, foram rejeitados por muitos.

Mas na interface em geral eu apreciei as mudanças, que você pode ver (iOS 7 na esquerda, iOS 6 na direita) em várias amostras bem escolhidas pelo MPow na imagem abaixo:

O original você encontra no twitter do MPow.

No Rio: vaga para analista jr. - desenvolvimento iOS

Atividades: - Desenvolvimento e manutenção de aplicativos mobile. Utilizando conceitos básicos da empresa e trabalho em equipe.

Conhecimentos necessários: Conhecimento em desenvolvimento OO preferencialmente com objective c, c++ ou java, conhecimento em paradigmas do desenvolvimento mobile, desenvolver códigos objetivos, limpos e bem documentados; entedimento básico de versionamento de código; conhecimento básico em metodologia agile de desenvolvimento de software; Inglês Técnico.

Desejável: - Utilização do Github - Desenvolvimento para as plataformas Android, Blackberry e Windows Phone - Metodologia SCRUM

Competências: - Atuar em áreas de pesquisa participar ativamente em comunidades e eventos da área tecnologias objective-c, c++ ou java. - Cumprimento dos prazos acordados. - Garantir qualidade na atividade desenvolvida. - Garantir o versionamento da aplicação.

Contato: vagas@mobicare.com.br

Como a memória compactada do OS X Mavericks vai acelerar seu Mac atual

Liberar memória instantaneamente, sem ter de mover para o disco o conteúdo inativo, e fazendo os Macs atuais ganharem desempenho e mais tempo de bateria? Eu quero!

A memória compactada (compressed memory) é um dos novos recursos apresentados pela Apple no keynote do WWDC, no início desta semana. Antes de entender seu funcionamento, precisamos entender o problema atual que ela busca resolver.

Ter memória disponível é essencial para o desempenho do Mac e, até a versão atual Mountain Lion, ele lida com os excessos dos aplicativos da mesma forma que a maioria dos sistemas operacionais modernos: movendo para o disco o conteúdo inativo (mas ocupado) da memória, deixando assim mais RAM livre para os apps em execução.

Essa técnica, chamada paginação, encontra o seu limite nos momentos em que temos pressa em voltar a ver um app "dono" de um grande trecho de memória que foi paginada para o disco, pois – mesmo nos casos mais velozes – o disco é muito mais lento que o acesso direto à memória.

Mesmo quando isso não ocorre e a transição é relativamente suave, o próprio ato de paginar tem impacto sobre o desempenho do sistema, embora seja muito melhor do que nos obrigar a instalar fisicamente toda a memória que consumimos em multitarefa, ou frequentemente deixar de rodar algum app porque a memória já está toda ocupada por outro.

Entra em cena a compressed memory

A memória compactada é outra forma de resolver o problema do uso de memória, evitando recorrer à lenta paginação para o disco. Seu princípio de funcionamento (que tem várias implementações já existentes) lembra o de compactadores de disco como o DoubleSpace ou o Stacker, que usuários experientes devem lembrar com pouca saudade.

As diferenças entre a memória compactada do OS X Mavericks e sistemas como o Stacker, além do fato de que a primeira se aplica à RAM e o segundo ao disco, começam pelo escopo: o Stacker comprimia um disco ou partição inteiros, e a memória compactada comprime apenas as áreas de memória que não estão em uso (ou seja, as que atualmente são paginadas diretamente para o disco).

Como o sistema não precisa comprimir a memória inteira, ele só o faz quando a memória livre está perto de acabar, e aí comprime apenas as áreas menos usadas (e as descomprime quando elas precisarem ser usadas). Ambas as operações são bem mais rápidas do que a paginação para o disco, e a compressão reduz em mais de 50% o espaço ocupado pelas áreas automaticamente selecionadas.

Outra grande diferença é que mais de uma década passou desde então, e o tempo de compressão e descompressão de dados (tarefa que faz uso intensivo de CPU, área que acelerou bastante) hoje é bem menor – sem falar na disponibilidade de CPUs com múltiplos núcleos, que na época eram um sonho e hoje podem permitir que um núcleo que estaria desocupado se encarregue de carregar o piano nos bastidores.

Para completar, recorrer previamente à compressão torna mais eficiente a operação de paginação, nos casos em que ela permanecer necessária.

Como ela beneficia o seu Mac atual

O resultado geral é que nos testes de carga elevada realizados em um MacBook Air (CPU Core i5, 4GB de RAM) o modelo do Mavericks é 40% mais responsivo do que o modelo adotado até o Mountain Lion.

Mas você pode sentir o ganho de várias outras formas, sendo o primeiro deles na carga da bateria: menos acesso a dispositivos pela redução da paginação reduz o consumo, e assim a carga tende a durar mais.

Outra consequência direta, além do desempenho, é que os Macs com menos memória (há modelos vendidos com 2GB sem possibilidade de expansão, compatíveis com o OS X Mavericks) passam a poder operar com um gargalo menos apertado, especialmente beneficiados pela estratégia que usa mais CPU e menos E/S.

O uso de memória e de disco acontece em ciclos, em que a indústria de software recorre a técnicas como a compressão quando percebe que o custo da memória (ou de disco) para o consumidor inviabiliza aumentar os requisitos de consumo de seus aplicativos, e a indústria de componentes reage com seus preços e soluções até tornar a compressão desnecessária de novo.

Já ocorreu várias vezes, e ocorrerá outras vezes no futuro, mas no momento eu prefiro memória comprimida do que aposentadoria precoce para excelentes Macs de poucos anos atrás ツ

Aprendendo Unix no OS X: novo livro da Novatec, ganhe seu exemplar

Tenho em mãos o livro "Aprendendo Unix no OS X Mountain Lion", de Dave Taylor, mais um bom fruto da parceria constante entre a brasileira Novatec e a O’Reilly.

Não é um livro dos mais volumosos: são 272 páginas, e o subtítulo "Mergulhando no Terminal e no Shell" e a presença da palavra "Aprendendo" no título definem o tom: o livro é uma boa introdução para quem vive ouvindo falar em shell, de vez em quando segue instruções baseadas em comandos no Terminal, e quer aprender como usar bem esses recursos.

Dias após o anúncio oficial do OS X Mavericks, que será lançado na primavera, não deixe à menção ao Mountain Lion desanimá-lo: a absoluta maioria dos conceitos abordados no livro poderiam ser usados em qualquer versão do OS X desta década, ou mesmo da anterior. Vale lembrar que o OS X Mountain Lion é oficialmente um UNIX, com certificação do Open Group, e forte herança do BSD.

Para usuários já com experiência de shell Unix (ou seus clones, como as distribuições Linux), há pouco a aprender neste livro, mas podem ser detalhes interessantes: configuração do Terminal default do OS X, algumas especificidades de sistemas de arquivos e de versões dos componentes, interface com recursos do sistema, como as buscas do Spotlight e o gerenciador de conexões, e mais.

Já para a audiência a que o livro se destina, que é a de nível introdutório, é só material útil: como iniciar o uso, navegar pelas pastas, manipular os arquivos, encontrar informações, trabalhar com o espaço em disco e com as permissões de acesso, obter acesso de administrador, gerenciar processos, conectar-se a outros computadores e mais.

Eu gostei especialmente do capítulo 7, que trata dos aspectos multitarefa, incluindo comandos como ps, top e kill, úteis para complementar os recursos gráficos do OS X quando algum aplicativo perde o controle e deixa de responder, ou consome mais recursos do sistema do que deveria.

O índice e um capítulo de exemplo estão disponíveis no site da Novatec, onde ele também está à venda, caso você não queira ir procurá-lo na sua livraria preferida.

Promoção: ganhe seu exemplar

Atualização: o sorteio foi realizado em 14.06.2013 e os vencedores foram: Regis Araujo Melo e Eltern Assis. Ambos tem até terça (18.06) para enviar, pelo contato do BR-Mac, o endereço postal no Brasil para onde a Novatec deve enviar seus exemplares.

Como cortesia para os leitores do BR-Mac, a editora Novatec disponibilizou 2 exemplares do "Aprendendo Unix no OS X Mountain Lion" para sorteio.

Para participar você tem 2 possibilidades, e pode participar de ambas (dobrando assim a chance de ganhar), mas apenas uma vez em cada uma delas:

a) seguir o @brmacblog no Twitter e twittar a seguinte frase: Estou concorrendo ao livros de introdução ao Unix no Mac da @novateceditora que o @brmacblog está sorteando em http://br-mac.org/

b) Curtir o BR-Mac no Facebook e compartilhar o post sobre este livro que eu publiquei lá, escrevendo ao compartilhar se você já tem experiência com Unix (ou similar) que deseja aprimorar, ou seu interesse é começar a aprender.

Se você fizer as 2 operações concorrerá no sorteio (via random.org) com o dobro de chances em relação a quem optar por apenas uma delas. Twits e compartilhamentos repetidos serão desconsiderados, e tentativas de participar com múltiplas identidades, se identificadas, serão anuladas. O sorteio ocorrerá na sexta-feira (14 de junho), com resultado divulgado no Facebook e no Twitter. Na divulgação do resultado darei instruções para que cada um dos 2 vencedores enviem um endereço postal no Brasil que será entregue à Novatec para envio dos livros. Todos os casos não mencionados neste breve regulamento ou em atualizações publicadas por mim nos comentários serão resolvidos soberanamente pela administração do BR-Mac, e sua participação implica na aceitação destas regras.

Mais acessados:

Artigos recentes: