Calibrando Modelos Matemáticos – Parte 2 – Exemplo de um Modelo Epidemiológico

Continuação do post anterior que comecei a escrever como um tutorial para os meus alunos que iniciam projetos de iniciação científica e ainda não estão familiarizados com esse processo de calibrar os parâmetros de modelos matemáticos. Caso não tenha lido volte uma casa (leia o post anterior aqui) e depois continue.

Para dar continuidade, vamos pegar um exemplo simples de problema considerando apenas a variação no tempo. Vamos supor que existe um determinado fenômeno que temos interesse em estudar. O primeiro passo é identificar se já existe um modelo matemático na literatura que represente esse fenômeno.

Um exemplo interessante e suficientemente simples é o modelo matemático utilizado para representar epidemias que foi proposto por Kermack e MacEndrick chamado SIR (talvez você tenha visto uma variação dele sendo usada para previsões durante a pandemia Covid-19). As letras S, I e R significam respectivamente:

Suscetíveis

Infectados

Recuperados

Esse modelo representa, portanto, três populações de indivíduos e suas dinâmicas variando com relação ao tempo. Para entender o modelo, vamos pensar que inicialmente, quando não existe ainda a epidemia e surge um novo agente, todas as pessoas podem ser suscetíveis a se contaminar. As pessoas se tornam infectadas ao entrarem em contato com esse determinado agente. Com o passar do tempo, vamos supor que os indivíduos infectados se recuperam. (Existem variações desse modelo para considerar outros tipos de epidemias em que a pessoa possa ter um tempo de incubação, pode não se recuperar etc. Mas vamos considerar apenas essa 3 populações para simplificar o exemplo).

Para chegar nas equações do modelo, vamos precisar de um termo que representa a taxa em que os indivíduos se tornam infectados: um parâmetro (beta) multiplicado a variável S que representa a velocidade em que um individuo deixa de ser suscetível e passa a ser infectado e essa taxa é proporcional ao valor da população S em determinado momento. E com isso a população S depende do tempo, o que representamos como S(t).

beta * S(t)

Como esta quantidade de indivíduos está “saindo” de uma população e “aparecendo” em outra, esse termo aparece com um sinal negativo (subtraindo) na equação dos Suscetíveis e o mesmo termo aparece com sinal positivo (somando) na equação dos Infectados. A notação dX/dt é adotada para representar equações diferenciais em que uma variável X(t) depende do tempo.

dS/dt = – beta * S(t) // equação dos Suscetíveis

dI/dt = + beta * S(t) // equação dos Infectados

Considerando apenas essas duas equações, se escolhemos valores para S(0) e I(0), que significa escolher as condições iniciais no tempo igual a zero, podemos resolver esse sistema. Simplificando bastante, da pra imaginar que a população de Suscetíveis vai sempre diminuir e a população de Infectados vai sempre aumentar, certo? Consegue imaginar isso? Olha o gráfico abaixo:

Bom, mas o indivíduo infectado pode se recuperar também né? Isso ocorre em uma determinada velocidade e é representado por outro termo em que um parâmetro diferente (gamma) é multiplicado a variável I (infectados) e aparece com sinal negativo na equação de Infectados e sinal positivo na equação R (recuperados), representando que a taxa de recuperação é proporcional, ou depende da quantidade de pessoas infectadas. Aí finalmente chegamos ao modelo SIR:

dS/dt = – beta * S(t)// equação dos Suscetíveis
dI/dt = + beta * S(t) – gamma * I(t)// equação dos Infectados
dR/dt = + gamma * I(t)// equação dos Recuperados
Modelo Epidemiologico – SIR

Esse é o modelo epidemiológico mais simplificado e usaremos esse para fins didáticos. Consideraremos apenas as três variáveis (S, I e R) e apenas dois parâmetros (beta e gamma).

Para utilizar esse modelo para representar uma epidemia precisamos saber qual a população inicial de indivíduos suscetíveis, infectados e recuperados, o que chamamos de “condição inicial”. E precisamos saber também quais são as taxas de infecção e recuperação.

Vamos supor que temos as seguintes condições iniciais (valor das variáveis no início da simulação, no tempo igual a zero) para cada variável do modelo:

S(0) = 10000 // população de 10000 indivíduos que podem se contaminar

I(0) = 0 // ninguém foi infectado

R(0) = 0 // como não tem ninguém infectado, também não tem ninguém recuperado ainda

E vamos supor também os seguintes valores para os parâmetros:

beta = 0.1 (taxa de infecção)

gamma = 0.01 (taxa de recuperação)

Com isso, precisamos ainda definir qual o algoritmo numérico que será utilizado para resolver o sistema de 3 equações, qual o passo de tempo que utilizaremos e quanto tempo de simulação desejamos representar. Algumas horas? 1 semana? 1 mês? 6 meses? etc.

Aqui vou assumir que quem está lendo já entende alguma coisa sobre algoritmos numéricos e vamos utilizar a função de integração solve_ivp() da biblioteca scipy.integrate (lembrando que estamos usando a linguagem de programação Python).

Uma observação antes de continuar é que passos de tempo menores permitem uma melhor aproximação do resultado. Imagine que estamos avançando em direção a uma solução. Se dermos passos muito grandes e por algum motivo erramos um pouco a direção, fica difícil retomar o caminho sem dar um salto grande para corrigir. Mas se estamos caminhando dando passos bem pequenos, podemos fazer ajustes na trajetória sem precisar dar grandes saltos de forma que quem esta olhando de fora talvez nem perceba que chegamos a sair ligeiramente da rota correta. No caso da função solve_ivp() ela utiliza como padrão o método Runge-Kutta e o passo de tempo é determinado de acordo com o método.

Vamos supor que simularemos o que acontece no período de 100 dias, e que queremos dar passos de um dia. Nesse caso, calcularemos um valor para cada dia a partir da resolução do sistema considerando as condições iniciais acima (link para o código-fonte no final da postagem). O gráfico fica assim:

Talvez tenha visto gráficos parecidos com esse durante a pandemia… a linha laranja está representando os infectados e durante a pandemia modelos matemáticos semelhantes a esse foram bastante utilizados para prever os picos e propor soluções para diminuir ou “achatar” essa curva. Mais a frente vou deixar um link para o código no Google Colab para que possa criar uma copia e alterar os parâmetros e fazer novas simulações. Que mudanças no modelo fazem achatar a curva?

Nesse post vimos um exemplo de sistema de equações diferenciais e um exemplo de resolução desse sistema. Esse modelo representa as dinâmicas de como uma doença infecciosa se espalha. Mas como sabemos quais valores de parâmetros devemos utilizar no modelo? Esse é o assunto do próximo post.

Acesse aqui o código-fonte utilizado nesse exemplo.

Caso tenha dúvidas ou sugestões pode deixar um comentário!

Até o próximo post! 🙂

Calibrando modelos matemáticos de equações diferenciais – Parte 1 – motivação

Comecei a escrever esse post pensando em fazer um tutorial para os meus alunos que iniciam projetos de iniciação científica e ainda não estão familiarizados com esse processo de calibrar os parâmetros de modelos matemáticos. Mas daí pensei em deixar público aqui no blog pois não encontrei outro semelhante em português. Então fica um resumo para qualquer pessoa que começa a trabalhar com modelos matemáticos de equações diferenciais e precisa calibrar o modelo para representar dados experimentais.

Esse primeiro post faz uma introdução ao uso de modelos matemáticos e a um exemplo de problema a ser resolvido. Se quiser ir direto para a parte de calibrar, pule para o post (ainda não postei atualizo em breve).

A linguagem de programação escolhida para o tutorial é o Python 3 por ser a que tenho mais utilizado com meus alunos no momento por ter curva de aprendizado suave e oferecer bibliotecas que simplificam o processo.

Dito isso, vamos começar pelo começo. Vamos supor que temos um determinado experimento ou fenômeno observado durante uma semana que gerou um conjunto de dados que foram medidos uma vez ao dia. Daí temos por exemplo o seguinte conjunto (array/vetor) com um valor representando cada dia:

Conjunto tempo (dias):

dias = [0 1 2 3 4 5 6]

Conjunto com os resultados (em uma determinada unidade qualquer) para cada dia:

valores = [1.0 1.1 1.2 1.3 1.4 1.5 1.6]

Observando esses dados podemos pensar em uma função simples que representa esses valores que estão crescendo monotonicamente. Uma equação da reta seria suficiente para representar esse conjunto de dados. No gráfico abaixo estamos plotando os pontos gerados para cada dia (eixo horizontal) e cada valor obtido (eixo vertical). E também uma reta que passa por todos esses pontos.

Considerando o primeiro e o segundo ponto podemos calcular o coeficiente angular dessa reta:

m = y1 – y0 / x1 – x0

= 1.1 – 1 / 1 – 0

= 0.1

Feito isso, escolhemos por exemplo o primeiro ponto e substituímos na equação:

y – y0 = m (x – x0)

y – 1.0 = 0.1 (x – 0)

y = 0.1 x + 1 <— essa é a equação para calcular os valores de y (na unidade desejada) a partir dos valores de x (o tempo em dias nesse exemplo). Se quisermos prever o que vai acontecer no dia 30 basta substituir o x por 30 nessa equação:

y = 0.1 (30) + 1

y = 4

Visualmente, se aplicarmos a equação para os pontos entre 0 e 30 temos a seguinte reta:

Esse exemplo serve apenas para demonstrar que é possível encontrar uma equação que represente um conjunto de dados e nos permita fazer previsões. Caso tudo se mantenha da mesma forma podemos prever os resultados dos experimentos para quaisquer dias.

Seria maravilhoso se todos os resultados de experimentos se comportassem como uma simples reta. Mas, frequentemente, estamos interessados em fenômenos mais complexos em que equações da reta ou polinômios não são suficientes para representar. Podemos precisar de outros tipos de modelos matemáticos para representar, por exemplo, as dinâmicas de interações entre células e moléculas do sistema imunológico (que é minha area de maior interesse e experiência nos últimos anos) ou como uma doença se espalha entre as pessoas? Ou como prever quando um osso vai quebrar? Para estudar esses comportamentos precisamos representar as concentrações dessas células, moléculas ou indivíduos ao longo do tempo e em alguns casos, podemos estudar também dinâmicas em mais de uma dimensão, quando precisamos também identificar como as células (ou as pessoas) se espalham pelo espaço.

Esse será o assunto do próximo post! Veremos um exemplo de uso de equações diferenciais para representar uma epidemia.

Material de apoio: acesse aqui o colab com exemplos de como gerar os gráficos do post usando Python.

Iniciar MySQL Server instalado via brew no Mac OS Catalina

Salvando como post porque sempre esqueço:

Para iniciar o serviço do MySQL server que foi instalado via brew lembrar que os arquivos de suporte estão dentro da pasta Cellar/mysql/versao/.

Por exemplo, para iniciar o serviço (versão 8.0.19):

sudo /usr/local/Cellar/mysql/8.0.19/support-files/mysql.server start

Para encerrar:

sudo /usr/local/Cellar/mysql/8.0.19/support-files/mysql.server stop

E para reiniciar:

sudo /usr/local/Cellar/mysql/8.0.19/support-files/mysql.server restart

Material Curso de Verão PGMC 2016 – LaTeX + Beamer

Esse ano participei como professora no Curso de Verão do Programa de Pós-Graduação em Modelagem Computacional da Universidade Federal de Juiz de Fora, com o minicurso: LaTeX + Beamer.

Foram duas semanas de aulas em que eu acabei aprendendo muito mais do que esperava! Espero que todos tenham absorvido o máximo possível e possam desenvolver documentos e apresentações com maior qualidade a partir desse curso.

Vou disponibilizar aqui os PDFs das aulas:

15/02/2016 – aula1 – Introdução ao LaTeX e ferramenta TeXstudio. 22/02/2016 – aula6 – Mais elementos de formatação.
16/02/2016 – aula2 – Formatação, listas, seções e teoremas. 23/02/2016 – aula7 – Desenhando com Tikz
17/02/2016 – aula3 – Elementos flutuantes (figuras e tabelas), organização do documento, definição de comandos e contadores. 24/02/2016 – aula8 – Apresentações com a classe beamer, frames, blocos, colunas e overlays.
18/02/2016 – aula4 – Modo matemático, fórmulas, símbolos e equações em várias linhas. 25/02/2016 – aula9 – Mais recursos do beamer, sumário, temas, apêndice, hiperlinks e código.
19/02/2016 – aula5 – Bibliografia, arquivo .bib e abnTeX2 26/02/2016 – Modelos de tese e dissertação do programa.

Clique aqui para mais informações sobre o modelo adotado pelo PPGMC-UFJF e procedimentos de defesa.

O material desenvolvido foi baseado em várias fontes disponíveis:

Qualquer dúvida ou sugestão deixe um comentário!

Importar Dados a Partir de Gráficos

Recentemente passei por uma situação que gostaria de utilizar dados de um artigo científico para alimentar meu modelo e comparar os resultados com o que foi publicado. No entanto, os dados foram apresentados apenas através de figuras e gráficos e não tive acesso aos valores exatos. Existem gráficos que até permitem uma aproximação, mas claro que o que eu precisava não conseguia inferir apenas olhando os eixos e deslizando uma folha de papel por cima, eu tentei…

Bom, claro que essa não é uma questão recente e me senti meio sem graça de não conhecer previamente ferramentas que extraem pontos de gráficos antes. Caso também não conheça e esteja passando pela mesma situação, segue uma dica de uma ferramenta grátis para ser utilizada no navegador mesmo, para identificar/extrair valores de alguma variável sob estudo a partir de gráficos.

WebPlotDigitizer é uma ferramenta fácil de começar a usar já que não precisa de instalação. Basta abrir essa página no navegador  e clicar no botão verde escrito “Launch App!”

O aplicativo inicia com uma figura de exemplo, mas você pode fazer upload da figura que precisar pelo menu superior “File/Load Image”.

O primeiro passo é identificar os eixos do gráfico clicando em em “Axes/Calibrate Axes” no menu superior e definir o tipo de gráfico. Para gráficos de duas dimensões, será exibida a seguinte janela explicando que deve clicar em quatro pontos conhecidos dos eixos, sendo dois no eixo X e dois no eixo Y, formando dois pares de pontos na ordem mostrada na figura:

webplotdigitizer1Depois de definir os eixos, os dados podem ser extraídos de várias formas dependendo to tipo de gráfico através do menu que aparece na lateral direita da tela.

Fonte: WebPlotDigitizer

É possível alternar entre o modo automático, em que é possível definir uma máscara e pintar a parte do gráfico que deseja extrair os pontos, e o manual, em que pode clicar nos pontos que deseja no gráfico e pegar um de cada vez.

Depois de definir todos os pontos basta clicar em “View Data” no canto inferior direito que abrirá uma janela com os pontos identificados, que podem ser salvos em um arquivo .csv, plotados ou copiados para utilizar da forma que quiser.

Sei que foi um tutorial bem superficial e não explorei todas as possibilidades da ferramenta mas a ideia era apresentar uma opção para quem não conhecia nenhuma ferramenta desse tipo. Quaisquer dúvidas ou sugestões por favor deixem nos comentários!

Espero que a dica tenha sido útil!

Muito obrigada!

Dica: Modo de Segurança do Windows 8 em Notebooks Dell Inspiron

Nesse link tem um tutorial da Dell sobre como reiniciar seu computador a partir do Windows para acessar o menu que permite entrar no modo de segurança entre outras coisas.

Mas se teve algum problema, por exemplo, seu computador hibernou e agora o Windows não inicia de jeito nenhum e só mostra uma tela preta, outra forma de entrar no modo de segurança é pressionando a tecla F8 antes de carregar o Sistema Operacional.

Se tem duas opções de SO selecione o windows no menu, pressione enter e clique desesperadamente em F8. Já deve saber isso mas, se seu computador é um laptop Dell Inspiron (vou ficar devendo mais informações sobre outros modelos, mas pode deixar um comentário que respondo), deve pressionar:

SHIFT + F9 !!! Ao invés de shift+F8 como diz na página da Dell…

Espero que tenha ajudado!

 

LaTeX – alinhar bloco de equações

Estava sentindo falta de escrever um tutorial então vamos lá! Esse blog começou porque queria salvar coisas que me ajudaram bastante em algum momento e que pudesse ajudar outras pessoas, e a mim mesma no futuro porque esqueço as coisas muito facilmente. Acho que a maioria dos acessos ao post  Instalação do Driver da Nvidia no Fedora 19 devem ser meus mesmo…

Dou preferência ao português pra facilitar a vida dos colegas que falam português. Sim, tenho acessos de Portugal e outros países que falam português o que acho o máximo! Muito obrigada pelos acessos! 🙂 No momento o post que tem mais acessos de forma geral é o Algoritmos no LaTeX em português 🙂

Bom, tenho usado LaTeX no dia a dia para criar relatórios e salvar experimentos e acabo utilizando os modelos de artigo e relatório padrão e gosto de alinhar todas as equações quando começo um novo documento. Mas não necessariamente um modelo pronto já vai alinhar os blocos de equações automaticamente então vou apresentar algumas opções aqui caso também queira e/ou precise alinhar equações ou blocos de equações no seu documento LaTeX.

Alinhar equações no LaTeX

Existe uma forma simples de alinhar à esquerda todas as equações de um documento LaTeX: basta usar a opção fleqn no início do documento. Por exemplo, se for criar um artigo a primeira linha deve ser parecida com essa:

\documentclass[fleqn,12pt]{article}

Somente acrescentar essa opção já será suficiente para trazer suas equações para a esquerda. Considere o seguinte código como exemplo:

\documentclass[12pt]{article}
\begin{document}
\section{Exemplo}
Bloco de equacoes:
\begin{eqnarray}
a_1 = b_1+c_1 \\
a_2 = b_2+c_2-d_2+e_2
\end{eqnarray}
\end{document}

Observe que estou usando o ambiente eqnarray para definir o bloco de equações mas a opção funciona também para uma equação definida no ambiente equation. Saída gerada pelo código acima antes e após acrescentar a opção fleqn no início do documento:

Resultado antes.
Resultado antes.

Resultado depois.
Resultado depois.

Possivelmente o seu conjunto de equações não terá o mesmo número de termos e, mesmo após inserir a opção fleqn, ainda estará desalinhado entre si como no exemplo acima. Para resolver alinhamento entre as equações, basta usar o caractere “&” cercando as igualdades como no fragmento de código abaixo:

\begin{eqnarray}
a_1 &=& b_1+c_1 \\
a_2 &=& b_2+c_2-d_2+e_2
\end{eqnarray}

Poderia terminar o post por aqui, mas se ainda não estiver satisfeito e quiser trazer as equações para o mesmo alinhamento do texto, ainda existe outra opção que modifica a identação de todas as equações no documento:

\setlength{\mathindent}{0pt}

Esse comando deve ser inserido no início do documento após a definição da classe e antes do \begin{document}, onde normalmente define os pacotes que serão utilizados. Abaixo, a diferença de alinhamento utilizando o caractere “&” e após modificar a identação:

Alinhamento com caractere & e após modificar identação das equações. A linha vermelha foi colocada para ajudar a visualizar a diferença em relação ao texto.

 

Já citei no post Algoritmos no LaTeX em português uma ótima referência em inglês sobre LaTeX é o blog texblog.

Espero que tenha ajudado! Qualquer dúvida pode deixar nos comentários que respondo!

Como criar gráficos com Gnuplot – que sejam bonitos!

Para quem já usa o Gnuplot e gostaria de tornar os gráficos mais profissionais bonitos mesmo! Segue abaixo os passos:

Antes de tudo, a ideia é criar um arquivo com as configurações que deseja usar dentro do gnuplot toda vez que ele for inicializado para não precisar repetir nada na próxima vez.

Se você usa SO Linux, basta colocar esse arquivo de configuração do Gnuplot chamado .gnuplot no seu diretorio /home. Para outros SOs crie um arquivo GNUPLOT.INI dentro do diretório que especificar na variável de ambiente GNUPLOT.

Tem um exemplo de arquivo aqui se quiser baixar ele gera esse tipo de resultado gráfico:

[gnuplot_final.gif]
Fonte: Guidolabs
Eu prefiro a legenda dentro do gráfico e as fontes e bordas na cor preta, então modifiquei algumas linhas do arquivo original:

Ao inves de especificar que a legenda fica do lado de fora do gráfico, apenas defini que quero que a legenda apareça com bordas:

# set key options

set key box

Na parte inicial das macros defini as cores das grids e dos textos como pretas:

grid_color = “black”
text_color = “black”

Meu gráficos estão bem mais interessantes agora! Vocês já usavam esse tipo de arquivo de configuração do Gnuplot? Tem outras dicas?

Deixem comentários!
Adicionado depois (17/02/2014)
Quando escrevi o post só tinha testado no Fedora mas, hoje testei no Windows e funcionou exatamente do jeito que está descrito no post. Bem simples mesmo. Criei uma variável de ambiente chamada GNUPLOT em “Sistema/Configurações Avançadas de Sistema… ” e coloquei o caminho onde salvei o mesmo arquivo (.gnuplot) só que com o nome de GNUPLOT.INI. Agora gero gráficos lindos com o Gnuplot independente do SO 🙂
Referência:

Guidolabs

Tutorial – Instalação StarUML Windows

StarUML

StarUML é um projeto de código aberto, disponível de forma gratuita para sistemas operacionais windows. É uma ferramenta de modelagem de software e também uma plataforma que concorre com softwares comerciais como o Rational Rose, por exemplo.


Segue abaixo os passos para instalação:

1. Acessar o site http://staruml.sourceforge.net/en/ clicar sobre link StarUML Download depois sobre (2005-12-30) StarUML 5.0 (Windows Installer) Stable 5.0 (21.67MB) optar por uma forma de instalação (escolha o executável: staruml-5.0-with-cm.exe). E salve o arquivo.

2. Dê dois cliques sobre o executável

 
Figure 7 (graphics7.png)

3. Clique em Next

 
Figure 8 (graphics8.png)

4. Marque a opção I accept the agrement e clique em Next

 
Figure 9 (graphics9.jpg)

5. Escolha o diretório de instalação ou deixe o sugerido e clique em Next

 
Figure 10 (graphics10.jpg)

6. Dê o nome da pasta (ou deixe o sugerido) de atalho que será criada no menu do Windows e clique em Next.

 
Figure 11 (graphics11.png)

7. Caso queira criar um atalho do programa na área de trabalho deixe marcado a caixa Create a Desktop icon e clique em Next

 
Figure 12 (graphics12.png)

8. Clique em Install e aguarde a instalação do programa.

 
Figure 13 (graphics13.png)

Depois disso o programa será instalado e estará disponível em Inicial >> Todos os Programas >> StarUML (ou o nome que foi colocado na instalação) .


Referências:

Créditos das Figuras para o João Carlos Ferreira dos Santos (Criando diagramas UML com o StarUML).

StarUML – The open source UML/MDA platform (Link).

Instalação do Driver da Nvidia no Fedora 19

Se chegou até aqui provavelmente é porque possui placa gráfica da Nvidia, instalou o Fedora 19 e gostaria de instalar o driver correspondente. O início desse tutorial também ajuda a resolver um problema com o nouveau (o que é nouveau?) que pode fazer com que a máquina trave do nada após a instalação do Fedora para quem possui placa gráfica da Nvidia.

Para instalar o driver da Nvidia primeiro faça o download do arquivo correspondente dependendo da sua configuração (x86-x64 (64-bit linux) or x86 (32-bit linux)). Recomendo fortemente o download direto da página oficial de download de drivers da Nvidia (link). Basta escolher o modelo da placa de vídeo da Nvidia que possui, tipo e série e qual Sistema Operacional (no caso o Linux) e o idioma. Segue um exemplo de tela dessa página de download:

Página de download de drivers da Nvidia
Página de download de drivers da Nvidia

Depois de escolhido clique em “SEARCH” e na próxima tela clique em “DOWNLOAD”.

Salve na máquina em que pretende instalar maaaaas antes de instalar é importante seguir alguns passos:

1. Se não estiver acessando como root, torne-se super usuário:

$ su
$ <digite a senha>

2. tenha certeza que está com  o kernel atualizado:

$ yum update

3. Tenha certeza que tem instalados kernel-devel e kernel-headers:

$ yum -y install kernel-devel kernel-headers

4. Muito importante! Tem que ter certeza que o nouveau está”blacklisted” (desabilitar esse driver resolve os “travamentos” indesejados – pelo menos resolveu no meu caso – essa parte termina no passo 8 desse tutorial):

$ egrep -i "blacklist\s*nouveau" /etc/modprobe.d/blacklist.conf || echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

(Obs: confira os diretórios! Pode ser que os arquivos estejam em diretórios diferentes. Esse comando funciona para Fedora 18 mas lembro que tive que mudar para o Fedora 19)

5. Tire o módulo do nouveau do caminho padrão para que ele não seja compilado na initramfs:

$ mv /usr/lib/modules/$(uname -r)/kernel/drivers/gpu/drm/nouveau/nouveau.ko /usr/lib/modules/$(uname -r)/kernel/drivers/gpu/drm/nouveau/nouveau.ko.blacklist

 (Obs: mais uma vez, se houver algum problema basta conferir os diretorios)

6. Mova a initramfs antiga para outro local como backup:

$ mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).nouveau.img

7. Compile uma nova initramfs:

$ dracut /boot/initramfs-$(uname -r).img $(uname -r)

8. Reinicie com a nova initramfs sem o nouveau:

$ shutdown -r now

9. No terminal vá para o diretório em que o driver foi salvo, por exemplo /Downloads/:

$ cd ~username/Downloads

10. Torne o arquivo do driver executável:

$ chmod +x NVIDIA-Linux-*.run

11. Interrompa o X:

$ init 3

12. Finalmente execute a instalação:

$ ./NVIDIA-Linux-*.run

Obs: claro que no lugar do asterisco vai o nome do driver…

Espero ter ajudado! Tive alguns problemas durante a instalação do driver mas fica para outro post os comentários e a solução!

Qualquer dúvida ou sugestão favor deixar um comentário!

Mais informações:

http://forums.fedoraforum.org/showthread.php?t=289960

http://www.if-not-true-then-false.com/2013/fedora-19-nvidia-guide/

Dropbox – instalação e utilização no Windows

Gostaria de deixar uma dica para quem não conhece ou gostaria de conhecer melhor uma possibilidade de armazenamento na nuvem.

Dropbox

Como usar o Dropbox (Foto: Reprodução/Ramon Cardoso)

Aproveitando o post de Ramon Cardoso para o TechTudo seguem as dicas dele sobre o Dropbox:

Obs: As dicas de instalação contidas no post abaixo se referem ao Windows. Para quem utiliza o Linux e tem dúvidas quanto à instalação do Dropbox sugiro o tutorial: Instalar Dropbox Fedora (integrado ao Nautilus) 

“O Dropbox é uma excelente alternativa para quem gosta de ter os seus documentos sempre à mão. Com ele, você pode hospedar os seus arquivos na “nuvem” e acessá-los de qualquer lugar e com qualquer dispositivo. Uma verdadeira mão na roda.

Nesta dica, criamos um guia sobre Como usar o Dropbox. Acompanhe os passos abaixo e descubra uma boa alternativa para armazenar e compartilhar arquivos com seus amigos.

Criando uma conta e instalando o Dropbox

Passo 1. O primeiro passo para usar o Dropbox é criar uma conta no site oficial do programa. Para isso, acesse a página de cadastro e preencha os campos com os seus dados, marque a caixa “I agree” e clique em “Create account”.

Criando uma conta Dropbox
Criando uma conta Dropbox (Foto: Reprodução/Ramon Cardoso)

Passo 2. Agora que você já tem uma conta, faça o Download do Dropbox e instale-o em seu computador. Obs.: é importante que você tenha privilégios de administrador.

Passo 3. Ao executar o programa, marque a opção “I already have a Dropbox account” e clique em “Next”. Na tela seguinte, forneça os dados da conta que você acabou de criar e clique novamente em “Next”.

Instalando o Dropbox
Instalando o Dropbox (Foto: Reprodução/Ramon Cardoso)

Passo 4. Escolha a opção de 2 GB (gratuita) e clique em “Next”. Deixe a opção “Typical” marcada e clique em “Install” para iniciar a instalação.

Escolhendo o teipo de conta e instalalção
Escolhendo o tipo de conta e instalação (Foto: Reproducão/Ramon Cardoso)

Passo 5. Caso uma nova janela seja aberta, clique em “Skip tour” para pular a explicação e, depois, em “Finish” para concluir o processo.

Armazenando e compartilhando arquivos

Passo 6. Para abrir a pasta do Dropbox no seu computador, clique no ícone do programa, próximo ao relógio da barra de tarefas.

Abrindo a pasta do Dropbox no seu computador
Abrindo a pasta do Dropbox no seu computador (Foto: Reprodução/Ramon Cardoso)

Passo 7. Para adicionar novos arquivos à pasta, basta utilizar os comandos “Ctrl+C” e “Ctrl+V”, ou arrastar os arquivos para dentro da pasta. Todos os arquivos serão automaticamente sincronizados com um upload automático e salvos também na sua pasta on-line.

Sincronização automática - Pasta do Dropbox no computador e no site com o mesmo conteúdoSincronização automática – Pasta do Dropbox no computador e no site, mesmo conteúdo (Foto: Reprodução)

Passo 8. Para compartilhar arquivos do seu computador, basta copiá-los para a pasta “Public”, dentro da sua pasta do Dropbox. Em seguida, é só clicar sobre eles com o botão direito do mouse e, em “Dropbox”, selecionar a opção “Copy public link”. Depois é só colar o link em algum lugar e enviar para quem você quiser.

Copiando o link de compartilhamento de um arquivoCopiando o link de compartilhamento de um arquivo (Foto: Reprodução/Ramon Cardoso)

Passo 9. Caso você esteja em uma máquina que não tem o Dropbox instalado, você pode acessar o site do Dropbox e fazer upload de arquivos para a sua pasta on-line. Esses arquivos estarão disponíveis para download em qualquer lugar e também serão sincronizados com as pastas de outros dispositivos com o Dropbox instalado.

Adicionando arquivos à pasta on-lineAdicionando arquivos à pasta on-line (Foto: Reprodução/Ramon Cardoso)

Passo 10. Da mesma forma que no computador, você também pode criar um link público de um arquivo a partir da sua pasta on-line, no site do Dropbox. Para isso, basta marcar um arquivo, clicar em “More” e escolher a opção “Copy public link”, como na imagem abaixo.

Criando um link de compartilhamento para um arquivo on-lineCriando um link de compartilhamento para um arquivo on-line (Foto: Reprodução/Ramon Cardoso)

Criando pastas compartilhadas

Outro recurso interessante é a opção de criar pastas compartilhadas. Dessa forma, as pessoas que você convidar também poderão ter acesso ao conteúdo da sua pasta e poderão adicionar arquivos a ela.

Passo 11. Para compartilhar uma pasta no seu computador, basta clicar com o botão direito do mouse sobre ela, selecionar a opção Dropbox e escolher a opção “Share this folder…”.

Compartilhando uma pasta do computador com outras pessoasCompartilhando uma pasta do computador com outras pessoas (Foto: Reprodução/Ramon Cardoso)

Passo 12. No site, marque a pasta que deseja compartilhar, clique na opção “More” e selecione a opção “Invite to folder”.

Compartilhando uma pasta on-lineCompartilhando uma pasta on-line (Foto: Reprodução/Ramon Cardoso)

Passo 13. Em seguida, digite os nomes ou endereços de e-mail das pessoas com as quais você quer compartilhar a pasta e clique em “Share folder”.

Selecionando as pessoas que terão acesso à pasta compartilhada
Selecionando as pessoas que terão acesso à pasta compartilhada (Foto: Reprodução/Ramon Cardoso)

Acessando o Dropbox e baixando arquivos de outros locais

Você pode acessar a sua pasta do Dropbox de qualquer lugar que tenha internet, seja por um navegador, com a sua pasta online, ou em outro computador ou celular que tenha o Dropbox instalado.

Passo 14. Para baixar os arquivos em outro computador, acesse o site do Dropbox e faça login em sua conta. Depois, marque o arquivo que deseja baixar, clique em “More” e selecione a opção “Download File”.

Baixando um arquivo do DropboxBaixando um arquivo do Dropbox (Foto: Reprodução/Ramon Cardoso)

Passo 15. Caso esteja em outro computador com o Dropbox instalado, basta abrir o programa e informar o seu e-mail e senha para ter acesso aos arquivos armazenados em sua pasta do Dropbox.

Passo 16Para poder acessar os seus arquivos também do seu celular, acesse a página do Dropbox e baixe o aplicativo para o seu sistema: Android, iOS (iPad e iPhone), e BlackBerry.

Dropbox para celularDropbox para celular (Foto: Reprodução/Ramon Cardoso)

Agora você não precisa mais se preocupar em perder os seus arquivos ou esquecer-se de levá-los para algum lugar. Graças ao Dropbox, eles estarão sempre disponíveis sempre que você precisar.”

(postagem original)

Algoritmos no LaTeX em Português

LaTeX
LaTeX. Fonte: http://latex-project.org

Pacotes

Caso esteja se perguntando “como colocar algoritmos na minha monografia, dissertação, tese feita em LaTeX em português”? Calma que é simples! 😀

Existem alguns pacotes para facilitar a vida de quem precisa listar algoritmos no meio do texto ( como por exemplo: algorithm e algoritmic). No entanto, geralmente os comandos estão em inglês.
Para utilizar os comandos em  português, recomendo incluir o pacote Algorithm2e.sty ao seu documento LaTeX (pode clicar aqui para baixar e mande salvar na mesma pasta que está seu texto, se quiser uma solução rápida).

Pode incluir desse jeito lá no início do documento passando entre as opções a palavra “portugues” (sem acento!):

\usepackage[portugues,ruled,lined]{algorithm2e}

Obs: inclusão de pacotes é feita depois da definição da classe (\documentclass[opcoes]{nomedaclasse} e antes do início do documento \begin{document})

Inclua também o pacote algorithmic citado acima que é utilizado junto ao algorithm2e.

\usepackage{algorithmic}

Feito isso, no local que quiser incluir a listagem com o algoritmo, escreva o código que quiser (existem comandos pré-definidos olhe mais abaixo nesse post) dentro do ambiente “algorithm” usando comandos já em português graças ao algorithm2e.

Segue um exemplo:

\begin{algorithm}[H]
\Entrada{o proprio texto}
\Saida{como escrever algoritmos com \LaTeX2e }
\Inicio{
inicializa\c{c}\~ao\;
\Repita{fim do texto}{
leia o atual\;
\uIf{entendeu}{
vá para o próximo\;
próximo se torna o atual\;}
\Else{volte ao início da seção\;}
}
}
\caption{Como escrever algoritmos no \LaTeX2e}
\end{algorithm}

O código acima gera a seguinte listagem de algoritmo no documento:

Algoritmo

Na versão que baixei do arquivo Algorithm2e.sty  tive um problema justamente com o trecho que define os nomes em português. Parece que os parâmetros estavam desatualizados. Mas só tive que substituir os parâmetros e funcionou perfeitamente!

Abra o arquivo Algorithm2e.sty e procure por “declareoption” (está na parte inicial do pacote).

Basta substituir o texto abaixo onde tiver a opção “\DeclareOption{portugues}”:


\DeclareOption{portugues}{%
 \renewcommand{\listalgorithmcfname}{Lista de Algoritmos}%
 \renewcommand{\algorithmcfname}{Algoritmo}%
 \renewcommand{\algocf@typo}{}%
 \renewcommand{\@algocf@procname}{Procedimento}
 \renewcommand{\@algocf@funcname}{Fun\c{c}\~{a}o}
 }

Substituindo esse trecho no arquivo Algorithm2e.sty garanto que resolve!

Comandos

Para saber quais são os comandos possíveis basta olhar no arquivo algorithm2e.sty mas se não tiver tanta intimidade com código LaTeX, vou dar uma colher de chá. Os comandos em português que podem ser utilizados para montar seu algoritmo são:

  • \Inicio
  • \Entrada
  • \Saida
  • \Dados
  • \Resultado
  • \Ate
  • \Retorna
  • \Repita

Agora é só escrever seus próprios algoritmos!

Qualquer dúvida ou sugestão deixe um comentário!

ATENÇÃO: Existem comandos atualizados nos comentários abaixo! Muito obrigada pelas colaborações!

Referências (em inglês):

O que é o LaTeXhttp://latex-project.org/intro.html

Blog bem completo com dicas sobre LaTeX: http://texblog.org/

Link para Algorithm2e.sty: http://tug.ctan.org/tex-archive/macros/latex/contrib/algorithm2e/tex/algorithm2e.sty

Sempre a wikipedia! http://en.wikibooks.org/wiki/LaTeX/Algorithms_and_Pseudocode

Mais exemplos: http://www.math-linux.com/latex-26/faq/latex-faq/How-to-write-algorithm-and

Tutorial de Instalação do CodeBlocks no Windows

CodeBlocks é a IDE utilizada no curso de Laboratório de Programação I.
Para instalação no Windows, abra a página http://www.codeblocks.org/ e clique em Downloads.
Dentre as opções escolha a que tiver Binarie Release. Abrirá uma página como essa:
codeblocks
Role a tela para baixo e escolha uma versão para Windows que contenha “…mingw_setup.exe” no nome, o que indica que instalará também o pacote MingW (que é uma versão para Windows da coleção de compiladores GNU – GCC). Instale essa versão para poder compilar os programas. Existem duas opções de Download (Berlios ou SourceForge) e tanto faz a escolha.
codeblocks
Ao concluir o download, abra o arquivo e clique em “Next”.
codeblocks
Na tela seguinte clique em “I Agree” para concordar com os termos.
codeblocks
Continue clicando em “Next”.
codeblocks
Clique em “Install”.
codeblocks
Aparecerá uma mensagem perguntando se gostaria de rodar o CodeBlocks. Clique em “Sim”.
codeblocks
Certifique-se de que o compilador foi detectado e clique em “Ok”.
codeblocks
O CodeBlocks abrirá e, se mostrar uma dica pode clicar em “Close” para fechar.
codeblocks

A partir desse momento poderá utilizar o CodeBlocks para criar seus projetos em C!

Caso tenham dúvidas, mais links sobre instalação e configuração do CodeBlocks no Windows:
Para quem está familiarizado com o Linux segue um link para instalaçao de CodeBlocks no Ubuntu:
Ou deixe um comentário abaixo.

Tutorial – Instalar Dropbox Fedora (integrado ao Nautilus)

Supondo que já tenha uma conta criada no Dropbox (se não tiver vá até a página e crie) abra o terminal e se torne super usuário:
   $su
     (e dessa vez lembre a senha…)
Enfim, para uma instalação automatizada do dropbox, que funcionou em Jan/2013, cole o texto abaixo em um arquivo e salve.
#! /bin/bash
# This software installation script is for Fedora 15 (32-bit/64-bit)
# It configures Dropbox yum repository and install Dropbox

#ensure that wget is installed
yum install -y wget

#Addition yum repo file from Dropbox 
wget http://dl.dropbox.com/u/30876345/repo/dropbox.repo 
mv dropbox.repo /etc/yum.repos.d

#Install Dropbox
yum install -y nautilus-dropbox

echo "You need to activate the dropbox program to configure a user account. 
The program is under Applications >> Internet >> Dropbox"
Dê permissão para executar o arquivo:$sudo chmod +x <nome_do_script>E execute o script:$./<nome_do_script>Para concluir a instalação, precisa ainda do seguinte comando:

$ dropbox start -i

Daí vai aparecer uma tela para fazer login na conta e configurar a pasta local do Dropbox.
E depois que estiver instalado, configure nas preferências para iniciar quando ligar o sistema.
Ou se preferir pode simplesmente iniciar o dropbox pelo terminal:

$ dropbox start

É esperado que depois desses passos a pasta local do Dropbox esteja sincronizando os arquivos e mostre os ícones acima de cada subpasta ou arquivo que tenha.

Mais informação nos links abaixo:

http://technozeal.wordpress.com/2011/06/03/install-dropbox-in-fedora-15-lovelock/
http://pt.wikipedia.org/wiki/Dropbox
http://linuxbestchoice.wordpress.com/2010/05/11/dropbox-no-linux/
Caso tenha alguma dúvida ou algo a acrescentar, deixe um comentário: