Pages

Tuesday, November 23, 2010

Descompactando arquivos no terminal do GNU/Linux

Não sei que foi a primeira pessoa a escrever a função extract transcrita abaixo do Wiki do Arch Linux (no momento, no final da página), mas que na verdade eu recebi de um amigo que a usa o tempo todo.
extract () {
   if [ -f $1 ] ; then
       case $1 in
           *.tar.bz2)   tar xvjf $1    ;;
           *.tar.gz)    tar xvzf $1    ;;
           *.bz2)       bunzip2 $1     ;;
           *.rar)       rar x $1       ;;
           *.gz)        gunzip $1      ;;
           *.tar)       tar xvf $1     ;;
           *.tbz2)      tar xvjf $1    ;;
           *.tgz)       tar xvzf $1    ;;
           *.zip)       unzip $1       ;;
           *.Z)         uncompress $1  ;;
           *.7z)        7z x $1        ;;
           *)           echo "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
 }

A verdade é que achei essa função um pouco inconveniente. O arquivo não pode ter espaço no nome, trata apenas um arquivo por cada chamada de função e a estrutura não identifica o arquivo caso ele tenha nome com letras maiúsculas (tipo, arquivo *.ZIP).

Assim, fiz algumas modificações e esta está abaixo:
extract() { 
         for i in "$@";  do 
           if [ -f "$i" ]; then
          case "$i" in
              *.[tT][aA][rR].[bB][zZ]|*.[tT][bB][zZ])   tar xjvf "$i" ;; 
              *.[tT][aA][rR].[bB][zZ]2|*.[tT][bB][zZ]2) tar xjvf "$i" ;; 
              *.[tT][aA][rR].[gG][zZ]|*.[tT][gG][zZ])   tar xzvf "$i" ;;
              *.[gG][tT][gG][zZ])                       tar xzvf "$i" ;;
              *.[bB][zZ]2)                              bunzip2 "$i" ;;
              *.[rR][aA][rR])                           rar x -o+ "$i" ;;
              *.[gG][zZ])                               gunzip "$i" ;;
              *.[tT][aA][rR])                           tar xvf "$i" ;;
              *.[zZ][iI][pP])                           unzip -o "$i" ;;
              *.Z)                                      uncompress "$i" ;;
              *.7[zZ])                                  7z x "$i" ;;
              *)    echo "don't know how to extract '$i' ..." ;;
          esac
           else 
             echo "$i is not a valid file"
           fi
         done 
   }

Essa função aceita tantos argumentos quando o bash suporte e identifica a maioria dos problemas de maiúsculas e minúsculas. Além de não apresentar problemas ao manipular arquivos com espaços no nome.

Para usá-la, basta adicionar a mesma no arquivo ~/.bashrc...

Quem tiver sugestões para aprimorar essa função, pode deixar um "oi" pelo comentários...

Monday, November 01, 2010

Vêm aí mais um final de ano de compras pela internet: Prepare-se !

O título é absurdo ? Absurdo é esse título não ser absurdo ! O que você espera de suas compras pela internet ? Segurança, conforto e qualidade ? Tenho certeza que sim, mas tudo que você espera da compra pela internet pode ser resumido pela palavra profissionalismo.

Bom, não preciso citar nomes para me fazer entender. O fato é que profissionalismo tem diversas características e para o comércio eletrônico eu destaco:
  1. O produto deve ser entregue com perfeita integridade.
    As leis asseguram a você o direito de devolver o produto em caso contrário, mas se fosse para devolver você nem compraria, não é mesmo ? Sabe aquele livro que veio com a borda ligeiramente amassada ? Ou aquela luva de DVD que dobrada nos cantos ? Eu não reclamo por qualquer coisa, mas há produtos que são para colecionadores ... não há sentido em vender o produto com uma embalagem contendo algum defeito. Até entendo que certos produtos estejam com um pequeno detalhe não agradável, mas deve haver bom senso e entendimento que ver um canto amassado de uma caixa de um eletrodoméstico é diferente de uma caixa/box de uma coleção de DVD estar amassado. O fato é que nem sempre quem vai selecionar o produto para armazenar entende o produto que tem nas mãos e lida com ele de forma inadequada, ou seja, o treinamento e controle de qualidade das lojas não é suficiente. E aí tem um ponto interessante. "Bom" é diferente de suficiente. Suficiente é o que tem que ser, "bom" é o que eles pensam que são. Mas o foco é diferente. O serviço pode ser bom por ter erros estatisticamente aceitáveis, mas isso é suficiente ?
  2. O produto deve ser entregue dentro do prazo.
    Alguém está me ouvindo pedir para entregar dentro de 2 horas ? Não. Entregar rápido é uma coisa boa, mas mais importante do que entregar rápido é entregar dentro do prazo. Se não é possível entregar rápido, e no final de ano sempre há problemas, o profissionalismo diz que a empresa não deve prometer entregar rápido se ela não pode fazer isso. Me faz lembrar uma vez que eu fiz uma compra online em uma loja pequena do Rio. Ela prometeu entregar o produto em um mês. Não era nada fantástico, era um livro que eu poderia achar em qualquer outra loja, mas eles prometeram um mês. Achei desagradável, mas como era barato, tentei assim mesmo. Me entregaram no dia seguinte. Eu liguei para lá para entender (e elogiar, porque não ?) o caso e eles disseram que o prazo máximo de entrega era um mês. Pessoal esperto ? Eu acho, mas a loja foi a falência ! Acho que sinceridade nem sempre funciona com uma boa propaganda como nos filmes ...
  3. Atendimento/Suporte adequado
    Quase 1 ano depois eu "ainda estou" esperando a resposta de uma reclamação em uma certa empresa. O fato é que a mercadoria chegou, mas não tive resposta da reclamação até hoje...
Será que é pedir muito ? Definitivamente não. Mas vivemos um mercado formado por empresas que não entendem bem a internet, embora diga o contrário nas reportagens e pode anotar aí: vai ter uma reportagem mostrando como são embalados e entregues os produtos pela internet pela quarta vez.

Note que mesmo com tudo isso as compras pela internet apenas aumenta, o que mostra que o consumidor aceita seus problemas (ou melhor, "atura" seus problemas).

Bom, a menos que faça-se um boicote a "promoções imperdíveis" ou que exista uma concorrência mais esperta para deixar os demais espertos, as coisas não vão ser nada diferentes esse ano. Então, considere as dicas para diminuir o estresse:
  1. Sabia que haverá problemas e talvez possa ser contigo.
  2. Sabia como lutar pelos seus direitos e esteja disposto a isso ou não compre pela internet.
  3. Quanto mais perto do Natal, mas problemático será o prazo de entrega e mais barato será a compra. Encontre o meio termo e terá sorte, erre e terá problemas.
  4. Quanto mais perto do Natal, mas cansados estarão os funcionários, mas erros ele tendem a cometer. Isso é humano e não tem nada de errado com isso. Errado é empresa não pensar nisso antes e/ou quando pensar não treinar o pessoal por tempo suficiente porque, afinal eles são temporários e prazo de contratação de temporários é limitado.. Por erros, entende-se:
    • produtos trocados,
    • produto faltando,
    • embalagens com problemas (tanto no armazenamento, quanto no transporte),
    • produto danificado (muitas vezes pelo fato de estar lá a muito tempo e somente agora desencalharem aquela coleção que custava uma fortuna.),
    • sua nota fiscal ir parar na compra de outros (eu já recebi nota fiscal de terceiros, rasguei, claro, mas fiquei muito assustado com isso pois tinha os dados - CPF, inclusive - de uma cliente...),
Erros acontecem e quando o profissionalismo é mais propaganda do que ação, erros acontecem mais do que devia.

Se você fica estressado, com raiva, triste, tenso, etc, quando as coisas dão errado, porque comprar pela internet ? Existem problemas e isso não é novidade e não vai mudar de uma hora para outra. As empresas não se importam como devia com os produtos e o consumidor e isso também não é novidade. O sistema de atendimento possui problemas e isso não é novidade também. Logo, ficar estressado com algo que você sabia que poderia lhe dar stress não é aceitável.

Esteja pronto para os problemas ou não compre pela internet.

E que fique claro que esse texto não é um texto de comodismo e conformismo. É um texto de realismo. Vai ficar reclamando do que  Não compre... ou se comprar, que seja para aproveitar promoções que não existem em lojas físicas, mas sempre pronto para esperar para ter o produto, do contrário, compre em uma loja física e mais cara.

E para dizer a verdade, comprar em uma loja física não garante coisa alguma se não puder sair com o produto da loja na hora da compra.

Por exemplo, se eu vou comprar um DVD que está com o mesmo preço nas duas frentes de negócios, eu vou a loja física e escolho todos um a um, observo até aquele que tem menos marca de dedo dos outros ... entende ? Eu estou escolhendo. Cuido ao máximo de todos os detalhes.

Você pode argumentar que isso vai sair mais caro se pensar no transporte, até certo ponto é verdade (afinal, você "sempre" passa em frente a uma loja), mas também é verdade que dependendo do que você for comprar, vai ser melhor pagar mais caro no transporte ou no produto do que receber o produto com embalagem danificada ou não receber até que toda negociação com a empresa esteja concluída. Para dizer a verdade, já aconteceu comigo de eu receber o dinheiro de volta porque o produto que eu comprei, que estava disponível no momento da compra, não existia em estoque e estava fora de linha !!! Então ... você pode nem receber o produto !