terça-feira, 16 de julho de 2019
Solução para o erro: instant_run_split_apk_resources\debug\instantRunSplitApkResourcesDebug\out\slice_0\resources_ap ( Solution )
Se você estiver tentando executar seu app no Android Studio e receber o erro: "instant_run_split_apk_resources\debug\instantRunSplitApkResourcesDebug\out\slice_0\resources_ap"
Esse tipo de erro pode ser causado pelo recurso Instant run no Android Studio. Para resolver esse problema, basta desativá-lo seguindo os passos abaixo:
1. Clicar em File, Settings...;
2. Navegar para Build, Execution, Deployment e selecionar Instant Run
3. Desmarcar a caixa Enable Instant Run to hot swap code/resource...
Mais informações Aqui:
By
Ricardo Oliveira
às
julho 16, 2019
Nenhum comentário:
Esse tipo de erro pode ser causado pelo recurso Instant run no Android Studio. Para resolver esse problema, basta desativá-lo seguindo os passos abaixo:
1. Clicar em File, Settings...;
2. Navegar para Build, Execution, Deployment e selecionar Instant Run
3. Desmarcar a caixa Enable Instant Run to hot swap code/resource...
Mais informações Aqui:

sexta-feira, 12 de julho de 2019
App As Leis - Legislação Brasileira
Leis para concursos e autoconhecimento da legislação Brasileira. O aplicativo As Leis, acessa todo o conteúdo direto do Portal da Legislação da Presidência da República. As leis são organizadas para facilitar sua leitura e intendimento.
Na lista abaixo, você vai conferir uma prévia do App As Leis
LEGISLAÇÃO FEDERAL
- Constituição Federal
- Códigos:
- Estatutos
- Decretos
- Decretos-Leis
- Decretos do Poder Legislativo
- PEC - Propostas de Emenda à Constituição
- Projetos de lei
CÓDIGOS
- Código Civil - LEI No 10.406
- Código de Processo Civil - LEI No 5.869
- Código de Processo Civil - LEI Nº 13.105
- Código Penal - DECRETO-LEI No 2.848
- Código de Processo Penal - DECRETO-LEI Nº 3.689
- Código Tributário Nacional - LEI Nº 5.172
- Consolidação das Leis do Trabalho - DECRETO-LEI Nº 5.452
- Código de Defesa do Consumidor - LEI Nº 8.078
- Código de Trânsito Brasileiro - LEI Nº 9.503
- Código Eleitoral - LEI Nº 4.737
- Código Florestal - LEI Nº 12.651
- Código de Águas - DECRETO Nº 24.643
- Código de Minas - DECRETO-LEI Nº 227
- Código Penal Militar - DECRETO-LEI Nº 1.001
- Código de Processo Penal Militar - DECRETO-LEI Nº 1.002
- Código Brasileiro de Aeronáutica - LEI Nº 7.565
- Código Brasileiro de Telecomunicações - LEI Nº 4.117
- Código Comercial - LEI Nº 556
- Estatuto da Advocacia e da Ordem dos Advogados do Brasil - LEI Nº 8.906
- Estatuto da Criança e do Adolescente - LEI Nº 8.069
- Estatuto da Cidade - LEI No 10.257
- Estatuto de Defesa do Torcedor - LEI No 10.671
- Estatuto do Desarmamento - LEI No 10.826
- Estatuto do Estrangeiro - LEI Nº 13.445
- Estatuto do Idoso - LEI No 10.741
- Estatuto da Igualdade Racial - LEI Nº 12.288
- Estatuto do Índio - LEI Nº 6.001
- Estatuto da Juventude - LEI Nº 12.852
- Estatuto dos Militares - LEI Nº 6.880
- Estatuto dos Museus - LEI Nº 11.904
- Estatuto Nacional da Microempresa e da Empresa de Pequeno Porte - LEI COMPLEMENTAR Nº 123
- Estatuto da Pessoa com Deficiência - LEI Nº 13.146
- Estatuto dos Refugiados - LEI Nº 9.474
- Estatuto da Terra - LEI Nº 4.504

ERROR: Manifest merger failed: Attribute application
Solução para os erros abaixo:
Ao configurar um bloco de anúncio do AdMob, você pode receber as mensagens de erros abaixo, quando for adicionar a dependência "implementation 'com.google.android.gms:play-services-ads:18.1.0'" no arquivo build.gradle:
"ERROR: Manifest merger failed: Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:8:5-41:19 to override."
"Dependencies using groupId com.android.support and androidx.* can not be combined but found IdeMavenCoordinates{myGroupId='com.android.support', myArtifactId='support-vector-drawable', myVersion='28.0.0', myPacking='aar', myClassifier='null'} and IdeMavenCoordinates{myGroupId='androidx.core', myArtifactId='core', myVersion='1.0.0', myPacking='aar', myClassifier='null'} incompatible dependencies less... (Ctrl+F1)
Inspection info:There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion). Issue id: GradleCompatible"
Esses erros podem ocorrer porque a dependência que você estar configurando no seu projeto faz parte do novo pacote do AndroidX, por esse motivo você pode receber diversos erros no seu projeto.
Para solucionar todos os problemas, você vai precisar fazer a migração do seu projeto. Vide no vídeo a seguir como realizar esse processo ou acesse o link para acessar a página do Developers do Google.
Ao configurar um bloco de anúncio do AdMob, você pode receber as mensagens de erros abaixo, quando for adicionar a dependência "implementation 'com.google.android.gms:play-services-ads:18.1.0'" no arquivo build.gradle:
"ERROR: Manifest merger failed: Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:8:5-41:19 to override."
"Dependencies using groupId com.android.support and androidx.* can not be combined but found IdeMavenCoordinates{myGroupId='com.android.support', myArtifactId='support-vector-drawable', myVersion='28.0.0', myPacking='aar', myClassifier='null'} and IdeMavenCoordinates{myGroupId='androidx.core', myArtifactId='core', myVersion='1.0.0', myPacking='aar', myClassifier='null'} incompatible dependencies less... (Ctrl+F1)
Inspection info:There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion). Issue id: GradleCompatible"
Esses erros podem ocorrer porque a dependência que você estar configurando no seu projeto faz parte do novo pacote do AndroidX, por esse motivo você pode receber diversos erros no seu projeto.
Para solucionar todos os problemas, você vai precisar fazer a migração do seu projeto. Vide no vídeo a seguir como realizar esse processo ou acesse o link para acessar a página do Developers do Google.
Solução
Mais detalhes em Android Dev

segunda-feira, 6 de maio de 2019
Microsoft vai lançar o Windows Terminal - Um novo aplicativo de linha de comando para o Windows
A Microsoft vai lançar um novo aplicativo de linha de comando para o Windows, apelidado de Windows Terminal. Ele foi projetado para ser o local central para acesso a ambientes como o PowerShell, o Cmd e o Windows Subsystem for Linux (WSL). A Microsoft está adicionando suporte a várias guias juntamente com temas e personalização para desenvolvedores que desejam ajustar o aplicativo Terminal.
O Windows Terminal também suportará renderização de texto emoji e baseado em GPU. A Microsoft revelou o novo aplicativo do Windows Terminal durante a conferência de desenvolvedores Build da empresa hoje. A gigante do software está planejando disponibilizá-lo em meados de junho e marca os últimos esforços da Microsoft para melhorar o ambiente de desenvolvimento no Windows 10.
Fonte: theverge.com

quarta-feira, 27 de março de 2019
Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file in..
Se você estiver usando a lib fpdf para gerar arquivos PDF e receber a mensagem de erro abaixo:
"Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file in{...}"
Prossiga da seguinte forma para resolver o seu problema:
No arquivo gerado do pdf, procure pela linha $pdf->Output(); e em seguida adicionar o comando ob_start ();
O comando acima, vai iniciar o buffer e fazer com que o arquivo que foi gerado seja enviado para o seu browser.
A função do ob_start() é inicia o buffer e para limpar o buffer é o comando é ob_clean() e ob_end_clean(). O ob_end_clean() limpa o buffer e ainda exibe aquilo que foi armazenado nele.
By
Ricardo Oliveira
às
março 27, 2019
Um comentário:
"Fatal error: Uncaught Exception: FPDF error: Some data has already been output, can't send PDF file in{...}"
Prossiga da seguinte forma para resolver o seu problema:
No arquivo gerado do pdf, procure pela linha $pdf->Output(); e em seguida adicionar o comando ob_start ();
O comando acima, vai iniciar o buffer e fazer com que o arquivo que foi gerado seja enviado para o seu browser.
A função do ob_start() é inicia o buffer e para limpar o buffer é o comando é ob_clean() e ob_end_clean(). O ob_end_clean() limpa o buffer e ainda exibe aquilo que foi armazenado nele.

domingo, 17 de março de 2019
Execute o Windows 95 no Linux-Ubuntu
Aprenda o passo a passo para executar o Windows 95 no linux:
1. Faça o download da versão mais recente do windows95 para o Ubuntu:
Está disponível em formato zip, rpm e deb para diversos sistemas operacionais.
Vide mais detalhes aqui.
2. Depois que você tiver o download do arquivo, você pode instalá-lo usando o seguinte comando:
sudo apt install gdebi
sudo gdebi windows95_1.1.0_amd64.deb3. Para executar basta digitar no terminal o comando abaixo:
windows95
Vídeo com o passo a passo:
Mais detalhes sobre o projeto windows95 no github:

O arquivo de configuração padrão do nginx - default
/etc/nginx/sites-available/default
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# proxy_pass http://localhost:8080;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
By
Ricardo Oliveira
às
março 17, 2019
Nenhum comentário:
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# proxy_pass http://localhost:8080;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}

ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded
Recentemente, fui fazer uma pequena alteração no meu banco de dados, para mudar as permissões de um determinado usuário e acabei perdendo o acesso ao banco.
Depois de executar o comando, mencionado acima, comecei a receber uma mensagem informando a tabela de usuário estaria corrompida e daí pra frente eu não conseguia fazer mais nenhuma alteração no meu banco de dados e quando tentava entra no mysql, recebia a seguinte mensagem de erro: "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Pesquisando sobre unix_socket na internet descobrimos que ele é um plug-in de autenticação que permite usar as credenciais do sistema operacional para se conectar ao MySQL/MariaDB. Ele faz isso por meio do arquivo de soquete local que é definido pela variável do sistema de soquete.
Host: Sistema: Ubuntu 18.04.2 LTS - 64 bits
CPU: Intel® Core™ i5-4460 CPU @ 3.20GHz × 4
Análise do problema:
O problema aconteceu depois da repetição de um simples comando: GRANT SELECT, INSERT, UPDATE ON dbsystemmyimei.* TO usermyimeico;Depois de executar o comando, mencionado acima, comecei a receber uma mensagem informando a tabela de usuário estaria corrompida e daí pra frente eu não conseguia fazer mais nenhuma alteração no meu banco de dados e quando tentava entra no mysql, recebia a seguinte mensagem de erro: "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Pesquisando sobre unix_socket na internet descobrimos que ele é um plug-in de autenticação que permite usar as credenciais do sistema operacional para se conectar ao MySQL/MariaDB. Ele faz isso por meio do arquivo de soquete local que é definido pela variável do sistema de soquete.
Mais detalhes em mariadb.
CPU: Intel® Core™ i5-4460 CPU @ 3.20GHz × 4
Memória: 8GB
2. Navegue para a pasta /var/run
3. Agora faça o backup :
4. Pare o serviço mysql
5. Agora vamos restaurar o backup
6. Inicie o mysql no modo seguro
7 . Em seguida, efetue login no mysql como root:
8. Confira se o plugin de autenticação está configurado para o usuário root:
Você pode ver que ele está usando o plug-in unix_socket
9. Para mudar para o plug-in mysql_native_password, execute o seguinte comando:
10. Agora é só sair do mysql modo segurança:
11. Pare o modo segurança
12. Inicie o mysql ou mariadb, novamente
13. Agora é só fazer o login com sua senha normal:
Problema resolvido!
Solução
Antes de resolvermos esse problema, será preciso fazer o backup da pasta mysql porque, por algum motivo, ainda desconhecido, o mysql.sock é deletado toda vez que o serviço mysql é parado e o mysqld_safe não pode criá-lo novamente. Por isso, para contornarmos esse problema, é preciso fazermos o backup da pasta sock e restaurar antes de iniciar o mysqld_safe.
Passo a passo:
Essa solução pode ser aplicada no mysql ou mariadb1. Se o mysql ou mariadb estiver parado, inicia com o seguinte comando:
sudo service mysql start
2. Navegue para a pasta /var/run
cd /var/run
3. Agora faça o backup :
sudo cp -rp ./mysqld ./mysqld.bak
4. Pare o serviço mysql
sudo service mysql stop
5. Agora vamos restaurar o backup
sudo mv ./mysqld.bak ./mysqld
6. Inicie o mysql no modo seguro
sudo mysqld_safe --skip-grant-tables --skip-networking &
7 . Em seguida, efetue login no mysql como root:
mysql -u root
8. Confira se o plugin de autenticação está configurado para o usuário root:
select Host,User,plugin from mysql.user where User='root';
Você pode ver que ele está usando o plug-in unix_socket
9. Para mudar para o plug-in mysql_native_password, execute o seguinte comando:
update mysql.user set plugin='mysql_native_password';
10. Agora é só sair do mysql modo segurança:
quit;
11. Pare o modo segurança
sudo kill -9 $(pgrep mysql)
12. Inicie o mysql ou mariadb, novamente
sudo systemctl start mysql
13. Agora é só fazer o login com sua senha normal:
mysql -u root -p
Problema resolvido!
Vide o passo a passo em vídeo

sexta-feira, 15 de março de 2019
Como trocar a porta padrão da Área de Trabalho Remota do Windows-RDP
Se você estiver precisando trocar a porta padrão do serviço RDP do Windows, basta acessar a chave de registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp procurar pela chave PortNumber e trocar o número da porta; ou siga os passo do vídeo abaixo:
By
Ricardo Oliveira
às
março 15, 2019
Nenhum comentário:

quarta-feira, 13 de março de 2019
Problema para desinstalar o MySql no Linux-Ubuntu
Se você estiver com problema no MySQL e precisa fazer reinstalação, siga os passos abaixo para desinstalar e remover todos os pacotes e pastas do mysql:
1. Desinstalar e remover todos os pacotes
sudo apt-get remove --purge mysql-server mysql-client mysql-common -y
sudo apt-get autoremove -y
sudo apt-get autoclean
2. Remover a pasta MySQL
rm -rf /etc/mysql
3. Se você quiser, ainda pode exclui todos os arquivos do mysql no seu servidor:
sudo find / -iname 'mysql*' -exec rm -rf {} \;
No final da remoção, se você quiser reinstalar e configurar o mysql novamente, siga os passos abaixo:
1. Instalar o MySql
sudo apt-get install mysql-server
2. Para fazer as configurações de segurança do banco:
sudo mysql_secure_installation

quarta-feira, 9 de janeiro de 2019
Erro ao formatar o volume - Error wiping device: Failed to open the device '/dev/sdc1' (undisks-error-quark, 0)
Se você estiver tentando formatar um pendrive ou HD e for exibido o erro na imagem abaixo:
Siga os passos a baixo, para resolver o seu problema:
1. Abrir a ferramenta de gerenciamento de discos;
2. Selecionar a unidade que está apresentando problema;
3. Clicar no menu da imagem abaixo e selecionar a opção "Formatar disco..."
4. Em seguida clicar na opção "Formatar..."
Agora é só aguardar a finalização da formatação. Se por algum motivo você não tiver conseguido formatar o seu pendrive, deixe sua pergunta nos comentários abaixo que nós tentaremos responder.
By
Ricardo Oliveira
às
janeiro 09, 2019
Nenhum comentário:
Siga os passos a baixo, para resolver o seu problema:
1. Abrir a ferramenta de gerenciamento de discos;
2. Selecionar a unidade que está apresentando problema;
3. Clicar no menu da imagem abaixo e selecionar a opção "Formatar disco..."
4. Em seguida clicar na opção "Formatar..."
Agora é só aguardar a finalização da formatação. Se por algum motivo você não tiver conseguido formatar o seu pendrive, deixe sua pergunta nos comentários abaixo que nós tentaremos responder.

domingo, 6 de janeiro de 2019
Qual é o fabricante?
Hoje você vai descobrir como identificar o fabricante de uma placa de rede pelo endereço MAC

Existem vários sites na Internet que nos ajudam a identificar o fabricante da placa de rede através do MAC, separamos para você alguns deles:
Coffer.com
Aruljohn.com
Askapache.com
Rregauth
By
Ricardo Oliveira
às
janeiro 06, 2019
Nenhum comentário:
Isso só é possível, porque todos os endereços MAC (Media Access Control) possui um OUI (identificador exclusivo) contido no próprio endereço físico. O OUI identifica cada empresa responsável pela fabricação daquele hardware.
O endereço MAC possui 24Bits, os três primeiros octetos identificam o fabricante e os outros três é uma combinação gerado pelo próprio fabricante para formar o endereço MAC.

Existem vários sites na Internet que nos ajudam a identificar o fabricante da placa de rede através do MAC, separamos para você alguns deles:
Coffer.com
Aruljohn.com
Askapache.com
Rregauth
