quarta-feira, dezembro 07, 2005

Tutorial CSS - Menu drop down

Gerador de menus a partir de css, o código fica simples, simples.

Exemplo abaixo:

sexta-feira, dezembro 02, 2005

segunda-feira, novembro 21, 2005

segunda-feira, outubro 31, 2005

Eclipse Plugins

Alguns plugins interessantes que estou utilizando

Um database explorer, utiliza o jdbc para se conectar.

Descompila classes java utilizando o jad, precisa ter o jad.exe instalado na maquina

Monitor de memória do eclipse

Referencia para consultar plugins

quinta-feira, outubro 27, 2005

CVS permission denied and SELinux issues

SELinux only adds an extra layer of security. You can see this extra layer with

ls -Z

SELinux has a default rule set in Fedora Core called "targeted" that has a set list of daemons (httpd, cvsd, bind, dhcp, etc etc) that require special security tags (like username:group permissions for users but this is for daemons) that you will find with 'ls -Z'. Understanding what SELinux is took me a while too, but I seem to grasp it well now.

In order to give your files in your cvs root the correct tags you will simply need to run

restorecon * -R

in your cvs root. This will assign the default security tag for the cvs daemon to each file and in all subdirectories.


About half way down this (http://www.siliconvalleyccie.com/linux-hn/apachebasic.htm) page you will find some general info about SElinux settings. It has helped me in the past with some of my problems. And most importantly, this (http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/selinux-guide/rhlcommon-section-0068.html) page has a lot of good info to read up on!! Enjoy, it is powerful, but a very useful program for a server that is allowing remote conenctions (i.e. Web, and ftp services).


segunda-feira, outubro 10, 2005

sexta-feira, setembro 09, 2005

terça-feira, setembro 06, 2005

sexta-feira, agosto 19, 2005

Using JConsole to Monitor Applications

Aplicação que monitora a jvm e mostra relátórios do que está acontecendo e monitora aplicações muito interessante.
Using JConsole to Monitor Applications

sexta-feira, julho 29, 2005

descobrir o pid atraves da porta lsof -i:80

Mostra ai o processo que est?na porta X
lsof -i:80

httpd 401 root 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)
httpd 443 nobody 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)
httpd 444 nobody 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)
httpd 445 nobody 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)
httpd 448 nobody 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)
httpd 449 nobody 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)
httpd 22128 nobody 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)
httpd 22129 nobody 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)
httpd 22130 nobody 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)
httpd 22140 nobody 16u IPv4 0x3000132c2f8 0t0 TCP *:80 (LISTEN)

sábado, julho 16, 2005


Diagrama da fiação no padrão EIA/TIA T568B

Diagrama da fiação Standard e Crossover no padrão EIA/TIA T568B
Cabo Cross-Over (1)

Cabo Cross-Over (2) ou Diagrama da fiação no padrão EIA/TIA T568A

How to remove Windows Messenger 4.7 permanently

How to remove Windows Messenger 4.7 permanently
Click on Start.
Click on Run.
Copy and paste this line into the box: RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove

quinta-feira, maio 19, 2005

Counter Strike Server how-to

http://server.counter-strike.net - greate greate tips

[ Home ] [ Counter-Strike ] [ DOD ] [ Unreal Tournament ] [ Serverstat ] [ Quake 3 ] [ Quake 2 ] [ Quakeworld ] [ Quake ]

Pros: Great game.

Cons: To many cheats

By - Techie



Setup and install your favourite Server Os like Win2k,NT,Linux or FreeBSD.

Download and install the lastest dedicated server files for your Os.
Windows http://downloads.gameplanet.co.nz/cat.dyn/Half-Life/Official/Dedicated_Server/
Linux http://downloads.gameplanet.co.nz/cat.dyn/Half-Life/Official/Dedicated_Server/

Download and install the latest Counterstrike server files for your Os.
Windows http://downloads.gameplanet.co.nz/cat.dyn/Half-Life/Mods/Counter-Strike/
Linux http://downloads.gameplanet.co.nz/cat.dyn/Half-Life/Mods/Counter-Strike/

Download and install the latest Halflife server files for your Os.
These help with cheats, hacks and fix bugs.
Login: hlserver Password: hlserver Address: ftp.valvesoftware.com

If your only running the Counter-Strike mod on your server then delete the tfc and dmc directories. This will save about 100MBytes of space.



A Pentium 3/Athlon/Duron are excellent processors for a CS server because of there 600MHz + clock speed. They have decent amounts of cache and 100MHz + Front side bus. This means that there is plenty of bandwidth for the data to flow. The faster the cpu the better the performance for each or the clients connected.


A decent 10/100 MBit network card from Alliedtelesyn/Intel will help lower processor utilization and increase throughput. The network that you connect into needs to have enough bandwidth to give good performance for your clients. A server with 20 players uses about 50-60K per second without voice. With voice it can use up to 100K per sec. Unless you have this kind of bandwidth available then set your maxplayer rate lower or disable the voice team chat.

Shortcut and settings

Basic shortcut is "hlds.exe -game cstrike -port 27015 +maxplayers 20 +map cs_italy +exec server.cfg" This will get you started. You should see a window with the current map, current player amount and a fps reading. The higher the fps reading the better.

If the server is for a lan game include setmaster 0 and sv_lan 1 in your server.cfg file. In change your shortcut to read "hlds.exe -game cstrike -port 27015 +sv_lan 1 +maxplayers 20 +map cs_italy +exec server.cfg"

Just double click on the shortcut that you have created and you should see a window appear. At the top left there should be fps(higher is better), the current player number / maxplayer number and the map that the server is currently running.


When looged on your linux server type

export LD_LIBRARY_PATH=/home/halflife/hlds_l:$LD_LIBRARY_PATH

The path must be from the root directory. My halflife lunix server has its files in /home/halflife/hlds_l

To run it type in the console

./hlds_run -game cstrike -port 27015 +maxplayers 20 +map cs_italy +exec server.cfg

This will get you started. You should see lots the server start with text scrolling past as it loads files from the pak files.

If the server is for a lan game include setmaster 0(old command) or nomaster(new command) and sv_lan 1 in your server.cfg file. Run it using

./hlds_run -game cstrike -port 27015 +sv_lan 1 +nomaster +maxplayers 20 +map cs_italy +exec server.cfg

Files in cstrike directory

motd.txt has the message displayed when the clients enter the game or the map swaps.

server.cfg has all your settings that you want reloaded each time the map swaps like rcon password, maxrate etc.

banned.cfg has all the wonids of people banned from the server.

mapcycle.txt has the list of the maps that the game cycles through.

quarta-feira, maio 18, 2005

download do counter strike

Aqui na csbrasil.com você pode baixar o CS sem Steam! Com ele, nenhuma Cd-Key original é necessária para rodar o jogo, e o melhor, você pode jogar tanto em casa, contra Bots, como pela Internet!

Se você não sabe como jogar o CS 1.6 s/ Steam via Internet, clique aqui!

Baixe algum (e não todos) dos mirrors da versão FULL, e depois atualize-a, com um dos mirrors da versão de atualização.
Obs: Não importa qual a versão do CS s/ Steam FULL você irá baixar, pois a versão de atualização irá atualizar qualquer uma.

- CS 1.6 sem Steam (FULL)
Tamanho: 286 mb
Links - Baixe apenas 1 dos mirrors abaixo:
Mirror 1 - cs16full_v7.exe

- CS 1.6 sem Steam v19 (Atualização)
Tamanho: 16,7 mb
Links - Baixe apenas 1 dos mirrors abaixo:
Mirror 1 - cs16patch_full_v19.exe
Mirror 2 - cs16patch_full_v19.exe

- Counter-Strike Key File
Arquivo do registro do windows necessario para autenticar o CS 1.6 s/ steam. Após a instalação, rode este arquivo.


Como Montar um Servidor dedicado de Counter-Strike para Lan House

Como Montar um Servidor dedicado de Counter-Strike para Lan House

-Servidor de Jogos(Counter-Strike, Day of Defeat etc)
-Proxy Transparente(squid)
-Detecção de Intruso(snort)
-Interface de Controle via WEB
-Servidor de DHCP
-Suporte a ISDN, ADSL USB, PPPoE

O intuito deste trabalho é mostrar como pode ser possível montar uma
Lan House com compartilhamento de Internet e Firewall para proteção
dela e dos usuários.
Este procedimento é usado nas montagens dos servidores da Global LanHouse
(www.globallanhouse.com.br). Devido a vários fatores e custos chegamos
a esse procedimento que será descrito logo abaixo.
Após este trabalho você terá na mesma máquina o seu Servidor de Jogos com
compartilhamento de Internet protegido por um Firewall, sendo o único
custo o HARDWARE e serviços envolvido.

1.Material Necessário


- SmoothWall 1.0 GPL
Author :SmoothWall
Size :23 MB
Obs.: www.smoothwall.org

- Half-Life Dedicated Server v3.1.1.0 (Linux)
Author :Valve Software
Size :111.8 MB
Obs.: para localizar www.google.com

- Counter-Strike 1.5 Linux Server [Full]
Author :Valve Software and Counter-Strike Team
Size :102.5 MB
Obs.: para localizar www.google.com

- Day of Defeat Linux 3.1 Full
Author :http://www.dayofdefeatmod.com/
Size :124.8 MB

- Um Computador Athlon 1.XX, 256 RAM, disco maior ou igual a 40 Gb.
Obs.:Aqui vale a seguinte justificativa você está montando o
coração da sua Lan House, não economize, coloque produtos de boa
qualidade, a quantidade de memória acima foi especificada para
uma LanHouse com 20 equipamentos e com proxy transparente.

- Duas(2)Placas de Rede
Obs.: Aqui a mesma justificativa anterior, recomendo 3Com/Intel
pode ser a RTL8139C para no máximo 20 estações de trabalho.
A RTL8139D não se comportou bem nos nossos testes.

- Gravador CDRW para gerar o CD do SmoothWall.
- Driver de CDROM usado para instalar o SmoothWall(temporário).
- Programa WinSCP para transferência de arquivos entre o Servidor
e a estação.
- Programa Putty para efetuar acesso seguro ao Servidor.
- Uma estação com Windows com a placa de rede configurada.
Obs.:não coloque o endereço IP deixe a opção pegar automáticamente

- Speedy Home ou Business no caso de São Paulo
Obs.: No caso de Speedy Business você vai precisar do endereço IP
do seu "GATEWAY" e do servidor de "DNS".
- Assinatura de um Provedor
Obs.: O SmoothWall tem suporte ao PPPoE e quanto a nova autenticação
imposta aos usuários "Business" você terá que efetuar somente uma
vez, através de uma estação Windows(explico no PASSO 12 B ).

2.Montar o Firewall
Com o CD do SmoothWal nas mãos o Servidor com as duas placas de rede
e o driver de CDROM instalados, vamos dar inicío ao processo de instalação
e configuração.
O SmoothWall chama a placa da LAN de (GREEN) e do INTERNET (RED), ou seja,
a sua [eth0] é a GREEN e a [ETH1] a RED. A definição de eth0 e eth1 é
definida pelo número do slot PCI da placa mãe é só procurar que você
irá encontrar essa numeração do lado do slot, tipo PCIA, PCIB, PCIC etc.
Abaixo temos dois exemplos de configuração, na coluna A, todos os slot's
estão preenchidos e na B somente os dois últimos slot's.
slot - A - B
PCIA - eth0 - sem placa de rede
PCIB - eth1 - eth0
PCIC - eth2 - eth1
Geralmente olhando o computador aberto com a fonte do seu lado direito
o slot PCI de numero um (eth0) é o que fica mais próximo da fonte.
Sendo assim identifique as placas para tornar a sua vida mais
fácil a frente.
LAN -> GREEN -> Rede Interna
ADSL -> RED -> Modem ADSL

****** IMPORTANTE ******

-Ligue o servidor e configure o "Setup" para efetuar "Boot" pelo driver de
-Coloque o CD do SmoothWall no driver de CDROM e de um novo "Boot".
-Irá aparecer a tela de informções do SmoothWall.
-Caso esteja de acordo com o que está escrito tecle [ENTER].

-Escolha o idioma que preferir para efetuar a instalação.
Você vai ficar muinto alegre pois o Português do Brasil vai estar lá.
-Use a tecla [TAB] para navegar e [SPACEBAR] ou [ENTER] para selecionar.

-Tecle [SPACEBAR] ou [ENTER] para ir para próxima tela.

-Use a tecla [TAB] para navegar e [SPACEBAR] ou [ENTER] para selecionar.
-Escolha CDROM.

**** ALERTA ****
O Conteúdo do disco e totalmente apagado.
-Este passo é totalmente automático.

-Selecione "PROBE" para identificar a ETH0(GREEN).
-Se você seguiu o meu conselho quanto a placa de rede esse processo
será fácil.
-Para configurar manualmente leia o manual de instalação.
-Entre com o endereço IP da sua LAN.

-Esse passo só é necessário para quem está fazendo a instalação via
HTTP escolhida no PASSO 4.
-Vá para o próximo passo.

-Caso o processo de instalação pare na tela criando "root" é porque
o programa de instalação não consegue em algumas marcas de HD criar
as partições do "Zero".
Faça na estação Windows um disco de boot, coloque nele o fdisk e crie
uma partição usando o disco todo, volte ao PASSO 1.

-Use a tecla [TAB] para navegar e [SPACEBAR] ou [ENTER] para selecionar.
-Escolha o mapa do teclado.
-Escolha "Time Zone".
-Escolha o nome para o seu Servidor.

-Escolha "Disable" ou seja desabilite essa configuração.

-Escolha "Disable" ou seja desabilite essa configuração.
-Caso tenha um ADSL USB, leia o manual.

-Por "default" vem configurado GREEN+ORANGE+RED.
-Mude para GREEN+RED.
-Não se esqueça que a GREEN já foi configurada no PASSO 6.
-Configure a RED.

-Para Speedy Home selecione no menu o item "PPPOE".
-O nome e a senha você irá colocar mais tarde.
-Não precisa configurar DNS e GATEWAY.

-Escolha de acordo com o seu ADSL instalado.
-Caso seja estático você deverá ter o endereço IP, GATEWAY e DNS.

Em alguns casos chegamos a pegar um Speedy Business que no Windows funcionava
via DHCP e que no SmoothWall não foi possível, basta pegar os endereços.

Caso, o seu Speedy Business tenha que efetuar autenticação, faça o seguinte:
-Após ter configurado o SmoothWall siga para a estação Windows e tente navegar,
ao fazer isso será redirecionado para a página de autenticação do Speedy é
só preencher o formulário e pronto.

Pela nossa experiência isso foi necessário somente uma única vez.
Não foi possível usar o script(1) que tem na internet pois o SmoothWall não
tem o "LYNX" que é utilizado nesse script. Caso alguém queira efetuar o
trabalho de compilar o LYNX para o SmoothWall ficaríamos agradecido.

1.Autor : Edison Figueira Junior -
Mantenedor: BRconnection - http://www.brc.com.br
O link que tenho no meu Bookmark é esse:

-Habilite o servidor de DHCP.
-Configure de acordo com o número de estações que tiver.

-Coloque a senha para o "root". [acesso ao console do servidor]
-Coloque a senha para o "setup". [acesso ao programa de configuração]
-Coloque a senha para o "admin". [acesso a interface WEB]

Após efetuar essa configuração o SmoothWall será "reinicializado" e toda
a configuração posterior será feita via interface web.
https://IP_GREEN:445 - porta segura
http://IP_GREEN:81 - porta insegura
IP_GREEN -> IP que você colocou no PASSO 6.

Siga para a estação Windows, e caso ela esteja ligada efetue um "reboot" para
que a mesma "pegue" um endereço IP do SmoothWall para proceder nas configurações
via interface web.

PASSO 14 A: PPPoE(Speedy Home)
-Direcione o seu browser para o servidor.
-De um clique no link "dialup".
-Coloque o usuário e a senha na tela.
usuário: admin
senha : PASSO 13
-Na nova tela selecione "configurações ppp".
-Coloque um nome na caixa "Nome do Perfil".
exemplo: PROV_UOL
-Na caixa "Interface" escolha "PPPoE".
-Coloque zero(0) em "Tempo de ociosidade".
-Marque os itens: "Conexão persistente" e "Reiniciar conexão no Smoothwall".
-Em autenticação coloque o nome e a senha do seu provedor.
-Deixe a caixa "Método" em "PAP ou CHAP".
-Clique em salvar, vá para o link "home" e clique em "Conectar".
Se tudo estiver de acordo irá aparecer "Conectado" com o nome do perfil

PASSO 15: Configurações Adicionais
-Direcione o seu browser para o servidor.
-De um clique no link "remote access".
-Coloque o usuário e a senha na tela.
usuário: admin
senha : PASSO 13
-Nessa tela de um clique em "ssh" e habilite a opção SSH.
-De um clique em "services".
-Nessa tela de um clique em "proxy web" e habilite as opções:
"Transparente" e "Enabled"
-Para outras configurações consulte o Manual.

3.Instalando e Configurando o Servidor de Jogos

Passo 1: Procedimento de Instalação HalfLife/CS
-Você deverá ser o root para continuar a instalação.
# "logue" como root ou execute o comando su
-Criar o diretório halflife.
# mkdir /halflife
-Siga para o diretório onde estão os arquivos.Use o WinSCP para copiar
os arquivos par o servidor.
# cd /lixo ou diretório que você colocou os arquivos.
# [root@server /lixo]#
# cp hlds_l_3110_full.bin /halflife
# cp cs_15_full.tar.gz /halflife
# cd /halflife
# chmod 700 hlds_l_3110_full.bin(caso seja necessário)
# ./hlds_l_3110_full.bin
# rm hlds_l_3109_full.bin
-Depois disso "descompactar" o CS
# tar zxvf cs_15_full.tar.gz -C /halflife/hlds_l
# rm cs_15_full.tar.gz
-Definindo a variável LD_LIBRARY_PATH
# vi /etc/bashrc(ou joe)
-Adicione a seguinte linha:
export LD_LIBRARY_PATH=/halflife/hlds_l:$LD_LIBRARY_PATH
-Para que a variável tenha efeito "deslog" e "log" de novo.
-Editar o arquivo de configuração.
# cd /halflife/hlds_l/cstrike/
# vi server.cfg
-Faça as modificações necessárias.
-Agora vamos ao "jogo".
# cd /halflife
# cd hlds_l
# ./hlds_run -game cstrike +maxplayers 10 +map cs_assault
-O servidor deverá ser "startado" com o map cs_assault e o limite
de 10 jogadores.
-Se o servidor tiver OK você receberá a menssagem.
# WON Auth Server
-Para verificar o servidor CS digite no console.
# status
-Você terá as seguintes informações:
build :1027
tcp/ip :
map : cs_assault: 0x, 0y, 0z
players : 0 active (10 max)
-Para sair
# quit

PASSO 2: Instalação do DoD 3.1(Day of Defeat)
-Pegar o arquivo dod_v31_full.tar.gz em:
-Use o WinSCP para copiar para o Servidor.
-Coloque o arquivo em algum diretório ou crie um no servidor.
-Descompactar o arquivo dod_v31_full.tar.gz.
# tar zxvf /lixo/od_v31_full.tar.gz -C /halflife/hlds_l/
-Editar o arquivo de configuração.
# cd /halflife/hlds_l/dod/
# vi server.cfg
-Faça as modificações necessárias.

PASSO 3: Criação dos Usuários "cs" e "dod"
-Para tornar o processo mais prático para os operadores criamos dois
usuários o "CS" e o "DOD".
-Sendo que o shell dos respectivos usuários são:
#cat /etc/passwd
-O operador entra com o usuário "cs" no console 1 e com o "dod"
no console 2
# [ALT F1]
# global login:cs
# Password: xxxx
# [ALT F2]
# global login:dod
# password: xxxx
-Com isso o processo é todo automático.

Shell do Usuário CS
# Copyright (c) 2002, cableONE/Global
echo Carregando o Servidor de Jogos CS
echo .......
echo ...
echo .
cd /halflife/hlds_l

Script star_lan_cs rodando na porta default (27015)
./hlds_run -game cstrike +exec server.cfg +sv_lan 1 -nomaster +maxplayers 25 + log on +map de_dust

Shell do Usuário DOD
# Copyright (c) 2002, cableONE/Global
echo Carregando o Servidor de Jogos DoD
echo .......
echo ...
echo .
cd /halflife/hlds_l

Script star_lan_dod rodando na porta (27016)
/hlds_run -game dod -port 27016 +exec server.cfg +sv_lan 1 -nomaster +maxplayers 25 + log on +map dod_anzio

Não esqueça de mudar a permissão dos arquivos cs, dod, start_lan_cs e start_lan_dod.
#chmod 744 /usr/sbin/cs
#chmod 744 /usr/sbin/dod
#chmod 744 /halflife/hlds_l/start_lan_cs
#chmod 744 /halflife/hlds_l/start_lan_dod

Gostaria se possível saber quem vai implementar essa solução o número de
estações e as modificações que serão necessárias, ou outras soluções que
julgar de melhor viabilidade, claro na plataforma LINUX.
Obrigado e Bons Negócios!

Antonio Luis Ribeiro
São José dos Campos - SP - Brasil
Rodovia dos Tamoios Km 5,5 - CEP 12231-970
Tel.:+55(12)3947-5437 FAX: +55(12)3944-1177
EMail ribeiro@ieav.cta.br ou al_ribeiro@uol.com.br

sexta-feira, maio 13, 2005

Windows process

Windows process
Mostra uma lista com os executaveis que vc pode ver no Task Manager, e explica cada um deles.
Muito bom!!!

Regular expression summary

Regular expression summary

[This text is taken directly from the Java API documentation]

Construct Matches
x The character x
\\ The backslash character
\0n The character with octal value 0n (0 <= n <= 7)
\0nn The character with octal value 0nn (0 <= n <= 7)
\0mnn The character with octal value 0mnn (0 <= m <= 3, 0 <= n <= 7)
\xhh The character with hexadecimal value 0xhh
\uhhhh The character with hexadecimal value 0xhhhh
\t The tab character ('\u0009')
\n The newline (line feed) character ('\u000A')
\r The carriage-return character ('\u000D')
\f The form-feed character ('\u000C')
\a The alert (bell) character ('\u0007')
\e The escape character ('\u001B')
\cx The control character corresponding to x
Character classes
[abc] a, b, or c (simple class)
[^abc] Any character except a, b, or c (negation)
[a-zA-Z] a through z or A through Z, inclusive (range)
[a-d[m-p]] a through d, or m through p: [a-dm-p] (union)
[a-z&&[def]] d, e, or f (intersection)
[a-z&&[^bc]] a through z, except for b and c: [ad-z] (subtraction)
[a-z&&[^m-p]] a through z, and not m through p: [a-lq-z](subtraction)
Predefined character classes
. Any character (may or may not match line terminators)
\d A digit: [0-9]
\D A non-digit: [^0-9]
\s A whitespace character: [ \t\n\x0B\f\r]
\S A non-whitespace character: [^\s]
\w A word character: [a-zA-Z_0-9]
\W A non-word character: [^\w]
POSIX character classes (US-ASCII only)
\p{Lower} A lower-case alphabetic character: [a-z]
\p{Upper} An upper-case alphabetic character:[A-Z]
\p{ASCII} All ASCII:[\x00-\x7F]
\p{Alpha} An alphabetic character:[\p{Lower}\p{Upper}]
\p{Digit} A decimal digit: [0-9]
\p{Alnum} An alphanumeric character:[\p{Alpha}\p{Digit}]
\p{Punct} Punctuation: One of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
\p{Graph} A visible character: [\p{Alnum}\p{Punct}]
\p{Print} A printable character: [\p{Graph}]
\p{Blank} A space or a tab: [ \t]
\p{Cntrl} A control character: [\x00-\x1F\x7F]
\p{XDigit} A hexadecimal digit: [0-9a-fA-F]
\p{Space} A whitespace character: [ \t\n\x0B\f\r]
Classes for Unicode blocks and categories
\p{InGreek} A character in the Greek block (simple block)
\p{Lu} An uppercase letter (simple category)
\p{Sc} A currency symbol
\P{InGreek} Any character except one in the Greek block (negation)
[\p{L}&&[^\p{Lu}]]  Any letter except an uppercase letter (subtraction)
Boundary matchers
^ The beginning of a line
$ The end of a line
\b A word boundary
\B A non-word boundary
\A The beginning of the input
\G The end of the previous match
\Z The end of the input but for the final terminator, if any
\z The end of the input
Greedy quantifiers
X? X, once or not at all
X* X, zero or more times
X+ X, one or more times
X{n} X, exactly n times
X{n,} X, at least n times
X{n,m} X, at least n but not more than m times
Reluctant quantifiers
X?? X, once or not at all
X*? X, zero or more times
X+? X, one or more times
X{n}? X, exactly n times
X{n,}? X, at least n times
X{n,m}? X, at least n but not more than m times
Possessive quantifiers
X?+ X, once or not at all
X*+ X, zero or more times
X++ X, one or more times
X{n}+ X, exactly n times
X{n,}+ X, at least n times
X{n,m}+ X, at least n but not more than m times
Logical operators
XY X followed by Y
X|Y Either X or Y
Grouping operators
(X) X. This capturing group is remembered so it can be referenced later. Numbered starting at 1.
(?:X) X. Used purely for grouping, and isn't remembered.
Back references
\n Whatever the nth capturing group matched
\ Nothing, but quotes the following character
\Q Nothing, but quotes all characters until \E
\E Nothing, but ends quoting started by \Q
Special constructs (all groupings are non-capturing)
(?idmsux-idmsux)  Nothing, but turns match flags on - off
(?idmsux-idmsux:X)   X, as a non-capturing group with the given flags on - off
(?=X) X, via zero-width positive lookahead
(?!X) X, via zero-width negative lookahead
(?<=X) X, via zero-width positive lookbehind
(?<!X) X, via zero-width negative lookbehind
(?>X) X, as an independent, non-capturing group

segunda-feira, abril 04, 2005

Bean / dto com implementacao generecia toString

public class BaseDto implements Serializable{

protected void appendAttributes(Object obj, StringBuffer buffer) {
if (obj == null) {

try {
Class clazz = obj.getClass();
Field[] fields = clazz.getFields();

for (int i = 0; i < fields.length; i++) {
buffer.append(" | " + fields[i].getName());

try {
buffer.append(" [" + fields[i].get(obj) + "]");
} catch (Exception e) {
buffer.append(" [?]");
} catch (Exception e) {}

public String toString() {
StringBuffer result = new StringBuffer(getClass().getName());
result.append("@" + hashCode());
appendAttributes(this, result);
return result.toString();

sexta-feira, abril 01, 2005

Exemplo de hibernate many-to-many com mysql


<class name="Customer" table="customers">
<id name="id">
<generator class="native"/>
<property name="name"/>
<set name="orders" inverse="true" lazy="true">
<key column="customer_id"/>
<one-to-many class="Order"/>

<class name="Order" table="orders">
<id name="id">
<generator class="native"/>
<property name="date"/>
<many-to-one name="customer" column="customer_id"/>
<list name="lineItems" table="line_items" lazy="true">
<key column="order_id"/>
<index column="line_number"/>
<composite-element class="LineItem">
<property name="quantity"/>
<many-to-one name="product" column="product_id"/>

<class name="Product" table="products">
<id name="id">
<generator class="native"/>
<property name="serialNumber"/>


create table works (
id BIGINT not null generated by default as identity,
tempo FLOAT,
genre VARCHAR(255),
title VARCHAR(255),
type CHAR(1) not null,
primary key (id)

create table author_work (
author_id BIGINT not null,
work_id BIGINT not null,
primary key (work_id, author_id)

create table authors (
id BIGINT not null generated by default as identity,
alias VARCHAR(255),
primary key (id)

create table persons (
id BIGINT not null generated by default as identity,
name VARCHAR(255),
primary key (id)

alter table authors
add constraint authorsFK0 foreign key (id) references persons
alter table author_work
add constraint author_workFK0 foreign key (author_id) references authors
alter table author_work
add constraint author_workFK1 foreign key (work_id) references works

Java Skyline: Database

Java Skyline: Database
Muito util com database utilities e db explorers...
um mto bom eh o DbVisualizer http://www.minq.se/products/dbvis

quinta-feira, março 24, 2005

Speedy teste de logoff

Teste de Log Off
Para saber se você, usuário de IP fixo, está liberado de autenticação

Primeiramente, verifique sua conexão.

Você pode usar o Assistente Speedy

Se você tem um Speedy, mesmo sem provedor, você deve poder acessar o endereço abaixo:

Se o link acima não funcionar, experimente



Esses links são da Telefonica, não se espantem se forem alterados, ou não funcionarem...

Deve aparecer uma tela em branco, blank.html , e uma janela dizendo que o Speedy está ativo.

SPEEDY BUSINESS - Login script

# Autor : Edison Figueira Junior -
# Mantenedor: BRconnection - http://www.brc.com.br
# Data : 18/08/2003 - 07/10/2002
# Versão : 2.0
# Copyright : LIVRE - Este script/howto pode ser alterado/modificado e
# redistribuido, mantendo-se apenas a identificação do Autor e Mantenedor.

# A Telefonia em Setembro/Outubro de 2002 decidiu que os SPEEDY - BUSINESS com
# IP fixo deverão ser autenticados.
# Essa autenticação diferentemente do SPEEDY HOME não utiliza o pppoe.
# Foi desenvolvido um mecanismo de autenticação proprietário, porem muito
# simples de se implementar.
# -----------------
# Quando um pacote de rede (TCP/IP) é enviado para a internet atraves do SPEEDY,
# o roteador da TELEFONICA verifica se tem o bit Host-Key esta setado para a sua
# conexão, caso contrario o roteador desvia sua requisição para uma página de
# login.

# Essa pagina hoje esta trabalhando na porta 85, porem não deixa de ser protocolo
# http.
# Dois campos deste formulário devem ser preenchidos: Login/Senha.

# O Campo login dever ser preenchido da seguinte forma: login@provedor.com.br.
# Esse login/senha tem que ser obtido com o seu provedor.

# --------------------------------------

# Usuários do BRmultiaccess que possuem qualquer tipo de contrato, e que tenham
# a versao 3.6-2 ou superior, serão atualizados automaticamamente, bastando
# apenas configurar o login e a senha em Conf >> Speedy Business, os que nao
# possuem contrato poderão baixar a atualização atraves do site
# http://www.brc.com.br.

# Os usuários de Linux no geral podem utilizar o script que segue abaixo:

## ChangeLog
# 18/03/2003 - incluido a nova URL de autenticação, a anterior ainda nao foi removida
# pois ainda existem SPEEDY com autenticacao nessa URL.

## ChangeLog
# 22/03/2003 - A versão 2.0 apresentou problemas com o RedHat7.1.
# Foi alterado a estrutura das variáveis para "postagem"
# dos dados através do lynx e agora o teste de conectividade
# se baseia no ping. Caso o ping retorne "100% packet loss"
# é realizado a autenticação e caso contrário, não.
# Testado ok com Lynx Versão 2.8.4dev.16 (01 Jan 2001)

USERNAME="usuario@provedor"; ### Coloque o seu login aqui nesta variavel ###
PASSWORD="senha"; ### Coloque aqui sua senha nesta variavel ###

URL_TEST="www.terra.com.br"; # É necessário retirar o "http://" da url
RET_TEST=`ping -c1 $URL_TEST |grep '100% packet loss'`; # Verifica conectividade com a internet

if [ -z "$RET_TEST" ];
echo "Já esta conectado !";
echo "Conectando ...";
echo -e $POST_DATA |lynx --dump --accept_all_cookies -post_data$USERNAME&password=$PASSWORD;

segunda-feira, fevereiro 28, 2005

Operacao com datas.

Este codigo efetua uma verificacao se a data foi expirada pela qtd de dias.

public static boolean validaDataExpirada(Date dataInformada, int dias){

boolean retorno = false;
Date dataAtual = new Date(System.currentTimeMillis());
Calendar now = Calendar.getInstance();

now.add(Calendar.DAY_OF_YEAR, dias);

if (dataAtual.before(now.getTime())){
retorno = true;
} else {
retorno = false;

System.out.println("dataAtual = " + dataAtual);
System.out.println("dataInformada = " + now.getTime());

return retorno;


quinta-feira, fevereiro 03, 2005

Novo servidor de jabber

este servidor parece ser + dificil de bloquear pelos firewalls/proxies corporativos

jabber -> chrome.pl

Jabber, servidores e etc

Gastei mto tempo pra achar os servers do jabber por isso resolvi registrar

Este server jabber.wiretrip.org, faz o gateway msn, icq e yahoo

Este é o servidor que aceita conectar via porta 443, jabberes.org.

O Cliente q estou usando é psi que pode ser encontrado em: http://psi.affinix.com/

quarta-feira, fevereiro 02, 2005

Otaku, Cedric's weblog: Why I prefer SAX to parse XML

Otaku, Cedric's weblog: Why I prefer SAX to parse XML
Tá ai uma coisa q eu sempre tenho duvida

amessage: Using Jabber behind firewalls

amessage: Using Jabber behind firewalls

Artigo bom pra colocar um messenger no ar, sem mtas parafernalhas e estando dentro de uma jaula.

Using Jabber over an HTTP proxyThe more common case in which you might be interested in this document should be, that you have no administrative access to your firewall and you want to use your Jabber client behind and existing firewall. In this case this section is the best bet for you.

In this case most of the time you only have access to the world wide web and your local mail and file servers. Often users call this in my network only port 80 is open to the internet but most of the cases not even that is true because: I bet port 80 is closed as well and the users cannot connect directly to the web at all, they have to use a proxy, that relays the connections to the web. Using the proxy might be transparent and it might not be necessary to configure the proxy in your web browser, the network will then transparently route all connections on port 80 to the proxy.

There is Jabber Server jabber80.com, that allows you to connect to it using port 80. So if your network really allows you outgoing connections to this port, you might want to test this server as well. But in the case, that you have either explicitly or transparently use a transport, it won't help you that the server is listening at port 80. Proxies do not just relay your request connection to the outside web server, but will read your request, get the requested document by the outside server and forward it to you. Therefore if you send a Request to a web proxy, it has to be a valid HTTP request - and the Jabber protocol is no valid HTTP request.

The above rule that the proxy will not relay the connection but process the request itself has one important exception: HTTPS requests. The HTTPS protocol is designed to authenticate the server against the client. This is done because for some web applications (e.g. financial transactions) the user has to be sure that he is speaking to the bank and noone is able to modify the data inbetween). Therefore it cannot be accepted that the proxy is able to see or modify the request and it has only the possibility to pass the HTTPS request as it is to the server. This can be used to pass Jabber connections through the proxy very well. The only restriction a web proxy normally takes on https connections is that they have to go to the standard port for https requests which is port 443. Cause of this some Jabber servers (including all amessage servers, jabber.org.uk, jabberes.org, chrome.pl, jabber.wp.pl, jabber.elektron.com.pl and others) allow you to use port 443 to connect to them as well.

Servers urls


quarta-feira, janeiro 05, 2005

sobre como "escapar" de um proxy eca ntlm (ms proxy)

Tunneling Out of Proxy Prison (Internet)

By Milo Minderbender
Wed May 19th, 2004 at 11:18:58 PM EST

Since I started my new job a few months ago, I've been trapped in proxy prison, unable to ssh to my home machine or any internet servers. My main goal was to use downtime at my day job to do web development work for a small company that I set up a few years ago (more on the morality of this later). I've finally broken free of the proxy prison, and here's how I did it. It wasn't easy...


Rules of the Game
Damn Microsoft HTTP proxy server uses proprietary NTLM (NT Lan Manager) protocol that only MS products know how to use. This is slowly changing with Mozilla and a few other applications now able to use the protocol.
For some idiotic reason you can only leave the NTLM proxy server on the other side if you are destined for port 80 or 443. I'm not sure how Windows Media Player gets around this... I sure haven't been able to avoid it.

Luckily a similarly imprisoned python geek has written an app called aps098 that converts from normal HTTP proxy traffic to NTLM proxy traffic. Although I could have written my own NTLM authentication, my end result would have been equivalent to this program, so why bother?

I was also able to find a program called desproxy that converts normal socket traffic to HTTP proxy traffic. I saw how to do this, but I decided to just use this prebuilt app. So now I can get ssh sockets out the other end of the NTLM proxy. But then what? I still was only able leave the NTLM proxy if my destination port was 80 or 443. I had to find a way to get to the ssh port (22) on the destination server. To do this, I needed a helping hand on the other side of the NTLM proxy server.

Well, I managed to whip up a tiny web application to run on my home computer that allows me to spawn a java threaded proxy server (something I wrote a few months earlier for something else) routing from whatever local port to whatever destination server and port. So if I put in local port 443, and destination of my server, port 22, it will listen on 443 and forward whatever sockets it gets on to my server at the ssh port. This web app has to run at port 80, of course, and I can use a regular web browser to see it. After it's all set up, I just type "ssh localhost" on my machine at work, and [tada!], I get the server's login prompt!


diagram (any admin wanna insert this image?)


What a bloody nightmare. Even with 4 middlemen between me and my server, the connection speed is still bordering on usable. I was able to do a full checkout of the code from CVS with no problem. Unfortunately, actually doing work would require too many switches of where the java proxy is sending me. To ssh on my home computer for scp'ing the files there, then restarting the server, then switching to my app server's port to view the application, while not being able to watch the log files (via an ssh session). It's not really gonna work. For some small self-contained problems, it could work fairly well.

On Morality and Risk

My boss and the rest of my team have specifically told me to work as slowly as possible and to always appear as if I am working. Our team has nothing to do at the moment and we actually fight over who gets to work on the bug reports as they are raised. As usual, one or two levels up the ladder, they haven't got a clue. Ahh, the corporate life: do nothing all day, get paid a lot. Own your own business: work your ass off all day and all night for pennies an hour. I'd honestly take the latter over the ladder any day.

There's absolutely no risk of getting caught. The tech services team have been around a few times to (attempt to) install upgrades and whatnot. Their incompetence was appalling! I try not to think of what they are getting paid.

Since I originally set this up, another layer of job protection has been added. The aps098 application has been moved to another unused machine using the username of an ex-employee so that other team members can run their instant messaging apps through the NTLM proxy, so the traffic is now neither coming from my ip nor using my user name.


ntlm - achei algumas coisas de ntlm estou registrando (tunneling with proxy)


http://jcifs.samba.org/ ***