Categorias
PostGreSQL

Substituir conteúdo win1252 para utf-8

Não devo ser o primeiro a precisar exportar dados de um banco PostGreSQL instalado em Windows com codificação win1252 para um banco com codificação em utf-8 (no meu caso, em servidor Linux).

Não basta transformar o arquivo de importação para utf-8, pois os caracteres do win1252 (aspas duplas à esquerda, aspas duplas à direita, aspa simples e travessão) estarão lá, com um valor esquisito no seu banco. A minha solução foi importar assim mesmo e depois realizar um update usando uma função para corrigir.

Os exemplos de código a seguir são para: 1 - transformar para caracteres HTML; 2 - transformar para os caracteres simples.

HTML:

Simples:

Não se preocupe com os quadrados que aparecem. Se você copiar para um bom editor de texto, verá que possuem valores diferentes.

Categorias
Linux

Matando os zumbis

Se você passa algum tempo olhando para a sua lista de processos, cedo ou tarde vai se deparar com um processo chamado 'defunto' (defunct). Antes de explicar o que é um processo defunto e como removê-lo, segue um resumo de como consultar a tabela de processos usando o comando ps.

Digitar ps ux listará todos os processos atribuídos ao usuário atual e é possível especificar outro nome de usuário com ps U username. Um dos usos mais comuns para ps é de listagem de todos os processos que estão sendo executados no sistema através de ps aux. Quebrando o comando por partes, o a lista todos os processos ao invés de somente os de um único usuário, o u é o nível de detalhes retornados por cada processo e x lista os processos executados pelo daemon não executados por um terminal.

Um processo defunto é um processo iniciado por outro processo (o pai), mas que foi finalizado antes que o processo pai tenha sido completado. Isso pode acontecer se o processo pai ficou pendurado ou quebrado.

Os processos defuntos são também conhecidos por zumbis e listados com status 'Z' na saída do ps. Eles não são tão destrutivos quanto os mortos-vivos, já que eles não consomem quase recurso do sistema, mas em um sistema que está sempre ativo, como um servidor, eles podem se tornar distrativos. O segredo para matar um processo defunto é primeiro matar o pai, que estará listado na saída do ps adicionado de -l para grandes retornos. Os processos pais podem ser identificados através da coluna PPID ao invés da coluna PID, a coluna com o ID do processo. Esses são identificadores anexados a cada processo executado no seu sistema. Eles podem ser mortos usando outro comando no shell, kill -9, seguido do PPID. Obviamente, isto irá parar a tarefa pai, então se certifique primeiro de que a tarefa não é essencial. Uma vez que a tarefa pai tenha sido morto, o processo init do sistema deverá enviar o sinal correto aos processos defuntos, que devem terminar automaticamente.

Mais em Truques de linha de comando.

Categorias
Tropeçando

Tropeçando 44

Site oficial: MySQL.com invadido via… SQL injection

Drizzle é a esperança para amantes do MySQL - Zona livre

TI by JeffersonX: Você utiliza virtualização no seu desktop?

Razões para nem começar a usar o Scientific Linux « Artigos do Timm.

Linux: Compartilhar internet Claro 3G no Ubuntu 10.10 [Dica]

Categorias
Linux

Melhor que navegador

Se você precisa freqüentemente recuperar páginas da internet e achá-lo com um navegador é como usar uma marreta para quebrar um ovo, então o wget é para você. A página de informação descreve soberbamente a utilidade para download não-interativo de arquivos da internet; mas o que eles querem dizer é que às vezes ele funciona melhor do que um navegador. Você pode usar o wget num código para fazer download de páginas ou arquivos e ele é perfeito para sincronizar aquivos locais da web. Você não precisa nem utilizá-lo a partir de um script - ele funciona muito bem quando executado diretamente do terminal (http://wget.sunsite.dk).

O mais simples uso do wget é para baixar um arquivo pela URL:

wget http://localhost/somefile.tar.gz

Isto deve mostrar uma barra de download em formato texto. Infelizmente, se o site usar o protocolo HTTP, wget não suportará coringas, então, você não pode usar *.gz para fazer download múltiplo de arquivos (mas pode usar se o site é acessado por FTP). wget é bastante usado para espelhar um site inteiro. Por exemplo:

wget --mirror -p --html-extension --convert-links http://localhost

Wget atravessa todo o site e baixa o conteúdo no diretório atual. O argumento mirror habilita opções adequadas para espelhar um site - em particular, recursão por atravessar a árvore completo do site. htmlextension é usada para sites que usam também scripts CGI para gerar HTML, ou arquivos ASP que precisam ser renomeados depois de baixados. Se wget reconhecer o conteúdo, ele apenas acrescenta a extensão HTML.

Terminada a transferência, wget varre todos os arquivos locais para trocar qualquer referência remota para que o site possa ser visto desconectado.

Mais em Truques de linha de comando

Categorias
Cotidiano

Receita para vários gostos

Hoje, após o almoço, já estava comentando a chegada do período de declaração do imposto de renda e lendo os feeds vejo que a Receita nos traz uma maravilhosa novidade - bela demonstração de respeito.

Opções de instalação do programa de IR 2011[/caption]

A lista dos instaladores contempla Windows, binário para o Linux, rpm para distribuições Linux que usam o pacote da Red Hat, deb para distribuições baseadas em Debian, Mac e os multiplataformas jar.

Não só o crescimento do Ubuntu influencia a necessidade de se olhar para o público que o utiliza, como vemos que discussões e alternativas ganham cada vez mais adeptos.

Todas as alternativas ganham com isso. Se desenvolvem, melhoram e proporcionam aos seus usuários uma experiência cada vez melhor.

Excelente, Receita!

O visual do saite está melhorando muito. E, para complementar o esforço em direção às tecnologias atuais e o movimento social, temos uma enquete que vale a pena responder.

Enquente - Ajudou?
Enquente - Ajudou?
Categorias
Linux

Evitando múltiplos terminais – Trabalhando com telas

Terminais virtuais são como crianças: ter um, dois ou até três trazem alegria à sua vida, mas mais do que isso põem tensão nos seus recursos. Quando trabalhando remotamente, algumas pessoas se vêem sem a possibilidade de abrir múltiplos terminais, então simplesmente abrem várias conexões SSH na mesma máquina. Isto não é apenas um desperdício de tráfego, mas também um sinal de que você é um iniciante - o que você não é, certo? Veteranos sabem que há uma maneira muito melhor para abrir múltiplos terminais e isso vem na forma do programa de telas GNU. Para começar, abra um terminal, digite screen e tecle Enter. Seus terminal será substituído por um console vazio e você pode pensar que nada aconteceu, mas na verdade aconteceu - como você verá.

Digite qualquer comando que quiser, ex: uptime, e tecle Enter. Agora pressione Ctrl+a depois c e você poderá ver outro terminal em branco. Não se preocupe, seu antigo terminal ainda está lá e ainda ativo; este é um novo. Digite outro comando, ex: ls.

Agora pressione Ctrl+a depois 0 (zero) - você verá seu terminal original novamente. Como você pode ver, Ctrl+a é a combinação que sinaliza que um comando está para vir - Ctrl+a depois c cria um novo terminal e Ctrl+c depois um número o leva ao respectivo terminal. Você pode usar Ctrl+a depois Ctrl+a para trocar para a janela selecionada anteriormente, Ctrl+a depois Ctrl+n para trocar para a próxima janela ou Ctrl+a depois Ctrl+p para trocar para a janela anterior. Para fechar janelas apenas digite exit.

Quando sua última janela fechar você também sairá do screen e será impresso na tela 'screen is terminating' para lhe lembrar. Como alternativa - e isto é o melhor coisa sobre tela - você pode pressionar Ctrl+a depois d para desanexar sua sessão de tela. Depois, de outro computador mais tarde, utilizar screen -r para recuperar de onde deixou com todos os programas e saídas intactos - mágico!

Mais em Truques de linha de comando

Categorias
Linux

SSH pelo proxy

Túneis criptografados são uma maneira útil para estabelecer uma conexão segura entre seu computador local e uma máquina remota ou servidor. Se você usar VNC, a máquina cliente remota, provavelmente você está usando um túnel; uma técnica sensível pe utilizar SSH, que é mais comumente empregada para logins remotos.

Um dos melhores usos de túneis SSH é o acesso ao Webmin, a ferramenta de configuração remota que é executada num servidor web. Você pode mudar quase tudo em seus sistema usando o Webmin, então não é inteligente deixá-lo aberto à internet. Mas se você desabilitá-la, você perde a possibilidade de configurar sua máquina. Você pode dar um jeito nisso através de túneis SSH pela porta que o Webmin usa para sua máquina local, como abaixo:

ssh -L 8090:localhost:10000 remotehost

Apenas aponte o servidor web em https://localhost:8090 para conectar ao servidor Webmin remoto. Você pode também encaminhar um serviço proxy usando SSH. Se você estivesse em uma localização onde não é possível acessar o Google ou o eBay, por exemplo, você pode criar um túnel para o servidor proxy e navegar de lá. Muitas distribuições incluem um servidor proxy, como o Squid. É preciso que seja instalado e ativo na máquina remota primeiro. Squid utiliza a porta 3128, então o comando para o túnel com o Squid seria algo como:

ssh -L 8090:localhost:3128 remotehost

Então é apenas uma questão de configurar seu navegador para usar localhost:8090 como o servidor proxy, e todas as subsequentes requisições serão passadas através do túnel SSH. Usar um servidor proxy desta maneira possibilita que você conecte a outras máquinas no proxy da rede local, como 192.168.1.1 o que também inclui serviços como configuração de servidores roteadores.

Mais em Truques de linha de comando

Categorias
Tropeçando

Tropeçando 41

Computador, a Máquina de Fazer Burro « Meio Bit

Greatest hits de dicas do Dropbox - Como se faz - INFO Online

[Dicas-L] Salvando a pele do Programador php - SQL injection

16 perguntas sobre Sistemas Operacionais - Geek List

Descubra o Ubuntu – novo comercial – Ubuntu Dicas

Salvar site como PDF no iPhone, iPod e iPad | Blog do Aurélio

Índices hipotéticos no PostgreSQL | Comunidade Brasileira de PostgreSQL

Criando Relatórios com PHP - Novatec Editora

Dicas-L: Broffice.org - Broffice - Edição de duas ou mais seções de um documento

Por desconhecimento, muitas pessoas deixam de usar um recurso importante e muito útil da suíte de escritórios Broffice.ORG: a edição de um documento, planilha, apresentação, etc. utilizando duas janelas.

Categorias
Linux

Nice, nice, baby

Muitos usuários Linux conhecem o comando nice, mas poucos realmente sabem como usá-lo. Nice é um dos comandos que soa bem mas que você nunca lembra uma razão para usá-lo. Apesar disso, ele pode ser incrivelmente útil. Nice pode alterar a prioridade de execução de um processo, dando-o um maior ou menor percentual do processador. Normalmente ele é manuseado pelo agendador de tarefas do Linux. O agendador garantirá que processos com uma maior prioridade (como aqueles que envolvem entradas do usuário) terão seu compartilhamento dos recursos. Isto assegura que mesmo quando seu sistema está usando 100% da CPU você continua apto a movimentar as janelas e clicar com o mouse.

No entando, o agendador nem sempre trabalha sem problemas; certas tarefas podem sobrecarregar seu computador. Este pode ser um desobediente comando find que foi disparado por um script de limpeza da distribuição; ou a codificação de um grupo de arquivos de vídeo que levam seu computador a uma parada.

Comumente você caçaria estes processos com um comando top antes de matá-los. Nice apresenta uma alterativa mais sutil e útil. Ele reduz a prioridade das tarefas afetadas de maneira que o seu sistema continue funcional enquanto continua a executar os processos afetados. Executar um comando com uma prioridade diferente é tão simples quanto:

nice --10 updatedb

Este comando executa o updatedb com prioridade reduzia a -10. Se você executar um top, verá o valor nice abaixo da column identificada como 'NI'.

Caso queira reduzir a prioridade de um programa em execução, utilize o comando renice com o ID do processo:

renice -10 -p 1708217082: old priority 0, new priority -10

Este comando também reduz a prioridade do processo em 10 e, dependendo do valor nice dos outros processos, diminuirá o total de tempo de CPU que será compartilhado com outras tarefas.

Categorias
Tropeçando

Tropeçando 39

App do Dia: Wolfram Alpha « Meio Bit

Estatísticas 2010 – Ubuntu Dicas