Arquivos e Links
Category Archives: Tecnologia
Governança em TI
Arquivos e Links
Sistemas e Segurança
DBDiagram.io Exemplo
Exemplo de modelo de dados DBDiagram.io
//// -- LEVEL 1
//// -- Tables and References
// Creating tables
Table users as U {
id int [pk, increment] // auto-increment
full_name varchar
created_at timestamp
country_code int
}
Table countries {
code int [pk]
name varchar
continent_name varchar
}
// Creating references
// You can also define relaionship separately
// > many-to-one; < one-to-many; - one-to-one
Ref: U.country_code > countries.code
Ref: merchants.country_code > countries.code
//----------------------------------------------//
//// -- LEVEL 2
//// -- Adding column settings
Table order_items {
order_id int [ref: > orders.id] // inline relationship (many-to-one)
product_id int
quantity int [default: 1] // default value
}
Ref: order_items.product_id > products.id
Table orders {
id int [pk] // primary key
user_id int [not null, unique]
status varchar
created_at varchar [note: 'When order created'] // add column note
}
//----------------------------------------------//
//// -- Level 3
//// -- Enum, Indexes
// Enum for 'products' table below
Enum products_status {
out_of_stock
in_stock
running_low [note: 'less than 20'] // add column note
}
// Indexes: You can define a single or multi-column index
Table products {
id int [pk]
name varchar
merchant_id int [not null]
price int
status products_status
created_at datetime [default: `now()`]
Indexes {
(merchant_id, status) [name:'product_status']
id [unique]
}
}
Table merchants {
id int
country_code int
merchant_name varchar
"created at" varchar
admin_id int [ref: > U.id]
Indexes {
(id, country_code) [pk]
}
}
Table merchant_periods {
id int [pk]
merchant_id int
country_code int
start_date datetime
end_date datetime
}
Ref: products.merchant_id > merchants.id // many-to-one
//composite foreign key
Ref: merchant_periods.(merchant_id, country_code) > merchants.(id, country_code)
Instalando Tor Browser no Ubuntu
Passo 1. Se seu sistema for de 64 bits, use o comando abaixo para baixar o programa. Se o link estiver desatualizado, acesse essa página (clique na pasta que contém o nome alpha ou beta), baixe a última versão e salve-o com o nome tor-browser.tar.xz:
wget https://dist.torproject.org/torbrowser/10.5a16/tor-browser-linux64-10.5a16_pt-BR.tar.xz -O tor-browser.tar.xz
Passo 2. Execute o comando abaixo para descomprimir o pacote baixado, para a pasta /opt/;
sudo tar -xvJf tor-browser.tar.xz -C /opt/
Passo 3. Renomeie a pasta criada;
sudo mv /opt/tor-browser*/ /opt/tor-browser
Passo 4. Finalmente, crie um atalho para facilitar a execução do programa;
sudo ln -sf /opt/tor-browser/Browser/start-tor-browser /usr/bin/torbrowser
Passo 5. Se seu ambiente gráfico atual suportar, crie um lançador para o programa, executando o comando abaixo;
echo -e '[Desktop Entry]\n Version=1.0\n Name=torbrowser\n Exec=/opt/tor-browser/Browser/start-tor-browser\n Icon=/opt/tor-browser/Browser/icons/updater.png\n Type=Application\n Categories=Application' | sudo tee /usr/share/applications/torbrowser.desktop
Exemplo API – Binary vs Base64
Este post, esclarece as diferenças de uma API que permite integrar arquivos, através de arquivo binário e base 64. Um ponto importante é que utilizando o formato Base 64, o payload aumenta 33% (em média), nas chamadas GET/POST.
O exemplo utiliza Spring Boot.
Desenho da Solução
A solução utiliza REST API, armazenando o arquivo em File System (/uploads/) no local onde a aplicação está rodando.

Swagger UI
De forma a facilitar o entendimento a API, o projeto conta com o Swagger UI, através do Spring Fox.
Para acessar o Swagger UI, basta subir a aplicação e acessar http://localhost:8080/swagger-ui.html.

Postman
GET – List Files

GET – Specif File (obtenção de arquivo binário)

GET – Specif File 64 (obtenção do arquivo em base64 – em torno de 33% maior que o binário) – Verifique o tamanho em Content-Length (12.764) – O arquivo binário tem 9.572 bytes.


POST – Post File

POST – Post File 64

Código


O código-fonte pode ser baixado no Github.
Instalando RStudio no Ubuntu
Acesse o site para download
https://www.rstudio.com/products/rstudio/download/
Escolha a opção RStudio Desktop (FREE)

Escolha o OS para Ubuntu (.deb)

Após o download, clique no arquivo com o botão direito do mouse e escolha “Abrir com instalação de programa”.
Execute a instalação e pronto!

Tela do RStudio aberta.
Instalando R no Ubuntu
Como o R é um projeto em constante atualização, a versão estável mais recente nem sempre está disponível nos repositórios do Ubuntu. Sendo assim, vamos começar adicionando o repositório externo mantido pelo CRAN.
Nota: o CRAN mantém os repositórios dentro de sua rede, mas nem todos os repositórios externos são confiáveis. Certifique-se de instalar apenas a partir de fontes confiáveis.
Vamos primeiro adicionar a chave GPG relevante.
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
Copy
Ao executarmos o programa, vamos receber o seguinte resultado:
OutputExecuting: /tmp/apt-key-gpghome.cul0ddtmN1/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
gpg: key 51716619E084DAB9: public key "Michael Rutter <marutter@gmail.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
Assim que tivermos a chave confiável, podemos adicionar o repositório.
Se você não estiver usando a versão 20.04, será possível encontrar o repositório relevante da lista Ubuntu do projeto R, nomeada para cada versão. O Ubuntu 20.04 é conhecido como Focal Fossa, e a versão mais recente do R é a 4.1.0. Por conta disso, este é o nome convencionado do repositório abaixo — focal-cran40
.
$ sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'
Copy
Dentro do resultado exibido, você deve identificar linhas semelhantes às seguintes:
Output...
Get:7 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease [3622 B]
Get:8 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ Packages [15.6 kB]
...
Agora, precisaremos executar update
(atualizar) após isso para incluir os manifestos de pacotes do novo repositório.
$ sudo apt update
Copy
Certifique-se de que uma das linhas do resultado é semelhante à seguinte:
Output...
Hit:5 https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/ InRelease
...
Se a linha acima aparecer no resultado do comando update
, adicionamos o repositório com sucesso. Podemos garantir que não instalaremos acidentalmente uma versão mais antiga.
Neste ponto, estamos prontos para instalar o R com o seguinte comando.
$ sudo apt install r-base
Copy
Se for solicitado a confirmar a instalação, pressione y
para continuar.
No momento em que este tutorial está sendo escrito, a versão estável mais recente do R do CRAN é a 4.1.0, que é exibida quando você inicia o R.
Como estamos planejando instalar um pacote de exemplo para cada usuário no sistema, iniciaremos o R como root para que as bibliotecas estejam disponíveis para todos os usuários automaticamente. De forma alternativa, se você executar o comando R
sem o sudo
, uma biblioteca pessoal pode ser configurada para seu usuário.
$ sudo -i R
Copy
Output
R version 4.0.0 (2020-04-24) -- "Arbor Day"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
...
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
>
Isso confirma que instalamos o R com sucesso e entramos em seu shell interativo.
Para verificar a versão instalada, digite o comando
$ R --version
Digital First

Digital First: 19 pilares da Transformação Digital
NLP – Natural Language Processing
Layers
- Input and initial processing—Taking in speech or text and breaking it up into smaller pieces for processing. For speech, this step is called phonetic analysis, and consists of breaking down the speech into individual sounds, called phonemes. For text input, this can include optical character recognition (OCR) and tokenization. OCR is used to recognize the individual characters in text if it’s coming in as an image rather than as words made of characters. Tokenization refers to breaking down a continuous text into individual tokens, often words.
- Morphological analysis—Breaking down complex words into their components to better understand their meaning. For example, you can break down “incomprehensible” into its component parts.
- “in”—not
- “comprehens”—to understand or comprehend
- “ible”—indicates that this word is an adjective, describing whether something can be comprehended
- Syntactic analysis—Trying to understand the structure of sentences by looking at how the words work together. This step is like diagramming a sentence, where you identify the role each word is playing in the sentence.
- Semantic interpretation—Working out the meaning of a sentence by combining the meaning of individual words with their syntactic roles in the sentence.
- Discourse processing—Understanding the context around a sentence to fully process what it means.

Fonte: https://trailhead.salesforce.com/pt-BR/content/learn/modules/deep-learning-and-natural-language-processing/start-with-nlp