O Projeto Software Livre Bahia (PSL-BA) é um movimento aberto que busca, através da força cooperativa, disseminar na esfera estadual os ideais de liberdade difundidos pela Fundação Software Livre (FSF), possibilitando assim a democratização do acesso a informação, através dos recursos oferecidos pelo Software Livre. Esta busca tem seus alicerces fundados na colaboração de todos, formando um movimento sinérgico que converge na efetivação dos ideais de Liberdade, Igualdade, Cooperação e Fraternidade.
O Projeto Software Live Bahia é formado pela articulação de indivíduos que atuam em instituições publicas e privadas, empresas, governos ou ONGs, e demais setores da sociedade. Além disso o projeto não é subordinado a qualquer entidade ou grupo social, e não estabelece nenhuma hierarquia formal na sua estrutura interna.
Joenio Costa: 4 meses sem comer carne
31 de Maio de 2010, 0:00 - sem comentários aindaNão é tanto tempo assim mas é tempo suficiente pra eu assumir que consegui parar de comer carne*. Vou descrever minha experiência sobre como parei e quais foram minhas principais motivações.
Motivações
1) Benefícios a minha saúde
A saúde está diretamente relacionada a alimentação. Se eu como muita porcaria é certo que num futuro (talvez próximo, talvez distante) irei colher os frutos desta má alimentação. O consumo de carne está relacionado a vários problemas de saúde e por isto eu resolvi parar. Em 21 Motivos Para Ser Vegetariano o autor diz:
"16- As seguintes doenças são comuns em comedores de carne: anemias, apendicite, artrite, câncer de mama, câncer de cólon, câncer de próstata, prisão de ventre, diabetes, pedras na vesícula, gota, pressão alta, indigestão, obesidade, varizes. Vegetarianos há longo tempo visitam hospitais 22% menos que carnívoros e por pouco tempo. Vegetarianos têm 20% menos colesterol que carnívoros e isso reduz consideravelmente ataques cardíacos e câncer ."
2) Atrocidades cometidas contra os animais
Na produção de carne e produtos alimentícios a base de animais são cometidos atrocidades que agente não vê na TV. É impressionante como os animais são tratados e como se chegou a esse ponto.
Além das conversas com Humberto Júnior e Aurélio Heckert sobre este tema bastou eu assistir ao documentário A Carne É Fraca para ficar convencido.
Como parei
Sempre pensei que seria necessário, antes de parar de comer carne, enriquecer minha dieta com bastante vegetal, verdura, e essas coisas saudáveis que eu nunca dei muita bola. Mas ao ler um pouco sobre o assunto vi que não é necessário ter uma dieta tão perfeita assim, a carne não tem tantos benefícios nutricionais quanto eu pensava e tirar ela da minha dieta não iria causar nenhum prejuízo. A maioria das coisas que li estão linkadas no blog do Aurium que fez um ótimo resumo sobre Vegetarianismo citando várias fontes interessantes.
Foi assim que em Fevereiro/2010 tomei a decisão de parar de comer carne*, cortei completamente a carne e seus derivados e tenho vivido muito bem até aqui sem sofrer nenhum trauma.
Benefícios percebidos
Ainda não tenho resultados práticos em relação a minha saúde mas uma coisa mudou imediatamente: passei a me preocupar mais com o que como no dia-a-dia e procuro fazer uma alimentação mais saudável e balanceada.
Pretendo ir a um médico nos próximos meses fazer uma bateria de exames para verificar se estou com carência de alguma vitamina, mineral ou qualquer outra coisa, provavelmente irei postar aqui os resultados.
* Ainda continuo comendo peixe, alguns acham que não é carne mas é! Porque não paro de comer peixe também? Ah, porque eu não quero.
Leonardo Couto Conrado: IPFW - Instalação do IPFW com suporte ao IPFW2 sobre FreeBSD
31 de Maio de 2010, 0:00 - Um comentárioSe não conhece sobre IPFW leia o artigo no link abaixo:http://conteudoopensource.blogspot.com/2010/05/introducao-ao-ipfw-instalando.html
O IPFW2 já vem nativo apartir da versão 5x do FreeBSD, não sendo necessária nenhuma modificação no kernel(inclusão do options IPFW2 no kernel) do sistema para utilizar o mesmo. Essa recompilação acontecia apenas na versão 4x.
# cd /usr/src/sbin/ipfw
se o diretorio acima não existir você deverá instalar esses src's através do comando sysintall
# sysinstall
Navegue pelo menu do sysinstall > configure > distributions e marque a opção:
[ X ] ports
depois em configure > distributions > src maque as opções:
[ X ] base
[ X ] lib
[ X ] sbin
[ X ] sys
Voltando ao userland :
# cd /usr/src/sbin/ipfw/
Recompile o ipfw:
# make clean
# make -DIPFW2
# make -DIPFW2 install
Recompile a libalias:
# cd /usr/src/lib/libalias/
# make clean
# make -DIPFW2
# make -DIPFW2 install
Vamos agora modificar o nosso kernel padrão(GENERIC) fazendo uma cópia do kernel default:
# cd /usr/src/sys/i386/conf/
# cp GENERIC NOME_DO_SEU_SERVIDOR
# vi NOME_DO_SEU_SERVIDOR
---> Procure a linha ident no kernel que foi copiado(NOME_DO_SEU_SERVIDOR) e modique-a colocando ao invés de:
ident GENERIC
para:
ident nomeDoSeuServidor
Coloque essas linhas no final do kernel copiado(NOME_DO_SEU_SERVIDOR):
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options IPDIVERT
options DUMMYNET
-->salve e saia.
Vamos agora compilar e instalar o novo kernel(este passo irá demorar bastante):
# cd /usr/src/
Compilando o kernel.
# make buildkernel KERNCONF=NOME_DO_SEU_SERVIDOR
Instalando o novo kernel.
# make installkernel KERNCONF=NOME_DO_SEU_SERVIDOR
Dica:
Esse processo do make para recompilar e instalar o novo kernel modificado, exige um pouco de memória RAM em torno de 292 MB, para não acabar utilizando o swap, se não houver memória suficiente o processo será morto pelo kernel e lançará uma excessão ocasionando na parada da instalação do novo kernel. Outro ponto importante é do espaço livre em disco utilize pelo menos 5 GB para a participação do seu FreeBSD.
Carlos José Pereira: Programação de GUIs utilizando GTK - Parte 1
31 de Maio de 2010, 0:00 - sem comentários ainda.
Começo a partir de hoje uma série de posts para compartilhar minha experiência no aprendizado da biblioteca GTK, utilizada para desenvolvimento de software com interface gráfica para o usuário (GUI, Graphical User Interface).
Quero ressaltar que não sou um grande conhecedor da biblioteca, pelo contrário, estou ainda em processo de aprendizado. Tenho apenas um software completo desenvolvido com interface em GTK, que provavelmente serve muito mais como exemplo de como NÃO programar do que qualquer outra coisa ... :-) (apesar da ajuda inestimável do amigo Bruno Boaventura!).
O objetivo aqui é apenas compartilhar o conhecimento, mas mais que isso, motivar outras pessoas a ingressarem no mundo GTK, GNOME, e quem sabe um dia nos tornarmos desenvolvedores/colaboradores dessa que é a melhor interface gráfica do mundo!!! :-) (usuários KDE, por favor, levem na brincadeira... :-) )
O livro que estou utilizando para esse estudo é o excelente "Foundations of GTK+ Development", de Andrew Krause (Apress). Recomendo fortemente sua aquisição para quem deseja programar com GTK seriamente. O livro é completo e objetivo. Para cada elemento da biblioteca, o autor apresenta um ou mais códigos-fonte de exemplo, mostrando suas características fundamentais. Para aqueles com poucos recursos, a Apress comercializa uma versão PDF (ebook), a um preço um pouco mais acessível do que a versão em papel, principalmente porque não é preciso pagar o frete para o envio da versão em papel, que as vezes custa mais que o próprio livro... Um arquivo com todos os códigos-fonte dos exemplos do livro pode ser baixado gratuitamente no site oficial do livro, neste link.
Conto com a ajuda e a colaboração dos amigos que estiverem lendo isso, caso percebam algum erro no conteúdo apresentado, ou mesmo para proporem alguma adição que explique melhor algum ponto.
Ah, mais uma coisinha: o requisito básico para se acompanhar estes posts (e, de certa forma, pra estudar GTK) é um forte conhecimento da linguagem C básica, incluindo PONTEIROS.
***************
Pra começar: GTK+ é uma biblioteca escrita na linguagem C, sob o paradigma da orientação a objetos.
Ué, (dirá você), mas a linguagem C NÃO é orientada a objetos!! Como pode?
Esse é um erro comum de muita gente boa. Uma coisa é um paradigma de programação, ou seja, uma forma de organizar as idéias para criar um programa de computador. Outra coisa são as características e os recursos de uma linguagem de programação específica. Uma coisa não está completamente amarrada a outra. O que acontece é que existem linguagens de programação MAIS ADEQUADAS para utilização com um certo paradigma. Por exemplo, as linguagens C++ e Java foram criadas com recursos que tornam a programação no paradigma orientado a objetos mais confortável. Mas isso não significa que não se possa programar "orientado a objetos" com a linguagem C. O que vai acontecer é que teremos um "trabalhinho adicional", já que C não vem preparada para orientação a objetos. Por sorte, este trabalhinho já está pronto, na figura da biblioteca GObject, utilizada pela biblioteca GTK.
Vamos neste post, portanto, ver algumas características bem básicas do paradigma de orientação a objetos, fundamentais para que possamos entender como programar utilizando GTK.
Mas atenção! O que vai ser apresentado aqui é um resumo básico, introdutório, e principalmente, incompleto! Portanto, se você é aluno de computação, envolvido com as questões de orientação a objetos, não deixe de ler alguma referência oficial sobre o assunto. E depois volte aqui pra me ajudar a complementar o texto... :-)
DIFERENÇAS FUNDAMENTAIS ENTRE OS PARADIGMAS "PROCEDURAL" E "ORIENTADO A OBJETOS"
No paradigma procedural, temos duas características fundamentais:
- código e dados bem separados;
- o código atua sobre os dados;
Por exemplo, um programa que faça o gerencimento de uma conta bancária, no paradigma procedural, poderia ser representado pela seguinte figura:
Para, por exemplo, verificar o saldo da conta de "beltrano", o código (função) "saldo" atua sobre os dados da conta de beltrano:
No paradigma orientado a objetos, código e dados são reunidos em entidades chamadas "objetos". Um objeto possui características (dados, atributos) e também um comportamento (o objeto "faz" alguma coisa, ele responde a solicitações, é o seu código).
Repetindo o exemplo acima, para verificar o saldo da conta de "beltrano", agora nós enviamos uma "mensagem" para o objeto "conta de beltrano", para que esse objeto nos diga qual é o saldo da conta. Ou seja, este objeto tem um dado (o valor do saldo), e um comportamento (o objeto sabe responder quando lhe perguntamos seu saldo). Uma analogia: o objeto "ser humano" tem um dado (seu nome), e um comportamento (sabe responder quando lhe perguntam o nome). Se eu mandar, para um objeto "ser humano" a mensagem "qual é o seu nome?", o objeto ser humano devolve o valor armazenado na variável NOME... :-)
Resumindo: o objeto é responsável, ele mesmo, por verificar (e exibir) o saldo da conta.
CLASSE: MODELO GENÉRICO DE UM OBJETO
Os objetos são criados a partir de um "modelo", que diz como o objeto será (quais são seus atributos, dados, e qual é seu comportamento, código). Por exemplo, podemos definir a classe "ser humano", e a partir desse modelo, criar efetivamente os objetos "Ana", "Bianca", "Claudia", etc...
Eu comparo, mal-e-porcamente, uma classe a uma struct em C. Com a struct, temos dois momentos: o de definição da struct, e o de efetivamente criar uma variável a partir da struct. Assim, por exemplo,
struct AGENDA
{
. char NOME[30];
. char EMAIL[20];
}
... na verdade cria apenas um modelo de como será a struct AGENDA. Mas não há efetivamente nada criado na memória para guardar NOME e/ou EMAIL. Com a seguinte instrução,
struct AGENDA MinhaAgenda;
... aí sim, criamos na memória a variável "MinhaAgenda", e dentro dela temos NOME e EMAIL.
Uma classe é, portanto, uma "struct metida a besta", que além de dados, tem também código. :-)
Vamos ver um exemplo do que poderia ser uma classe "conta bancária", e alguns objetos gerados a partir dela:
Na figura, "instanciar" é simplesmente o processo de gerar um objeto, a partir de uma classe.
Uma classe, portanto, define todas as características comuns a um tipo de objeto.
Outro conceito pertencente ao paradigma de orientação a objetos é o de ENCAPSULAMENTO. Como o nome diz, traz a idéia de "cápsula", ou seja, a idéia de que não podemos ver o que tem dentro da cápsula. Outra analogia (bem simplória), numa cápsula de remédio, não sabemos o que tem dentro da cápsula (as várias substâncias e suas respectivas quantidades). Também não podemos (ou pelo menos, não devemos... :-) ) abrir a cápsula e manipular diretamente algum ingrediente específico.
Da mesma forma, um objeto não pode (ou não deve...) manipular diretamente os dados internos de outro objeto. Assim, no exemplo visto, só quem pode manipular o saldo (dado) que existe no objeto "conta de fulano" é o código que também existe dentro do mesmo objeto... não faria sentido o código que está dentro do objeto "conta de beltrano" manipular a variável SALDO existente dentro do objeto "conta de fulano"!!
ALGUNS TERMOS DA O.O.
Atributos: dados armazenados dentro dos objetos
Métodos: as funções (ou seja, o código) internas aos objetos, que manipulam os atributos
Envio de mensagem: dizemos que um objeto "envia uma mensagem" a outro objeto, para que este último faça alguma coisa. Por exemplo, podemos ter o objeto "caixa eletrônico da rua 5" enviando a mensagem "mostre o saldo" para o objeto "conta de fulano". O objeto "conta de fulano" então realiza esta ação, e devolve o valor para o objeto "caixa eletrônico", que vai mostrar na tela, imprimir, ou o que quer que seja.
Na prática, é uma chamada de função, ou melhor, a execução de um método presente em um objeto.
Em um código-fonte fictício, isso seria:
objeto "caixa eletrônico"
{
. ...
. conta_de_fulano.verificar_saldo();
. ...
}
Ou seja, estamos chamando a função (método) "verificar_saldo()", que existe dentro do objeto "conta_de_fulano".
Interface de um objeto: o conjunto de métodos (e seus parâmetros) que existem em um objeto.
HERANÇA
Essa é uma das características fundamentais da orientação a objetos, cujo conhecimento é muito importante para programação utilizando a biblioteca GTK.
A herança é um mecanismo que permite basear uma nova classe na definição de uma classe previamente existente. Ou seja, não precisamos ficar "reinventando a roda" a todo momento. Pega-se algo que já está pronto, e adicionamos outros recursos. Usando herança, sua nova classe herda todos os atributos e métodos presentes na classe previamente existente.
Como exemplo, vamos pensar em duas classes: "homem" e "mulher". Serão classes diferentes, já que apresentarão diferenças de comportamento entre si (por exemplo, os objetos "homem" terão o método "entender a lei do impedimento"... os objetos "mulher" terão o método "reconhecer a cor fúcsia"... :-) ). Só que, além de diferenças, terão também características em comum, como por exemplo, ambos os objetos terão um "nome" e uma "idade", e ambos os objetos saberão "dizer seu nome" e "dizer sua idade". Desta forma, podemos criar uma classe "ser humano", com essas características básicas, e A PARTIR DELA, as duas classes "homem" e "mulher", com as características específicas de cada uma.
Como os objetos "filhos" herdam todas as características do objeto "pai", independentemente do tipo de objeto (ser humano, homem, mulher), a todos eles poderemos mandar a mensagem "dizer nome", e todos responderão corretamente.
Isso nos leva a outra característica bastante interessante da orientação a objetos:
POLIMORFISMO
Significa "muitas formas" (dããã...). Permite que um único nome de classe ou nome de método represente um código diferente, selecionado por um mecanismo automático. Trocando em miúdos: podemos ter códigos diferentes (que fazem coisas diferentes), mas com o mesmo nome de método, em objetos (classes) diferentes. Na hora da execução, o código correto é selecionado pra execução, a partir do tipo do objeto para o qual se está enviando a mensagem.
Vamos tentar um exemplo "prático" pra deixar isso mais claro.
Imagine o seguinte "código-fonte", fictício, numa linguagem "parecida" com C. Neste código, vamos "definir" a classe "Pessoa", e classes filhas dela, "Pessimista", "Otimista", "Timido" e "Extrovertido". Em todas as classes, vamos definir o mesmo método, "fale()", só que com código diferente em cada uma delas.
classe Pessoa
{
. void fale()
. {
. printf("Eu sou uma pessoa comum\n");
. }
}
classe Pessimista, filha de Pessoa
{
. void fale()
. {
. printf("O copo está meio vazio...\n");
. }
}
classe Otimista, filha de Pessoa
{
. void fale()
. {
. printf("O copo está meio cheio!\n");
. }
}
classe Timido, filha de Pessoa
{
. void fale()
. {
. printf("oi...\n");
. }
}
classe Extrovertido, filha de Pessoa
{
. void fale()
. {
. printf("Olá! blabla..! voce sabia que ... bla bla!\n");
. }
}
Como dissemos anteriormente, uma classe é apenas um modelo. Vamos agora criar objetos, a partir das classes definidas acima (obs: qualquer semelhança com a forma de criar variáveis em C, "tipo nome_variável;" não terá sido mera coincidência... :-) )
Pessimista Paulo; /* Paulo é um objeto do tipo "Pessimista" */
Otimista Otavio;
Timido Tiago;
Extrovertido Eduardo;
Vamos agora criar um vetor, para armazenar objetos do tipo "Pessoa":
Pessoa Galera[4];
... ou seja ...
Galera[0] vai armazenar um objeto do tipo Pessoa;
Galera[1] vai armazenar um objeto do tipo Pessoa;
Galera[2] idem...
Galera[3] idem...
E para fechar o exemplo, vamos fazer:
Galera[0] = Paulo;
Galera[1] = Otavio;
Galera[2] = Tiago;
Galera[3] = Eduardo;
Oras... dirá você... mas se você criou um vetor para armazenar "Pessoas", como pode armazenar outra coisa que não "Pessoas" ? Por exemplo, Galera[0] foi criado para armazenar um objeto do tipo "Pessoa", mas estamos armazenando um objeto do tipo "Pessimista" (Paulo)!!
Isto é possível porque a classe "Pessimista" é derivada da classe "Pessoa", ou seja, de certa forma, um "Pessimista" É uma "Pessoa"! O mesmo acontece com as variáveis armazenadas nos outros elementos do vetor.
GTK faz uso extensivo deste recurso, por exemplo, sejam duas classes:
- GtkWidget: objeto gráfico básico, genérico;
- GtkWindow: uma janela (com título, botões de max, min, fechar...)
Independente das "classes intermediárias", podemos dizer que um GtkWindow É um GtkWidget.
Completando o exemplo... como fazemos para enviar a mensagem "fale()" para cada objeto, já que são objetos diferentes, e cada um deveria falar uma coisa diferente?
Bem, sem o recurso da herança, teriamos que ter um monte de IF's aninhados, testando o tipo de cada objeto, e aí chamando a função correta: "se for pessimista, fala isso... senão, se for otimista, fala aquilo... senão... ".
Com o recurso da herança, e do polimorfismo, essa tarefa fica MUITO mais fácil:
for ( CONT=0 ; CONT<4 ; CONT++ )
{
Galera[CONT].fale();
}
Passo-a-passo:
- inicializa CONT com 0;
- CONT é menor que 4? SIM! entra no laço.
- chama o método "fale()" na variável Galera[0]
- agora é que está o "pulo do gato": Galera[0] é do tipo Pessoa, mas nela está armazenado um objeto do tipo "Pessimista", logo, AUTOMATICAMENTE, vai ser chamado o método "fale()" da classe Pessimista, e não o da classe Pessoa!!!
- fim do laço: CONT fica igual a 1, ainda menor que 4, entra no laço novamente
- chama o método "fale()" na variável Galera[1]
- o objeto armazenado em Galera[1] é "Otavio", do tipo "Otimista", então automaticamente vai ser chamada a função "fale()" da classe "Otimista"
- fim do laço: CONT fica igual a 2, entra no laço novamente
- e por aí vai...
Assim, a saída que teremos, será:
O copo está meio vazio
O copo está meio cheio
oi...
Olá !! bla bla bla !! ...
Mais um exemplinho... seja uma função qualquer, que receba como PARÂMETRO um objeto do tipo "Pessoa", e retorne um inteiro com a idade dessa pessoa. A função seria escrita assim (na nossa "pseudo" linguagem C... ):
int Diz_Idade ( Pessoa FulanoDeTal );
{
...
...
}
A seguinte chamada dessa função é válida:
...
Diz_Idade( Paulo );
...
Deixando claro: a função espera receber um parâmetro do tipo "Pessoa". Estamos passando o objeto "Paulo", que é do tipo "Pessimista". Nenhum problema aí, já que "Pessimista" É uma "Pessoa" (pela definição de herança!). As chamadas abaixo também são válidas:
Diz_Idade( Otavio );
Diz_Idade( Tiago );
Diz_Idade( Eduardo );
Pra fechar esse post-monstro, um exemplinho com GTK, pra ir tomando o gosto...
MAS ATENÇÃO!! O exemplo está INCOMPLETO e SIMPLIFICADO!!
1: int main( ... )
2: {
3: GtkWidget *window;
4:
5: ...
6:
7: window = gtk_window_new ( ... );
8:
9: gtk_window_set_title ( window, "Hello World!!" );
10:
11: ...
12: }
Vamos ver passo a passo?
linha 3: estamos criando uma variável de nome "window", que é do tipo "ponteiro" para o tipo de dados GtkWidget (como já vimos, o tipo de dado básico de todos os objetos em GTK);
linha 7: utilizamos a função "gtk_window_new" que cria toda a definição necessária para uma janela gráfica na memória do computador. Esta função retorna o endereço inicial desta definição (analogia: comando malloc, cria uma área na memória, e devolve o endereço inicial da área). Armazenamos este endereço na variável "window".
linha 9: utilizamos a função "gtk_window_set_title" para definir o texto que será exibido como título da janela. Passamos como parâmetros, obviamente, a variável que tem o endereço da janela cujo título queremos definir (neste exemplo, variável "window"), e o texto que queremos como título (a string "Hello World!").
Aqui podemos ver a herança em ação: a função gtk_window_set_title espera receber de parâmetro um objeto do tipo GtkWindow. Mas, o que passamos foi a variável "window", que é um GtkWidget. Ora, como já vimos no exemplo anterior, e também na hierarquia da classe GtkWindow, uma GtkWindow É um GtkWidget. Logo podemos passar a variável "window" para esta função sem problemas.
Repetindo: este exemplo está SIMPLIFICADO e INCOMPLETO. Foi só pra ilustrar o que vimos até aqui.
Chega por hoje!
Abraços a todas e a todos!
Carlão
Wilson Baião: Configurando o DNS com BIND9 no Ubuntu
31 de Maio de 2010, 0:00 - sem comentários ainda
Devido ao projeto que está sendo desenvolvido na CSLFIB, resolvi postar aqui os tutoriais que utilizaremos para configurar o DNS, FTP, e o servidor WEB.
>Instalando o Bind 9
Primeiro passo é baixar e instalar o Bind 9:
# sudo apt-get install bind9
Para verificar se o bind está rodando, digite:
$ ps -aux | grep named
Caso não esteja rodando ainda, digite:
# sudo /etc/init.d/bind9 start
>Configurando named.conf
Agora vamos aos arquivos de configuração. Todos os arquivos se encontram no diretório /etc/bind.
Primeiro você deve editar o arquivo named.conf, onde estão todas as zonas que no caso são os endereços de sites pela qual a máquina vai responder.
Você deverá incluir a seguinte linha no arquivo named.conf:
#Para zona de Direto!
zone "seusite.com.br" { type master; file "db.seusite.com.br"; };
Exemplo:
zone "alemanha.com.br" {
type master;
file "db.alemanha.com.br";
};
O próximo passo será criar o arquivo db.seusite.com.br.
>Criando o arquivo db.seusite.com.br
Aqui ficarão as configurações do seu endereço!
$TTL 604800
@ IN SOA seusite.com.br. seusite.com.br. (
2004111700 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS nomedamaquinadns
@ IN MX 10 seusite.com.br.
Nomedamaquinadns IN A ipdasuamaquina
www IN CNAME nomedamaquina
ftp IN NAME nomedamaquina
>Testando o servidor
Para checar as configurações digite:
# named-checkconf
Para checar as zonas digite:
# named-chekzone db.seusite.com.br
Para reiniciar digite:
# /etc/init.d/bind9 restart
Para testar se está tudo funcionando use o nslookup:
$ nslookup
> server nomedasuamaquina
> www.seusite.com.br
Se aparecer o IP da sua máquina está tudo ok!
>Configurando Zona Reversa
Dentro do arquivo named.conf cria a segunte zona:
zone "seu.ip.reverso.in-addr.arpa"{ ( exemplo 1.168.192 )
type master;
file "/etc/bind/db.seu.ip.reverso";
};
pronto agora devemos criar e configurar o arquivo db.seu.ip.reverso exemplo 1.168.192!
>Configurando o arquivo db.seu.ip.reverso
$TTL 604800
@ IN SOA seusite.com.br. seusite.com.br. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS maquina.seusite.com.br.
1 IN PTR maquina.seusite.com.br.
3 IN PTR www.seusite.com.br.
>Adicionando servidor secundário
Em outra máquina que esteja instalado o bind, coloque essas configurações para que ela seja servidor escravo:
No arquivo named.conf:
zone "seusite.com.br" {
type slave;
masters {ipdoservidormestre;};
file "db.seusite.com.br";
};
O servidor escravo irá criar sozinho o arquivo db.seusite.com.br.
Funcionou Gostou então comenta pô!
Wilson Baião: Oração de NERD Byte Nosso
31 de Maio de 2010, 0:00 - sem comentários aindaRecebi esse email hoje salafrário mas muito engraçado!
Funcionou, Gostou, Então comenta Pô!
Guilherme Jr.: pyCalculadora 0.1
30 de Maio de 2010, 0:00 - sem comentários aindaEstou preparando uma atualização para o pyContas (ainda sem previsão de data de lançamento) e nela eu vou precisar de uma calculadora. Eu sei que todos os Sistemas Operacionais ou Ambientes Gráficos tem uma calculadora, mas eu queria que estivesse dentro do próprio aplicativo. Então arregacei as mangas e desenvolvi o pyCalculadora (minha esposa adora minha criatividade para nomes de programas, hehehehehehehe).
Essa é a versão 0.1 ainda, mas faz tudo o que eu queria, na verdade quase tudo, eu queria que tivesse calculo de porcentagem, mas assumo que não entendi exatamente como uma calculadora faz esse calculo e também não tive paciência para pesquisar isso, se alguém souber por favor escreva no comentário que eu implemento.
Críticas e sugestões são SEMPRE bem vindas, se alguém quiser criar um logotipo melhor, esteja a vontade, assumo que meus conhecimento em inkscape e criatividade são bastantes limitados.
Para baixar é só clicar no link “Programas feitos por mim“
Leonardo Couto Conrado: IPFW - Introdução ao IPFW sobre FreeBSD
27 de Maio de 2010, 0:00 - sem comentários aindaO IPFW ou IPFIREWALL é o filtro de pacotes nativo do FreeBSD, sendo também chamado de IPFW, que é a interface para controle do IPFIREWALL. O IPFIREWALL faz o monitoramento de cada pacote em cada conexão feita à máquina, determinando por meio das regras definidas pelo IPFW qual é o tratamento dado a estes pacotes. As regras são lidas de cima para baixo, e podem determinar se o pacote será liberado, bloqueado, encaminhado etc.Atualmente podemos ativar o suporte a IPFW2. O IPFW2 é uma nova versão do IPFW, com maior flexibilidade no formato das regras e algumas funcionalidades a mais, entre elas: suporte a regras não específicas para TCP ou UDP com número de porta, suporte a blocos OR, keepalives para sessões stateful e filtragem por cabeçalho MAC.
Wilson Baião: Elastic: Crie temas em 1 minuto para o Wordpress
27 de Maio de 2010, 0:00 - sem comentários aindaAs plataformas CMS (Content Management System), têm vindo a tornar-se a base para sites de empresas, jornais online, blogs, etc. Uma das plataformas CMS mais conhecidas é o Wordpress, utilizado por exemplo pelo The New York Times, pela rede de blogs da CNN, TechCrunch, GigaOM e Pplware.com, entre outras grandes referências.
Por norma esta é também uma plataforma na qual assentam vários blogs pessoais, no entanto, na hora de montar uma plataforma Wordpress surge sempre a mesma dúvida: Que tema (theme) usar?
Pode encontrar claramente essa resposta na Internet, lá encontrará vários sites onde pode descarregar muitos temas para Wordpress, mas nem sempre esses temas disponibilizados cumprem os novos requisitos e quase nunca são os que “nos enche as medidas”. Então porque não fazer o nosso próprio tema?
O Elastic Theme Editor é um plugin bastante interessante e que nos permite criar os nossos temas para o Wordpress de forma muito simples.
Algumas características do Elastic Theme Editor:
- Drag and drop em termos de objectos para personalizar o tema a criar
- Fontes personalizadas
- Fácil organização, baseada em tabelas/células
Como instalar
Passo 1 – Fazer o download do ficheiro elastic0.0.3.zip
Passo 2 – Fazer o upload para a pasta /wp-content/plugins/
Passo 3 – Activar o plugin (Elastic Theme Editor) na pagina de plugins
Passo 4 – Aparecerá uma sub-página com um editor para começar a produzir o seu tema. Depois de finalizado, o tema estará disponível na página “Temas”, sendo apenas necessário proceder à sua activação.
Veja o vídeo para ver como funciona:
Esta poderá ser sem dúvida uma óptima e simples solução para quem pretende desenvolver os seus próprios templates. Haja imaginação
Fonte: PeopleWear
Funcionou, Gostou, Então comenta Pô!!!!
Wilson Baião: Bem que eu disconfiava!!!!
27 de Maio de 2010, 0:00 - sem comentários ainda
Fonte: StarFighterCarlao
Wilson Baião: Aptana, o substituto do Dreamweaver para Linux
27 de Maio de 2010, 0:00 - sem comentários aindaGalera estive desenvolvendo algumas coisas em php aqui pra secretaria e em alguns momentos senti falta de software que me ajudasse em algumas coisas como pré-visualização principalmente se lindando com CSS e com isso procurei uma ferramenta legal pra facilitar o desenvolvimento afinal não vou reinventar a roda, daí tentei utilizar o Quanta+ mas não gostei muito, tentei o NVU, pior, dai achei essa ferramenta que me fez pensar em desistir do Dreamweaver de uma vez , com suporte as várias linguagens para páginas Internet, nomeadamente, PHP, CSS, JavaScript e HTML. Esse é o Aptana.
O Aptana é um IDE multi-plataforma open-source baseada no Eclipse e que suporta uma grande quantidade de linguagens de WebDesign. É compatível com as seguintes linguagens: CSS, HTML, JavaScript, PHP, Ruby on Rails, Adobe Air e muito mais, bastando, para isso, instalar o plugin apropriado.
Claro que o facto de ser compatível com estas linguagens não o torna um grande programa, aliás o Gedit é compatível com essas linguagens, e coloriza o código, mas não é, de forma alguma, um IDE aconselhável. O que torna o Aptana especial são as várias características que tornam o desenvolvimento mais rápido e simples, aproximando-o assim, do Dreamweaver.
Uma das características mais importantes de um IDE é o assistente de desenvolvimento que apresenta as várias funções/tags disponíveis para programar. Junto a esse assistente, normalmente, vem também um autocomplete de código que, no caso de haver apenas uma função ou tag disponível, ele completa automaticamente. Como é óbvio, o Aptana tem essa funcionalidade e, para além disso, essa funcionalidade é ainda mais completa que o normal, pois diz se determinada função é compatível com o Internet Explorer ou Firofox.
Outra funcionalidade importante do Aptana é a capacidade de mostrar o resultado do código programado. O Aptana, para além da clássica opção de Preview, ainda tem uma funcionalidade extremamente importante que permite “partir” o ecrã a meio e mostrar de um lado o código e do outro o resultado. Para activar essa opção vá a Window→Preferences e, na nova janela: Aptana→Editors→HTML→Vertical Split View e reinicie o programa.
Como qualquer IDE, o Aptana também tem funcionalidades de indexação, tais como amostragem das várias funções programadas/disponibilizadas pelas bibliotecas importadas, amostragem dos ficheiros do projecto que estão no seu PC ou em FTP. Caso o utilizador goste de utilizar um sistema de controlo de versões, o Aptana continuará a ser a melhor opção, pois é compatível com o SVN.
Por fim, como bom IDE que é, o Aptana tem um sistema de Debug que é extremamente importante para qualquer programador.
O Aptana tem ainda muitas outras funcionalidades que cada utilizador deverá procurar ou na própria aplicação ou através de possíveis plugins que possa instalar para tornar o ambiente de trabalho mais pessoal e, por isso, mais eficiente.
Instalação
Actualmente, e infelizmente, ainda não existe nenhum repositório que nos possibilite instalar e manter o Aptana actualizado. Por isso, para o instalar, será necessário fazer download do ficheiro de instalação e, posteriormente, será necessário criar os atalhos manualmente.
Desta forma, comece por visitar a página seguinte e faça download do ficheiro do programa:
Depois de fazer download do programa, descompacte-o e guarde a pasta resultante numa localização segura pois é o próprio programa e haverá links a apontar para a pasta. No meu caso, guardei o programa numa pasta oculta chamada “.bin” da minha pasta pessoal, ou seja, em:
/home/claudio/.bin
Depois, para executar o programa, basta dar duplo clique no ficheiro “AptanaStudio” da pasta descompactada. Para evitar trabalho desnecessário deverá criar um atalho no Menu Principal do Painel do Gnome.
Crie um atalho para o Aptana
Para criar um atalho no Menu do Painel do Gnome, clique na tecla da direita do rato em cima do menu e escolha a opção “Editar Menus”. Na janela que abrir, seleccione a secção onde quer adicionar o programa (aconselho a secção Desenvolvimento) e clique no botão “Novo Item”. Na nova janela deverá preencher da seguinte forma:
- Nome: “Aptana Studio”
- Comando: Clique no botão “Navegar” e navegue até ao ficheiro “AptanaStudio” referido acima.
- Comentário: “IDE para WebDesign”
Wilson Baião: Nova Versão do Script Ubuntu Perfeito
27 de Maio de 2010, 0:00 - sem comentários aindaAí galera saiu a nova versão do script Ubuntu perfeito para Ubuntu 10.04 Lucid, o link para download é :
https://sourceforge.net/projects/ubuntu-perfeito/files/
Algumas das mudanças:
- O Skype agora é instalado a partir do repositorio partner que é diferente da versão descarregada diretamente do site do Skype. Parece que a versão contida no repositório é melhor.
- Quando antes era utilizado um proxy, um verbose na tela revelava a URL que poderia conter a senha, isso foi corrigido e essa URL não será mais exibida.
- Foi adicionado uma opção para completar a instalação do idioma que em algumas instalações fica incompleta
- Novo VirtualBox 3.2 (recomendo)
- Nova opção para remover o mono do sistema, neste caso, instala o gnote no lugar do tomboy e shotwell no lugar do f-spot.
- Um bug impedia que certos pacotes fossem removidos do seu sistema, esse problema foi corrigido.
Fonte: Hamacker`s Place
Funcionou, Gostou, Então comenta Pô!
Pontão JuntaDados: Equipe juntaDados foi habilitada para Prêmio Economia Viva
26 de Maio de 2010, 0:00 - sem comentários aindaA Equipe juntaDados com o projeto Projeto Mercado Cultura Livre está concorrendo aoPrêmio Economia Viva . Confira a baixo a lista parcial do Ministério da Cultura.
Prêmio Economia Viva
http://www.cultura.gov.br/site/2010/05/25/novos-resultados/
Estão habilitados projetos de 102 proponentes, que concorrem a, no mínimo, dez prêmios de até R$ 120 mil. Serão destacadas propostas de Pontos de Cultura e/ou organizações não governamentais sem fins lucrativos que desenvolvam soluções criativas de produção, escoamento em rede e/ou articulação dos elos de sistemas produtivos nos diversos segmentos culturais.
Pontão JuntaDados: Projeto Universidade Livre é habilitado para Prêmio Cultura Digital do Ministério da Cultura
26 de Maio de 2010, 0:00 - sem comentários aindaO Projeto A Universidade Livre e os Encontros de Cultura Livre - Consolidando a rede de generosidade de Conhecimentos em Cultura Digital, iniciativa do Pontão de Cultura Digital juntaDados, sediado na Universidade do Estado da Bahia (UNEB) foi habilitado para concorrer ao Prêmio Cultura Digital do Ministério da Cultura. Veja o resultado abaixo.
Prêmio Cultura Digital
http://www.cultura.gov.br/site/2010/05/25/novos-resultados/
Dentre as 116 instituições que tiveram suas propostas aprovadas, serão selecionadas 40 iniciativas em duas categorias: regional/nacional, dez prêmios de R$ 100 mil, e local/estadual, 30 prêmios de R$ 50 mil. A premiação objetiva reconhecer e valorizar os Pontos de Cultura e/ou organizações não governamentais sem fins lucrativos que desenvolvem ou apoiam projetos relacionados à Cultura Digital.
http://www.cultura.gov.br/site/wp-content/uploads/2010/05/cultura-digital.pdf
Live Blue News: Projeto PIBIC desenvolverá novo software KDE para Educação Musical
26 de Maio de 2010, 0:00 - sem comentários aindaO Live Blue (KDE Bahia) está feliz em anunciar a aprovação do projeto PIBIC/FAPESB que desenvolverá um novo software para Educação Musical como parte do projeto KDE. Motivado pela sanção presidencial da Lei 11.769/2008, que altera a Lei de Diretrizes e Bases da Educação para dispor sobre a obrigatoriedade do ensino de música na educação básica, o projeto focará na implementação de funcionalidades para geração colaborativa de conteúdo (via plugins e a tecnologia Get How New Stuff do KDE), integração de conteúdo on-line (Wikipedia, YouTube, Flicker, etc), flexibilização dos backends para reprodução de áudio (Phonon / Qt Multimedia, timidity++ / freepats, etc) e integração via MIDI com instrumentos musicais.
Mais detalhes do projeto podem ser encontrados aqui.
Aguardem as futuras notícias e bom trabalho para nós
Lucas Almeida Rocha: Distraction-free Blogging
26 de Maio de 2010, 0:00 - sem comentários aindaFollowing on my online uncluttering journey and very inspired by existing distraction-free text editors (WriteRoom, PyRoom, and others), I decided to tweak WordPress a bit so that I could have a better experience when writing my blog posts. I had a couple of specific goals in mind.
Only the necessary chrome. I just want to focus on what I’m writing. I only set tags, categories, tittle, etc, once I’ve got something pretty much done content-wise. Also, I use a very reduced set of controls most of the time: bold, italic, lists, and images. So, anything else is pretty much just adding clutter to my editor. To achieve that, I simply disabled all unused controls from WordPress’ WYSIWYG editor.
No need to preview. I care a lot about how the content will look like when published. Because the content style in the editor looked quite different than the actual blog design, I used to click Preview quite often and getting a bit distracted while writing. To be able to stay in the editor with no need to preview, I basically made the editor style look exactly like the blog design. No need to preview anymore.
The end result can be seen in the screenshot above. I used instructions from a couple websites to do it. I’m pretty happy with the end result.