sábado, 15 de março de 2014

Excluir um compartilhamento oculto no Windows

Nota: testei apenas no XP, portanto há uma boa chance que não funcione em versões mais recentes
fonte: http://support.microsoft.com/kb/314984/pt-br

O WinXP tem o péssimo costume de abrir alguns compartilhamentos ocultos na raiz do C: e na própria pasta Windows, segue um tutorial bem simples de como excluir estes compartilhamentos:

   1. No Painel de controle, clique duas vezes em Ferramentas administrativas e em Gerenciamento do computador.
   2. Expanda Pastas compartilhadas e clique em Compartilhamentos.
   3. Na coluna Pasta compartilhada, clique com o botão direito do mouse no compartilhamento que você deseja excluir, clique em Interromper compartilhamento e em OK.

  

quinta-feira, 31 de outubro de 2013

Git: mover branch para um commit

git branch -f

A lista de branchs pode ser obtida por:

git branch

Os commits podem ser listados com:

git-log

Porém, o comando acima não lista todos os commits, apenas os commits da branch corrente. Os commits que não são filhos de nenhuma branch podem ser listados com:

git-reflog --all

O --all lista todos os commits de todas as branchs.

git add interativo

É possível selecionar quais blocos de alteração (conhecidos no git como "hunks") serão colocados no índice para o próximo commit através do comando:

git add -p [nome do arquivo, caso nenhum seja informado, todos os arquivos são verificados]

Acho que é possível informar mais de um nome de arquivo nesta opção, mas não testei (se alguém testar me diga, por favor :-) ).

Este comando abre uma interface bem simples para quem está acostumado com a linha de comando dos SOs da família *nix. Os comandos mais frequentes nesta interface são:

y: inclui o hunk atual no índice
n: não inclui o hunk atual
q: finaliza a interface, mantém os hunks já adicionados
?: ajuda

domingo, 4 de agosto de 2013

Montando um pen drive do Mac OS no Ubuntu com permissões de escrita e tudo o mais!

Quem usa um pen drive em uma Mac OS e Linux já deve ter enfrentado este problema: se formatar como ext* não abre no Mac, se formata em HFS no Mac depois não tem permissão de escrita no Linux. Uma alternativa (poir do que as duas anteriores) é formatar NTFS, aí dá pra ler e gravar nos dois SOs (e no Windows, se é que isso conta como vantagem), mas as flags de permissão simplesmente não existem nesse sistema de arquivos, isso causa problemas com programas como o git, por exemplo (pra ser suscinto).
Como resolver este problema então?
A alternativa mais simples que encontrei foi formatar o pen drive como hfs+ no Mac e depois forçar a permissão de gravação no Linux. Consigo ler e gravar nos dois SOs (não testei, mas é 99% de certeza que no Windows não vai nem montar o pen drive) e mantenho as flags de permissão.
Para montar o pen drive hfsplus no Linux com permissão de gravação basta apenas usar um -o force no mont. A minha linha de comando ficou assim:

mount -t hfsplus -o force /dev/sdc1/ /media/pendrive

Encontrei esse macete aqui:

http://ubuntuforums.org/showthread.php?t=1660958

Lá o cara fala pra instalar os pacotes hfsplus, hfsprogs e hfsutils. Consegui rodar o comando sem isso, pois provavelmente o Debian já vem com esse suporte (os pacotes não estavam instalados quando rodei o comando) e em algumas distros apenas rodar o comando acima não funcione.

sexta-feira, 1 de junho de 2012

Git do zero

  • GIT
    • Repositório distribuído: o git não trabalha com um servidor centralizado de repositório, como o SVN. Sempre que um usuário clona um repositório ele baixa todo o conteúdo (claro!) juntamente com todo o histórico de commits já feitos.
    • Instalação em Ubuntu
      • sudo aptitude install git
    • Instalador do Windows
    • Instalação em Mac
      • sudo brew install git
    • GIT com repositório local
      • Inicialização do repositórioc e criação de novos arquivos
        • git init .
        • git status
        • echo "arquivo readme" > readme # echo: simplesmente manda pra tela o parâmetro que recebeu. No caso, a saída está sendo redirecionada para um arquivo também chamado readme (O > serve para salvar a saída em tela de um comando qualquer em arquivo. Isto é, o que fica depois do > é o arquivo que é usado como saída do comando que está antes do >).
        • git status
        • git add . # o que estiver depois do # o interpretador de comandos ignora (pelo menos no linux, no windows eu acho que substituindo por ;REM funciona)
        • git commit -m "criação do readme"
      • Configuração de ferramentas gráficas
        • git config --global diff.tool # diff
        • git config --global merge.tool # merge
        • # (recomendo o meld como ferramenta de diff/merge)
      • Modificando arquivo e visualizando as diferenças
        • echo "Arquivo readme" > readme
        • git status
        • git diff
        • git difftool # Esta linha e a anterior são duas forma diferentes de se fazer a mesma coisa, só pra constar
        • git add readme
        • git status
        • git commit -m "Melhoria no readme"
      • Excluindo arquivos
        • rm readme # equivalente windows: del readme
        • git status
        • git rm readme
        • git status
        • git commit -m "Exclusão do arquivo readme"
      • Descartando alterações não commitadas
        • echo "arquivo leiame" > leiame
        • git add leiame
        • git commit -m "Criação do leiame"
        • echo "Alteração indesejada\!" >> leiame # Não sei se o >> funciona no win, a idéia é concatenar conteúdo ao final do arquivo
        • git status
        • cat leiame # win: more leiame
        • git checkout leiame
        • # Observação: o Eclipse não enxerga automaticamente mudanças feitas por ferramentas externas, então é preciso ir no Eclipse e dar um F5 no projeto que foi modificado
        • cat leiame
        • git status
      • Adicionando pastas inteiras ao controle de versão
        • mkdir pasta # win: md (eu acho, mas isso só cria uma pasta)
        • echo file1 > pasta/file1 # win: trocar / por \
        • echo file2 > pasta/file2
        • git status # Notar que neste ponto não são mostrados os arquivos da pasta criada
        • git add .
        • git status # Agora o git já olhou dentro da pasta e já sabe quais são os arquivos que ele precisa adicionar
        • git commit -m "Nova pasta"
        • git status
        • Pastas vazias
          • mkdir emptyfolder
          • ls -l # win: dir (sem o -l no windows)
          • git add . # Ignora a pasta pois está vazia
          • git status # Diz que não há nada a commitar, um git commit depois disso não iria funcionar
          • rmdir emptyfolder # win: rd emptyfolder
          • # Isto é: o git não versiona pastas vazias
        • Excluindo pastas inteiras
          • rm -rv pasta # win: del, já falei!
          • ls -l
        • Criando novas branches e navegando entre elas (localmente)
          • git branch # lista as branchs existentes, a que tem o * é a branch ativa
          • git branch branch1 # Cria uma nova branch chamada branch1
          • git checkout branch1 # Muda a branch ativa
          • git branch
          • ls -l # Vamos ver que branch1 foi criada com base no que tinha na master, mas poderia ter sido criada com base em qualquer branch
          • echo "Ideia maluca" > ideia_maluca
          • echo "leiame versão branch1" >> leiame
          • git add .
          • git commit -m "Ideia maluca"
          • ls -l
          • cat leiame
          • cat ideia_maluca
          • git checkout master
          • ls -l
          • cat leiame
          • git branch -D branch1 # Notar que o -D força a exclusão da branch, enquanto o parâmetro -d é menos agressivo, nesse caso o -d não permitiria excluir pois as alterações feitas na branch1 serão perdidas, como é isso o que eu quero, usei o -D
        • Merge entre branches (localmente)
          • git branch branch1
          • git checkout branch1
          • echo "Ideia maluca" > ideia_maluca
          • echo "leiame versão branch1" >> leiame
          • git add .
          • git commit -m "Ideia maluca"
          • #ok, criamos uma branch que está mais atualizada que a master, agora vamos colocar tudo no lugar
          • git checkout master
          • git merge branch1
          • ls -l
          • cat leiame
          • cat ideia_maluca
        • Merge entre branches (locais) com conflito
          • echo "versão branch master" >> leiame
          • git add .
          • git commit -m "Alteração no readme"
          • git checkout branch1
          • echo "versão branch1" >> leiame
          • git add .
          • git commit -m "Alteração no readme"
          • git checkout master
          • # Nesse ponto o leiame tem uma versão na master e outra na branch1
          • git mergetool leiame # *1
          • git status
          • ls -l
          • cat leiame
          • # *1 Uma opção bem útil é fazer o merge com a opção --no-commit. Esta opção apenas faz o merge, mas não commita nada, permitindo resolver o merge manualmente (e mais facilmente). Ainda é possível usar ferramenta gráfica de merge dessa maneira.
        • Merge com conflito de pastas (localmente, passo opcional, é uma situação menos frequente)
        • Visualizando o histórico de commits: git log
          • git log --graph --name-only --all --decorate
          • Mostra o log bem formatado, o git log tem inúmeras opções
        • Voltando o repositório para commits antigos
          • O "git checkout" pode receber os seguintes parâmetros: branchs, tags ou hashs de commit. O hash de commit é aquela sequencia enorme de numeros que aparece no log.
        • Visualizando a árvore de branches e o histórico de commits: gitk
        •  
           
Este pequeno tutorial só cobriu os principais aspectos do git usando o repositório local, nada foi falado sobre os comandos de sincronia remota (pull e push) e seus efeitos, fica pra um próximo post.

terça-feira, 31 de maio de 2011

Post rápido

Como faz tempo que não posto nada, vai um link rapidinho, mas ótimo:

http://oanaconda.blogspot.com/2011/05/como-veja-trataria-abolicao.html

quarta-feira, 20 de abril de 2011

God bless Wine!

Quarta feira, entrego o tcc da pós segunda da semana que vem. Dia perfeito pra licensa de estudante do word terminar, mas eu já sabia: ela ia expirar depois de 25 vezes que eu abrisse o word. Eu só não sabia o que ia acontecer quando a licença vencesse.
Aconteceu que o word não permitia mais fazer qualquer alteração no documento. Nem digitar texto ou selecionar alguma coisa e mudar a formatação, nada.
Oh, e agora, quem poderá nos defender?
Mas tem um pequeno detalhe que eu não contei: eu tava rodando o word (o MS Word) a partir do linux usando um programinha chamado Wine. Wine é uma sigla que quer dizer Wine Is Not an Emulator, é uma sigla recursiva: a primeira letra poderia ser qualquer uma.
Well, voltando ao problema do word: quando eu ví que a licensa havia vencido, simplesmente exclui a pasta de configuração do Wine (que fica em ~/.wine), que é onde fica o hd emulado para os programas do windows.
Pronto! O Word nem suspeitou da mutreta e voltou a funcionar corretamente. Acabei gastando mais pra escrever esse post do que entre apagar a pasta e instalar o word novamente.

Site do wine: http://www.winehq.org/
Usuários de Debian e derivados: aptitude show wine

segunda-feira, 18 de abril de 2011

Ainda mudando o brilho no Ubuntu Lucid....

Outra forma de mudar o brilho no Ubuntu Lucid:

xbacklight

é necessário ter o pacote xbacklight instalado:

sudo aptitude install xbacklight

Funciona mesmo quando o note está somente na bateria e não tem como mudar o brilho do monitor...

sexta-feira, 15 de abril de 2011

/etc/X11/xorg.conf

Section "DRI"
Mode 0666
EndSection

Section "Device"
Identifier "Configured Video Device"
Driver "psb"
EndSection


# Essas configurações fucionam no meu AcerAO 751h com o poulsbo instalado
# Para instalar o poulsbo e/ou resolver outros problemas no AO751h, recomendo muito:
# https://help.ubuntu.com/community/AspireOne/AO751h

Mudar a configuração de brilho no Ubuntu Lucid

Mudando a configuração de brilho no Ubuntu Lucid:

Editar o arquivo /sys/bus/pci/devices/0000:00:02.0/backlight/psblvds/brightness

O conteúdo do arquivo contém somente a porcentagem de brilho que a tela tem no momento. Editar o arquivo na minha máquina deu problema ao gravar (mas mudou a intensidade da tela do note, mesmo fora da tomada).
A saber, minha máquina é uma Acer AO751h