quinta-feira, 3 de abril de 2014

Copy, um ótimo substituto para o UbuntuOne: igual ao Dropbox, só que melhor

Dropbox, o pioneiro


Quase todo mundo já deve ter ouvido falar do Dropbox, o programa que sincroniza facilmente os seus arquivos entre múltiplos dispositivos e com a nuvem. Se você não ouviu, deveria, pois ele facilita muito o trabalho em grupo e o compartilhamento de arquivos com conhecidos.

Da próxima vez que precisar enviar aquele vídeo de 78Mb para o seu amigo, pense duas vezes antes de anexar o arquivo por email. Enviar pelo Facebook pode ser uma alternativa melhor, mas também está longe do ideal.

Enfim, programas como o Dropbox são utilizados por milhões de pessoas diariamente e fica difícil até mesmo pensar em como vivemos tanto tempo sem isso: facilidade para acessar seus arquivos via web ou de ter a última versão do documento magicamente disponível em todos os seus dispositivos, sejam eles laptops, desktops, smartphones ou tablets.

Contudo, parece que todo mundo quer ter um programa deste tipo: Google Drive, Microsoft OneDrive, SugarSync, Box.com e alternativas livres como o ownCloud e o SparkleShare surgiram para fazer frente à liderança do Dropbox. Até mesmo a brasileira Locaweb possui um serviço semelhante, o GoDrive.


UbuntuOne, meu favorito (até agora)


Contudo, um dos serviços que eu mais gostava será extinto em breve. Trata-se do UbuntuOne. Os motivos para isso eram simples:
  • assim como o Dropbox, ele tem clientes para múltiplas plataformas incluindo Windows, Android, iOS, Mac OS e obviamente, GNU/Linux.
  • ele tem a vantagem de fazer streaming das suas músicas salvas no serviço.
  • as músicas compradas na loja do Ubuntu One Music Store eram salvas no seu Ubuntu One, ficando assim automaticamente disponíveis sem que isso fosse descontado do seu espaço de armazenamento
  • o cliente tem o código fonte aberto.
Mas além de tudo isso, o que eu mais gostava nele era a possibilidade de escolher quais seriam as pastas do sistema seriam sincronizadas, sem que todas elas estivessem que estar dentro de uma pasta específica, como acontece com o Dropbox.

Contudo, foi anunciado recentemente que o serviço UbuntuOne será descontinuado. As justificativas são de que o mercado se tornou muito competitivo para esse tipo de produto e que para continuar no jogo, a Canonical teria que fazer investimentos pesados na área, coisa que eles parecem não estar dispostos a fazer neste momento.

A notícia boa disso tudo é que eles anunciaram que vão liberar o código fonte do programa. Uma vez que o cliente já é aberto, isso só pode se tratar do server-side, o que seria bastante interessante.


Copy, a alternativa peso-pesado

Logo do Copy
Por coincidência, soube recentemente de um serviço que tem tudo que o Dropbox tem, com uma vantagem muito importante: mais espaço gratuito. Trata-se do Copy da fabricante de discos rígidos Barracuda. Com ele, além do acesso web e de aplicativos para as diversas plataformas, você já começa com 15Gb logo de cara e recebe mais 5Gb por recomendação. É três vezes mais do que oferece o Dropbox e no caso de indicações, 10 vezes mais.

Não é a toa que eu passei a usá-lo e estou bastante contente. Vendo essas e outras características, não é a toa que a Canonical decidiu parar de competir nesse mercado.

Se você ficou curioso e resolver dar uma chance ao programa, utilize esse link https://copy.com?r=lLJ26T e ganhe os 5Gb extras após instalar o programa, de forma a começar já com 20Gb. Depois, não se esqueça de deixar um comentário aqui e dizer o que achou da experiência.

Editado 09/04/2014: algo que eu havia deixado de fora e que considero importante, é dizer que o Copy também roda no Raspberry Pi, algo que eu sempre quis que o Dropbox fizesse.

domingo, 30 de março de 2014

Alfabetização digital: desafios e perspectivas para um mundo em transformação

Eben Upton, Rob Mullins, Jack Lang e Alan Mycroft, pesquisadores do Laboratório de Computação da Universidade de Cambridge, no Reino Unido, estavam preocupados com o declínio que presenciavam ano a ano no número e na qualidade das habilidades computacionais dos alunos que ingressavam para o primeiro ano do curso de Ciência da Computação. Desde os anos 90, quando a maioria dos ingressantes já chegava sabendo programação por hobby, o cenário a partir dos anos 2000 começou a ficar bem diferente, com o calouro típico tendo apenas alguma experiência em web design.

Para eles, alguma coisa havia mudado a forma como as crianças interagiam com os computadores. Alguns problemas foram identificados: a propagação de lições sobre como usar Word, Excel e a criação de páginas web nos currículos das aulas de informática do ensino básico, o fim da bolha ponto-com, a ascensão dos computadores pessoais e dos consoles de videogame que substituíram as máquinas Amigas, BBC Micros, Spectrum ZX e Commodore 64, nas quais a geração anterior havia aprendido a programar.

Com o diagnóstico feito, havia pouca coisa que esse pequeno grupo de pesquisadores pudesse fazer para resolver o problema de um currículo inadequado nas escolas ou do fim da bolha financeira. Mas eles acharam que poderiam agir em relação ao fato de os computadores terem se tornado tão caros e obscuros, a ponto de os pais chegarem a proibir “experiências” com programação neles. Tentaram então encontrar uma plataforma que, da mesma forma como faziam aqueles computadores antigos, permitisse um ambiente de programação para experimentações com linguagens de programação e que os jovens se divertissem ao mesmo tempo?



Casos e projeto

Talvez você nunca tenha ouvido a história acima, mas muito provavelmente já ouviu falar do resultado prático que toda essa experiência resultou: trata-se das motivações por trás do Raspberry Pi, o computador de 35 dólares que anda revolucionando o mundo.

Agora, caso você ainda não tenha ideia do que é o Raspberry Pi, então isso só vem confirmar aquilo que eu vou dizer a seguir: estamos perdendo a oportunidade de educar nossas crianças e de estar entre os países que liderarão a próxima geração mundial.

Lá fora, há uma infinidade de projetos destinados a facilitar os primeiros passos dos jovens no universo mágico da programação, universo este onde seres humanos são capazes de “dobrar” os computadores, essas máquinas capazes de feitos maravilhosos, ao sabor de sua própria vontade.

O Media Lab do MIT (Massachusetts Institute of Technology), um dos departamentos de pesquisa mais respeitados de uma das instituições mais reconhecidas da área, já dedicou alguns projetos nesse sentido. É de lá que se originou uma das tentativas mais audaciosas no sentido de levar o conhecimento tecnológico às crianças, principalmente àquelas do terceiro mundo, que possuem proporcionalmente menos acesso à tecnologia do que as que se encontram em países desenvolvidos: o OLPC (ou One Laptop Per Child) teve início em 2005 com o objetivo de criar um laptop de 100 dólares, e crianças sem acesso algum a computadores poderiam ter o seu primeiro contato com a tecnologia.

É de lá também que veio o Scratch, linguagem de programação especialmente desenvolvida para crianças, mas, que ao contrário do Logo e de outras linguagens que a antecederam, tornou fácil a compreensão da lógica computacional e de outros fundamentos essenciais de programação sem que os pequenos tenham que se preocupar com detalhes tão comuns em outras linguagens como o uso de chaves, colchetes e pontos e vírgulas.

Computadores nas escolas e universidades

A introdução dos computadores como ferramentas de auxílio ao ensino se deu nas escolas públicas dos EUA ainda em meados dos anos 70, ganhando maior força na década seguinte. Aqui, o ensino de computação nos currículos escolares ainda engatinha e, quando já existe, reproduz a mesma lógica do aprendizado de Word, Excel e jogos (quando muito, jogos educacionais), coisas que as crianças de hoje aprendem sozinhas em casa.

Artigo fac-símile de jornal americano de janeiro de 197, relatando o uso de computadores como ferramentas de ensino em escolas públicas. Veja em http://bit.ly/1ipVRMj
 Se antigamente o computador era encarado como uma simples ferramenta de auxílio à aprendizagem, hoje já é possível ver valor no ensino da própria ferramenta computacional em si, através da introdução de alguma linguagem de programação, permitindo uma melhor compreensão do funcionamento da máquina e o exercício do gosto pela resolução de problemas.

Uma simples busca por livros sobre o tema em lojas online estrangeiras e brasileiras ou por artigos acadêmicos evidencia o enorme abismo que está se abrindo entre os países que estão adaptando seus sistemas educacionais para acompanhar as recentes mudanças ocasionadas pelo advento das tecnologias digitais e aqueles que ainda carregam o fardo de erros anteriores, como parece ser o nosso caso. Lá fora, é fácil ver a proliferação de livros sobre programação para crianças ou mesmo de teses que abordam a importância e as metodologias para a introdução do ensino de programação para os mais jovens.

Por outro lado, a situação do ensino superior de tecnologia no Brasil não é muito diferente e reflete a falta de discussão acerca do tema. De um lado, temos o ensino superior privado meramente mercantilista e que tem como objetivo final a inclusão do aluno no mercado de trabalho. Dessa forma, essas instituições adotam de maneira “cega” as soluções empurradas pelas grandes empresas do setor, na esperança de que isso ofereça a seus alunos alguma vantagem competitiva quando formados.

No entanto, apesar da inserção profissional ser um objetivo louvável, ela deveria ter como foco a capacitação das novas gerações para conseguirem criar as novas tecnologias, impulsionando o desenvolvimento tecnológico do próprio país como um todo, e não pela nossa eficiência em nos tornarmos excelentes consumidores de uma tecnologia que não entendemos e que nos é fornecida.

Já nas universidades públicas o problema é outro: currículos obsoletos, instalações e laboratórios inadequados e professores desatualizados são a fórmula para alunos desestimulados, o que resulta em uma elevada taxa de evasão nos cursos de tecnologia, desperdiçando o dinheiro público que foi investido na formação desses alunos até o momento em que eles abandonam o curso.

O problema se agrava com o acesso às plataformas de ensino à distância de grandes universidades dos países desenvolvidos, como Coursera, EdX e Udacity, que permitem antever o quanto estamos longe do ideal. Essas instituições utilizam o enorme volume de dados gerado pelos milhares de estudantes que acessam o conteúdo online para aprimorar ainda mais suas técnicas e metodologias de aprendizagem. Da forma tradicional, através do ensino presencial, seriam necessárias décadas de alunos formados para se obter a mesma quantidade de dados.

Problemas e caminhos para o Brasil

O resultado de tudo isso no Brasil é que falta mão de obra no mercado. Aliás, o que gera ainda mais preocupação ao nos depararmos com esse panorama é que os desafios e as dificuldades estão se acumulando; precisamos dar conta das expectativas de inclusão digital e ensino de programação nas escolas, ao mesmo tempo em que não resolvemos por completo os erros do passado. Estamos, hoje, tentando incluir os computadores no ensino ao mesmo tempo em que poucas são as escolas que possuem uma biblioteca, por exemplo.

Sem falar na questão da língua inglesa. Ainda hoje o ensino do idioma é bastante deficiente nas escolas brasileiras, o que se torna um grande entrave para uma maior inserção do país nas comunidades, fóruns e comissões mundiais de padronização tecnológica.

Nesse contexto, debates ultrapassados, que já foram superados há muitos anos em outros países, como o medo de que os professores sejam substituídos por computadores, ainda ecoa nos corredores dos círculos educacionais brasileiros pelos simples fato de que não ultrapassamos totalmente as barreiras da etapa inicial de inclusão dos computadores no cotidiano dos ambientes educacionais. Falta uma política pública para o tema, e os poucos exemplos que podemos contabilizar constituem-se de iniciativas isoladas, cujo impacto é bastante localizado.

A situação passa a ser mais alarmante quando comparamos a evolução que outros países dos BRICs – Rússia, China e Índia, alcançaram nos últimos 20 anos. Mesmo na América Latina, parece que estamos atrás de nações como Chile, México e até mesmo a Argentina.

Não há fórmula mágica para solucionar os problemas aqui expostos, mas parece ser urgente e necessário que os setores organizados da sociedade passem a se preocupar com questões desse tipo, incorporando a discussão do tema ao seu cotidiano e exercendo pressão sobre os meios políticos para que, a partir de uma ação efetiva, políticas públicas bem definidas sejam aplicadas ao setor. Só assim poderemos ter alguma chance de evitar que o inevitável aconteça e nos tornemos obsoletos, como 386s em um mundo Quad-core.

_________________________

Programação para crianças de todas as idades

Programas Open Source

  • KidsRuby: aprenda a programar usando Ruby;
  • Scratch: Ferramenta desenvolvida para a criação de pequenas animações e jogos a partir de programação;
  • Etoys: ambiente de programação visual e multimídia baseado no Squeak.

Aprenda a fazer páginas na web

Tutoriais online

  • Hackety Hack: ambiente gratuito com o objetivo de tornar fácil o ensino de Ruby a iniciantes;
  • Codecademy: lições práticas de Python, Ruby, HTML, CSS e APIs.

Faça robôs e apenda um pouco de eletrônica

  • Arduino: para qualquer um interessado em criar de objetos à ambientes interativos.
Artigo publicado no portal iMasters: http://imasters.com.br/gerencia-de-ti/tendencias/alfabetizacao-digital-desafios-e-perspectivas-para-um-mundo-em-transformacao/

quinta-feira, 27 de março de 2014

Marco Civil da Internet: é preciso agir agora

O Marco Civil foi aprovado na Câmara dos Deputados e agora é preciso a aprovação do texto no Senado, para que o projeto finalmente vá para sanção presidencial.

Abaixo, reproduzo um texto que escrevi para o portal iMaster sobre o assunto e que encontra-se disponível em: http://imasters.com.br/gerencia-de-ti/tendencias/marco-civil-da-internet-e-preciso-agir-agora/

----

Pense e responda: você tem certeza, mas certeza mesmo, de que o atual marido da sua ex-mulher (que, por acaso, é um alto diretor da sua companhia telefônica) não acessa o seu histórico telefônico para saber com que frequência vocês ainda se falam? É muito provável que não. No entanto, tudo muda caso você tenha provas, ou mesmo fortes indícios, contra o atual marido da sua ex-mulher. Numa hipótese desse tipo, você teria plenas condições (e todo o direito) de processar, não apenas os indivíduos envolvidos, mas principalmente as empresas para a qual eles trabalham.

Empresas de telecomunicação possuem um grande poder, pois detêm a guarda de informações relativas à vida privada de toda uma sociedade. Por isso mesmo, o serviço prestado por elas é considerado de interesse público, o que submete esse mercado a um controle governamental mais rígido, afinal, trata-se de um serviço de fundamental importância. E elas possuem plenas condições técnicas de monitorar um indivíduo. No entanto, a Constituição Brasileira está do lado do cidadão, garantindo a ele o direito ao sigilo de sua vida privada. A lei garante que os dados que você cria ao utilizar os serviços dessas empresas , são seus, e não delas. O fato de você utilizar a infraestrutura das companhias para gerar esses dados não muda que os dados são sempre seus.

marco-civil-empresarios


E mais do que isso, essas empresas têm a obrigação de zelar pelos seus dados privados, podendo inclusive ser responsabilizadas caso permitam o vazamento de informações fora dos contextos previstos em lei: processos e investigações criminais mediante autorização judicial. Diante disso, sua empresa de telefonia pode ser processada caso permita que seu histórico telefônico vá parar nas mãos de terceiros sem autorização para isso.

Parece óbvio, mas nem sempre foi assim. Foi necessário muito tempo até que nossa sociedade chegasse a essas conclusões e o direito à privacidade se constituísse como fundamental. Basta lembrar que na idade média o senhor feudal – e mais tarde o rei – possuía autoridade sobre a vida pública e privada de seus servos, e que há pouco mais de 200 anos o Senhor de Terras agia da mesma forma com seus escravos. O direito à privacidade nasce, portanto, com o surgimento da República: a separação entre Estado e Sociedade resulta na separação entre vida pública e privada.

Apesar disso, os contornos de questões relativas à privacidade eram bem mais delineados no passado. Hoje, as fronteiras não são mais tão nítidas como costumavam ser . Até onde vai a privacidade alheia e tem início a vida pública? E, quando se trata da Internet, regras como as descritas até aqui parecem não ter a mesma validade. Na verdade, a lógica parece ser justamente o inverso.
Como não há leis que garantam a privacidade dos dados digitais dos indivíduos frente ao poder das corporações de Internet, estes se encontram totalmente desprotegidos a partir do momento em que aceitam termos de serviço “leoninos”, ou seja, desiguais, que garantem todo o poder para o fornecedor do serviço e nenhuma garantia para quem os utiliza.

É exatamente o que fazem empresas como Google, Facebook, Microsoft e Apple: ao aceitar os termos de serviço e privacidade, sem os quais não é possível fazer uso de Gmail, Facebook, Skype ou iCloud, o cidadão expõem sua vida privada ao poder desproporcional dessas corporações. Com isso elas podem utilizar todo o conhecimento gerado sobre você de maneira quase que indiscriminada. Não importa se elas usam os seus dados simplesmente para vender produtos que você supostamente precisa ou para espionar a sua vida pessoal e profissional. O problema é que se trata unicamente de muito poder nas mãos de uma “pessoa” só. É preciso, no mínimo, equilibrar essa balança.

Atualmente, estamos numa encruzilhada: não podemos mais prescindir dos serviços online que usufruímos, ao mesmo tempo em que deliberadamente entregamos nossos dados a essas empresas (e outras), inconscientes do potencial perigo que isso representa.

marco-civil


O problema se agrava quando o Estado, que supostamente deveria proteger o cidadão de interesses contrários ao público, acaba se aproveitando de todo esse poder de concentração de dados para também ter acesso a eles, facilitando, assim, seu controle sobre a sociedade. A divulgação da existência do PRISM (o programa de espionagem digital do governo americano) confirma que este tipo de ação vai muito além da “simples” espionagem política, passando inclusive por interesses comerciais.

Indivíduos, e principalmente empresas, deveriam redobrar a atenção antes de decidirem fazer uso de serviços de nuvens públicas, pois tudo aquilo que parecia ser teoria da conspiração confirmou-se graças ao ato de Edward Snowden. Se não fosse por ele, provavelmente ainda estaríamos alheios a tudo o que foi revelado.

A solução, nesse caso, seria a aprovação de leis que ampliem o direto dos individuais para o campo das redes digitais. O projeto de lei do Marco Civil da Internet, em tramitação na Câmara há mais de dois anos, é um primeiro passo nesse sentido.

Além disso, é preciso ficar atento para que o projeto, que nasceu de uma iniciativa popular, não seja descaracterizado, perdendo assim sua função. Hoje, uma alteração no texto original já permite que conteúdo seja retirado da rede sem a necessidade de decisão judicial. Essa é uma mudança inadmissível porque dá margem a “acusações vazias”, que têm intuito apenas de retirar conteúdo que possa desagradar a determinados grupos sociais, como detentores de direitos autorais.

Outro ponto polêmico é a garantia de neutralidade da rede. Ela determina que provedores de infraestrutura não podem ter controle sobre o conteúdo que passa por essa infraestrutura. Se essa garantia cair, provedores poderão filtrar os pacotes de dados para criar planos diferenciados de acesso de acordo com o conteúdo que você quer consumir. Nesse caso, não importará mais quantos “mega” tem o seu plano de acesso à Internet, você ainda assim terá que pagar custos adicionais para poder fazer uso de serviços como VoIP ou streaming de vídeo de forma minimamente decente.

Como se pode ver, os únicos a ganhar com essa decisão são as grandes corporações de telecomunicação, pois elas poderão aumentar suas margens de lucro sem que para isso seja necessário aumentar a sua infraestrutura ou incluir mais gente ao serviço. Tal decisão mudaria drasticamente o modelo de negócio vigente até agora, no qual a largura da banda determina o que você pode fazer na rede.

Por tudo que foi falado até aqui, é importante que elevemos a consciência da população em geral em relação à importância do tema, aumentando assim a pressão popular pela aprovação integral do Marco Civil da Internet. Portanto, converse com seus amigos e familiares sobre o projeto, seja nas rodas de bar ou nas redes sociais.

quinta-feira, 20 de fevereiro de 2014

Telegram: muito melhor que o WhatsApp

Telegram: taking back you privacy
Eu nunca entendi muito toda essa hype em torno do WhatsApp, uma vez que, do meu ponto de vista, sempre houveram alternativas melhores: Viber e Skype sempre ofereceram ligações gratuitas via voip, além das mensagens de texto.

O Hangouts do Google, quando chegou recentemente, trouxe uma novidade interessante que foi o acesso web e integração com o Gmail, o que do meu ponto de vista sempre foi muito atraente, pois nunca gostei de ficar "sacando" o celular a cada 30 segundos para responder a uma conversa com alguém. Algumas pessoas viam no Facebook Messanger a mesma utilidade.

Pois eis que chegou o Snowden e suas denúncias relativas à espionagem da NSA e tudo isso se tornou menos atraente: a ideia de governos e indivíduos espionando a sua comunicação pessoal não agrada a ninguém, mesmo àqueles que utilizam esses aplicativos para nada mais do que mandar a lista de compras para o companheiro(a) ao sair do trabalho.

O Facebook nunca foi famoso pelo respeito à privacidade dos seus usuários; e agora que o WhatsApp foi comprado pelo Facebook, ele perdeu ainda mais atrativos para mim.

A alternativa


Já estou utilizando o Telegram há algum tempo e gostando bastante. Ele não recursos de ligação via voip, mas cumpre a função do WhatsApp com diversas vantagens e possui foco na privacidade (até o site é https por padrão):

  • as mensagens são criptografadas de ponta a ponta
  • possui recursos semelhantes ao SnapChat, onde você cria uma sala privada e decide depois de quanto tempo o conteúdo vai se destruir: sem histórico, sem vestígios e sem armazenamento nos servidores.
  • tem o código aberto e uma API aberta, o que faz com que qualquer um possa implementar um app do Telegram seja em que plataforma for.
  • por conta disso, ele possui acesso web e via aplicativo desktop

Se tudo isso não bastasse, os autores do projeto criaram um novo protocolo que consegue ser extremamente rápido, apesar da criptografia. Você envia e a mensagem chega rapidinho, mesmo em conexões do tipo EDGE. Os criadores estão tão confiantes na tecnologia, que lançaram um desafio para  pagar 200 mil dólares para qualquer um que conseguir quebrar a segurança do protocolo.

Os builds oficiais do projeto são para Android e iOS, mas já há implementações para a Web, Windows Phone, extensão para Chrome e até aplicativos de linha de comando para o Linux.

Tudo isso sem anúncios e com a garantia de que ele nunca será cobrado. Algo que é ainda mais promissor e um grande passo em direção à uma maior privacidade e liberdade é a promessa de que também o código server side do programa será gradualmente liberado, na medida que o desenvolvimento for avançando, pois trata-se ainda de um programa em estágio beta.

Por todas essas razões, eu creio que o Telegram tenha grandes chances de se tornar um protocolo padrão para o envio de mensagens utilizando a Internet e dispositivos móveis. Se você se preocupa com a sua privacidade, deve pensar seriamente em dar uma chance para utilizar o Telegram.

O funcionamento é o mesmo do WhatsApp e após a instalação ele perguntará qual o seu número de telefone e enviará um SMS para confirmar se o número é mesmo seu. Após a confirmação você poderá ver quais pessoas que possui na agenda do seu telefone que já tem o Telegram instalado.

 Se quiser conhecer mais sobre o Telegram, o protocolo criado ou a tecnologia envolvida, acesse o site do Telegram e não deixe de ler a seção FAQ: www.telegram.org.

segunda-feira, 10 de fevereiro de 2014

Cedilha no Ubuntu 13.10 com teclado americano

Há um tempo atrás um amigo me relatou que havia instalado o Ubuntu 13.10 numa máquina com teclado americano e que não conseguia fazer cedilha (ç) com ele. Não consegui reproduzir o relatado em nenhuma das minhas máquinas e acabei sugerindo para ele algumas soluções que encontrei na Internet na época do lançamento.

Recentemente, atualizei uma máquina minha que ainda estava na versão 12.04 e tive exatamente o mesmo problema. Só consegui resolvê-lo quando tentei diversas soluções que encontrei dispersas na Internet.

Relato aqui na tentativa de ajudar alguém com o mesmo problema:

Abra os arquivos com o editor de texto da sua preferência

/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache
/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache

Obs: se você estiver utilizando uma versão 32 bits do Ubuntu, provavelmente terá que substituir "x86_64" no caminho acima, por "x386".

Em ambos os arquivos, altere a linha:

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa"
para:
"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"

Execute os comandos abaixo no seu terminal:

sudo cp /usr/share/X11/locale/en_US.UTF-8/Compose /usr/share/X11/locale/en_US.UTF-8/Compose.bakup
sed 's/ć/ç/g' < /usr/share/X11/locale/en_US.UTF-8/Compose | sed 's/Ć/Ç/g' > Compose
sudo mv Compose /usr/share/X11/locale/en_US.UTF-8/Compose

force o carregamento dos módulos adicionando as seguintes linhas ao seu arquivo /etc/environment:

GTK_IM_MODULE=cedilla
QT_IM_MODULE=cedilla

reinicie o computador para que as modificações tenham efeito.
Se tiver sucesso, por favor, deixe um comentário no post relatando a sua experiência.

quinta-feira, 19 de dezembro de 2013

Cliente Open Source Nativo para o Rdio serviço de streaming

Música é uma parte essencial na vida de quase todas as pessoas. Muitos serviços de streaming de música chegaram ao país esse ano e resolvi testar o Rdio, pois uma amiga me falou que assinava o serviço e que estava bastante contente com ele.

Pessoalmente, tenho o meu próprio servidor de música, mas o Rdio oferece um período de teste gratuito e fiquei curiosidade para ver como ele funcionava. Aa facilidade de simplesmente ouvir falar de um determinado artista e já ter acesso imediato às musicas deste é algo bem interessante e que faz toda a diferença para alguém que assina um serviço desse tipo.

A interface web é bastante simples e funcional e você se adapta a ela com facilidade, mas logo senti a vontade de poder controlar a reprodução das músicas através de atalhos do teclado e de ter integração com o o menu do sistema.

Me decepcionei ao entrar no site da Rdio e ver que eles oferecem clientes desktop para Mac e Windows e para as principais plataformas móveis, mas não para GNU/Linux (achei que esse tipo de coisa já tinha acabado...). Isso por si só é algo que faria eu não assinar um produto desse tipo: se quem oferece o produto não se importa com aquilo que eu uso, porque eu deveria me importar com ele?

Mas na busca por um cliente "oficial" encontrei um cliente open source nativo que oferecia boa parte das funções que eu desejava: https://github.com/sgringwe/rdio

Cliente Rdio nativo rodando no meu Gnome Shell
Com ele pude ter acesso a atalhos de teclado, mudando as faixas através das setas do teclado e pausar as músicas com a barra de espaço. Outro ponto importante foi a integração com o menu do Gnome Shell, o que tornou muito mais fácil a tarefa de baixar o volume e controlar as músicas mesmo sem estar na área de trabalho onde o aplicativo estava aberto (utilizo uma extensão que provavelmente facilita isso)

O Rdio para Linux é escrito em Vala e além de ter uma interface praticamente idêntica ao cliente "oficial" tem o código fonte disponível, o que me deixa ainda mais a vontade para usá-lo. Parece que isso foi possível pela rica API do serviço, que permitiu que o autor do programa fizesse um cliente desktop totalmente livre para o serviço.

Como utilizei apenas a conta de testes do serviço, não pude testar recursos mais avançados como sincronização local e outras opções que o Rdio oferece, uma vez que esse tipo de conta gratuita não parece contar com essas opções. Entretanto, pelas issues abertas no Github, eu diria que esses recursos mais avançados não foram implementados, de forma que o aplicativo se restringe às tarefas mais triviais.
Rdio integrado ao menu do Gnome Shell

Apesar disso, gostei do que vi e usei. O aplicativo é rápido, fácil, com interface semelhante à nativa e com os recursos que eu desejava.

Para instalar, o programa conta com um PPA disponibilizado pelo do próprio autor para o Ubuntu.  Mas como  este não estava disponível para a versão atual do Ubuntu (13.10 Saucy Salamander), compilei o fonte através do Github seguindo a excelente documentação do desenvolvedor e não tive problema algum.

Resolvi divulgar aqui pois não vi muita coisa reproduzida na net. Se você assina o serviço da Rdio (ou outro) ou já conhecia o programa, não deixe de escrever as suas impressões nos comentários. :-)

quinta-feira, 24 de outubro de 2013

Primeira Expedição de Dados no Brasil faz visualizações e análises com base de dados do Walmart


Participei da 1ª expedição de dados no Brasil. Um projeto da Fundação Open Knowledge, que acaba de chegar ao país. A experiência foi incrível e só pude dizer que aprendi muito. Convido desde já qualquer um que tenha interesse por dados abertos a participar das próximas edições.

Como o texto do blog da Escola de Dados resume bem tudo que aconteceu, deixo o link aqui:

 Primeira Expedição de Dados no Brasil faz visualizações e análises com base de dados do Walmart

Eu tava ali no fundinho da foto... rss.

quinta-feira, 17 de outubro de 2013

Como executar um script dentro de uma sessão do GNU Screen

Ando brincando de minerar Bitcoins (estou fascinado com a tecnologia e preciso me lembrar de escrever algo mais informativo sobre o assunto aqui) e me deparei com um problema.

Ao iniciar o programa de mineração (estou usando o bfgminer) na linha de comando, ele exibe diversas informações e estatísticas relativas ao hardware e ao andamento da sua "mineração". Acontece que eu gostaria de iniciar o programa automaticamente durante o boot. Até aí tudo bem, pois isso é facilmente resolvido criando-se um script e agendando sua execução através do cron toda vez que a máquina reiniciar, mas como fazer depois para acessar os dados do programa depois, inclusive via SSH?

Pensando nisso, achei que uma seção do GNU Screen poderia resolver o problema; mas como executar o script dentro de uma seção do Screen automaticamente? A solução para isso eu achei em algum lugar no stackoverfow.com:

Acrescentei as seguintes linhas ao meu script:

screen -dmS nomeDaSessão
screen -S nomeDaSessão -p 0 -X stuff "comando$(printf \\r)"


Explicando:
  • -dmS inicia uma sessão "detached" do screen com o nome escolhido por você.
  • -X stuff executa o comando ou script dentro da sessão especificada pelo atributo -S.
  • -p 0 especifica o número do terminal dentro da seção do Screen. Como ela só tem um terminal rodando dentro da seção, este começa no 0.
  • Já $(printf \\r) insere um caractere do tipo "Enter" logo após o comando ou script passado como atributo para, de fato, entrar com o comando.

Bônus


Screen -S nomeDaSessão -p 1 comando2

executa o comando2 em um novo terminal (o de nº 1) dentro da mesma seção do Screen.

Homepage do GNU Screen: https://www.gnu.org/software/screen/

sábado, 5 de outubro de 2013

Compilar o CudaMiner para minerar Litecoins no GNU/Linux

Símbolo do Litecoin
Ultimamente tenho estado encantado com o conceito e a tecnologia por trás do Bitcoin e das moedas criptográficas. Espero poder escrever mais sobre isso neste blog. Se você não sabe o que é Bitcoin e muito menos Litecoin, clique nos respectivos links. Sugiro começar pelo Bitcoin, já que ela foi a primeira moeda virtual que inspirou todas as outras que vieram em seguida, inclusive o Litecoin.

Estava me informando mais sobre como minerar liteconis e li em algum lugar que  o melhor minerador de litecoins para GPUs Nvidia (eu tenho uma GTS 250, já um pouco velhinha...) é hoje o CudaMiner.

Resolvi baixar o programa no GitHub e instalá-lo, para um teste breve. No entanto, o programa não tinha nenhuma documentação de como compilá-lo. Como é horrível tentar compilar um programa que não te informa o mínimo sobre as dependências necessárias e como atingir este objetivo, resolvi documentar aqui o processo para outras pessoas (e eu mesmo) que por ventura venham a tentar fazer o mesmo.

Baixe o programa do GitHub:

$ git clone https://github.com/cbuchner1/CudaMiner.git

O grande problema, neste caso, foi encontrar as dependência que no caso eram os pacotes de desenvolvimento da tecnologia CUDA. Na atual versão do Ubuntu (13.04), eles são instaláveis através de:

$ sudo apt-get install nvidia-cuda-dev nvidia-cuda-toolkit

Feito isso tudo ficará mais fácil :-) Basta tornar o script configure executável e rodá-lo.

$ chmod +x configure
$ ./configure

Compile com make. Isso irá gerar um executável cudaminer na pasta, que pode ou não ser colocado no diretório padrão através de:

# make install

Nos meus testes, o bfgminer estava alcançando uma taxa de 33-36 kH/s e o cudaminer elevou esse patamar para 44-47 kH/s.

Se mais alguém tentar fizer o mesmo, por favor, deixe seus números nos comentários abaixo.

sexta-feira, 6 de setembro de 2013

Ouça suas músicas de qualquer lugar do mundo com Subsonic e Raspberry Pi

Nesse artigo vou documentar como instalar um servidor Subsonic em um  Raspberry Pi para poder fazer o backup de suas músicas e de quebra, poder ouvi-las de qualquer lugar que tenha uma conexão de Intenet, inclusive no seu celular. É como ter seu próprio Last.FM, Pandora ou Spotify.

Muito provavelmente você já ouviu falar do Raspberry Pi, um computador com processador ARM (o mesmo utilizado nos celulares) do tamanho de um cartão de crédito e com baixo consumo de energia. O Raspberry Pi custa apenas 35 dólares e foi criado por uma fundação ligada a Universidade de Cambridge, no Reino Unido, para incentivar o conhecimento relativo à programação para crianças e jovens. Pela versatilidade e baixo custo, o computadorzinho tem sido utilizado para muitos outros fins além deste.

Já o Subsonic é um software servidor de som e gerenciador de músicas escrito em Java, que por ser software livre (GPL 2), pode ser utilizado livremente. É com ele que iremos acessar as nossas músicas pela Internet. O Subsonic é muito rico em recursos sendo inclusive capaz de realizar transcoding (conversão de formato durante o streaming). Para saber mais, visite o site do projeto.

Conheci o programa quando fui editor da extinta Ubuntu Magazine e tive que instalar o programa para tirar os screenshots em Português, pois o artigo estava originalmente em inglês. Fiquei com muita vontade de ter o aplicativo rodando, mas a necessidade de um servidor físico dificultava um pouco as coisas.

Contudo, com o surgimento do Raspberry Pi, tudo ficou mais fácil e após brincar um pouquinho com ele, instalando o XBMC e um servidor web, resolvi dar uma função definitiva para o computadorzinho como o responsável pelo backup dos meus arquivos e meu servidor de música.

Tela da interface web do Subsonic

Ingredientes


Você vai precisar de:
  • 1 Raspberry Pi completo: com fonte e cartão de memória.
  • 1 HD portátil (opcional)
  • 1 Hub USB com alimentação (opcional)
  • intimidade com o terminal e SSH é altamente recomendável.

Se a sua biblioteca de músicas couber em um cartão SD, muito bom; mas caso necessite ligar um HD portátil, será preciso adquirir um hub USB alimentado, ou seja, com fonte, ou um HD que já inclua cabo de alimentação. Isso porque a alimentação de 5V do Raspberry Pi não dá conta de fornecer energia para um dispositivo como o HD e assim que você conectá-lo a saída USB o sistema será desligado.

RaspberryPi rev. B
Não vou descrever aqui como instalar o sistema operacional no Raspberry, pois há muita documentação sobre isso. Escolhi o Raspbian por estar mais habituado à distribuições Debian e por ser uma ótima escolha para um servidor.

Instalando o Java 8


Na primeira instalação que fiz, instalei o OpenJDK 7 na versão soft-float do Raspbian a partir dos repositórios e tudo funcionou muito bem. O único problema ocorria caso fosse necessário realizar transcoding para o streaming. Nesse momento a música ficava picotada, pois o Raspberry não dava conta de processar tudo ao mesmo tempo.

Isso acontecia porque o Java 7 não oferece suporte ao ABI (application binary interface) do ARMv6 e para instalá-lo era preciso utilizar uma versão do sistema operacional que não fazia uso dos registradores de ponto flutuante, o que diminuia muito o desempenho do sistema. Uma explicação mais detalhada pode ser encontrada na wiki do Raspbian.

Contudo, eu li que a versão 8 do Java oferecia esse suporte e poderia ser instalada em uma versão hard-float do sistema e resolvi instalar tudo de novo. O resultado foi muito bom, pois tanto o consumo de memória, quanto de CPU se reduziram muito, sendo que os problemas durante o transcoding também foram sanados.

 Apesar do OpenJDK ser a implementação Java padrão a partir da versão 7, não consegui achar uma forma de baixar uma versão 8 dele e acabei baixando a versão da Oracle a partir deste link. É preciso baixar em um outro computador e transferir via sftp, por exemplo, pois há a necessidade de aceitar a licença antes.

Uma vez baixado o pacote tar para a versão ARM, faça a instalação descompactando o arquivo baixado com o tar no diretório /opt com o comando:

sudo tar xvfz arquivobaixado.tar.gz -C /opt
 
Em seguida, crie o link simbólico para o diretório descompactado:

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0/bin/java" 1
sudo update-alternatives --set java /opt/jdk1.8.0/bin/java

e com o editor de texto da sua preferência, abra o arquivo /etc/environment e crie a seguinte variável de ambiente:

JAVA_HOME="/opt/jdk1.8.0"

e em seu arquivo ~/.bashrc insira:

export PATH=$PATH:$JAVA_HOME/bin

Dê um reboot no seu Raspberry e teste se está tudo funcionando ao digitar

java -version

no terminal. Na sequência iremos instalar o Subsonic

Instalação do Subsonic

Para instalar o Subsonic, basta baixar o pacote para Debian/Ubuntu da seção Download do site do subsonic.org e instalar com

sudo dpkg -i pacote.deb

Por padrão o Subsonic roda como usuário root, porém, por questões de segurança, isso é altamente desaconselhável. Vamos criar um usuário seguro para a execução do aplicativo e adicioná-lo ao grupo audio:

sudo adduser --no-create-home --disabled-password --disabled-login subsonic-user
sudo adduser subsonic-user audio


Agora precisamos atualizar as configurações do programa para utilizar esse usuário.

sudo vi /etc/default/subsonic e mudamos a última linha para:

SUBSONIC_USER=subsonic-user

e reiniciamos o serviço digitando:

sudo /etc/init.d/subsonic restart

Após fazer isso podemos acessar a interface web do aplicativo na porta 4040.

Como você pode ver pelo aviso emitido pelo programa, é altamente recomendável que você troque a senha padrão de admin já no primeiro acesso.

Além disso, eu aconselho que você crie um outro usuário sem poderes administrativos para acessar o programa normalmente, reservando o acesso como admin exclusivamente para fins de manutenção. Neste caso, mesmo que a sua senha seja comprometida, não há a possibilidade de que um eventual invasor possa fazer muitos estragos.

O programa é muito fácil de usar e você pode encontrar mais informações sobre as configurações iniciais na documentação.

Para que o transcoding funcione normalmente, instale o ffmpeg e o lame, pois a versão que vêm embutida no pacote de instalação do Subsonic não é compatível com a arquitetura ARM.

sudo apt-get install ffmpeg lame

sudo ln -fs /usr/bin/ffmpeg /var/subsonic/transcode
sudo ln -fs /usr/bin/lame /var/subsonic/transcode


Acesso móvel


Após a instalação você tem acesso por 30 dias a recursos acesso em dispositivos móveis, compartilhamento em redes sociais, seu próprio endereço DNS como por exemplo seunome.subsonic.org. Depois disso é preciso pagar um plano premium, que é bastante razoável e justo uma vez que oferece muitas vantagens ao mesmo tempo que estimula o desenvolvedor a continuar evoluindo o software.

Para ouvir as suas músicas através do celular basta instalar os aplicativos disponíveis na loja de aplicativos do seu smartphone. Há versões para Android, iPhone e Windows Phone.

 

 

Bônus


Como bônus, há algumas questões importantes que devem ser configuradas de maneira a aumentar a segurança e evitar problemas. Apesar de ser pequeno e possuir pouco poder computacional, o Raspberry Pi estará rodando um serviço que está exposto a toda Internet e caso sua segurança seja comprometida, um eventual invasor terá uma porta de entrada para a sua rede local.

A primeira providência é a configuração das permissões de arquivo das pastas onde estarão as suas músicas.

Certifique-se que o usuário subsonic-user tem acesso a elas, caso contrário não será possível adicioná-las à biblioteca do Subsonic. No meu caso, configurei toda a pasta com a músicas para pertencerem ao usuário pi e ao grupo audio do qual o subsonic-user faz parte.

Para aumentar a segurança da sua instalação, eu sugiro que você configure a montagem de seu HD portátil de forma a impedir a execução de executáveis maliciosos por parte de um eventual invasor. No meu caso acrescentei as seguinte linha ao meu arquivo /etc/fstab:

/dev/sda1       /media/cartola  ext4    defaults,noexec,nosuid,nodev    0       2

Espero que você tenham gostado. Deixe seu comentário abaixo.

No próximo post eu escreverei sobre como configurar um servidor rsync para sincronizar as músicas de seu computador principal com o Raspberry Pi.

Comente clicando!