quarta-feira, 7 de março de 2007
Cursos online grátis sobre Software Livre!
Artigo do site Viva o Linux
quinta-feira, 15 de fevereiro de 2007
Ubuntu Rulez
Hum é difícil começar um post com esse nome depois de ter maltratado o Ubuntu por tanto tempo. Mas a vida anda e as coisas mudam certo?
Há uns dois meses instalei o Ubuntu 6.10 em meu notebook para ensinar minha namorada utilizar o sistema, mas fique apenas nisso, não atualizei e nem coloquei novos programas, ele ficou lá apenas de "enfeite". Esses dias precisei utilizar o note e a primeira coisa que pensei foi "O que vou colocar no lugar do Ubuntu", mas então me veio à mente algo estranho "Vou utilizar esse Ubuntu por uns dias depois troco". Sempre fui fã do KDE e do Blackbox e lá estava o Gnome, "coisa esquisita", "cade as barras transparentes", "e esses menu estranhos?"... Frases comuns quando se está diante de algo "novo".
Então o primeiro passo foi fuçar nas configurações dele e deixá-lo com uma cara mais agradável à meu gosto. Depois de uns ajustes e da instalação do GDesklets ele ficou com uma cara bem amigável, aí veio a utilização do sistema, é incrível como as coisas simplesmente "funcionam" no Ubuntu, tudo bem feito e bem configurado, o gerenciador para instalar novos programas é tipo um aptitude, é bem legal, mas ainda prefiro o aptitude. Quando fui instalar o Apache, por exemplo, ele não estava no gerenciador apenas no aptitude. Lembrando que até aqui nem toquei na sources.list dele, pois tudo o que precisei eu encontrei.
Estou usando o Ubuntu e está sendo um período agradável, no pc uso o Debian e no note o Ubuntu. Então, hoje recebi um e-mail de um amigo (O sr. Emphasis in Metal "diego-mendes at prodesan com br") com uns "links interessantes" para o Ubuntu. E aí vão eles:
Source-O-Matic: Aqui você pode montar sua source.list. Como? Funciona assim, você entra no link escolhe o seu país, a versão do Ubuntu, a arquitetura do processador, e se quiser checa a caixinha de que quer adicionar a source dos fontes dos programas, então clica em "send". Depois disso você pode escolher os tipos de pacotes que quer, já ficam marcados os pacotes desenvolvidos pela equipe Ubuntu e pela comunidade Ubuntu. E há mais opções como pacotes KDE, Wine, Opera, etc. Após selecionar os pacotes você clica em "create source.list" e pronto tens uma lista nova em folha. Agora copie o conteúdo gerado no seu browser e substitua o conteúdo do arquivo /etc/apt/sources.list por ele, atualize o apt ("# apt-get update") e abra o seu gerenciador de pacotes favorito =).
Ubuntu Games: Esse eu fiquei bem impressionado, é um projeto brasileiro onde foi desenvolvido um cara chamado IUG (Instalador Ubuntu Games), no site há instruções de como instalar. Após a instalação do IUG você pode executá-lo e navegar pelos estilos de jogos e escolher os que você quer instalar, ele faz todo o trabalho para você apenas se divertir depois. Esse é bem legal mesmo.
Ubuntu Screencasts: Aqui temos vídeos ensinando a fazer coisas como baixar e queimar a iso do Ubuntu, instalar em dual-boot com Windows(r), custumizar o desktop, etc. Esse vale a pena para quem está começando.
Bem, é isso agradeço ao sr. Emphasis in Metal pela dica sobre os links, que, aliás, eu não conhecia, e espero que aproveitem =)
InFog
Shell Free
Shell Free
Uso muito isso quando não quero deixar o ftp aberto em casa pra ficar brincando !!!.
segunda-feira, 12 de fevereiro de 2007
Montando Servidor XDCC (IROFFER)
IRC - Como configurar e usar o iroffer
As instruções abaixo são para o Debian/GNU/Linux, mas, basta instalar o programa em qualquer distribuição ou se você gosta de correr riscos no Windows que o arquivo de configuração é o mesmo.
1° Passo - Instalação.
- Para Debian e derivados como Ubuntu, Kubuntu e Kurumin:
#aptitude install iroffer
- Para OS rpm's como Redhat, Suse, Mandriva e outros derivados:
Procure e instale o pacote iroffer (quem quiser mandar update com detalhes do procedimento da sua distribuição preferida, eu agradeço)
- Para Windows:
Sinceramente não sei, mas, da uma olhada na pagina oficial http://www.iroffer.org
--------------
2° Passo - Configuração.
- Criar na sua pasta home uma pasta exclusiva para a configuração (aconselho que seja iroffer mesmo, como usarei em meus exemplos):
$mkdir ~/iroffer
--------------
3° Passo - Criar o arquivo de configuração:
- Para Debian e derivados como Ubuntu, Kubuntu e Kurumin:
#gunzip /usr/share/doc/iroffer/examples/sample.config.gz
#cp /usr/share/doc/iroffer/examples/sample.config ~/iroffer/nomedobot.config
- Para OS rpm's como Redhat, Suse, Mandriva e outros derivados:
Procure o arquivo sample.config.gz que foi instalado pela sua distribuição e proceda como explicado acima (quem quiser mandar update com detalhes do procedimento da sua distribuição preferida, eu agradeço)
- Para Windows:
Sinceramente não sei, mas, da uma olhada na pagina oficial http://www.iroffer.org
--------------
4° Passo - Editando o arquivo de configuração:
- Nesta etapa não importa sua Distribuição :-) - Há menos é claro que você ainda não tenha entendido que Windows não é seguro e seja teimoso a esse ponto, então! http://www.iroffer.org de novo pra você :-P
- Abrindo o arquivo
$seueditorpreferidograficoounão ~/iroffer/nomedobot.config
O arquivo é todo comentando e tem exemplos em cada sessão, sendo que as sessões são bem separadas, só que ingles não é nem de longe meu forte :-(
Segue abaixo uma configuração adquirida com minha esperiência em canais de irc e com muinto google translator e achometro :-)
- Seção - pid file -:
pidfile nomedobot.pid
- Seção - log file -:
logfile nomedobot.log
logstats yes
logrotate weekly
- Seção - state file -:
statefile nomedobot.state
- Seção - xdcc listing file -:
xdcclistfile nomedobot_packs.txt
- Seção - connection method -:
connectionmethod direct
- Seção - nickserv -:
nickserv_pass senha_do_seu_nick_no_servidor_de_irc
- Seção - server information -:
server servidor_de_irc 6667 senha_do_seu_nick_no_servidor_de_irc
- Seção - channels (upto 50) -:
channel #nomedocanal
channel #nomedocanal2
channel #nomedocanalXXXXXXXXx (e assim vai, sendo uma linha pra cada canal dentro do servidor)
- Seção - user information -:
user_nick nomedonick_do_Bot
user_realname Nome_real_do_Bot
user_modes +i
- Seção - incoming TCP connections -:
tcprangestart 4000 (ou 5000 ou 6000 qualquer faixa de porta que você quer receber seus arquivos, muito útil atrás de firewall)
- Seção - manual dcc ip translation -:
usenatip COLOCAR_O_IP_REAL_DA_SUA_NET (Caso esteja atrás de um firewall ou seu modem seja router - vai ser útil a configuração anteiror ;-)
- Seção - maximum xdcc slots -:
slotsmax numero_da_quantidade de arquivos que podem ser enviandos simuntaneo (4 por ex)
- Seção - Queue Information -:
queuesize numero_da_quantidade de arquivos que podem ser colocados na fila de espera! (12 por ex)
- Seção - max transfers per person -:
maxtransfersperperson numero_da_quantidade de arquivos que uma pessoa pode baixar ao mesmo tempo! (1 por ex)
- Seção - max queued items per person -:
maxqueueditemsperperson numero_da_quantidade de arquivos que podem ser colocados na fila por uma pessoa! (3 por ex)
- add/chfile command helper directory -:
filedir /home/suapastadearquivos (Util para abreviar caminho nos comandos do bot!)
- restrict xdcc list and xdcc send -:
restrictprivlist
restrictprivlistmsg Para obeter os packs digite: !seucomandopreferido (isto ira impedir que seu bot caia direto por excesso de flood)
- Seção - channel xdcc commands -:
respondtochannelxdcc (se for pro bot responder ao comando xdcc) - Aconselho
#respondtochannelxdcc (se não for pro bot responder ao comando xdcc list)
- Seção - channel !list command -:
respondtochannellist (se for pro bot responder ao comando !list) - Aconselho
#respondtochannellist (se for pro bot responder ao comando !list)
- Seção - bypass queue for small files -:
smallfilebypass 100 (Assim o arquivo de packs será enviado de imediato desde que ele seja menor do que 100k, caso contrário aumente um pouco)
- authorized download hosts -:
downloadhost *!*@* (Assim todo mundo pode baixar :-)
- transfer min speed -:
transferminspeed 2 (Assim quem tiver querendo baixar o mundo junto com seu arquivo não fica empatado o Bot)
- transfer max speed -:
transfermaxspeed 15 (Ou o tanto de upload que você quiser limitar, para que alguém com uma super banda não consuma todo o seu upload e pare sua net)
- bandwidth limiting -:
overallmaxspeed 15 (O mesmo acima, mas, controlando todos os usuários)
- autosend feature -:
autosendpack 1 !seucomandopreferido meus packs. (envia o arquivo de packs pra quem der o comando especificado como !seucomandopreferido)
- headline -:
headline "Aquela msg especial que ficará no topo do seu arquivo de packs" (sem ")
- credit line -:
creditline Packs = Escreva o que você quiser para ser a linha de créditos do seu bot sempre que alguém der um comando de list no canal.
- log notices -:
lognotices (Assim saberemos pelo log o que os OPs e servidores tem a nos dizer ao entrar no canal)
--------------
5° Passo - instalando programa auxiliares que serão úteis.
- Instalando o screen para Debian e derivados como Ubuntu, Kubuntu e Kurumin:
#aptitude install screen (não precisa configurar mais nada)
- Instalando o screen para OS rpm's como Redhat, Suse, Mandriva e outros derivados:
Procure e instale o pacote screen (quem quiser mandar update com detalhes do procedimento da sua distribuição preferida, eu agradeço)
- Para windows:
Não tenho nem noção se existe screen pra windows, dançou :-P
--------------
6° Passo - iniciando o bot.
- Iniciando o screen com sessão exclusiva para o bot (terminal, konsole, xterm, etc.:
$screen -S bot (vai cair novamente no console)
- Iniciando o iroffer dentro da sessão screen:
$cd ~/iroffer
$iroffer nomedobot.config
- vai aparecer o bot logando no servidor e nos canais, após isto você estará no console do iroffer, onde tudo é via comando, tanto do iroffer, quanto de irc.
- querendo sair do console do iroffer sem fechar o bot basta digitar juntamente as teclas:
Ctrl + a + d (dessa forma sairá somente da sessão screen)
- querendo voltar ao console do iroffer:
screen -r bot (vai abrir a sessão do screen com o bot iroffer rodando)
--------------
7° Passo - utilização dos principais comando do bot.
Para saber os comandos do bot, basta digitar help
** HELP - Shows Help
Ou seja, help
** XDL - Lists Offered Files
Ou seja, xdl
** DCL - Lists Current Transfers
** DCLD - Lists Current Transfers with Details
Ou seja, dcl ou dcld
** QUL - Lists Current Queue
Ou seja, qul
** REMOVE n - Removes Pack n
Ou seja, remove numerodopack
** REMOVEDIR
Ou seja, o mesmo de cima, só que para todos os arquivos da pasta especificada.
** RENUMBER x y - Moves Pack x to y
Ou seja, renumber numeropack numerodopacknovo vai trocar o numero dos packs (util para organizar sua lista de packs)
** ADD - Add New Pack With
Ou seja add arquivo_que_voce_quer_por_no_bot adiciona um novo arquivo ao seu bot, sendo que deve ser sempre um caminho valido para o arquivo.
** ADDDIR - Add Every File in
Ou seja adddir pasta_que_voce_quer_por_no_bot adiciona todos os arquivos de uma pasta ao seu bot, sendo que deve ser sempre um caminho valido para a pasta.
* ADDNEW - Add any new files in
Ou seja addnew pasta_que_voce_quer_por_no_bot adiciona todos os arquivos NOVOS de uma pasta ao seu bot, sendo que deve ser sempre um caminho valido para a pasta. (eu prefiro utilizar sempre este, assim não preciso me preocupar se estou colocando arquivos em duplicidade no bot)
** MSG - Send a message to a user
Ou seja, msg nickdousuario mensagem Envia mensagem a um usuário especifico.
** MESG - Sends msg to all users who are transferring
Ou seja, mesg mensagem Envia mensagem a todos usuários baixando do bot.
** MESQ - Sends msg to all users in a queue
Ou seja, mesq mensagem Envia mensagem a todos usuários na fila do bot.
** MSGREAD - Show MSG log
Ou seja, msgread mostra o log do bot (quando quiser monitorar)
** MSGDEL - Delete MSG log
Ou seja, msgdel Deleta o log
** STATUS - Show Useful Information
Ou seja, status Mostra a situação global do bot
** REHASH - Re-reads config file(s) and reconfigures
Ou seja, rehash recarrega as configurações do bot (util quando você altera o arquivo nomedobot.config e não quer parar o bot)
** BOTINFO : Show Information about the bot status
Ou seja, botinfo mostra informações detalhadas sobre a situação do bot.
** SHUTDOWN : Shutdown iroffer, is "now", "delayed", or "cancel"
Ou seja: shutdown now fecha o bot na hora; shutdown delayed fecha o bot quando não tiver mais nenhum arquivo sendo baixado e shutdown cancel Cancela o comando "shutdown delayed"
Quando montei a primeira vez foi com o Ubuntu , mas essa configuração funciona com qualquer distribuição só editar o arquivo de conf como esta no tutorial e tudo funciona
Fonte: Devia Ter Previsto.
sábado, 10 de fevereiro de 2007
Ajude a manter a Wikipédia no ar - mesmo sem colocar a mão no bolso!
O BR-Linux.org lançou uma campanha para ajudar a Wikimedia Foundation a manter a Wikipédia no ar. Se você puder doar diretamente, é sempre a melhor opção. Mas se não puder, veja as regras da promoção do BR-Linux e ajude a divulgar - quanto mais divulgação, maior será a doação do BR-Linux, e você ainda concorre a um pen drive!
terça-feira, 6 de fevereiro de 2007
Trabalhando com datas usando PHP e MySQL
Há uns dias atrás resolvi desenvolver um pequeno sistema em PHP+MySQL para controle de contas. E quando se fala em controle de contas é fundamental que o programa "te avise" das contas que estão vencidas ou vencem no dia. Aí veio a preocupação como farei isso no MySQL? Como tratarei as datas se o formato do MySQL é diferente do formato usado no Brasil?


Pesquisando um pouco descobri duas funções fantásticas do MySQL (4.1>): DATE_FORMAT() e SRT_TO_DATE().
A DATE_FORMAT() é para a saída (usando o select) e recebe os parametros
campo e formato. Se você tem um campo de data chamado dt_saida por exemplo,
para exibir a data no formato dd/mm/YYYY faça assim:
SELECT *, DATE_FORMAT(dt_saida,'%d/%m/%Y) as Saida FROM tabela;
Já a SRT_TO_DATE() é para a gravação (insert) e é bem simples também:
INSERT INTO Tabela (dt_saida) values (STR_TO_DATE('09/03/2007','%d/%m/%Y'));
Caso você queira trabalhar com os campos das datas separadamente use a função EXPLODE() do PHP. Ela fuciona assim:
$DataSeparada = EXPLODE("/",$Data);
Se a variável $Data tiver o formato dd/mm/YYYY a variável $DataSeparada fica com os seguintes valores:
$DataSeparada[0] = dd
$DataSeparada[1] = mm
$DataSeparada[2] = YYYY
Isso é muito útil para desenvolver scripts de validação de datas ou no meu caso usei para cadastrar parcelamentos de contas.
Prontinho, simples rápido e fácil.
Porque troquei o Slackware pelo Debian Parte1
Bem, começo aqui meu relato sobre a decisão de abandonar o Slackware e rumar em direção ao Debian, pois é não foi do dia para a noite e nem foi uma decisão fácil.
Tudo começou com meu estágio na Ética Tecnologia, chegando lá tudo era Debian, e eu sempre fui meio avesso a essas "facilidades" do Debian. Usei o Kurumin por um bom tempo, aliás foi com ele que comecei a aprender GNU/Linux, mas sempre pensei "Esse tal de apt-get pra lá e apt-get pra cá não leva a nada, o negócio é baixar os fontes, compilar e instalar..." Por isso comecei a utilizar o Slackware.
E assim foi por um bom tempo, estudando esse tipo de instalação, me matando para resolver as dependências, e isso era muito bom, aprendi muito sobre o sistema e sobre as famosas dependências. Foi uma fase bem divertida haviam uns "./configure" com muitas opções, e quando digo muitas opções eu quero dizer que ocupavam linhas e mais linhas do meu bash =). Mas depois de um tempo comecei a sentir falta de algo como um "Gerenciador de Pacotes" e até tentei usar o tal do "Slap-get", que não é ruim, mas senti falta de bons repositórios e ele não resolve as dependências.
Então fui reapresentado ao Debian, e é claro eu li isso e foi algo muito legal, foi como "Seus problemas (com dependências) acabaram". Depois de aprender algumas mágicas do APT eu entrei em contato com o Aptitude, e mais uma vez fiquei surpreso. Somando o APT, Aptidude e bons repositórios oficiais a vida de "Linuxer" melhorou muito =).
Próximo passo: Um "tour" pelo Aptitude.










