A IA pode lutar contra o aumento do número de ataques de ransomware
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
Taiga é um aplicativo gratuito e de código aberto para gerenciamento de projetos. Ao contrário de outras ferramentas de gerenciamento de projetos, o Taiga usa uma abordagem ágil incremental para gerenciar o desenvolvimento do projeto. Taiga é uma aplicação muito poderosa e totalmente personalizável. O backend do Taiga é escrito em Python usando a estrutura do Django. O frontend é escrito em JavaScript usando as estruturas CoffeeScript e AngularJS. O Taiga inclui recursos como colaboração em projetos, quadro Kanban, rastreamento de bugs, relatórios, rastreamento de tempo, registros em atraso, wiki e muito mais.
Neste tutorial, usaremos taiga.example.com
como o nome de domínio apontado para o servidor. Substitua todas as ocorrências de taiga.example.com
pelo seu nome de domínio real.
Atualize seu sistema básico usando o guia Como atualizar o CentOS 7 . Depois que seu sistema for atualizado, continue com a instalação do PostgreSQL.
O PostgreSQL é um sistema de banco de dados objeto-relacional conhecido por sua estabilidade e velocidade. O Taiga usa o PostgreSQL para armazenar seu banco de dados. Adicione o repositório PostgreSQL ao sistema.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Instale o servidor de banco de dados PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Inicialize o banco de dados.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Inicie o servidor PostgreSQL e ative-o automaticamente no momento da inicialização.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Mude a senha do usuário padrão do PostgreSQL.
sudo passwd postgres
Efetue login como usuário do PostgreSQL.
sudo su - postgres
Crie um novo usuário do PostgreSQL para o Taiga.
createuser taiga
O PostgreSQL fornece o psql
shell para executar consultas no banco de dados. Mude para o shell do PostgreSQL.
psql
Defina uma senha para o usuário recém-criado para o banco de dados Taiga.
ALTER USER taiga WITH ENCRYPTED password 'DBPassword';
Substitua DBPassword
por uma senha segura. Crie um novo banco de dados para a instalação do Taiga.
CREATE DATABASE taiga OWNER taiga;
Saia do psql
shell.
\q
Mude para o sudo
usuário.
exit
O Python 2.7 vem pré-instalado em um servidor CentOS 7, mas o Taiga requer o Python versão 3.4 ou posterior.
Vamos instalar o Python versão 3.6 a partir da fonte. Instale as ferramentas de compilação e o compilador necessários.
sudo yum -y install gcc autoconf flex bison libjpeg-turbo-devel freetype-devel zlib-devel zeromq3-devel gdbm-devel ncurses-devel automake libtool libffi-devel curl git tmux libxml2-devel libxslt-devel openssl-devel gcc-c++
Faça o download do código fonte do Python.
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
Extraia e configure a instalação do Python.
tar xf Python-3.6.3.tar.xz
cd Python-3.6.3
./configure --enable-optimizations --prefix=/usr
Faça uma instalação alternativa.
sudo make altinstall
Nota : Instalações alternativas instalam o Python 3.6 sem substituir a versão padrão do Python. Se você substituir o Python padrão no CentOS 7, ele poderá interromper o YUM
gerenciador de repositório.
Agora você poderá verificar sua versão.
python3.6 -V
Você deve ver o seguinte.
[user@vultr Python-3.6.3]$ python3.6 -V
Python 3.6.3
Instale o ambiente virtual Python usando pip
.
sudo pip3.6 install virtualenv virtualenvwrapper
sudo pip3.6 install --upgrade setuptools pip
O ambiente virtual Python é usado para criar um ambiente virtual isolado para um projeto Python. Um ambiente virtual contém seus próprios diretórios de instalação e não compartilha bibliotecas com ambientes globais e outros ambientes virtuais.
Taiga usa RabbitMQ para processar a fila de mensagens. O RabbitMQ requer que as bibliotecas do Erlang funcionem. Instale o Erlang.
sudo yum -y install erlang
Importar chave de assinatura RabbitMQ GPG.
sudo rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
Instale o RabbitMQ.
sudo yum -y install https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.12-1.el7.noarch.rpm
Inicie e ative o servidor RabbitMQ.
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
Adicione o usuário RabbitMQ e o vhost. Além disso, forneça permissão ao usuário sobre o host.
sudo rabbitmqctl add_user taiga StrongMQPassword
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
Certifique-se de substituir StrongMQPassword
por uma senha segura.
O Node.js. versão 7 ou posterior é necessário para compilar o frontend do Taiga. Adicione o repositório do Node.js. versão 8.
curl -sL https://rpm.nodesource.com/setup_8.x | sudo -E bash -
Instale o Node.js e o pwgen
utilitário.
sudo yum install -y nodejs pwgen
pwgen
será usado posteriormente para gerar uma forte cadeia secreta. Instale o CoffeeScript, pois ele será usado para compilar arquivos Taiga gravados com a estrutura do CoffeeScript.
sudo npm install -g coffee-script gulp
Adicione um novo usuário do sistema ao Taiga para garantir que os processos do Taiga estejam em execução como um usuário não privilegiado.
sudo useradd -s /bin/bash taiga
sudo su - taiga
Nota : A partir de agora, todos os comandos precisam ser executados como usuário não privilegiado taiga
até que você seja solicitado a voltar ao sudo
usuário.
Crie um novo diretório para armazenar os arquivos de log.
mkdir -p ~/logs
Clone o repositório de back-end do Taiga no GitHub e faça check-out da última ramificação estável.
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable
Configure virtualenvwrapper
para usar o Python 3.6 em vez do Python padrão.
echo "VIRTUALENVWRAPPER_PYTHON='/bin/python3.6'" >> ~/.bashrc
echo "source /usr/bin/virtualenvwrapper.sh" >> ~/.bashrc
Finalmente, forneça o ~/.bashrc
arquivo.
source ~/.bashrc
Agora crie um novo ambiente virtual para o Taiga usando o Python 3.6.
mkvirtualenv -p /bin/python3.6 taiga
pip3.6 install --upgrade setuptools
Instale as dependências necessárias do Python usando pip
.
pip3.6 install -r requirements.txt
Preencha o banco de dados com os dados iniciais necessários.
python3.6 manage.py migrate --noinput
python3.6 manage.py loaddata initial_user
python3.6 manage.py loaddata initial_project_templates
python3.6 manage.py compilemessages
python3.6 manage.py collectstatic --noinput
Os comandos acima gravam dados no banco de dados PostgreSQL. O Taiga também envia alguns dados de demonstração ou amostra que podem ser úteis para avaliar o produto. Se você deseja instalar os dados de amostra, execute o seguinte.
python3.6 manage.py sample_data
Nota : A instalação de dados de amostra é opcional e destina-se apenas à avaliação do produto.
Antes de continuarmos a criar o arquivo de configuração para o back-end do Taiga, precisamos gerar uma sequência secreta. Essa sequência será usada para criptografar os dados da sessão.
Gere uma sequência aleatória de 64 caracteres.
pwgen -s -1 64
Você deve ver a saída como uma sequência aleatória.
(taiga) [taiga@vultr taiga-back]$ pwgen -s -1 64
CZfjWjHctPwnLZsDysWqaZcYfRCviHbI4fVRwfhpbtAHPNBtmkcegpwpYjTtEziJ
Crie um novo arquivo de configuração para o Taiga Backend.
nano ~/taiga-back/settings/local.py
Preencha o arquivo com o seguinte código.
from .common import *
MEDIA_URL = "https://taiga.example.com/media/"
STATIC_URL = "https://taiga.example.com/static/"
SITES["front"]["scheme"] = "https"
SITES["front"]["domain"] = "taiga.example.com"
SECRET_KEY = "Generated_Secret_Key"
DEBUG = False
PUBLIC_REGISTER_ENABLED = True
DEFAULT_FROM_EMAIL = "[email protected]"
SERVER_EMAIL = DEFAULT_FROM_EMAIL
#CELERY_ENABLED = True
EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:StrongMQPassword@localhost:5672/taiga"}
# Uncomment and populate with proper connection parameters
# for enable email sending. EMAIL_HOST_USER should end by @domain.tld
#EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
#EMAIL_USE_TLS = False
#EMAIL_HOST = "mail.example.com"
#EMAIL_HOST_USER = "[email protected]"
#EMAIL_HOST_PASSWORD = "SMTPPassword"
#EMAIL_PORT = 25
# Uncomment and populate with proper connection parameters
# for enable github login/singin.
#GITHUB_API_CLIENT_ID = "yourgithubclientid"
#GITHUB_API_CLIENT_SECRET = "yourgithubclientsecret"
Certifique-se de substituir o nome de domínio de exemplo pelo nome real no código acima. Além disso, substitua Generated_Secret_Key
pela chave secreta real e StrongMQPassword
pela senha real do usuário da fila de mensagens do Taiga. Se você possui um servidor SMTP pronto e deseja usar os recursos de envio de email imediatamente, remova o comentário das opções de email e defina os valores apropriados. Se você não tiver um servidor de correio pronto, poderá pular a configuração do recurso de email por enquanto e configurá-lo posteriormente neste arquivo de configuração.
Se você deseja habilitar o login no GitHub, crie um aplicativo no GitHub e forneça o ID do cliente da API e o segredo do cliente.
Para verificar imediatamente se o backend do Taiga pode ser iniciado, execute o servidor Django embutido.
workon taiga
python manage.py runserver
Você verá a seguinte saída se o servidor foi iniciado com êxito.
(taiga) [taiga@vultr taiga-back]$ workon taiga
(taiga) [taiga@vultr taiga-back]$ python manage.py runserver
Trying import local.py settings...
Trying import local.py settings...
Performing system checks...
System check identified no issues (0 silenced).
October 25, 2017 - 07:07:28
Django version 1.10.6, using settings 'settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Para verificar se a API pode ser acessada, abra outra sessão do terminal e execute o seguinte.
curl http://127.0.0.1:8000/api/v1/
Você verá uma saída semelhante retornada pela chamada da API.
[user@vultr ~]$ curl http://127.0.0.1:8000/api/v1/
{"locales": "http://127.0.0.1:8000/api/v1/locales", "auth": "http://127.0.0.1:8000/api/v1/auth", "users": "http://127.0.0.1:8000/api/v1/users", "roles": "http://127.0.0.1:8000/api/v1/roles", "user-storage": "http://127.0.0.1:8000/api/v1/user-storage", "notify-policies": "http://127.0.0.1:8000/api/v1/notify-policies", "projects": "http://127.0.0.1:8000/api/v1/projects", "projects/(?P<resource_id>\\d+)/fans": "http://127.0.0.1:8000/api/v1/projects/(?P<resource_id>\\d+)/fans", "projects/(?P<resource_id>\\d+)/watchers": "http://127.0.0.1:8000/api/v1/projects/(?P<resource_id>\\d+)/watchers", "project-templates": "http://127.0.0.1:8000/api/v1/project-templates",
Pare o servidor de back-end do Taiga pressionando " Ctrl + C
" e desative o ambiente virtual.
deactivate
O front end do Taiga é o componente do Taiga que serve a interface do usuário da Web. Clone o repositório front-end do Taiga no Github e faça check-out da última ramificação estável.
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
cd taiga-front-dist
git checkout stable
Crie um novo arquivo de configuração para o front end do Taiga.
nano ~/taiga-front-dist/dist/conf.json
Preencha o arquivo com isso.
{
"api": "https://taiga.example.com/api/v1/",
"eventsUrl": "wss://taiga.example.com/events",
"eventsMaxMissedHeartbeats": 5,
"eventsHeartbeatIntervalTime": 60000,
"eventsReconnectTryInterval": 10000,
"debug": true,
"debugInfo": false,
"defaultLanguage": "en",
"themes": ["taiga"],
"defaultTheme": "taiga",
"publicRegisterEnabled": true,
"feedbackEnabled": true,
"privacyPolicyUrl": null,
"termsOfServiceUrl": null,
"maxUploadFileSize": null,
"contribPlugins": [],
"tribeHost": null,
"importers": [],
"gravatar": true
}
Certifique-se de substituir o example
domínio pelo domínio real. Você também pode alterar o idioma padrão e outros parâmetros na configuração acima.
Além do front-end e back-end, também precisamos instalar os eventos do Taiga. O Taiga events é um servidor de soquete da Web e permite que o frontend do Taiga mostre alterações em tempo real em módulos como backlog, Kanban e mais. Ele usa o servidor RabbitMQ para processamento de mensagens.
Clone o repositório de eventos Taiga no Github.
cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Instale as dependências do Node.js. usando npm
.
npm install
Crie um novo arquivo de configuração para eventos do Taiga.
nano ~/taiga-events/config.json
Preencha o arquivo com o seguinte.
{
"url": "amqp://taiga:StrongMQPassword@localhost:5672/taiga",
"secret": "Generated_Secret_Key",
"webSocketServer": {
"port": 8888
}
}
Substitua Generated_Secret_Key
pela chave secreta longa de 64 caracteres que você gerou no passado. A chave secreta deve ser exatamente a mesma que você forneceu no arquivo de configuração de back-end do Taiga. Além disso, atualize StrongMQPassword
com a senha real para o usuário da fila de mensagens do Taiga.
Circus é um gerenciador de processos para aplicativos Python. Usaremos o Circus para executar eventos e eventos de Taiga.
Volte para o sudo
usuário.
exit
Nota : A partir de agora você precisará executar os comandos usando o sudo
usuário.
Instale o Circus usando pip
.
sudo pip3.6 install circus
Crie novos diretórios para armazenar as configurações do Circus.
sudo mkdir /etc/circus
sudo mkdir /etc/circus/conf.d
Crie o arquivo de configuração padrão para o Circus.
sudo nano /etc/circus/circus.ini
Preencha o arquivo com a seguinte configuração.
[circus]
check_delay = 5
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
include = /etc/circus/conf.d/*.ini
Crie um novo arquivo de configuração do Circus para executar o back-end do Taiga.
sudo nano /etc/circus/conf.d/taiga.ini
Preencha o arquivo com o seguinte.
[watcher:taiga]
working_dir = /home/taiga/taiga-back
cmd = gunicorn
args = -w 3 -t 60 --pythonpath=. -b 127.0.0.1:8001 taiga.wsgi
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/gunicorn.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 4
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/gunicorn.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 4
[env:taiga]
PATH = /home/taiga/.virtualenvs/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
PYTHONPATH=/home/taiga/.virtualenvs/taiga/lib/python3.6/site-packages
Crie uma nova configuração do Circus para executar o Taiga Events.
sudo nano /etc/circus/conf.d/taiga-events.ini
Preencha o arquivo com o seguinte.
[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/bin/coffee
args = index.coffee
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/taigaevents.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 12
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/taigaevents.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 12
Agora precisaremos criar um systemd
arquivo de serviço para executar o Circus. O uso systemd
garantirá que o Circus seja iniciado automaticamente durante a reinicialização e as falhas.
sudo nano /etc/systemd/system/circus.service
Preencher o arquivo.
[Unit]
Description=Circus process manager
After=syslog.target network.target nss-lookup.target
[Service]
Type=simple
ExecReload=/usr/bin/circusctl reload
ExecStart=/usr/bin/circusd /etc/circus/circus.ini
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
Inicie o Circus e habilite para iniciar no momento da inicialização automaticamente.
sudo systemctl start circus
sudo systemctl enable circus
Verifique o status do Circus.
circusctl status
Você verá a seguinte saída.
[user@vultr ~]$ circusctl status
taiga: active
taiga-events: active
Agora, temos o Taiga instalado e funcionando com sucesso. Antes de podermos usá-lo, precisamos expor a instalação usando qualquer servidor Web de produção.
Usaremos o servidor da web Nginx como um proxy reverso para atender o aplicativo aos usuários. Também obteremos e instalaremos certificados SSL no Let's Encrypt.
Instale o Nginx e o Certbot. Certbot é o cliente oficial de emissão de certificados para Let's Encrypt CA.
sudo yum -y install nginx certbot
Ajuste sua configuração de firewall para permitir o padrão HTTP
e as HTTPS
portas através do firewall, pois o Certbot precisa fazer uma conexão HTTP para verificar a autoridade do domínio.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Nota : Para obter certificados da Let's Encrypt CA, você deve garantir que o domínio para o qual você deseja gerar os certificados esteja apontado para o servidor. Caso contrário, faça as alterações necessárias nos registros DNS do seu domínio e aguarde a propagação do DNS antes de fazer a solicitação de certificado novamente. O Certbot verifica a autoridade do domínio antes de fornecer os certificados.
Agora use o servidor da Web incorporado no Certbot para gerar os certificados para o seu domínio.
sudo certbot certonly --standalone -d taiga.example.com
Os certificados gerados provavelmente serão armazenados no /etc/letsencrypt/live/taiga.example.com/
diretório O certificado SSL será retido como fullchain.pem
e a chave privada será salva como privkey.pem
.
Os certificados Let's Encrypt expiram em 90 dias, portanto, é recomendável configurar a renovação automática para os certificados usando trabalhos Cron. Cron é um serviço do sistema usado para executar tarefas periódicas.
Abra o arquivo de tarefa cron.
sudo crontab -e
Adicione a seguinte linha.
0 0 * * * /usr/bin/certbot renew --quiet
O trabalho cron acima será executado diariamente à meia-noite. Se o certificado estiver vencido, ele renovará automaticamente os certificados.
Gere um Diffie-Hellman
parâmetro forte . Ele fornece uma camada extra de segurança para troca de dados entre o host e o servidor.
sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048
Crie um novo bloco de servidor Nginx para atender ao frontend do Taiga.
sudo nano /etc/nginx/conf.d/taiga.conf
Preencha o arquivo com o seguinte.
server {
listen 80;
server_name taiga.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name taiga.example.com;
access_log /home/taiga/logs/nginx.access.log;
error_log /home/taiga/logs/nginx.error.log;
large_client_header_buffers 4 32k;
client_max_body_size 50M;
charset utf-8;
index index.html;
# Frontend
location / {
root /home/taiga/taiga-front-dist/dist/;
try_files $uri $uri/ /index.html;
}
# Backend
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001/api;
proxy_redirect off;
}
location /admin {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001$request_uri;
proxy_redirect off;
}
# Static files
location /static {
alias /home/taiga/taiga-back/static;
}
# Media files
location /media {
alias /home/taiga/taiga-back/media;
}
location /events {
proxy_pass http://127.0.0.1:8888/events;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Public-Key-Pins 'pin-sha256="klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY="; pin-sha256="633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q="; max-age=2592000; includeSubDomains';
ssl on;
ssl_certificate /etc/letsencrypt/live/taiga.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/taiga.example.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/ssl/dhparam.pem;
ssl_stapling on;
ssl_stapling_verify on;
}
Certifique-se de alterar o nome do domínio e o caminho para os certificados SSL.
Agora você pode reiniciar o servidor da web Nginx e permitir que ele inicie automaticamente na inicialização.
sudo systemctl restart nginx
sudo systemctl status nginx
Por fim, corrija a propriedade e a permissão nos arquivos Taiga.
sudo chown -R taiga:taiga /home/taiga/
sudo chmod o+x /home/taiga/
Agora você pode acessar a instalação do Taiga acessando https://taiga.example.com
. Faça login usando a conta de administrador inicial com nome de usuário " admin
" e senha " 123123
". Sua instalação está pronta para uso em produção. Comece criando um novo projeto ou avaliando o produto. Se você já estiver gerenciando um projeto no Github, Jira ou Trello, poderá importar facilmente os projetos para o Taiga usando os importadores .
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.