Saltar para o conteúdo

Usuário(a):Abazzan/wikiMaslab/FAQ

Origem: Wikipédia, a enciclopédia livre.

Perguntas freqüentes sobre o funcionamento do laboratório Maslab:


Sobre usar o laboratórios (estrutura, contas nas máquinas, etc.)[editar | editar código-fonte]

Manutenção[editar | editar código-fonte]

Atualizações das máquinas[editar | editar código-fonte]

  • Atualmente, a maioria das máquinas dos laboratórios está utilizando o sistema operacional Ubuntu, inclusive o servidor (máquina Gauss). Aconselha-se manter padronizado a distribuição em uso.
  • Recomenda-se manter instaladas nas máquinas as versões LTS (Long Term Support), as quais são lançadas a cada dois anos e oferecem 3 anos de suporte para o Ubuntu Desktop e 5 anos para o Ubuntu Server. A última versão LTS para o Ubuntu é a 18.04.
  • Para controle e manutenção das máquinas, principalmente dos servidores, é recomendado o uso de uma escala entre os bolsistas atuais do grupo (entre Iniciação Científica, mestrandos e doutorandos).
  • É indicada a habilitação da atualização automática de pacotes nos gerenciadores de atualizações dos sistemas:
  1. Acesse YaST -> Software -> Online Update Configuration;
  2. Selecione a opção "Automatic Online Update";
  3. Em "Interval", configure-o para "daily";
  4. Ative as opções "Skip Interactive Patches" e "Agree with Licenses".
  1. Acesse Sistema -> Administração -> Gerenciador de Atualizações -> Configurações -> Atualizações;
  2. Nas configurações de Atualizações do Ubuntu, ative as opções "Principais atualizações de segurança" e "Atualizações recomendadas";
  3. Nas configurações de Atualizações Automáticas, ative a opção "Verificando atualizações" e selecione a frequência "Diário".

Atualização dos pacotes da servidora Gauss[editar | editar código-fonte]

A atualização dos pacotes do servidor gauss deve ser feita regularmente. Para isso, basta executar os passos a seguir:

  1. Login na gauss: isso pode ser feito fisicamente (plugando um teclado na gauss) ou via ssh. De qualquer maneira, entre com o usuário maslab (ou outro com permissão de root).
  2. Atualizar lista de pacotes:
    # apt-get update
  3. Upgrade dos pacotes:
    # apt-get upgrade
  4. Checar se a máquina precisa ser reiniciada:
    # checkrestart
    Caso o comando não seja encontrado, instale o pacote debian-goodies (# apt-get install debian-goodies). Quando a máquina precisa ser reiniciada, a saída do checkrestart apresenta algo como: "Found 10 processes using old versions of upgraded files" (além de outras informações).
  5. Reiniciar a máquina (se necessário):
    # reboot

Note que todos os comandos devem ser executados com permissão de superusuário.

Sincronização do relógio das máquinas[editar | editar código-fonte]

A sincronização do relógio das máquinas é essencial para garantir o desempenho do NFS. Todas as máquinas devem estar com a sincronização ativada, especialmente a Gauss. Para ativar esta sincronização, siga os passos abaixo:

  • Instale o ntpdate e o ntp:
sudo apt-get install ntpdate ntp
  • Faça a sincronização inicial:
sudo service ntp stop
sudo ntpdate ntp1.inf.ufrgs.br
sudo service ntp start
  • Realizado este passo, o horário deve estar sincronizado. Entretanto, isto não garante que os horários estarão sempre atualizados. Para tanto, é necessário ativar o daemon do NTP. Edite o arquivo /etc/ntp.conf como sudo:
sudo nano /etc/ntp.conf
  • Com o arquivo aberto, comente as linhas que começam com "pool [...]" e insira os servidores NTP do INF. O resultado deve ser como abaixo:
[...]

# Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.

#REMOVIDOS
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst

#INSERIDOS
server ntp1.inf.ufrgs.br iburst
server ntp2.inf.ufrgs.br
server 127.127.1.0
fudge 127.127.1.0 stratum 10

[...]
  • Salve e feche o arquivo.

Desinstalação do Avahi[editar | editar código-fonte]

  • Remova o avahi através do seguinte comando:
sudo apt-get remove avahi-*
  • Desative o dns local. Para isso, acesse o arquivo /etc/NetworkManager/NetworkManager.conf, removendo a seguinte linha:
dns=dnsmasq

Cópias de segurança (ou backups)[editar | editar código-fonte]

No término de cada semestre, é recomendada a realização de um backup dos programas e dados correspondentes aos projetos do grupo. Solicite à Profª Ana os dados relevantes para cópia em mídias removíveis (geralmente DVD's).

Páginas HTML[editar | editar código-fonte]

Os pesquisadores diretamente envolvidos em um dado projeto encarregam-se de manter as respectivas páginas HTML atualizadas.
  • Para edição das páginas HTML, acesse o diretório maslab no servidor html.inf.ufrgs.br:
 sftp://usuário_inf@html.inf.ufrgs.br/www/maslab/public_html/

Política de uso das máquinas[editar | editar código-fonte]

Em vista de uma maior comodidade para os usuários, geralmente atribui-se uma máquina a cada um, especialmente na sala de alunos de pós graduaçao (embora isso não seja regra). Assim, recomenda-se seguir a seguinte política para evitar-se perda de dados:
  • Executando Experimentos
Para execução de processos durante intervalos de tempo longos (durante dias, por exemplo), aconselha-se deixar uma notificação em escrito, visivelmente, junto à máquina do usuário. Caso o processo seja executado em máquinas em uso por outros usuários, pede-se que o usuário da máquina seja devidamente cientificado sobre tal.
  • Limpeza e Organização do /home
Todas as máquinas do Maslab estão instaladas com sistema operacional Ubuntu Desktop. Além disso, o Maslab possui um servidor (Gauss), onde, além de backups e arquivos de interesse do laboratório, também estão centralizados os diretórios /home de todos os usuários do Maslab. Todas as máquinas, de ambos os laboratórios (203 e 204), estão configuradas para acessar os usuários cadastrados no servidor. Desta forma, qualquer usuário, com conta no servidor, pode acessar seus dados em qualquer máquina do laboratório através do seu login.
Embora esta estrutura facilite bastante a utilização dos laboratórios, algumas políticas de boas maneiras devem ser adotadas para evitar os transtornos causados pela falta de armazenamento em tempos passados. Entre elas estão:
  • Downloads: Recomenda-se realizar uma limpeza periodicamente no diretório /Downloads para evitar o acúmulo de arquivos desnecessários no servidor.
  • Dropbox: Deve-se tomar cuidado com os serviços de armazenamento na nuvem para não manter arquivos desnecessários. Recomenda-se apenas a sincronização de arquivos necessários pelo mesmo motivo do item anterior.
  • Lixeira: A lixeira, muitas vezes, é responsável por consumir uma grande quantidade de espaço em disco. Recomenda-se esvaziá-la periodicamente.
  • Backup: Regularmente, faça uma cópia dos dados armazenados localmente.
Com estas medidas espera-se reduzir a quantidade de arquivos desnecessários armazenados no servidor.

Energia elétrica[editar | editar código-fonte]

Algumas máquinas dos laboratórios são estabilizadas por nobreak, como no caso da servidora Gauss. É importante verificar, periodicamente, o estado de funcionamento de cada nobreak. Teste o nobreak deixando-o desligado da energia elétrica durante 5 a 10 minutos. Considere os casos:
  • Se o nobreak não segurou carga no instante em que foi desligado da energia elétrica, provavelmente esteja na hora de trocá-lo por um novo. Antes de descartá-lo, recomenda-se deixá-lo desconectado de quaisquer equipamentos e conectado na rede elétrica por um período mínimo de 24 a 36 horas, e, decorrido este tempo, verificar se sua carga foi renovada. Se o nobreak continua sem segurar carga, é hora de retorna-lo para o dep. de patrimônio da UFRGS. Comunique a Profª Ana.
  • Se o nobreak segurou carga por poucos minutos, sua bateria deve estar com carga incompleta. Deixe-o desconectado de quaisquer equipamentos elétricos para recarregar sua bateria;
  • Se o nobreak segurou carga durante todo o intervalo de tempo, então o dispositivo está funcionando corretamente.

Banco de BibTeX no Overleaf[editar | editar código-fonte]

As citações bibligráficas em formato BibTeX que, até janeiro de 2021 eram armazenadas numa pasta no Dropbox, passaram a ser armazenadas no Overleaf. LEIA ATENTAMENTE O ARQUIVO README QUE ESTÁ NO OVERLEAF Tem permissão de uso apenas os alunos que de fato estão em fase de escrita de monografia. Neste caso é dada permissão de leitura e/ou de edição; este acesso deve ser solicitado a mim (Ana). A seguinte convenção para os arquivos do tipo bib que estão no Overleaf:
  • Os registros são ordenados lexicograficamente pela letra inicial do primeiro autor da referida publicação.
  • Cada arquivo .bib conterá um sub-conjungo de registros. O arquivo AL.bib contém os registros de todas as publicações cujo nome do primeiro autor inicia entre A e L, enquanto que o arquivo MZ.bib agrupa registros em que a inicial é entre M e Z. Strings comuns estão definidas no arquivo StringDefs.bib; as entradas temporárias (por ex. artigos submetidos mas não ainda aceitos, ficam no temp.bib). Por fim, o arquivo OURS.bib contém todas as entradas que tem um de nós do MasLab como autor(es).
Para a inserção de um registro BibTeX, pode-se proceder da seguinte maneira:
  1. Verifique a letra inicial do autor principal da publicação cujo registro está a ser inserido. Isso definirá em qual arquivo o registro será inserido.
  2. Faça uma busca pela citação LaTeX correspondente ao registro (o formato a ser seguido para este tipo de citação está definido em #Como criar uma entrada (demais publicações - regra geral)) no arquivo onde se deve inseri-lo. Esse passo evita uma duplicação de uma entrada existente.

Limpeza dos laboratórios[editar | editar código-fonte]

Normalmente, a limpeza de todos os laboratórios é feita por serviço terceirizado. Observar que
  • diariamente ocorre a troca das sacolas de lixo dos laboratórios;
  • a limpeza do laboratório se dá uma vez por semana;
  • os laboratórios tendem a ser limpos em horários em que eles não estão (muito) ocupados. Em épocas onde os laboratórios são muito frequentados, estes costumam ficar mais sujos, e, por causa da constante presença de pessoas, também podem ter sua frequência de limpeza alterada. Se essa situação acontecer, comunique a Profª Ana para que se possa solicitar limpeza dos laboratórios.

Outras questões[editar | editar código-fonte]

Para qualquer outro problema não endereçado, direta ou indiretamente, pelos pontos acima, contate, assim que possível, a Profª Ana, para que se possa viabilizar uma solução.

Contas de usuário[editar | editar código-fonte]

Como obter minha conta no servidor do Maslab? (como criar um usuário novo?)[editar | editar código-fonte]

  1. Entre como usuário 'maslab' no servidor gauss (ou outro com permissão de administrador).
    ssh maslab@gauss
  2. Adicione o novo usuário (substitua newusername pelo nome do usuário a ser adicionado):
    sudo adduser newusername
    • Se tiver que personalizar o home, lembre de utilizar a opção --home.
  3. Finalmente, não esqueça que após adicionar contas de usuário, deve executar:
    sudo make -C /var/yp

Como remover contas antigas do servidor do Maslab? (como apagar um usuário?)[editar | editar código-fonte]

  1. Atenção! Este procedimento só deve ser realizado com autorização da prof. Ana.
  2. Entre como usuário 'maslab' no servidor gauss (ou outro com permissão de administrador).
  3. Abra o arquivo /etc/deluser.conf:
    sudo vi /etc/deluser.conf
    • Certifique-se de que as seguintes chaves do arquivo estão definidas com o valor zero: REMOVE_HOME (para não remover o home) e REMOVE_ALL_FILES (para não remover os arquivos de propriedade do usuário).
  4. Apague o usuário (substitua username pelo nome do usuário a ser apagado):
    sudo deluser username
  5. Finalmente, não esqueça que após adicionar contas de usuário, deve executar:
    sudo make -C /var/yp

Como inserir/atualizar meus dados pessoais?[editar | editar código-fonte]

Os membros do Maslab eventualmente necessitam de informações de outros participantes do grupo (números de CPF e telefone, por exemplo). Assim, no diretório /home/einstein/public, há um arquivo chamado ourPersonalData.txt, que armazena esse tipo de informação.

Para inserir/atualizar seus dados pessoais:

  1. Vá para o diretório public.
     cd /home/einstein/public
  2. Utilize um editor de texto para inserir/atualizar seus dados.
     vim ourPersonalData.txt

Lembre-se de manter estes dados sempre atualizados.

Como instalar e configurar os serviços NIS/NFS no servidor Gauss?[editar | editar código-fonte]

Informações importantes:

  • O processo de reinstalação do servidor só deve ser realizado sob conhecimento e autorização da prof. Ana.
  • Sempre que necessário reinstalar o servidor gauss, utilize o Ubuntu Server em sua versão LTS mais recente.
  • Ao final do procedimento, se o servidor for novo, solicite à admrede que configure o DNS e o DHCP para atribuir o nome gauss e o endereço IP 143.54.13.15 ao endereço MAC do novo servidor.
  • Caso o servidor seja um HP ProLiant ML310e Gen8: o servidor possui dois discos que, por default, são configurados para trabalhar em RAID 0. Optou-se por desativar o RAID e utilizar os dois discos de forma independente. Para tanto, é necessário criar um array independente para cada disco (mesmo isto sendo contraintuitivo), através do Array Configuration Utility da HP (acessível em tempo de boot ao pressionar a tecla F5). Estas instriuções foram repassadas pelo suporte técnico da HP.

Para realizar o procedimento, siga as seguintes instruções:

  1. Desativação do servidor antigo:
    • Altere o arquivo /etc/hostname, redefinindo o nome do servidor antigo como gaussbk:
    gaussbk
    • Altere o arquivo /etc/hosts, substituindo as ocorrências de gauss por gaussbk':
    127.0.1.1       gaussbk.inf.ufrgs.br      gaussbk
    143.54.13.15    gaussbk
    • Reinicie a máquina.
  2. Configurações iniciais no novo servidor:
    sudo apt-get update
    sudo apt-get upgrade
    sudo reboot
    • Instale os seguintes pacotes:
    sudo apt-get install openssh-server
    sudo apt-get install ubuntu-desktop
    • Crie os diretórios que serão compartilhados:
    sudo mkdir -p /home/gauss
    sudo mkdir -p /home/einstein
    • No arquivo /etc/adduser.conf, altere a entrada DHOME de modo que novos homes sejam criados dentro de /home/gauss:
    DHOME=/home/gauss
    • No arquivo /etc/hosts, adicione as seguintes linhas (esta etapa é importante para aumentar a performance dos serviços, uma vez que ajuda a contornar problemas decorrentes do DNS):
    127.0.0.1       localhost
    127.0.1.1       gauss.inf.ufrgs.br      gauss
  3. Configuração dos serviços NFS/NIS no novo servidor:
    • Os comandos a seguir são destinados à configuração dos serviços NIS/NFS no servidor.
    • Para configuração destes serviços no cliente, leia as instruções contidas no item #Como configurar minha máquina para acessar os serviços de NIS/NFS?
    • A documentação do Ubuntu disponibiliza uma explicação mais detalhada da configuração dos serviços NFS e NIS (sugere-se sempre que o NFS seja instalado antes do NIS).
    1. Configuração do servidor NFS:
      • Instale o serviço:
      sudo apt-get install nfs-kernel-server 
      • No arquivo /etc/exports, adicione os diretórios compartilhados (detalhe importante: especificar a faixa de IPs da UFRGS 143.54.13.0/24 ao invés do domínio math confere um aumento significativo de performance, mas compromete a segurança; o ideal seria especificar cada máquina, porém isso exige que o exports seja atualizado cada vez que uma máquina for ligada; portanto, deve-se manter a faixa /24):
      /home/gauss/    143.54.13.0/24(rw,sync,no_root_squash,no_subtree_check)
      /home/einstein/ 143.54.13.0/24(rw,sync,no_root_squash,no_subtree_check)
      • Após qualquer alteração no arquivo /etc/exports, execute:
      sudo exportfs -ra
      • Reinicie o serviço:
      sudo service nfs-kernel-server restart
    2. Configuração do servidor NIS:
      • Instale os serviços:
      sudo apt-get install portmap nis
      IMPORTANTE: durante a instalação será solicitado o NIS domain. Deixe o campo em branco.
      • No arquivo /etc/default/nis, altere a chave de NISSERVER:
      NISSERVER=master
      • No arquivo /etc/yp.conf, adicione:
      domain math server gauss
      • Reinicie o serviço:
      sudo service portmap restart
      • Execute o seguinte comando:
       sudo /usr/lib/yp/ypinit -m 
      NOTA: Quando solicitado para informar os hosts, pressione Ctrl+D e confirme. Se encontrar alguma falha, repita a operação ou consulte o guia detalhado do Ubuntu. Ao final, a seguinte mensagem deve ser exibida: "gauss.inf.ufrgs.br has been set up as a NIS master server".
      • Reinicie os seviços novamente:
      sudo service portmap restart
      sudo service ypserv restart
      • Após qualquer alteração (e.g. adduser), execute:
      sudo make -C /var/yp
  4. Recuperação das contas de usuários no novo servidor:
    • Crie os usuários existentes no atual servidor:
    adduser newusername
    • Logue-se como root (sudo -su) e, para cada usuário, copie os dados do antigo servidor utilizando o comando rsync:
    rsync -u -r -t -o -p -g -v --progress -l root@gaussbk:/home/gauss/<USUÁRIO>/* /home/gauss/<USUÁRIO>
    IMPORTANTE: este processo deve ser repetido para cada usuário, individualmente, para garantir que o mesmo herde a propriedade dos arquivos. Isto ocorre porque o UUID de um usuário pode variar de uma máquina para a outra.
    • Ainda como root, copie os arquivos do diretório einstein:
    rsync -u -r -t -o -p -g -v --progress -l root@gaussbk:/home/einstein/ /home/einstein/
    NOTA: os arquivos contidos na einstein compõem um sistema legado, pouco utilizado atualmente. Desta forma, os referidos arquivos não possuem um proprietário específico. Além do mais, suas permissões são bastante abrangentes.

Como configurar minha máquina para acessar os serviços de NIS/NFS?[editar | editar código-fonte]

Em caso de necessidade de reinstalação e reconfiguração do Ubuntu desktop, instale a última versão LTS.
Após isso: certifique-se que o nome da sua máquina é único na rede do INF. Nomes duplicados causam enormes problemas na configuração do NIS/NFS e acesso SSH. Para ver se o nome desejado é único na rede, dê um ping a partir de outra máquina:
ping <nome_desejado>
Se não houver resposta, o nome desejado está livre para ser usado.
Primeiros passos
  1. Ative a sincronização do relógio do computador, conforme descrito em #Sincronização do relógio das máquinas.
  2. Desative o avahi, conforme especificado em #Desinstalação do Avahi.
Configuração testada no Ubuntu 16.04 LTS e Ubuntu 18.04.1 LTS
  1. Atualização dos pacotes do sistema
    sudo apt-get update
    sudo apt-get upgrade
  2. Instalação do serviço NFS
    • Instale os pacotes necessários
    sudo apt-get install rpcbind nfs-common
    • Crie as rotas para montagem
    sudo mkdir -p /home/gauss
    sudo mkdir -p /home/einstein
    • Faça a configuração de montagem automática no /etc/fstab. Para isto, ADICIONE o conteúdo abaixo ao fim do arquivo /etc/fstab.
    gauss:/home/gauss     /home/gauss     nfs  rw,vers=4,nosuid,nodev,noatime,rsize=32768,wsize=32768  0  0
    gauss:/home/einstein  /home/einstein  nfs  rw,vers=4,nosuid,nodev,noatime,rsize=32768,wsize=32768  0  0
    • Adicione o nome e endereço ip do servidor ao fim do arquivo /etc/hosts
    143.54.13.15 gauss.inf.ufrgs.br
    certifique-se de que o endereço ip do servidor seja o mesmo do informado neste tutorial.
    • Reinicie o serviço de rede:
    sudo service network-manager restart
    • Teste a montagem:
    sudo mount -a
    Se a montagem não puder ser realizada, o problema pode ser relacionado à versão do Ubuntu. Nesse caso, é necessário procurar uma nova solução para a versão em questão e atualizar o presente tutorial.
  3. Instalação e Configuração do NIS:
    • Instale os pacotes necessários:
     sudo apt-get install portmap nis
    
    • A instalação deverá pedir para inserir o domínio NIS, cujo valor é:
    math
    • Caso a instalação não peça essa entrada, edite o arquivo /etc/defaultdomain
    sudo nano /etc/defaultdomain
    e deixe-o apenas com este conteúdo
    math
    • Altere o arquivo /etc/hosts.allow
    sudo nano /etc/hosts.allow
    inserindo o seguinte conteúdo:
    rpcbind : 127.0.0.1
    portmap rpcbind : gauss
    • Altere no arquivo /etc/nsswitch.conf
    sudo nano /etc/nsswitch.conf
    APENAS as entradas passwd, group e shadow para
    passwd:         nis files
    group:          nis files
    shadow:         nis files
    • Configure os serviços que irão utilizar o NIS
    • Abra o arquivo /etc/passwd
    sudo nano /etc/passwd
    e adicione a seguinte linha ao fim do arquivo
    +::::::
    • Abra o arquivo /etc/group
    sudo nano  /etc/group
    e adicione a seguinte linha ao fim do arquivo
    +:::
    • Abra o arquivo /etc/shadow
    sudo nano  /etc/shadow
    e adicione a seguinte linha ao fim do arquivo
    +::::::::
    • Edite o arquivo /etc/yp.conf
    sudo nano /etc/yp.conf
    e adicione a seguinte linha
    ypserver gauss
    • Reinicie o serviço NIS
    sudo service ypbind restart
  4. Teste se a configuração funcionou
    su <meu_usuario>
    Onde 'meu_usuario' é o nome do usuário que está no servidor NIS e você deseja acessar. Caso a mensagem Unknown id: meu_usuario aparecer, é porque o cliente NIS não está corretamente configurado. Neste caso, os passos anteriores devem ser revistos.
    • Se tudo estiver certo, digite o comando abaixo para retorna ao usuário 'maslab' e prosseguir com a configuração de acordo com a versão do sistema operacional.
    exit
Ubuntu 16.04 LTS
O Ubuntu 16 possui um bug que impede o rpcbind (utilizado pelo ypbind) de ser iniciado em tempo de boot.
  1. Para verificar a existência deste bug, utilize o seguinte comando:
    sudo ypbind -debug
    • Se o bug existir, então deve aparecer a seguinte mensagem em uma das linhas do log: "Não foi possível registrar serviço: RPC: Impossível receber; errno = Conexão recusada".
    • Para contornar o bug, utilize o seguinte comando:
    sudo systemctl add-wants multi-user.target rpcbind.service
    • Em seguida, reinicie o ypbind novamente:
    sudo service ypbind restart
  2. Altere o arquivo /etc/lightdm/lightdm.conf
    sudo nano /etc/lightdm/lightdm.conf
    deixe-o com o seguinte conteúdo
    [SeatDefaults]
    greeter-session=unity-greeter
    user-session=ubuntu
    greeter-show-manual-login=true
    allow-guest=false
    Esta configuração irá oferecer a opção de inserir o nome do usuário desejado na tela de login. Além disso, ela desabilita a seção do usuário convidado.
    • Reinicie o computador para que as configurações da tela de login sejam efetuadas.
    sudo reboot
  3. Observação:
    • Caso haja falha durante o login no modo gráfico e seja exibida a mensagem "Failed to start session", pode ser necessário reinstalar o ubuntu-desktop (referência). Para tanto, execute o seguinte comando no terminal:
    sudo apt-get install --reinstall ubuntu-desktop
    • Em seguida, reinicie o computador.
    • Se ainda assim não funcionar, efetue o login com seu usuário pelo terminal (Alt+F1) e, em seguida, reinicie o computador.
Ubuntu 18.04.1 LTS
Devido a um problema com o sandbox systemd-logind, todas as conexões IP de e para o serviço systemd-logind agora são negadas. Isso fará com que haja falhas ao efetuar o login, mesmo que yptest funcionem conforme o esperado e também causem falha total de accounts-daemon.
Solução 1: Essa solução sobrevive a uma atualização do conjunto de ferramentas do systemd e continua funcionando após uma reinicialização. No entanto, ele substitui todas as configurações no arquivo de unidade fornecido systemd, o que pode causar problemas ao longo do caminho se outras configurações não relacionadas forem alteradas no fluxo ascendente. Também abre o acesso a qualquer endereço IP, o que não é recomendado.
  • Substitua o arquivo padrão do sistema systemd-logind.service por uma versão local modificada
sudo cp -a /lib/systemd/system/systemd-logind.service /etc/systemd/system
sudo nano /etc/systemd/system/systemd-logind.service
  • Em seguida comente a linha IPAddressDeny=any no arquivo
#IPAddressDeny=any
Solução 2: Essa solução não sobrevive a uma atualização do conjunto de ferramentas do systemd e também abre o acesso a qualquer endereço IP, o que não é recomendado.
  • Modifique o arquivo systemd-logind.service padrão diretamente
sudo nano /lib/systemd/system/systemd-logind.service
  • Comente a linha IPAddressDeny=any no arquivo
#IPAddressDeny=any
  • Reinicie o computador para que as configurações da tela de login sejam efetuadas.
sudo reboot
Essa versão do Ubuntu (18.04.1 LTS) conta com uma visão experimental do GNOME Files, isso pode gera um problema para clicar e arrastar arquivos e pasta. Para resolver esse problema basta digita a linha abaixo no terminal:
gsettings set org.gnome.nautilus.preferences use-experimental-views false

O que fazer quando não consigo me logar?[editar | editar código-fonte]

  1. Vá para o modo texto (Ctrl+Alt+F2).
  2. Logue-se como root.
  3. Execute os seguintes comandos:
    1. (Somente sistemas Ubuntu):
      Reinicie o cliente ypbind
      sudo ypbind restart
  4. Volte ao modo gráfico (Ctrl+Alt+F7).

O que fazer quando meu home não é encontrado?[editar | editar código-fonte]

  1. Vá para o modo texto (Ctrl+Alt+F2).
  2. Logue-se como root.
  3. Execute os seguintes comandos:
    sudo mount -a
    sudo cd ~seu_usuario
  4. Se os seus arquivos apareceram, volte ao modo gráfico (Ctrl+Alt+F7) e logue-se normalmente.
  5. Se os arquivos não apareceram, peça para alguém com a senha de root do servidor rodar o seguinte comando no servidor Gauss:
    sudo exportfs -ra
  6. Tente montar novamente o home (volte ao passo 3).

Como configurar a impressora?[editar | editar código-fonte]

Siga as instruções disponibilizadas pelo Instituto de Informática.

Como habilitar acesso USB(Pen drives), floppy, cdrom, no Ubuntu com NIS?[editar | editar código-fonte]

  1. Adicione no arquivo /etc/pam.d/common-account
    auth    optional        pam_group.so 
  2. Adicione no arquivo /etc/security/group.conf
     *;*;*;Al0000-2400;audio,floppy,video,cdrom,plugdev,admin 

Estas alterações irão fazer com que o serviço PAM adicione os grupos audio,floppy,video,cdrom,plugdev,admin localmente a todos os usuários com uid entre 0000-2400, independente da forma de autenticação (NIS, no nosso caso)

Como instalar o Java da Oracle no Ubuntu?[editar | editar código-fonte]

A instalação do Oracle Java resume-se a adicionar um repositório que inclui o pacote java e depois instalar o pacote com o JDK7.
  1. Adicionando o repositório
    • Abra o terminal e escreva o seguinte comando para adicionar o repositório e atualizar os pacotes do Ubuntu:
    sudo add-apt-repository ppa:webupd8team/java && sudo apt-get update
  2. Instalando os pacotes
    Execute o seguinte comando para instalar o JDK7
    sudo apt-get install oracle-java8-installer
  3. Verificando a Instalação
    Caso não tenha ocorrido nenhum erro a instalação pode ser verificada com o comando:
    java -version
    Uma saída semelhante a está deve ocorrer:
    java version "1.8.0_45"
    Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Como me inscrevo na lista de discussão do Maslab?[editar | editar código-fonte]

Acesse o site do Maslab no google groups e clique em "Apply for group membership". O antigo grupo no YahooGroups não é mais usado.

Como criar e compartilhar sua agenda?[editar | editar código-fonte]

Para facilitar a marcação de seminários e atividades de grupo, compartilhamos nossas agendas de aulas e atividades acadêmicas com a profa. Aana e eventualmente com outros membros do laboratório usando o google calendar. Para fazer isto:

  1. Criar um calendar no google
  2. Se você já tem um e nele costuma colocar todos os seus compromisos (muitos dos quais não são relevantes para nós...), crie um outro e certifique-se que o nome deste calendar signifique algo para todos; assim um nome apropriado é por ex. Mr.Bean-UFRGS ou algo assim para identificar que se trata das atividades acadêmicas na UFRGS; não criar um novo a cada semestre mas sim atualizar o já existente !
  3. Compartilhe no mínimo com a profa. Ana usando a conta bazzan.inf at gmail.com (e não mais com bazzan at gmail como era até recentemente; a conta bazzan at inf tb. não deve ser usada) através da opção Settings / nome do calendar / share this calendar
  4. Importante: colocar neste calendar apenas as atividades acadêmicas relacionadas à UFRGS que serão em geral aulas; lembrar que o semestre tem início e fim (e estas 2 datas devem ser configuradas em cada atividade), logo evitem criar entradas no calendário que ficarão lá forever :(

Além destes calendars individuais, compartilhamos o calendar Maslab onde são colocadas atividades em grupo como seminários, etc.

Como preparar relatórios semanais?[editar | editar código-fonte]

Um relatório de andamento das atividades deve ser enviado por email semanalmente para a professora Ana. Evite usar anexos (a nao ser que seja necessário). Escreva o relatorio no proprio corpo da mensagem em texto puro. O objetivo é duplo: não apenas informar o orientador mas também servir de guia para que o relatório parcial ou final da bolsa seja feito. O conteúdo deve versar sobre as atividades de pesquisa relacionadas à bolsa (alunos de graduação) ou dissertação/tese (alunos do PPGC). Atividades triviais ligadas a disciplinas não devem ser incluídas, exceto se solicitadas. O mesmo se refere a outras atividades como viagem etc. Se nada foi realizado (o que não é bom...) o motivo deve ser relatado. O dia de entrega deve ser previamente definido com a mesma. Idealmente as sextas-feiras devem ser evitadas, de modo que haja tempo hábil para uma discussão com a professora na mesma semana. ATENÇÃO: a cada novo envio, usar reply all ao email anterior (isto significa que você deve se incluir entre os recipientes), de modo que o histórico seja mantido e o email mais recente contenha todo o passado. Inserir o texto mais recente no topo e não no final da mensagem. O relatório deve seguir o modelo abaixo:

  • Assunto (subject):
Relatório <ASSUNTO> <SEU NOME> <DD/MM/AAAA>
Substituindo as tags da seguinte forma:
  • <ASSUNTO>: termo que contextualize a tarefa. Exemplos: dissertação, monografia, artigo, nome do projeto, etc.
  • <PRIMEIRO NOME>: nome do aluno.
  • <DD/MM/AAAA>: data de envio do relatório.
  • Corpo da mensagem:
-------------------------------------------------
<DD/MM/AAAA>

* O que foi feito e, principalmente, como (ou seja, detalhes):
  - <ITEM1>
  - <ITEM1>
  - <ITEM3>
* Próximos passos:
  - <PROXIMO1>. Término previsto: <DD/MM/AAAA>.
  - <PROXIMO2>. Término previsto: <DD/MM/AAAA>.

-------------------------------------------------
Substituindo as tags da seguinte forma:
  • <ITEM>: tarefa/atividade desenvolvida. Notar que estes tópicos devem ser desenvolvidos, ou seja, conter minimamente os detalhes suficientes para que o leitor entenda o que foi feito e como. Alguns tópicos necessitam mais detalhes que outros. A decisão fica a cargo de quem está enviando o relatório.
  • <PROXIMO>: tarefa/atividade que SERÁ desenvolvida. Espera-se que tarefas previstas mas não realizadas sejam justificadas (ou seja o que não foi feito, porque e qual a previsão).

Importante[editar | editar código-fonte]

  • Como dito, sempre que for enviar um novo relatório, dê um reply no anterior, e adicione o conteúdo da semana corrente sempre acima do texto anterior. Desta forma, todo o histórico de relatórios será acessível através do último email.
  • Não esqueça de editar o assunto do email (atualizando a data e removendo itens desnecessário, com Fw, Fwd, etc.).
  • Escreva o relatório no corpo do email e não use anexos, exceto em casos (extremamente raros) que não seja possível usar texto plano.
  • Procure descrever as tarefas/atividades de forma clara e sucinta. Espera-se que sua descrição seja auto-contida.

Exemplo[editar | editar código-fonte]

  • Cabeçalho:
From: fulano@inf.ufrgs.br
To: orientadora@inf.ufrgs.br
c.c.: fulano@inf.ufrgs.br
Subject: Relatório dissertação Fulano 21/02/2014
  • Corpo da mensagem:

21/02/2014

* O que foi feito:
  - Criado novo script para desempenhar a tarefa X (de modo a atender à demanda Z). Isto foi feito da seguinte forma o os resultados foram conforme a seguir. [...]
  - Elaboração do artigo da semana acadêmica foi adiantado, faltando apenas finalizar os experimentos.
* Próximos passos:
  - Validar novo script para a tarefa X. Término previsto: 28/02/2014.
  - Finalização do artigo da semana acadêmica. Término previsto: 28/02/2014.

[ e aqui seguem as mensagens anteriores que aparecem quando se usa reply-all]

Como preparar ata de reunião[editar | editar código-fonte]

Após reuniões com o/a orientador/a é comum que seja redigida uma espécie de ata contendo o que foi tratado (quebrar em itens). Notar que para que isto seja eficiente, o/a aluno/a ou orienando/a deve fazer notas durante a reunião! Assim sendo, levar um bloco e uma caneta é altamente aconselhável pois digitar no celular não é eficiente. Além disto, quanto mais cedo a ata for escrita, melhor pois os detalhes são esquecidos após algum tempo. Um bom intervalo de tempo é no maximo 30 mins. após a reunião. Para cada item, informar:

  • o que foi decidido
  • se algo ficou pendente, descrever o que
  • se houver uma pendência, quem é o responsavel pelo quê e quais as deadlines acordadas durante a reunião.

Como escrever documentos técnicos e científicos?[editar | editar código-fonte]

Antes de mais nada, algumas recomendações sobre termos técnicos em português. Termos coloquias como carros, sinaleira, etc. devem ser evitados. É preciso usar os termos técnicos apropriados.

BibTeX[editar | editar código-fonte]

Informações importantes ☢[editar | editar código-fonte]

Este texto trata de como usar as entradas BibTEx que estão armazenadas num projeto do Overleaf. O ponto mais importante é que você não é o único usuário deste projeto; ele é compartilhado. Logo, um protocolo de uso deve ser seguido. Leia com atenção.

  • Todos (ou quase todos) os arquivos neste projeto são de uso comum e tem portanto permissão de escrita para todos;
  • Isto significa que podem ser deletados acidentalmente, muito cuidado ao editar
  • Se você deletar algo por engano, o overleaf guarda versões antigas ou reporte isto imediatamente a mim (Ana).

Informações MUITO importantes ☢ ☢[editar | editar código-fonte]

  • Jamais edite nada fora do overleaf e depois sobrescreva; alguém pode ter a mesma ideia e/ou estar editando enquanto você está com o arquivo sabe-se lá onde;
  • Pra ficar bem claro: edições dos arquivos devem ser feitas prioritariamente no overleaf. Se você quiser fazer uma cópia pra outro local/máquina/diretório (e.g. como back up), ok, mas esta cópia nunca deve ser recolocada no overleaf já que pode ter sofrido modificações por outros usuários.

Recomendações[editar | editar código-fonte]

  • Se for criar novas entradas bibtex em um outro ou novo projeto, estas entradas devem ser movidas, posteriormente para os arquivos AL, MZ, temp ou OURS então, nunca adicione nada à sua cópia dos arquivos mas sim faça isso em um novo arquivo (chame-o de novas.bib ou extra.bib ou algo assim)
  • Localmente, usar o kile ou emacs como editor pois eles geram um template da entrada automaticamente (ou seja pra cada tipo de entrada ele já põe os campos certos);
  • Se usar outro editor, basear-se em uma entrada correta;
  • Tomar cuidado com palavras em língua estrangeira ou que tenham acento (português) ou outros caracteres não ascii padrão; o melhor mesmo é não acentuar nada via teclado mas sim usar os comandos latex do tipo "acentua\c{c}\~ao". Uma tabela com os caracteres latinos e os respectivos comandos para caracteres especiais está disponível no The Not So Short Introduction to LaTeX2 pág. 25. Alguns acentos em LaTeX (disponíveis no pacote babel):
\`a   à
\'a   á
\^a   â
\~a   ã
\"a   ä
\c c  ç

Importante: a notação \~{a} também produz a acentuação correspondente, porém, obriga o caractere a ser minúsculo, ou seja, o estilo não irá transformar o caractere para maiúsculo quando for preciso ( "ma\c{c}aneta" vai ficar "MAçANETA").

  • Ler algum livro ou manual de BibTeX antes de fazer. Existem vários disponíveis online no TUG;
  • Tentar colocar todas as informações disponíveis para uma dada entrada (campos não usados na entrada devem ser deletados).
  • Atenção com entradas exportadas de repositórios online (e.g, Springer). Infelizmente, estas entradas frequentemente não estão no tipo adequado. Isto acontece normalmente com artigos de conferências/workshops publicados em séries (e.g., lncs), que são exportados como @inbook, em vez do tipo correto (@article, @inproceedings, @incollection, etc). Portanto, antes de cadastrar uma entrada, determine e use o tipo adequado para a mesma. Uma relação dos tipos de entrada suportados no BibTex e seus respectivos campos obrigatórios, opcionais e alternativos pode ser encontrada aqui ou aqui.

Como acessar os arquivos .bib[editar | editar código-fonte]

Use sua conta no overleaf. Se a pasta não está compartilhada com você, peça a mim (Ana) para fazê-lo.

Se for usar localmente (i.e., fora do overleaf, o que NÃO é recomendado)

  1. Para que o BibTeX tenha o caminho dos arquivos bib quando você for compilar seu documento:
    Quem usa bash, adicionar a seguinte linha no arquivo ~/.bashrc:
    export BIBINPUTS=~public/bibtex
    Quem usa tcsh, adicionar a seguinte linha no arquivo ~/.cshrc:
    setenv BIBINPUTS=~public/bibtex
  2. DICA: Para que o latex encontre os arquivos de estilo (cls, etc) sem precisar ter que replicá-los no diretório de trabalho, use:
    Quem usa bash, adicionar a seguinte linha no arquivo ~/.bashrc:
    export TEXINPUTS=diretorio/onde/estao/os/estilos
    Quem usa tcsh, adicionar a seguinte linha no arquivo ~/.cshrc:
    setenv TEXINPUTS=~=diretorio/onde/estao/os/estilos
  3. No seu documento .tex, inclua:
    \bibliography{stringDefs,AL,MZ,OURS,temp}

Como criar uma entrada (publicações do nosso grupo)[editar | editar código-fonte]

  • As entradas referentes à publicações do nosso grupo (ou seja, qualquer entrada onde pelo menos um de nós publicou) são armazenadas no arquivo denominado OURS.bib;
  • Na página do grupo existe um aplicativo denominado Pergamus Novo que gera uma página HTML de forma automática a partir do OURS.bib, permitindo consultas;
  • Seguir os seguintes passos:
  1. Após adicionar uma ou mais entradas no OURS.bib (que deve estar de acordo com as instruções em #Como criar uma entrada (demais publicações - regra geral)) é preciso enviar o arquivo OURS.bib para o repositório próprio no INF, para que as alterações sejam visíveis pelo Pergamus. Faça isso através do seguinte comando:
    scp -p OURS.bib seuUsuarioNaHtml@html:/home/www/maslab/public_html/pergamus/pubs 
  2. É recomendável disponibilizar o arquivo pdf correspondente (e.g., o pdf do seu artigo). Por favor dê preferência a links já existentes na web (e.g. site do publisher); se isto não for possível e se você quiser disponibilizar o arquivo para download, coloque na entrada da referência do OURS.bib, campo URL, o endereço do arquivo na web:
    url = {www.inf.ufrgs.br/maslab/pergamus/pubs/seuArquivo.pdf.zip} 
  3. Antes de fazer o upload, atribua permissão 664 (evitar permissão de execução):
    chmod 664 seuArquivo.pdf.zip 
  4. Envie o arquivo, preferencialmente zipado, via SCP (o parâmetro -p conservará as permissões):
    scp -p seuArquivo.pdf.zip seuUsuarioNoINF@html:/home/www/maslab/public_html/pergamus/pubs 
    1. Importante: este repositório do INF não disponibiliza shell aos usuários, sendo restrito apenas para manipular arquivos. Portanto, é alterar as permissões do arquivo antes do envio via ssh. Uma alternativa é atravé do uso do protocoloco sftp sftp.

Como criar uma entrada (demais publicações - regra geral)[editar | editar código-fonte]

  • A entrada deve estar no arquivo cuja letra corresponde ao ultimo sobrenome do primeiro autor (ex. Boutillier no arquivo AL.bib, com exceção das entradas da prof. Bazzan, que devem estar diretamente no OURS.bib)
  • A entrada deve seguir os seguintes padrões:
    • Se for apenas um autor: FulanoAno, exemplo Bazzan1995;
    • Se forem exatamente 2 autores: Fulano&SicranoAno, exemplo Bazzan&Dahmen2016;
    • Se forem mais de 2 autores: Fulano+Ano, exemplo Bazzan+2000;
  • Ordenação: as entradas devem ser posicionadas em ordem alfabética, de acordo com os seguintes critérios:
    • Último nome do primeiro autor;
    • Ano da publicação.
  • Não colocar entradas novas no início ou final do arquivo, pois elas correm o risco de nunca mais serem encontradas ☢;
  • Não inventar outros padrões. Se estes não servirem para algum caso, discutamos e faremos um novo;
  • Usar MAIUSCULAS para a primeira letra de cada autor (ex. Bazzan&Dahmen e não bazzan&dahmen ou Bazzan&dahmen);
  • Se houver mais de uma entrada com mesmo rótulo (ex. Bazzan+2000), então é permitido colocar algo que identifique a entrada (ex. Bazzan+2000icmas') e a diferencie da outra (mas somente neste caso);
  • Se o sobrenome contiver acentos ou cedilha, não usar estes caracteres na chamada da entrada, mas apenas na definição do nome/sobrenome em si. Exemplo: Goncalves&Brunnet1998 (sem cedilha) na entrada mas Gon\c{c}alves, S. and Brunnet, L. no author;

Autores cujos nomes contenham da/de/dos/...[editar | editar código-fonte]

Segundo a bibliotecária do instituto, a forma correta de uma referência deve ser a mais completa possível.

  • Exemplo:
    • João da Silva
  • Formas CORRETAS:
    • Ramos, Gabriel {\relax de} Oliveira
    • SILVA, João da (tudo por extenso)
    • SILVA, J. da (nomes abreviados)
  • Forma INCORRETA:
    • Da SILVA, João (isto só seria correto caso "da/de" fizesse parte do sobrenome, como em "De Rose").
  • Para que estes nomes fiquem o mais próximo possível da forma correta em citações (ACM, Springer, etc..), o nome dos autores no campo author deve ser cadastrado assim:
    • authors = {Silva, João da and Knuth, Donald} (isto é, SOBRENOME vírgula NOMES)
  • Observação 1 (só para publicações que usam ABNT e passam pela biblioteca da UFRGS)
    • O formato de dissertações/teses do instituto não funciona corretamente com esta notação
      authors = {Silva, João da and Knuth, Donald}.
      Para que ele funcione corretamente, adote um dos seguintes passos (preferencialmente o PRIMEIRO)
      • Compile o bibtex e altere diretamente no .bbl (isto é, não mude nada nos bibs);
      • Altere o .bib para
        authors = {João da Silva and Donald Knuth} (isto é, NOMES SOBRENOME),
        compile o bibtex e dissertação/tese, E DEPOIS DESFAÇA A ALTERAÇÃO DO .BIB PARA QUE O AUTOR APAREÇA CORRETAMENTE EM ARTIGOS.
  • Observação 2
    • Chaves dentro do campo authors só devem ser usadas quando alguém tem nome com hífen ou nomes grudados (vanBlabla) e se deseja manter uma determinada formatação.
    • Exemplos:
      • authors = {{vanBlabla} José and Knuth, Donald} (mantém grudado o vanBlabla)

Como criar uma referência para o criador e data de criação da entrada[editar | editar código-fonte]

  • A entrada deve manter referência da pessoa que a inseriu no repositório e da sua data de inserção. Para tanto, o nome seguido da data devem ser inseridos no campo owner para manter esta referência (ex. owner = {Ana - maio 06}). Evite colocar todos dígitos do ano para que isto não apareça em um search (por ex. por 2006); evite colocar o sobrenome para facilitar o search posterior. É desejável que este seja o último campo da entrada. As informações armazenadas neste campo são apenas utilizadas como política de controle do repositório para que eventuais problemas sejam reportados a pessoa responsável. Além disso, elas não aparecem nas referências geradas automaticamente pelo bibtex. Um exemplo de utilização é apresentada a seguir.
@phdthesis{Bazzan1997phd,
   author = {Bazzan, A. L. C.},
   title =  {An Evolutionary Game-Theoretic Approach for Coordination of Traffic Signal Agents},
   school = {University of Karlsruhe},
   year =   {1997},
   owner = {Ana - maio 06}
}

Testando as entradas[editar | editar código-fonte]

Para testar se todas as entradas estão corretas, o script testebib.sh deve ser executado, ou no próprio overleaf, ou localmente. O procedimento é o seguinte:

  • Execute:
     ./testebib.sh 
  • Caso haja erro, a saída indicará o arquivo e a entrada com problema. Faça as correções necessárias.
  • Warnings do tipo can't use both author and editor fields devem ser endereçados. Eles podem ser causados:
    • Pelo uso simultâneo dos campos author e editor em um tipo de entrada onde estes campos são alternativos (ou author, ou editor, e.g., @inbook)
    • Pelo uso de um tipo inadequado para a entrada. Verifique se a entrada não deve ser de um tipo que aceita simultaneamente tais campos. Uma relação dos tipos de entrada suportados pelo BibTex e seus campos requeridos, opcionais, e alternativos pode ser encontrada aqui ou aqui.

Para testar se todas as entradas estão no PADRÃO correto, o script checkBib.py (disponível aqui ou https://github.com/maslab-ufrgs/BibCheck) também deve ser executado. As dependências necessárias são:

  • python3
  • bibtexparser (disponível via pip install bibtexparser)

Para rodar o script:

  • Execute:
     python3 checkBib.py -f [yourBib.bib] 
    • Onde está [yourBib.bib] substituir pelo aquivo bib que será testado, por exemplo: AB.bib.
  • Ao executar o arquivo com -h, essa mensagem deve aparecer:
optional arguments:
  -h, --help   show this help message and exit
  -f FILE      File .bib to be checked
  -w WARNINGS  Show all warnings messages. 0 = False (only warnings) or 1 = True (all messages). Default is 1 = True
  • Caso haja erro, a saída irá retornar o ID da entrada e qual o possível erro encontrado.
  • Todos os arquivos bib utilizado pelo MASLAB foram testados e a maioria dos erros já foi arrumado, lembre de rodar novamente ao acrescentar uma nova entrada.
  • Caso haja dúvida sobre execução ou erro retornado entre em contato com a Prof. Ana ou com os colegas do MASLAB.

>>>IMPORTANTE!<<<

Não copie de volta os arquivos para o diretório compartilhado no overleaf. Abra cada arquivo e adicione as correções manualmente para evitar problemas (veja a seção #Informações MUITO importantes ☢ ☢).

Exemplos corretos[editar | editar código-fonte]

  • Exemplo 1 - 1 autor:
@incollection{Bazzan1997,
   author =    {Bazzan, A. L. C.},
   title =     {Evolution of Coordination as a Metaphor for Learning in Multi-Agent Systems},
   booktitle = {DAI Meets Machine Learning},
   publisher = {Springer-Verlag},
   year =      {1997},
   editor =    {Weiss, G.},
   number =    {1221},
   series =    lnai,
   pages =     {117--136},
   address =   {Berlin Heidelberg New York},
   owner =     {Ana  - maio 06}
}
  • Notar que na entrada acima, o token lnai não é uma abreviação mas sim uma string definida no arquivo stringsDef.bib; Vocês podem/devem definir outras;
  • Exemplo 2 - 1 autor:
@phdthesis{Bazzan1997phd,
   author = {Bazzan, A. L. C.},
   title =  {An Evolutionary Game-Theoretic Approach for Coordination of Traffic Signal Agents},
   school = {University of Karlsruhe},
   year =   {1997},
   owner =  {Ana  - maio 06}
}
  • Acima o phd foi usado pra diferenciar da entrada anterior;
  • Exemplo 3 - 2 autores:
@inproceedings{Bazzan&Bordini2000,
   author =    {Bazzan, A. L. C. and R. H. Bordini},
   title =     {Evolving agents with moral sentiments in an iterated prisoner's dilemma exercise},
   booktitle = {Game Theoretic and Decision Theoretic Agents},
   year =      {2000},
   address =   {Boston},
   owner =     {Ana  - maio 06}
}
  • Exemplo 4 - 3 ou + autores
@inproceedings{Bazzan+1998,
   author =    {Bazzan, A. L. C. and Bordini, R. H. and Campbell, J. A.},
   title =     {Moral Sentiments in the Iterated Prisoner's Dilemma},
   booktitle = {Workshop on Agent Theories, Architecture, and Languages (ATAL 98)},
   year =      {1998},
   pages =     {335--342},
   address =   {Paris},
   month =     {July},
   owner =     {Ana  - maio 06}
}

@techreport{Bazzan+1998,
   author =      {Bazzan, A. L. C. and Lesser, V. R. and Xuan, P.},
   title =       {Adapting an Organization Design through Domain--Independent Diagnosis},
   institution = {Univ. of Massachusetts},
   year =        {1998},
   number =      {TR-98-014},
   owner =       {Ana  - maio 06}
}

@inproceedings{Bazzan+1999ki,
   author =    {Bazzan, A. L. C. and J. Wahle and F. Kl\"ugl},
   title =     {Agents in Traffic Modelling - from Reactive to Social Behaviour.},
   booktitle = {Advances in Artificial Intelligence},
   OPTpages =  {303--306},
   year =      {1999},
   number =    {1701},
   series =    lnai,
   address =   {Berlin/Heidelberg},
   publisher = {Springer},
   note =      {Also appeared as Proc. of the U.K. Special Interest Group on Multi-Agent Systems (UKMAS), Bristol, UK.},
   owner =     {Ana  - maio 06}
}
  • Exemplo com acentos:
@techreport{Oliveira+2003,
   author =      {Oliveira, D. and Almeida, L. B. and Ferreira, P. R. and Bazzan, A. L. C.},
   title =       {Estudo de insetos sociais e sua aplica\c c\~ao para organiza\c c~ao de sistemas multiagentes},
   year =        {2003},
   institution = {Instituto de Inform\'atica, {UFRGS}},
   number =      {340},
   owner =       {Ana  - maio 06}
}

  • Para incluir um artigo que saiu em um congresso devem ser escritas as palavras Proceedings of the, ou se em português Anais do. O número da edição do congresso deve ser abreviada (inglês: 1st., 2nd., 3rd.,... em português 1o., 2o.,...). Se os anais do congresso foram publicados dentro de uma coleção (tipo LNAI ou LNCS), então o campo series deve ser preenchido com o nome completo. Exemplo:
@inproceedings{1oAutor+2005,
   author =    {1oAutor and 2oAutor and 3oAutor},
   title =     {Titulo do Artigo},
   booktitle = {Proceedings of the 1st. Conference on BibTex}, 
   series =    {Lecture Notes in Computer Science},
   year =      {2005},
   pages =     {1--25},
   number =    {9999},
   address =   {Cidade da Conferencia}, 
   publisher = {Cidade da Editora, Nome da Editora},
   owner =     {Ana  - maio 06}
}
  • Se fosse em português mudaria para:
   booktitle = {Anais do 1o. Congresso em BibTex}
  • A entrada gerada deve ficar assim (no fomato ABNT):
1OAUTOR; 2OAUTOR; 3OAUTOR. Titulo do Artigo. In: CONFERENCE ON BIBTEX,
1., 2005, Cidade da Conferencia. Proceedings. . . Cidade da Editora: Nome
da Editora, 2005. n.9999, p.1.25. (Lecture Notes in Computer Science).
  • Trabalho de conclusão de curso deve ser incluído assim:
@mastersthesis{Andriotti2001,
   author =  {Andriotti, Gustavo Kuhn},
   title =   {Implementa\c c\~ao de ve\'iculo tracejador para o simulador do projeto SISCOT},
   school =  {Instituto de Inform\'atica, UFRGS},
   year =    {2001},
   type =    {Trabalho de Diploma\c c\~ao (Bacharelado em Ci\^encia da Computa\c c\~ao)},
   address = {Porto Alegre},
   owner =   {Ana  - maio 06}
}
  • Ao fazer algum trabalho que será entregue para a biblioteca, em função das normas ABNT, é preciso fazer um truque para o caso em que o artigo foi publicado fora de uma conferência, mas dentro de uma coleção. O truque é para que o número da coleção fique no lugar certo. Então siga os passos:
  1. Faça uma cópia local do Bib necessário;
  2. A entrada deve ser do tipo incollection;
  3. Colocar o número no campo series;
  4. Compile o arquivo usando o Bib local, entregue para a bibliotecaa, e faça a entrada de forma correta nos Bib's do servidor.
  • Exemplo:
@incollection{Bazzan1997,
   author =    {Bazzan, A. L. C.},
   title =     {Evolution of Coordination as a Metaphor for Learning in Multi-Agent Systems},
   booktitle = {DAI Meets Machine Learning},
   publisher = {Springer-Verlag},
   year =      {1997},
   editor =    {Weiss, G.},
   series =    {Lecture Notes in Artificial Intelligence, n. 1221},
   pages =     {117--136},
   address =   {Berlin},
   owner =     {Ana  - maio 06}
}
* A entrada gerada fica assim: 
<pre>
BAZZAN, A. L. C. Evolution of Coordination as a Metaphor for Learning in Multi.Agent
Systems. In: WEISS, G. (Ed.). DAI Meets Machine Learning. Berlin: Springer.Verlag,
1997. p.117.136. (Lecture Notes in Artificial Intelligence, n. 1221).

Exemplos errados ☢[editar | editar código-fonte]

Exemplos de como não fazer uma referência/entrada em BibTeX:

  • Exemplo 1
@incollection{Bazzan1997,
   author =    "Bazzan, A. L. C.",
   title =     "Evolution of Coordination as a Metaphor for Learning in Multi--Agent Systems",
   booktitle = "DAI Meets Machine Learning",
   publisher = "Springer--Verlag",
   year =      "1997",
   editor =    "Weiss, G.",
   number =    "1221",
   series =    LNAI,
   pages =     "117--136",
   address =   "Berlin Heidelberg New York",
   owner =     "Ana Bazzan - maio 06"
}
  • Esta entrada usa aspas ao invés de { e }. Isto não é necessariamente um problema mas pode vir a ser. Preferir usar chaves como nos exemplos corretos. Além disto, a string não é LNAI mas sim lnai (ver exemplo correto).


  • Exemplo 2
 
@inproceedings{bazzan1995,
   author =    {Bazzan, A. L. C.},
   title =     {A Game-Theoretic Approach to Distributed Control of Traffic Signals},
   booktitle = {Proc. of the First Int. Conf. on Multi-Agent Systems (ICMAS)},
   YEAR =      {1995},
   editor =    {José da Concei\c{c}\~{a}o},
   volume =    {},
   number =    {},
   series =    {},
   pages =     {666-677},
   address =   {San Francisco},
   month =     {},
   publisher = {},
   note =      {extended abstract},
   abstract =  {},
   keywords =  {},
   owner =     {Ana Bazzan - maio 06}
}
  • Essa entrada tem vários problemas:
    • O identificador da entrada está iniciando com letra minúscula;
    • Campos em branco foram deixados o que so aumenta o tamanho do arquivo;
    • Uso incorreto de acentuação ( José da Concei\c{c}\~{a}o ): não utilizar acentos diretamente ( José deveria ser Jos\'e ) e quando precisar acentuar, usar os comandos corretos ( Concei\c{c}\~{a}o deveria ser Concei\c c\~ao );
    • Espacos a mais/linha em branco (penultima linha);
    • Virgulas a mais (linha keywords, não colocar vírgula depois do último campo);
    • Abreviações devem ser evitadas;
    • As páginas do campo pages devem ser separadas por "--" (dois traços).

Como criar uma página que liste apenas as publicações de um projeto[editar | editar código-fonte]

  • É possível configurar o aplicativo Pergamus Novo (clique para acessar) para exibir as publicações referentes a um projeto especificamente. Este recurso funciona apenas para a lista inicial, não é possível restringir a pesquisa à essas publicações apenas;
  • Seguir os seguintes passos:
  1. Criar um arquivo siglaDoSeuProjeto.cite, contendo as entradas BIB dos artigos relacionados ao projeto separadas por virgula (sem espaço, nova linha, ou coisas do tipo). Por exemplo:
    Ferreira+2007,Ferreira+2007ccmms
    . Este arquivo ficará em um diretório específico na Html (veja próximo passo).
  2. Atribua permissão 664 (evitar permissão de execução) antes de fazer o upload:
     chmod 664 seuArquivo.pdf.zip 
  3. Envie o arquivo via SCP para a Html (o parâmetro -p conservará as permissões):
    scp -p siglaDoSeuProjeto.cite seuUsuarioNaHtml@html:/home/www/maslab/public_html/pergamus/pubs 
    1. Importante: o servidor Html não disponibiliza shell aos usuários, sendo restrito apenas para manipular arquivos. Portanto, não será possível alterar as permissões do arquivo via ssh. Se você não enviou com a permissão 644, poderá logar e alterar as permissões usando o sftp (poderá enviar o arquivo através dele também) ou execute o passo 2 e refaça o passo 3.
  4. Por fim, é preciso fazer o link na página do seu projeto para o Pergamus Novo (preferencialmente denomine o link Publicações e utilize link relativo ao invés do link absoluto) fazendo a seguinte referência:
    http://www.inf.ufrgs.br/maslab/pergamus/pages/p_search.php?project=siglaDoSeuProjeto

Latex[editar | editar código-fonte]

Como gerar um PDF com 'embedded fonts'?[editar | editar código-fonte]

  • Muitas conferências requerem a submissão de arquivo PDF com todas as fontes embutidas (embedded fonts) para a versão camera ready. Para gerar um PDF com embedded fonts em Latex, siga as instruções abaixo (retiradas do site Software tips and tricks do prof. Carlos A. Maziero):
  1. Compilar o arquivo .tex:
     latex myfile.tex
  2. Converter o arquivo .dvi para PostScript:
    • Para gerar um documento no formato A4:
     dvips -Ppdf -G0 -tA4 myfile.dvi 
    • Para gerar um documento no formato letter:
     dvips -Ppdf -G0 -tletter myfile.dvi
  3. Converter o arquivo PostScript em PDF:
    • Para gerar um documento no formato A4:
     ps2pdfwr -dCompatibilityLevel=1.4 -dMAxSubsetPct=100 -dSubsetFonts=true -dPDFSETTINGS=/prepress -dEmbedAllFonts=true -sPAPERSIZE=a4 myfile.ps 
    • Para gerar um documento no formato letter:
     ps2pdfwr -dCompatibilityLevel=1.4 -dMAxSubsetPct=100 -dSubsetFonts=true -dPDFSETTINGS=/prepress -dEmbedAllFonts=true -sPAPERSIZE=letter myfile.ps 
  4. O PDF resultante pode ser, ainda, otimizado:
     pdfopt myfile.pdf myfile.pdf.tmp 
     mv myfile.pdf.tmp myfile.pdf 

Como verificar se meu PDF possui 'embedded fonts'?[editar | editar código-fonte]

  1. No terminal, execute os seguintes comandos:
     pdfinfo  myfile.pdf 
     pdffonts myfile.pdf 

Como acessar os fontes do projeto Itsumo?[editar | editar código-fonte]

Este software não é mais mantido no Maslab mas caso haja necessidade, eis como acessar a última versão dos fontes.


Como acessar o CVS UFRGS do projeto Itsumo? (versão estável)[editar | editar código-fonte]

  1. Verifique se você possui o cvs instalado em sua maquina:
    cvs
    Deverá aparecer uma mensagem que inicia do seguinte modo:
    Usage: cvs [cvs-options] command [command-options-and-arguments]
    Caso contrário, instale o cvs (pelo apt-get ou YaST).
  2. Crie um arquivo vazio chamado ".cvspass" no seu diretorio home:
    touch ~/.cvspass
  3. Peça a Ana a criação de um usuario no servidor cvs.
  4. Exporte as seguintes variáveis (dica: para automatizar este processo, os seguintes comandos podem ser inseridos ao final do arquivo ~/.bashrc):
    export CVSROOT=:pserver:usuario@cvs.inf.ufrgs.br:/home/itsumo
    export CVS_RSH=ssh
  5. Se logue no CVS:
    cvs login
  6. Para fazer o primeiro checkout do projeto:
    cvs checkout itsumo
  7. Agora você já pode utilizar os comandos normais do CVS (cvs commit, cvs add, etc)