anúncios

sábado, 16 de outubro de 2021

Conhecendo o QtSpim

O que é QtSpim?

O Spim é o simulador da linguagem Assembly MIPS. O QtSpim é uma ferramenta gráfica para o Spim.

A versão atual até a data de publicação deste post é 9.1.22, no entanto, dependendo da data que estiver seguindo esse howto, verificar a versão atual

O presente post é explicado na distribuição com base Debian

Instando o QtSpim na distro base Debian

Download do .deb

$ wget https://sourceforge.net/projects/spimsimulator/files/qtspim_9.1.22_linux64.deb

Executar o arquivo .deb via DPKG para instalação

$ sudo dpkg -i qtspim_9.1.22_linux64.deb

Abrir o QtSpim pelo terminal

$ qtspim &

Também encontra disponível no ambiente gráfico que utiliza na distro derivada do Debian.

Vamos fazer o primeiro programa em Assembly MIPS?

HelloWorld.asm

.text
la $a0, showHelloWorld
li $v0, 4
syscall
.data
showHelloWorld: .asciiz "Hello World em Assembly MIPS!"

Fig. 1 Screenshot do QtSpim

Para executar um programa em Assembly MIPS no QtSpim, no menu File>Reinitialize and Load File seleciona o arquivo com extensão .s ou .asm no diretório que salvou.

Register Panel

O Register Panel mostra o conteúdo de todos os registradores MIPS. Observe que existe duas abas nesse painel, uma para os registradores de ponto flutuante e outra para os registradores de propósito geral (R1-R31), junto com registradores de propósito especial, como contador de programa.

Memory Panel

O Memory Panel mostra duas abas: Data e Text. Na aba Text mostra o conteúdo do programa em memória.

Na aba Data mostra o conteúdo de memória de dados. Isso inclui as variáveis e os dados da matriz que você cria, junto com o conteúdo da pilha.

Feito!

terça-feira, 12 de outubro de 2021

Conhecendo o MARS

O que é MARS?

O MARS é um ambiente de desenvolvimento integrado (IDE) destinado a estudos da arquitetura MIPS, assim pode estudar a linguagem Assembly MIPS com a IDE MARS. Geralmente é utilizado na disciplina de Arquitetura e Organização de Computadores no curso Bacharelado em Ciência da Computação, o qual segue o livro do Patterson, Organização e Arquitetura de Computadores.

O MARS foi desenvolvido em Java e a partir do release 4.0, contém 155 instruções básicas da arquitetura MIPS, aproximadamente 370 pseudo-instruções, 17 funções syscalls para o console e entrada e saída de dados, outras 22 funções syscalls para outros usos como o MIDI output, para as saídas de mídia, geração de números aleatórios.

A linguagem Assembly é o que no mundo da computação, chamamos de linguagem de montagem. É basicamente faz o intermediário entre as linguagens de programação que nós usuários usamos e o que o computador interpreta.

Download do MARS

Pré-requisito: Precisa ter o JRE instalado no computador.

Uma vez tendo o JRE instalado no computador, faça o download do JAR MARS e execute no terminal, onde salvou o arquivo JAR MARS, conforme segue:

PS: Até a data de publicação deste post, a versão atual do MARS é 4.5, então dependendo da data que esteja seguindo esse post, adapte pela respectiva versão.

$ java -jar Mars4_5.jar

Vamos fazer o primeiro programa em Assembly MIPS?

HelloWorld.asm

.text
la $a0, showHelloWorld
li $v0, 4
syscall

.data
showHelloWorld: .asciiz "Hello World em Assembly MIPS!"

O que faz esse código?

Podemos ver as diretivas e novos elementos. Temos a instrução la, que vai nos servir para armazenar o endereço de algum elemento em um registrador específico. Nesse caso, estamos pegando o endereço do rótulo 'showHelloWorld'. Um rótulo é como se fosse uma marcação daquele endereço específico. E com essa marcação, podemos acessar esse endereço por esse rótulo.

Depois, temos a primeira syscall. Uma syscall é uma chamada do sistema, literalmente falando. Como ela funciona? Essa chamada do sistema tem dois registradores padrão de argumentos. O $a0 e o $v0. Para essa syscall, que é de imprimir uma string no console, enviamos o endereço da string que queremos imprimir para $a0 e o código da operação enviamos para $v0. Esse código da operação podemos consultar no Help apertando F1 e indo na aba Syscalls. Após enviarmos os valores para os registradores de argumento da syscall, fazemos uma chamada com o comando syscall no nosso código.

Também temos uma nova diretiva, o .asciiz, que é a diretiva responsável por representar os caracteres da string a seguir em ASCII com a terminação '\0'.

Fora os novos elementos do código, é visível que ele está melhor estruturado, separando o que é do segmento de texto e o que é do segmento de dados.

Após compilar o nosso código, na nossa tela de execução teremos algo diferente. O nosso segmento de dados não está mais vazio. Agora, contém nele a nossa string “Hello World em Assembly MIPS!”, que enviamos com a diretiva .asciiz. Podemos executar o programa pressionando o F5 ou através do F7 e ver como o processador faz a execução de cada instrução.

Feito!

segunda-feira, 11 de outubro de 2021

Conhecendo o Clockify

O que é Clockify?

É uma ferramenta de controle de horas 100% gratuita e ilimitada para equipes e autônomos.

Ideal para acompanhar os horários dos colaboradores e as horas faturáveis, o andamento dos projetos, relatório, cronogramas e muito mais. Controle o tempo usando um cronômetro ou registre as horas manualmente.

Permite gerar relatórios semanalmente, mensalmente e anualmente de projetos realizado pela equipe.

Disponível na versão web, dispositivos móveis (Android, iOS) e desktop para Windows, Linux e macOS.

Também tem extensão no Google Chrome e Mozilla Firefox .

Quem utiliza o Clockify?

Autônomos, consultores, trabalhadores remotos, pequenas e médias empresas, agências digitais, ONGs, universidades e empresas.

O Clockify foi fundado em 2017 e pode ser acessado https://clockify.me/

O Clockify tem uma API REST que pode desenvolver a integração no sistema, caso tiver interesse.

Feito!

quinta-feira, 7 de outubro de 2021

Instalando o MongoDB Compass no Linux

O que é MongoDB Compass

MongoDB Compass é uma ferramenta gráfica do MongoDB, que torna mais fácil utilizar os recursos do MongoDB.

Procedimentos de instalação do MongoDB Compass em distro derivada do Debian


$ wget https://downloads.mongodb.com/compass/mongodb-compass_1.26.1_amd64.deb

$ sudo dpkg -i mongodb-compass_1.26.1_amd64.deb

$ mongodb-compass &

Verifique no gerenciador gráfico que estiver utilizando na distro derivada do Debian, se o MongoDB Compass aparece no menu. Deve aparecer.

Feito!

segunda-feira, 4 de outubro de 2021

Instalando e Configurando o MongoDB Community Edition no Linux

MongoDB é um software de banco de dados orientado a documentos livre, de código aberto e multiplataforma, escrito na linguagem C++. Classificado como um programa de banco de dados NoSQL (não relacional), o MongoDB usa documentos semelhantes a JSON com esquemas.

Preparação para instalação do MongoDB

$ wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

$ sudo apt install gnupg

$ wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

Ubuntu 20.04

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Ubuntu 18.04

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Ubuntu 16.04

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Debian 10

$ echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Atualizar a lista de repositório

$ sudo apt update

Instalando o MongoDB via APT

$ sudo sudo apt install -y mongodb

Inicializar o serviço do MongoDB

$ sudo systemctl start mongodb

Caso exibir o erro abaixo

"Failed to start mongod.service: Unit mongod.service not found."

$ sudo systemctl daemon-reload

Verificar o status do serviço MongoDB

$ sudo systemctl status mongod

Para parar o serviço MongoDB

$ sudo systemctl stop mongod

Para reiniciar o serviço MongoDB

$ sudo systemctl restart mongod

Log do MongoDB

O log do MongoDB fica no caminho /var/log/mongodb/mongod.log, então verifique em tempo real com o comando abaixo:

$ sudo tail -f /var/log/mongodb/mongod.log

Feito!

domingo, 3 de outubro de 2021

Conhecendo o Mendeley

O que é Mendeley?

O Mendeley é um gerenciador de bibliografias e artigos, também uma rede social que conecta pesquisadores científicos. O gerenciamento de bibliografias pode ser realizado tanto local (seu computador), quanto à distância (via Internet na sua conta).

Ao adicionar um artigo no Mendeley, o banco de dados buscará na Internet informações sobre o artigo e construirá a bibliografia para você. Essa busca é feita através do título do artigo e pelo DOI (Digital Object Identifier), que é um padrão de identificação de documentos na Internet. Essa funcionalidade é apenas para artigos no formato PDF.

Instalando o Mendeley no Linux (Ubuntu)

$ sudo apt-add-repository https://www.mendeley.com/repositories/ubuntu/stable/amd64/mendeleydesktop-latest

$ sudo apt update

$ sudo apt install mendeleydesktop

Pronto, o Mendeley está instalado. Abre o Mendeley, loga na sua conta ou crie uma, caso não existir. Depois em Tools > Options> na aba General. Insere os artigos em Add Documents. Caso preferir pode usar a opção "Watched Folder", que monitora os diretórios. Essa opção faz a busca dos artigos em PDF para inserir no banco de dados na hora que for iniciado. Verifique em Tools>Options> na aba "Watched Folder".

Também tem a extensão Mendeley no Google Chrome ( https://chrome.google.com/webstore/detail/mendeley-web-importer/dagcmkpagjlhakfdhnbomgmjdpkdklff ).

Feito!