Skip to main content

Melhorando o sinal da sua rede Wireless

Em minha casa o sinal da minha rede wireless não pegava muito bem, devido a várias janelas de vidro que ocasionava a interferência.

Então procurando algumas alternativas baratas, onde não fosse necessário trocar a antena do AP para uma de maior DBI, encontrei esta solução abaixo, testei e realmente funciona, o sinal agora chega perfeito em todos os lugares da casa, mesmo com portas fechadas…

[youtube]http://www.youtube.com/watch?v=OYAYerjLbZE&feature=fvw[/youtube]

uma outra alternativa, similar…

Listar posts agrupados por ano no WordPress

====================================================
Howto:  Como gerar um menu agrupando as postagem por ano e mês
====================================================

A idéia é fazer um menu assim:

2009

  • Maio
  • Abril
  • Março
  • Fevereiro
  • Janeiro

2008

  • Dezembro
  • Novembro

O código é simples:

<ul>

<?php
/**/
$years = $wpdb->get_col("SELECT DISTINCT YEAR(post_date)
FROM $wpdb->posts WHERE post_status = "publish"
AND post_type = "post" ORDER BY post_date DESC");
foreach($years as $year) :
?>

<li><a href="<?php echo get_year_link($year); ?> ">
<?php echo $year; ?></a>

<ul>
<? $months = $wpdb->get_col("SELECT DISTINCT MONTH(post_date) 
FROM $wpdb->posts WHERE post_status = "publish" 
AND post_type = "post" AND YEAR(post_date) = "".$year."" 
ORDER BY post_date DESC");
foreach($months as $month) :
?>

<li><a href="<?php echo get_month_link($year, $month); ?>">
<?php echo date( "F", mktime(0, 0, 0, $month) );?></a></li>
<?php endforeach;?>

</ul>
</li>

<?php endforeach; ?>
</ul>

Resultado de dois bancos distintos em apenas um SQL

=================================================================
Howto: Como realizar a busca em dois bancos distintos e unir o resultado em apenas um SQL?
=================================================================

Primeiro o problema:
Você precisa fazer uma busca em dois bancos de dados e mostrar o resultado em um lugar só, isso porque você tem partes dos dados em um banco e o restante dos dados em outro banco, e por motivo estrutural, burocrático… sabe-se lá porque…. você não pode unir tudo em um único database.

Solução:
Você pode unir dois resultados (inclusive de drivers/bancos que estejam na mesma conexão) em um unico result, mesclando os dados. Para isso deve-se utilizar a estrutura UNION.

Analisemos a seguinte query:

[sql]
SELECT cod, nome, idade FROM pessoas
SELECT codigo, nome_completo, idade FROM pessoas_nao_cadastradas
[/sql]

Primeiro, você deve ter resultados iguais para cada select, para isso use alias para igualar os resultados.

[sql]
SELECT cod, nome, idade FROM pessoas
SELECT codigo AS cod, nome_completo AS nome, idade FROM pessoas_nao_cadastradas
[/sql]

Agora, basta você usar o UNION entre os dois selects:

[sql]
SELECT cod, nome, idade FROM pessoas
UNION
SELECT codigo AS cod, nome_completo AS nome, idade FROM pessoas_nao_cadastradas
[/sql]

Já, agora você tem o resultado de dois bancos de dados mesclados em um só.

E como fazer um LIKE (WHERE)?

Você deve fazer um WHERE ou nos dois SELECTs ou fazer um SELECT que totaliza os dois:

[sql]
SELECT xyz.* FROM (
SELECT cod, nome, idade FROM pessoas
UNION
SELECT codigo AS cod, nome_completo AS nome, idade FROM pessoas_nao_cadastradas

) xyz WHERE nome = ‘Paulo’
[/sql]

Selecionando objetos com Jquery

Com base neste artigo, ficou fácil fazer com que determinada coluna em uma tabela alternasse a cor, de acordo com o valor recebido.

No meu caso, tinha uma coluna com datas(dataPrazo), e queria que essas datas ficassem verde ou vemelho de acordo com a data atual. Simples:

[js]
//Para colorir a dataPrazo pelo conteudo
$(“#tabela”).find(‘.dataPrazo’).each(function(i){

if($(this).html().length > 0){

var dataPrazo = $(this).html();
dataPrazo = dataPrazo.replace(/(d+).(d+).(d+)/, “$3/$2/$1”); //modifica string para yyyy/mm/dd

$(this).css(‘color’, (new Date(dataPrazo) < = new Date()) ? 'red' : 'green'); } }); [/js] Claro que é necessário ter uma tabela e coluna identificada né: [html]

[/html]

A mágica toda esta na função “each” que permite que percorra cada elemento(representado por “this”) retornado pelo seletor $.

Foi útil pra você? Deixe um comentário….

Serviço de configuração zero – WZC – Wireless Windows

Se por algum motivo, seu Windows deixar de mostrar as redes sem fio disponíveis, mesmo você tendo absoluta certeza que esta dentro da área de cobertura, tente desabilitar e reabilitar o Serviço de configuração zero WZC.

Para parar o serviço:
%windir%\system32\net.exe stop wzcsvc

Para iniciar o serviço:
%windir%\system32\net.exe start wzcsvc

Faz assim:

Menu Iniciar – Executar e digite o comando abaixo para parar o serviço:

  • net.exe stop wzcsvc

Menu Iniciar – Executar e digite o comando abaixo para iniciar o serviço:

  • net.exe start wzcsvc

Erro: service XYZ does not support chkconfig

Erro clássico. Você faz um script shell, e ao tentar colocar ele na lista dos serviços de start e stop do servidor, recebe a mensagem do título deste post, veja como resolver, de forma simples.

(Assumindo que o nome do meu script seja: myscript)

1 – Copie seu script para dentro de: /etc/init.d
2 – cd /etc/init.d
3 – chmod +x myscript
4 – Adicione essas linhas abaixo, incluíndo #,  logo após  #!/bin/bash ou #!/bin/sh:

# chkconfig: 2345 95 20
# description: descricao
# O que seu script faz (Acho que isso nem é mais necessário)
# processname: myscript

Salve, saia e execute a linha abaixo:

5 – chkconfig –level 2345 myscript on

Pronto…

Migrando repositórios subversion com erro database crashing (errcode=160029)

HOWTO: Migrando repositórios
=======================================
Ambiente: Linux CentOS 5.2 / RHEL / Fedora

1. Problema:

O Servidor onde estava rodando o Subversion deu crash de disco (CentOs 4.4), e nem permitia logar diretamente na console.

Ante ao desespero, realizou-se o update para a versão mais nova do CentOS 5.2, com isso o servidor voltou a permitir logar, e foi possível reintalar o subversion, e migrar os repositórios para uma outra máquina.

A instalação foi executada seguindo este tutorial: http://wiki.centos.org/HowTos/Subversion

2. Ao tentar fazer um checkout nos projetos, o mesmo não permitia, e apresentava o seguinte erro:

<D:error>
<C:error/>
<m:human-readable errcode=”160029″>
Could not open the requested SVN filesystem
</m:human-readable>
</D:error>

Depois de algumas pesquisas, descobri que o banco de dados dos repositórios (diretório DB) estava corrompido, e era necessário fazer um recover.

3. Rodei o comando:

# svnadmin recover /var/www/svn/projetoxyz/

Como resposta recebi:

Repository lock acquired.
Please wait; recovering the repository may take some time…
svnadmin: DB_RUNRECOVERY: Fatal error, run database recovery
svnadmin: bdb: /var/www/svn/projetoxyz/db/log.0000000015: log file open failed: No such file or directory
svnadmin: bdb: PANIC: No such file or directory
svnadmin: bdb: DB_ENV->log_put: 15: DB_RUNRECOVERY: Fatal error, run database recovery

Certo, com isso percebi que o problema era um pouquinho mais grave, na verdade sempre que vejo essa frase Fatal error, imagino um problema um pouco mais trabalhoso 🙂

4. Acessei a pasta db de dentro do projetoxyz

# cd /var/www/svn/projetoxyz/db
# ls

-rwxrwxrwx 1 apache apache  172032 Dec 11 10:16 changes
-rwxrwxrwx 1 apache apache    8192 Dec 11 10:16 copies
-rwxrwxrwx 1 apache apache    1955 Oct  3  2008 DB_CONFIG
-rwxrwxrwx 1 apache apache       4 Oct  3  2008 fs-type
-rwxrwxrwx 1 apache apache 1048518 Oct 15 10:39 log.0000000013
-rwxrwxrwx 1 apache apache   13746 Dec 11 10:16 log.0000000014
-rwxrwxrwx 1 apache apache  126976 Dec 11 10:16 nodes
-rwxrwxrwx 1 apache apache  122880 Dec 11 10:16 representations
-rwxrwxrwx 1 apache apache    8192 Dec 11 10:16 revisions
-rwxrwxrwx 1 apache apache 8777728 Dec 11 10:16 strings
-rwxrwxrwx 1 apache apache    8192 Dec 11 10:16 transactions
-rwxrwxrwx 1 apache apache    8192 Dec 11 10:16 uuids

Observe que existe na pasta dois arquivos de log (log.0000000013 e log.0000000014). Apaguei este dois arquivos.

# rm -rf log.0000000013 log.0000000014

5. Voltei para a pasta svn, e executei o comando svnadmin recover novamente:

# cd /var/www/svn/
# svnadmin recover /var/www/svn/projetoxyz/

Agora como resposta obtive:

Repository lock acquired.
Please wait; recovering the repository may take some time…

Recovery completed.
The latest repos revision is 25.

Com este retorno podemos concluir que o banco de dados do repositório foi restaurado.

6. Agora podemos fazer o backup do repositório e restaurar em nosso novo servidor.

# cd /var/www/svn/
# svnadmin dump projetoxyz > projetoxyz_dump

Ao concluir o dump, será criado o arquivo projetoxyz_dump, agora é so enviar para o novo servidor, e fazer a restauração.

# scp projetoxyz_dump root@192.168.1.10:/var/www/svn/

7. No servidor novo, você cria o projeto e faz o restauração do arquivo recebido.

# svnadmin create projetoxyz

altera o dono do projeto:

# chown apache.apache projetoxyz -R

Realiza o reload:

# svnadmin load projetoxyz < projetoxyz_dump

8. Ao terminar o restaure, você deve acrescentar uma entrada no subversion.conf do nome do projeto criado, conforme visto no tutorial: http://wiki.centos.org/HowTos/Subversion

# vi /etc/httpd/conf.d/subversion.conf

Acrescente:

<Location /projetoxyz>
DAV svn
SVNPath /var/www/svn/projetoxyz
AuthType Basic
AuthName “Descricao do Projeto”
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>

Reinicie o apache:

# service httpd restart
ou
# /etc/init.d/httpd restart

lembrando que só terão acesso ao repositório os usuários criados em /etc/svn-auth-conf.

# htpasswd -cm /etc/svn-auth-conf primeiro_usuario
New password:
Re-type new password:
Adding password for user primeiro_usuario

Adicionando mais usuários:

# htpasswd -m /etc/svn-auth-conf outro_usuario
New password:
Re-type new password:
Adding password for user outro_usuario

e assim sucessivamente.

9. Após esses passos, já é possivel fazer checkout utilizando sua ferramenta favorita, como o TortoiseSVN, diretamente pelo Windows, colocando a url de seu servidor:

http://192.168.1.10/projetoxyz

Ufa!!! É só isso 🙂

Cabo de redes par-trançado e conectores RJ45

Howto:  Como fazer a cabo de rede par-traçado?

Pra nunca mais esquecer, pois a idéia deste howto é focar no iniciante.

Será explicado abaixo dois tipos de cabos, um utilizado em HUB/Switch e também o famoso cabo cross-over (ponto-a-ponto).

1. Cabo para ser utilizado em um Hub ou Switch,  basta fazer as duas pontas iguais, seguindo o modelo abaixo.

1) bv.v.bl.a.ba.l.bm.m

2) bv.v.bl.a.ba.l.bm.m

2. Se for para ligar dois computadores diretamente, você precisará de um cabo cross-over, para isso basta fazer cada uma das pontas conforme modelo abaixo.

1) bv.v.bl.a.ba.l.bm.m

2) bl.l.bv.a.ba.v.bm.m
E pronto.

Howto: WordPress 2.7.x muito lento no Debian

Depois de muito apanhar juntamente com meu amigo Sílvio, chegamos a resolução.

Problema:
Ao instalar o WordPress 2.7.1 no Debian Etch, o mesmo estava demorando até 30 segundos para iniciar, principalmente a parte administrativa.

A solução:

Existe várias formas de resolver, registradas aqui:  http://core.trac.wordpress.org/ticket/8590

A mais simples:

  1. Edite o arquivo: /wp-includes/http.php
  2. Vá até a linha 210, e encontre esse bloco de código:
  3. function request( $url, $args = array() ) {
    global $wp_version;

    e deixe dessa forma:

    function request( $url, $args = array() ) {
    return;
    global $wp_version;
  4. Salve o arquivo e tenta acessar a área administrativa do wordpress novamente.

Howto: Como juntar várias apresentações Power Point em uma única apresentação…

Existe ocasiões em que gostaríamos de juntar ou mesclar uma série de apresentações em Power Point em um único arquivo, para fazer isso, você teria que manualmente copiar todos os slides e criar um novo slide.

Eis que há uma modo mais rápido de fazer isso, utilizando o software livre  Powerpoint Join.

O programa não requer instalação, é portable, ou seja ele pode ser executado a partir de qualquer unidade portátil.