Sites e sistemas rápidos, acessíveis, bem posicionados no Google e, o que é mais importante, fáceis de usar.

Morte ao IE 6

26/02/2009 19:11 por Elcio

A convite do Dulcetti, resolvi aderir à campanha "morte ao IE6". Incluí o script do iMasters neste blog, e estou indicando quatro desenvolvedores para participar da brincadeira, convidando mais quatro cada um e assim por diante:

  1. DGMike
  2. Igor Escobar
  3. Zamana
  4. Daniele Viana

Adicionar esta notícia no Linkk

Matéria da e-brand sobre PagSeguro

26/01/2009 10:04 por Elcio

A matéria foi feita durante o Workshop de e-commerce iMasters e PagSeguro, em Vitória, em Novembro do ano passado:

Adicionar esta notícia no Linkk

Instalando o CouchDB e o Python-CouchDB no Ubuntu 8.10 (Intrepid)

13/01/2009 13:51 por Elcio

Não a versão do repositório, mas a mais nova.

Só a sequência de comandos, que eu estou com pressa agora:

sudo apt-get install build-essential erlang libicu38 libicu-dev libmozjs-dev automake autoconf libtool help2man libcurl-ocaml-dev subversion python-setuptools
mkdir ~/src
cd ~/src
svn co http://svn.apache.org/repos/asf/couchdb/trunk couchdb
cd couchdb
./bootstrap && ./configure && make && sudo make install
sudo adduser --system --home /var/lib/couchdb --no-create-home --shell /bin/bash --group --gecos "CouchDB Administrator" couchdb
sudo chown -R couchdb /usr/local/var/lib/couchdb/
sudo chown -R couchdb /usr/local/var/log/couchdb/
sudo easy_install simplejson
sudo easy_install httplib2
sudo easy_install couchdb

Adicionar esta notícia no Linkk

Brincando com a API do twitter

26/12/2008 18:29 por Elcio

Resolvi experimentar um pouco a Twitter API. É linda, do jeito que toda API deveria ser. É REST, muito fácil de entender e colocar para funcionar, e devolve dados em XML, JSON, RSS e ATOM.

Essa simplicidade permite interagir com a API usando ferramentas simples da linha de comando do Unix, como o wget e a cURL. Para nossos exemplos, vamos usar cURL. Se você usa Ubuntu, antes de começar faça:

sudo apt-get install curl

Para fazer um simples post, por exemplo, você pode digitar, em seu terminal:

curl -u seu_username:sua_senha -d status="Twittando do terminal. Aprendi com o Elcio: http://blog.elcio.com.br/brincando-com-a-api-do-twitter/" http://twitter.com/statuses/update.json

É isso mesmo, meninos e meninas, é só um post com autenticação, mais nada. RESTful, simples e elegante, deixar qualquer SOAP no chinelo. Inspirador para qualquer um que precise projetar uma API. Isso retorna dados em JSON. Se você quiser os mesmos dados em XML, ATOM ou RSS, basta mudar a extensão na url.

Agora vamos automatizar isso. Eu criei um arquivo /usr/local/bin/twitter com o seguinte conteúdo:

source $HOME/.twitter
curl -u $user:$password -d status="$@" http://twitter.com/statuses/update.json

Naturalmente, criei o arquivo como root e dei permissão de execução para todos os usuários. Agora, no diretório de cada usuário, basta criar um arquivo .twitter com o seguinte conteúdo:

user=seu_username
password=sua_senha

Pronto, tendo feito isso, qualquer usuário que tenha o arquivo .twitter em seu home pode twittar do terminal com:

twitter "Twittando do terminal, aprendi com o Elcio: http://blog.elcio.com.br/brincando-com-a-api-do-twitter/"

Simples e indolor, agora você pode automatizar suas twittadas com shell script. Pode, por exemplo, twittar toda vez que seu servidor baleiar, ou agendar twits com cron.

Search API

A Search API também é espetacularmente simples, dê uma olhada. Fiz a UPBox usando a Twitter Search API, por exemplo, com 22 linhas de código.

Adicionar esta notícia no Linkk

A alegria do nerd

10/12/2008 8:51 por Elcio

Cheguei mais cedo que o resto da galera ao escritório hoje. O que significa que ainda não tinha ninguém fazendo downloads, acessando o servidor de desenvolvimento, lendo e-mails e etc. Bom, o Mike estava aqui já, mas estava escrevendo CSS, então não conta.

Li a notícia a respeito do Google nativeclient e resolvi baixar para testar. E olha só:

Donwload rápido na Visie

Só queria compartilhar. É muito fácil fazer um nerd feliz, só precisa de wifi rápido e uma tomada de três pinos.

Adicionar esta notícia no Linkk

Eu vou ao 1º Encontro de TI da Arteccom

25/11/2008 16:54 por Elcio

A Editora Arteccom está organizando o I ETI. Eu vou estar lá, e recomendo, parece que vai ser muito interessante. Recebi deles o seguinte release:

É tempo de interatividade e o 1º Encontro de TI faz tudo o que o público deseja!
A editora Arteccom promove novo evento que promete agitar o mercado dos desenvolvedores web.

Sabe aquele evento que você sempre sonhou? Com as palestras que você sempre quis assistir? Virou realidade! A Arteccom fez uma pesquisa com desenvolvedores web para que fossem sugeridos temas e palestrantes para o evento. 512 profissionais da área de TI responderam a pesquisa e, mais tarde, com expressiva participação do público no site www.encontrodeti.com.br, foi desenhado o 1º Encontro de Tecnologia da Informação.

Os temas mais votados e escolhidos para as palestras foram “Linguagens – quais são as mais requisitadas pelas grandes empresas e o valor das formações/certificações”, “CMS livres: Drupal x Joomla! x WordPress”, “Ferramenta Google Analytics: como analisar acessos e gerar melhores resultados” e “Padrões W3C – Como tornar seu site mais leve e mais acessível”. E ocorrerão ainda, simultaneamente, algumas oficinas que vão discutir os assuntos mais atuais da área, como Ruby On Rails, SEO, Interoperabilidade e Scrum.

Mas a interação não pára por aí. Depois de escolhidos os temas, os mediadores das palestrantes e oficinas propõem um debate no site do ETI para decidir qual especialidade dentro do assunto principal será abordada para as palestras (http://www.encontrodeti.com.br/site/?p=558). Ou seja, todas as decisões são feitas através de pesquisas com o público.

Vai ter até café da manhã, espaço imprensa digital, e, para completar, eu te faço mais uma perguntinha: Já pensou em um evento com as palestras e oficinas que você sempre sonhou, e no final ainda curtir um Happy Hour? Não está acreditando não é? É isso aí! Você não pode perder! No final deste mês, dia 27/11, quinta-feira, na Amcham Brasil, em São Paulo, e dia 29/11, sábado, no Centro de Convenções SulAmérica, no Rio de Janeiro.

Para ter um gostinho do que vai rolar no evento, confira os quatro chats sobre os temas das palestras, que tiveram ótima repercussão com cerca de 50 participantes em cada sala: http://www.encontrodeti.com.br/site/?page_id=319.

O Encontro de Tecnologia da Informação é uma realização da Arteccom, com os patrocínios de PagSeguro UOL, UOL Host, Tecla e Hostnet.

Veja a programação do evento:

08:30 – Credenciamento
09:00 – Café da manhã (networking e visita aos estandes)
10:00 – Abertura
10:15Palestra: “Linguagens: quais são as mais requisitadas pelas grandes empresas e o valor das formações/certificações”
Palestrante SP e RJ: Guilherme Chapiewski (Globo.com)
11:15Debate CMS livres:
- WordPress: SP: José Murilo (Minc) | RJ: Guilherme Aguiar (Minc)
- Joomla!: Ricardo Accioly (Noix)
- Drupal: Paulino Michelazzo (Fábrica Livre)
13:00 – Intervalo para almoço
14:30Palestra: “Google Analytics: como analisar acessos e gerar melhores resultados”
Palestrante SP: Ruy Carneiro (WA Consulting)
Palestrante RJ: Gustavo Loureiro (Infnet)
15:30 – Intervalo para visita aos estandes
16:00Palestra: “Padrões W3C: torne seu site mais leve e mais acessível”
Palestrante SP: Vagner Diniz (W3C)
Palestrante RJ: Everaldo Bechara (iLearn)
17:00 – Happy hour
18:00 – Encerramento

Oficinas (vagas limitadas):

10:15 às 11:15h (palestra principal: Linguagens e certificações)
Ruby on Rails – SP Fábio Akita (Locaweb)
Ruby on Rails – RJ Sylvestre Mergulhão (Hostnet)

11:15 às 12:15 (palestra principal: CMS livres)
SEO – SP Fábio Ricotta (MestreSEO)
SEO – RJ Paulo Teixeira (Marketing de Busca)

14:30 às 15:30 (palestra principal: Google Analytics)
Interoperabilidade – SP Fábio Hara (Microsoft)
Interoperabilidade – RJ Gilson Banin (Microsoft)

16:00 às 17:00 (palestra principal: Padrões W3C)
Scrum – SP Guilherme Chapiewski (Globo.com)
Scrum – RJ Guilherme Chapiewski (Globo.com)

Locais:

São Paulo
Data: 27 de novembro de 2008
Local: Amcham Brasil
Rua da Paz, 1.431 – Chácara Santo Antônio – São Paulo – SP
Telefone: (11) 5180-3728

Rio de Janeiro
Data: 29 de novembro de 2008
Local: Centro de Convenções SulAmérica
Av. Paulo de Frontin, 1 – Cidade Nova – RJ
Telefone: (21) 3293-6700

Inscrições: www.encontrodeti.com.br
Mais informações: (21) 2253.0596

Texto de Flávia Freire
Flavia.freire@arteccom.com.br

Recomendo. Vejo você lá.

Adicionar esta notícia no Linkk

Fuja da complexidade

02/11/2008 23:47 por Elcio

Abri o OpenOffice Writer, mandei gravar uma macro, escrevi "teste", selecionei e pintei de vermelho. Olha o código gerado:

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Text"
args1(0).Value = "teste"
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "FontColor"
args3(0).Value = 16711680
dispatcher.executeDispatch(document, ".uno:FontColor", "", 0, args3())
end sub

Há muito código complexo por aí. Nesse caso, para invocar os métodos dos objetos do OpenOffice, é preciso usar um objeto dispatcher, chamando executeDispatcher, e passando o objeto, o nome do método e um array de argumentos. Que espécie de sadismo leva alguém a projetar uma solução como essa? Vale lembrar o que diz o Zen do Python:

Se uma implementação é difícil de explicar, é uma idéia ruim.

Outro exemplo interessantíssimo é o protocolo SOAP. Se você precisar construir um serviço SOAP do zero, dê uma investigada na documentação que você vai ter que ler. Compare com a documentação do protocolo XML-RPC, para ter uma idéia.

Meninos, o tio vai ensinar um segredo a vocês, a complexidade se reproduz assexuadamente. Há muito código complexo demais por aí. Se você encontrar indícios de complexidade hoje, corte antes que ela se reproduza, porque ela tende a fugir do controle. Cada vez que você deixa uma implementação complexa num componente de um sistema, você está complicando um pouquinho todos os pontos do sistema que usam aquele. Os resultados ruins são exponenciais. Por mais talentoso que você seja, se deixar a complexidade se enraizar e crescer, vai chegar um momento em que a lógica vai "jogar a toalha" e você vai começar a programar na base da tentativa e erro.

Lembre-se, então, partes simples, conectadas por interfaces simples. Complicado é errado, feio e mau, faz você entregar atrasado e com bugs. E, se precisar de inspiração, abra o Python e digite:

import this

Adicionar esta notícia no Linkk

Flash 10 no Linux

17/10/2008 12:07 por Elcio

Ao contrário do Luis Eduardo Fernando, tenho sido nos últimos anos um feliz usuário de Linux. Funcionava tudo, ou quase. Tenho um LG R405[bb]. Funciona o controle de bateria, de velocidade do cooler, brilho da tela, tenho volumes independentes para o microfone e caixa de som embutidos, e microfone e caixa de som externos. Funciona rede com e sem fio, o modo de hibernação, mouse externo, pen-drive, o modem da Claro[bb], impressora, e tudo mais que precisei.

O Ubuntu é tão simples de configurar e usar na interface gráfica, sem precisar abrir o terminal, que o pessoal aqui faz uma piada chamando-o de "Microsoft Ubuntu". Mas faltava uma coisa. A versão 9 do Flash Player que a Macromedia disponibiliza tem alguns problemas no Linux. Os dois principais são a falta do window mode transparent, o que faz com que aqueles sites que tem um "layer" Flash sobre o conteúdo fiquem bem estranhos, às vezes impossíveis de usar, e a falta de suporte a v4l2. A v4l2 (Video 4 Linux 2) é a biblioteca que faz funcionar a maioria das webcams. Ou seja, minha webcam funcionava em todos os programas, menos no Flash Player. Isso me impedia de, por exemplo, fazer streammings no UStream.

O problema foi resolvido. Você pode baixar a versão 10 do Flash Player direto do site da Adobe. Com ela temos window mode transparent, e minha webcam está funcionando que é uma beleza.

E, para aqueles que têm medo de terminal, a instalação é extremamente simples. Baixe o ".deb" para Ubuntu, salve no Desktop (ou onde você preferir) e dê um duplo clique. Vai aparecer o instalador de pacotes, com as informações do pacote e um único botâo, "Instalar Pacote". Clique nele, coloque sua senha de administração, espere a instalação terminar e reinicie o Firefox.

Adicionar esta notícia no Linkk

Information Overload

13/10/2008 9:57 por Elcio

Reduzi o número de feeds que eu assino de mais de 200 para menos de 40, em seguida cliquei no "marcar tudo como lido". Saí de todas as listas de discussão. Coloquei a TwitterFox e a Gmail Manager para pegar novas mensagens a cada 30 minutos. E fechei o PidGin.

O objetivo é me tornar mais produtivo. Vou passar uma semana assim. Será que vou sobreviver? No final da semana eu conto a vocês como foi.

Adicionar esta notícia no Linkk

Data errada no Javascript? Bug?

11/09/2008 11:49 por Elcio

Um amigo me escreveu agora para mostrar algo muito curioso. Abra sua Firebug, ou qualquer outro lugar onde você roda Javascript, e teste:

new Date(2008,8,11)

Você deve ter como retorno um objeto de data, que se impresso mostra:

Thu Sep 11 2008 00:00:00 GMT-0300 (BRT)

Porque setembro e não agosto, você pode se perguntar. É porque em Javascript, assim com na maioria das linguagens de programação, arrays começam com zero, então faz sentido que contadores também comecem com zero. Assim, janeiro é o mês zero, e se você precisar construir um array com os nomes dos meses, janeiro será o primeiro do array. Faz todo o sentido.

Agora, o que não faz sentido. Tente:

new Date(2008,9,12)

Aqui no meu sistema eu obtive:

Sat Oct 11 2008 23:00:00 GMT-0300 (BRT)

Ou seja, uma hora mais cedo. O que será isso? Correção para o horário de verão? Se é, em que regra se baseia? Os horários de verão no Brasil mudam todo ano, e dependem de em que estado você está.

Alguém tem alguma dica?

Adicionar esta notícia no Linkk

Resolvendo equações do segundo grau com Python

14/08/2008 15:30 por Elcio

Meu amigo Vicente Marçal me escreveu:

Bem, sei que és professor de Python, além de amante da linguagem e, por isso, acabei fazendo pesquisas sobre ela e estou estudando por conta, mais por hobby do que por qualquer outra coisa. Então, num tempinho livre que vc tiver, avalie esse meu pequeno script o qual disponibilizei na comunidade Viva o Linux:
http://www.vivaolinux.com.br/script/Raizes-de-Funcao-Quadratica, ele é bem simples, mas gostaria muito de sua opinião a respeito.

Eu respondi, e pedi a ele autorização para publicar minha resposta aqui. Como ele autorizou, lá vai. Vamos começar pelo arquivo, baskara.py:

# -*- encoding: utf-8 -*-
'''
Funções matemáticas para equações do segundo grau.
'''
from math import sqrt
 
def baskara(a,b,c):
  '''
  Função que fornece as raízes de uma equação do segundo grau.
  No caso de não haver raízes, retorna uma tupla vazia.
  Exemplos:
  >>> baskara(1,5,4)
  (-1.0, -4.0)
  >>> baskara(1,4,4)
  (-2.0,)
  >>> baskara(4,4,4)
  ()
  >>> baskara(0,4,2) # se a é zero, temos uma equação do primeiro grau
  (-0.5,)
  '''
  a,b,c=float(a),float(b),float(c)
  if(a==0):return (-c/b,)
  delta=b**2-4*a*c
  if delta<0:return ()
  if delta==0:return (-b/(2*a),)
  return ((-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a))
 
if __name__=="__main__":
  # Se rodou o arquivo diretamente, sem importar, roda os testes.
  import doctest
  doctest.testmod()

 

E meus comentários:

Cara, para que tanto underline? O underline no python indica que algo é especial. Underlines no começo indicam algo privado, em que você não deve mexer. No começo e no fim, indicam um nome especial, criado pela linguagem. No caso de sua função, não há necessidade de underline em nada, nem no nome da função, nem nos parâmetros.

Segue anexa minha implementação. Os pontos a notar:

1. Docstring. Aquele formato de comentários que eu estou usando serve para que o Python entenda que eles são documentação. Coloque meu arquivo em algum lugar em sua máquina, rode o Python e execute:


import baskara
help(baskara)

Você vai entender.

2. Doctest. Se você reparar, na docstring da função há um trecho de exemplo que parece uma sessão do shell interativo. Está lá assim de propósito. Esperimente quebrar a função. Por exemplo, modifique a linha que calcula o delta, trocando o número 2 por 3. Em seguida execute:

python baskara.py

Ele vai rodar os testes automáticos. Você deve ver três erros.

E é isso aí, boa sorte com o Python, é uma linguagem que vale a pena estudar.

Adicionar esta notícia no Linkk

Integrando o Vim com ferramentas externas

08/07/2008 14:12 por Elcio

Depois que comecei a usar o Vim nas palestras em que eu escrevo código, muita gente começou a me escrever com dúvidas sobre o editorzinho. Apesar de eu dizer nas palestras que Vim é complicado, parece que o pessoal não tem medo. E a dúvida mais freqüente é sobre a integração entre o Vim e ferramentas externas, principalmente o txt2tags.

Faz parte da filosofia Unix que um programa seja facilmente integrado a outros através de interfaces de texto, e o Vim implementa isso muito bem. Para começar, abra o Vim e execute:

:!ls

Você vai ver que o Vim vai executar o comando ls. Então guarde isso, o sinal de exclamação (!) executa comandos externos. Há duas maneiras de fazer o Vim falar com esses comandos. A primeira é mandar o Vim ler a entrada do comando. Digite:

:r!ls

Você vai notar que o Vim vai executar o comando ls e colocar o conteúdo no buffer de edição. A outra maneira de fazer o Vim falar com os programas externos é selecionar texto. Aperte i para ir para o modo de edição e digite:

zebra
tesoura
banana
macaco
felicidade
abacate

Ao terminar de digitar, pressione ESC para voltar ao modo de comando, em seguida SHIFT+V para ir para o modo de seleção de linha e selecione todo o bloco. Com o bloco selecionado, digite:

:!sort

O vim vai colocar, antes do comando, os sinais de seleção '<,'>. Não se preocupe, apenas digite o comando e aperte ENTER. Você vai ver que o Vim vai executar o comando sort do sistema operacional, passando como entrada o texto selecionado, e vai substituir esse texto pela saída do comando. Isso, ao final, vai te dar a lista ordenada, assim:

abacate
banana
felicidade
macaco
tesoura
zebra

Usando essa interface simples você pode fazer o Vim falar com qualquer programa Unix.

txt2tags

O programa que eu tenho usado durante as palestras e mais tem deixado as pessoas curiosas é o txt2tags, desenvolvido pelo Aurélio Marinho. O programa está nos repositórios do Debian, então se você usa Debian ou Ubuntu, pode instalá-lo com o comando:

sudo apt-get install txt2tags

O txt2tags lê as primeiras linhas de texto que recebe como títulos do documento. Além disso, precisaremos de várias opções de linha de comando, o que não é conveniente de se digitar. Então vamos criar um shell script para guardar essas opções e fornecer ao txt2tags linhas de cabeçalho de mentirinha. Eu criei um arquivo chamado tags dentro do diretório /usr/local/bin, com permissão de execução (chmod +x) e o seguinte conteúdo:

#!/bin/bash
(echo "
 
 
 
 
 
" && cat ) | txt2tags -t xhtml --infile=- --no-headers

Em seguida, basta abrir o Vim e digitar, por exemplo:

= Aprenda Online =
A [Visie http://visie.com.br/] oferece cursos de Ajax, Javascript e Tableless.

Em seguida selecione essas duas linhas e execute:

:!tags

Pronto, HTML instantâneo.

Adicionar esta notícia no Linkk

Coquetel de lançamento do livro: Internet - O Encontro de Dois Mundos

01/06/2008 21:42 por Elcio

Internet o encontro de dois mundos Nesta quarta-feira, 4 de junho, às 19h na FNAC da Paulista, haverá o coquetel de lançamento do livro Internet - O Encontro de Dois Mundos, que conta com uma crônica deste seu humilde blogueiro.

O coquetel é gratuito, e contará ainda com uma palestra de Gil Giardelli. Vai por mim, só a palestra já valeria sua ida até lá.

O livro também é algo muito especial. Nada de XHTML, Rails, PHP, Flash e coisas do gênero, é um livro para te fazer pensar.

Adicionar esta notícia no Linkk

Palestra: construa seu validador de formulários

26/05/2008 14:19 por Elcio

Algumas pessoas têm me escrito perguntando como extender o validador de formulários universal que publiquei há algum tempo. O manual do programador é um excelente recurso para isso.

Mas você que é de São Paulo, tem a oportunidade de ver tudo funcionando ao vivo. Nessa quinta-feira, na palestra "Formulários Definitivos", vou construir um validador igualzinho a esse do zero, explicando cada conceito e o porquê de cada decisão no projeto.

Isso, entre outras coisas. Você também pode conferir o programa da palestra, e até quem sabe ganhar um ingresso grátis.

Adicionar esta notícia no Linkk

Aconteceu comigo: eu faço parte da revolução

25/05/2008 19:19 por Elcio

Na última quinta-feira preparamos uma edição especial do Workshop de Produtividade apenas para convidados. Acontece que, por "motivo de força maior", um bom grupo de convidados não pode vir. Tínhamos então o dilema de fazer o evento com poucas pessoas.

Naquela manhã o Diego ficou sabendo, no twitter, que o Marco Gomes estava transmitindo o pessoal da boo-box jogando Wii. Logo ele teve a idéia de transmitir o evento.

O resultado me surpreendeu. Embora fosse de graça, era um evento em horário comercial, não teve nenhuma divulgação e foi anunciado na hora do evento. Achei que ninguém ia conseguir se agendar para assistir, mas tivemos uma média de 30 participantes, com alguns períodos com mais de 50. Os vídeos estão disponíveis para quem quiser conferir.

A cada dia mais me convenço de que isso tudo é uma revolução. Não estamos apenas fazendo melhor as mesmas coisas de antes, estamos fazendo coisas que antes não eram possíveis. Ouse, se arrisque, não tenha medo. Você corre o risco de as coisas darem certo.

Adicionar esta notícia no Linkk

Ajude o pequeno geek

03/05/2008 21:53 por Elcio

Meu sobrinho Josué, de oito anos de idade, é um pequeno nerd da tecnologia. Vive conectado, ou ajuntando pedaços de PCs velhos tentando inventar a máquina que vai revolucionar o mundo. Tem um caderno de desenhos cheio de projetos de robôs, notebooks futuristas e outros gadgets.

Recentemente ele descobriu o blogging. Abriu um blog no blogspot, o tecnologia-plugado, onde está fazendo clipping de notícias que ele acha interessante. Se você tiver um tempinho e quiser fazer feliz o pequeno nerd, faça uma visita ao blog e deixe um comentário. Valeu!

Adicionar esta notícia no Linkk

Não entre em pânico

31/03/2008 14:03 por Elcio

Você está usando um terminal conectado a um servidor Unix quando as coisas começam a se comportar de maneira estranha. Depois de algum tempo você descobre o problema. Vai até a mesa de um programador novato e descobre que ele, como root, digitou:

# cd
# rm -rf *

O sujeito percebeu a burrada antes de apagar os diretórios /usr e /users. Nesse caso, /users continha os diretórios home. Mas todo o resto do sistema se foi, incluindo /dev, /etc e /bin.

O que você faria? Para complicar as coisas, esta história aconteceu há um bocado de tempo, numa VAX. Ou seja, não era só fazer um boot com um live-CD, fazer um backup dos dados dos usuários e reinstalar o sistema.

O que fazer? Não entrar em pânico. Uma história e tanto.

Adicionar esta notícia no Linkk

Dicas de shell: Greg's Wiki Bash Pitfalls

26/03/2008 10:12 por Elcio

No Greg's Wiki você encontra os Bash Pitfalls, uma lista de problemas comuns entre os programadores bash iniciantes.

Encontrei vários dos meus erros comuns lá. E aprendi um bocado.

Adicionar esta notícia no Linkk

FriendFeed é diferente do Wasabi

21/03/2008 13:57 por Elcio

O Tiago Dória gostou da idéia de se criar um feed pessoal. Em seguida o Cris Dias discordou dele. Os argumentos do Cris são interessantes, ele coloca que a idéia já existia com o Wasabi, que teve o seu momento mas hoje não tem nenhuma relevância.

Eu, porém, vejo uma diferença fundamental entre o Wasabi e serviços como o FriendFeed. Quando me cadastrei no Wasabi, o fiz todo empolgado. Mas eu perdi o interesse logo que percebi que não poderia acompanhar as novidades do Wasabi no Google Reader. Nesse aspecto, o FriendFeed é justamente o que eu queria.

Por outro lado, é claro que eu não vou assinar o feed pessoal de todo mundo cujo blog eu leio. Não me interessam em nada as fotos de fim-de-semana daquele sujeito cujo blog sobre Linux eu acompanho. Nesse aspecto, concordo com o Fabricio Zuardi. Por outro lado, acharia muito interessante o feed pessoal de amigos mais próximos, colegas de escritório, familiares e pessoas que admiro muito. E quando um amigo criar uma conta no Flickr, eu não vou ter trabalho nenhum para ver as fotos.

Bom, para quem quiser, tenho meu feed pessoal no FriendFeed. Cuidado, você vai receber tudo o que eu publico, sobre todos os assuntos!

Adicionar esta notícia no Linkk

Quem você quer ver no 10º ELPI

19/03/2008 14:58 por Elcio

Ano passado tive o privilégio de palestrar nos Encontros Locaweb de Profissionais de Internet. Foi muito divertido. Este ano, olha que interessante, a Locaweb está perguntando quem você quer ver e sobre que temas quer ouvir. Dê sua opinião.

Adicionar esta notícia no Linkk