Já acordo dando de cara com todos os blogs do mundo falando do novo lançamento do Google, uma plataforma para você criar e rodar aplicações (de preferência de grande porte) dentro da infra do Google.
Hoje arrumei um bom exemplo para a pergunta pra que usar a linha de comando no meu computador? Para mim a resposta é: para poder usar mini-utilitários e outras traquitanas que você podem ser criadas rapidamente.
Para gravar meus CDs e DVDs eu uso o K3b (que oficialmente é para KDE mas funciona sem problema no Gnome, como a maioria dos programas para KDE). Não sei se por culpa do modelo de gravador ou do software, se eu peço para ele verificar a gravação ao terminar ele dá aquela ejetadinha no disco, puxa de novo e começa a comparar (não lembro se o Nero faz a mesma coisa). Isso nem sempre funciona redondo e o programa acusa erro de leitura.
Não muito a fim de jogar fora a mídia e tentar de novo (perdendo tempo e dinheiro, muquirana que sou) fiz um scriptzeco para comparar todos os arquivos do CD com os originais do HD. Isso é feito com o comando cmp, que apesar do nome “comando” nada mais é do que um programinha-sem-tela. Aliás foi assim que o “Linux” nasceu: com um monte de malucos criando versões abertas dos comandinhos legais do Unix, o projeto GNU.
Como o cmp só compara arquivo por arquivo (cmp a.txt b.txt) eu precisava de uma maneira de ir arquivo por arquivo fazendo a comparação. Assim como Neston existem 1001 maneiras de fazer isso. Em bash, por exemplo, eu faria um loop entre todos os arquivos, etc. etc. Mas como o meu negócio é Ruby resolvi fazer o seguinte:
#! /usr/local/bin/ruby
Dir.new('/media/cdrom0').each do |f|
if !(f =~ /^\./)
puts f
puts `cmp /media/cdrom0/#{f} ./#{f}`
end
end
Seis linhas resolvem o meu problema. Imagine fazer isso com interface gráfica. Pode até ser fácil para alguns, mas seria o proverbial matar mosca com tiro de canhão. E eu não poderia publicar assim fácil no meu blog, para quem quiser sair usando. E, claro… como coloquei o código fonte você pode rodar isso com nenhuma ou poucas modificações em outros Unix, no OSX e provavelmente até no Windows.
Se você não entendeu nada, parabéns. Você ainda não é um louco-por-Unix. O super-usuário do Unix chama-se root. Para mudar (na linha de comando) para este super-modo você digita su. Ou se só precisa dar um comandozinho só precisa dar sudo comando.
Na maioria dos Unix quando você dá esse sudo o sistema pede a senha do root. Mas no Ubuntu você não sabe qual a senha do root, ele cria uma aleatória na instalação. Então o sudo pede a sua própria senha (o que já é suficiente para impedir que programas rodem como super-usuário sem você saber… como acontece no Windows). Mas de vez em quando nós escovadores de bits precisamos dar uma série de comandos como root, então entrar como su é bom de vez em quando.
E para finalizar uma piada-nerd, originalmente vista aqui. Se você entendeu minha explicação vai entender a piada…
Atualização: Pronto acabou (durante a madruga). A atualização foi bem indolor, exceto pelos drivers da ATI que pifaram. Um usuário mero-mortal teria se jogado pela janela, já que o conserto simples envolve a edição manual de arquivos texto de configuração. Mas, por outro lado, um mero mortal não teria alterado os drivers de vídeo como eu fiz.
Primeiras impressões: fontes da tela mais suaves (visual praticamente idêntico ao ClearType) e Firefox 2 instalado “de fábrica”, com direito a verificação ortográfica enquanto escrevo este texto. Agora quero testar esse tal de Tomboy.
Era para eu escrever aqui sobre como o Ruby on Rails — o framework de desenvolvimento web que devolveu a alegria de programar a este velho blogueiro — vai passar a vir “de fábrica” na próxima versão do OSX, codinome Leopard. O OSX é o ambiente preferido de desenvolvimento Rails nos países onde um Mac não custa mais que o rim da sua filha recém-nascida e trazer todo o framework direto dentro do sistema é a validação que faltava para mostrar que Rails é sim um ambiente sério e não um hype.
Só que hoje (logo hoje! ou melhor, logo essa semana!) foi anunciado um problema “muito muito sério” no código Rails. Os desenvolvedores não querem dizer (segundo eles dizer ainda) do que se trata para não piorar as coisas. Então lá vou eu parar o que estou fazendo (com prazo apertado) para atualizar meus projetos. Esses projetos rodavam versões bem recentes de Rails, então aceitaram bem a nova versão 1.1.5. E, pelo visto, as versões 0.x não têm o problema de segurança. Mas lá se vai uma manhã de produtividade embora.
É como diz o chavão: acontece nas melhores famílias.
Eu não sou tão qualificado quanto outros por aí para defender Ruby (com ou sem Rails) como plataforma de desenvolvimento. Mas a história engraçada é que meio por conta desse papo todo de blogópolis resolvi tirar a poeira do TopLinks, que foi escrito em PHP e não consegui… escrevi robozinhos novos em Ruby + ActiveRecord. E o motivo principal que ficou na minha cabeça pra mudar foi que Ruby usa menos shift do que PHP.
E por falar em mais qualificados, o TaQ, autor do tutorial de Ruby (que eu li e digo que é bom) e do livro de Ruby (que eu não li, mas como é baseado no tutorial deve ser bom) agora lançou um tutorial sobre Rails. Se você não é bobão é melhor cair dentro.
Think the web browser wars are over? Think again. World War I was dubbed “The Great War” and “The War To End All Wars.” Alas, that was an optimistic prediction; WWII followed in short order. The browser wars are coming back, and this time the whole World Wide Web is at risk, not just a few browsers and their vendors.
Olá, gostaria muito de saber sua opinião a respeito do Java, poderia me dar?
De: CrisDias Para: Isabel
Oi Isabel,
Só se você me disser qual a sua opinião a respeito do inglês, do francês ou do húngaro.
Entendeu? Pra mim Java é só isso, uma linguagem. Tentam dar uma áurea maior do que realmente é. O uso que dão ao Java é que é bom ou ruim. O fato de existir gente que fala “nóis vai vê o Framengo jogá” e também termos grandes escritores não torna a língua portuguesa melhor ou pior do que o sânscrito arcaico.
Mas é claro que o mercado e suas marcas vão tentar fazer parecer que falar determinado idioma é melhor para a sua imagem.