Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

Como ler mensagens no Whatsapp sem que a outra pessoa saiba que você leu.


-->
Muito bem, dica simples e besta.
Abra o whatsapp
Vá até a lista de mensagens de pessoas e grupos
Clique em cima e segure.
Basta escolher o menu Enviar por email:



E escolher se vai querer com ou sem midia, para o seu email ele irá enviar um arquivo txt com as mensagens, basta abrir e ler.



Como evitar que seu site/forum caia devido a acessos do baidu e ataques DDOS

--> Para ser simples e direto, eu estava tendo em dois momentos, um problema insuportável com um fórum, por algum motivo bizarro, o agente do baidu abria da China centenas de conexões para o fórum, resultado, sistema muito lento e provedor bloqueando acesso devido ao alto uso do script php.

Procurando por diversas solução, que incluía bloquear o IP, não resolvia muito já que não dava para conhecer todos os ranges, encontrei a solução abaixo que você pode inseri-lo no seu .htaccess:

BrowserMatchNoCase Baiduspider bad_bot
Deny from env=bad_bot

Assim o agente deles será bloqueado, funcionou tão bem que nunca mais tive problema de lentidão ou site fora devido ao agente fora de linha deles.
Outro momento ocorreu devido a um ataque DDOS. Verificando os logs de acesso pelo CPANEL, vi um monte de conexões variadas vindo sempre do user agente do WordPress, inseri então a linha abaixo no .htaccess:

SetEnvIf User-Agent WordPress keep_out
Deny from env=keep_out

Funcionou lindamente e o site pode continuar no ar sem maiores problems.

Como preciso me precaver quanto a bloqueios inesperados do provedor quanto ao uso excessivo do site, fiz um pequeno script que remove a permissão do arquivo principal caso haja um numero de processos do index.php em uso ao mesmo tempo, no meu caso, esse alto uso estava associado ao ataque DDOS, pelo menos assim tenho segurança de poder ir dormir sem receber notificação do provedor que a conta foi bloqueada devida a abuso de recursos, segue meu script, lembrando que tenho acesso ssh no provedor mas é possível fazer tudo pelo cpanel e é necessário ter o crontab liberado:

#!/bin/bash
portal_location="/home/meuuser/public_html/forum/index.php"
portal_ps=$(ps -ef|grep -i index.php|wc -l)
if [ $portal_ps -gt 20 ]
then
if [ -f "$portal_location" ]
then
echo "Mais de 20 processos: $portal_ps"
echo "Removendo permissao de leitura de $portal_location"
chmod a-r $portal_location
if [ $? -eq 0 ]
then
echo "Permissao de leitura removida com sucesso com sucesso"
ls -ltra ${portal_location}.$(date +%d%m%y%H%M%S)
fi
fi
fi

E depois basta inserir na crontab:

* * * * *  sh /home/meuuser/scripts/prot_porta.sh
O script rodara a cada minuto, você pode mudar a quantidade de processos desejados, no meu caso só posso ter 25 ao mesmo tempo, como sou notificado por email quando o script executa, sempre estarei no controle se algo tiver saído do normal.







Mac OS El Capitain lento

--> Muito bem, depois de choros, tristezas, cabeçadas na parede, resolvi dar fim a lentidão insuportável que eu estava tendo ao abrir alguns aplicativos no Mac OS El Capitain, como eu tenho o iStats instalado, fica fácil monitorar.
Meu problema ocorria toda vez que eu ia abrir alguma aplicação, até mesmo o finder, a janela ficava sem resposta por uns segundos. Monitorando no iStats vi que o IO do disco ia para níveis absurdos beirando os 100MB/s, uso ssd no macbook, e o vilão disso tudo é um processo chamado tccd, se você pesquisar no Google irá ver diversas mensagens de amor a esse processo. Pelo que entendi ele é algo relacionado a contatos no Mac, o porque ele teima em ficar ativo a cada programa aberto, não sei.
Depois de alguma pesquisa, vi que era fácil desativar, sendo um serviço no Mac.

Para listar se o serviço está ativo, abra o Terminal.app e:

sudo launchctl list | grep -i tccd
#269 0 com.apple.tccd.system

Acima o resulta mostrando o serviço ativo, para desabilita-lo:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.tccd.system.plist

Ao executar o comando acima, se você receber algo relacionado a permissão, significa que o SIP está ativo no Mac OS, ou seja, mesmo como root você não poderá alterar certos arquivos do sistema.
Para desativar o SIP momentaneamente:

Reinicie o Mac
Após o bip aperte ao mesmo tempo Command+R.
Quando terminar de carregar - Utilitários -> Terminal
Digite:
csrutil disable;reboot

SIP, desativado, agora você conseguirá deixar o tccd inativo, após desativa-lo, repita o passo anterior para desativar o SIP, apenas use o comando abaixo para reativar o SIP novamente:
csrutil enable;reboot

Eu não faço ideia de como o tccd irá interferir no meu uso do Mac OS, mas até agora está normal, se perceber alguma anomalia, basta ativar o tccd novamente e testar:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.tccd.system.plist

Fontes:


Calculo de umask definitivo.

-->
Estava eu aprendendo a calcular umask e vi uma séria de informações desencontradas, alguns dizendo por exemplo para diminuir de 777, 666 e assim vai. Mas nada funcionava efetivamente dependendo do umask que você quer aplicar. Foi então que lendo a wiki do Archwiki e vendo uma afirmação me veio uma maneira simples de fazer o calculo:

  • Linux does not allow a file to be created with execution permissions, in fact the default creation permissions are 777 for directories, but only 666 for files.
  • On Linux, only the file permission bits of the mask are used, i.e. the 022 mask is equivalent to 0022.[1]


Antes de ler isso na wiki eu estava fazendo a relação abaixo que vi em alguns sites:

0 - 7 - rwx
1 - 6 - rw
2 - 5 - r-x
3 - 4 - r--
4 - 3 - -wx
5 - 2 - -w-
6 - 1 - --x
7 - 0 - ---

Que mostra a relação entre o valor de umask e o valor octal normal de permissão (rwx).
Vamos ao exemplo, se o umask é 007, qual será o valor final para diretórios e arquivos?
Relembre da afirmação tirada da wiki do Arch, o máximo que se pode chegar em permissão para diretórios no linux usando umask é 777 já para arquivos é 666, isso faz sentido porque por padrão o linux não dá permissão de execução para arquivos, agora vem a mágica de como calcular.
Dado o umask 007 a permissão para o diretório será:
777 - 007 = 770
Já para novos arquivos a nova permissão será:
660.

Veja abaixo:

dd:teste3 tux$ umask 007
dd:teste3 tux $ touch umaskfile007
dd:teste3 tux $ mkdir umaskdir007
dd:teste3 tux $ ls -ltra
-rw-rw----   1 edipo  wheel    0 16 Set 09:44 umaskfile007
drwxrwx---   2 edipo  wheel   68 16 Set 09:44 umaskdir007

Como cheguei no 660? Simples, eu so removi o valor que da execução no arquivo, lembra que o máximo que se pode chegar em permissão para arquivo é 666 e não 777 como diretórios? Ai está o segredo, sempre que quiser saber qual permissão os arquivos vão ter para um dado umask, faça o calculo para diretório, que é bem simples e para arquivo simplesmente remova a permissão de execução. Faça o teste, isso vale para qualquer valor de umask.
Vamos a outro exemplo para mostrar que funciona.
umask 135, para diretório temos:

777 - 135 = 642 -> rw-r---w-

Perceba que acima não temos nenhuma permissão de execução, logo a permissão dos arquivos será a mesma dos diretórios:

dd:teste3 edipo$ umask 135
dd:teste3 edipo$ touch umask135file
dd:teste3 edipo$ mkdir umask135dir
dd:teste3 edipo$ ls -ltra
-rw-r---w-   1 edipo  wheel    0 16 Set 09:50 umask135file
drw-r---w-   2 edipo  wheel   68 16 Set 09:50 umask135dir

Vamos testar agora com algum outro umask que dê execução para os diretórios, 242

777 - 242 = 535 -> r-x-wx-r-x
Para arquivo teremos:
r--w--r-- = 424
Repare que apenas removi a permissão de execução para chegar ao novo valor para arquivos:

dd:teste3 edipo$ umask 242
dd:teste3 edipo$ touch umask242file
dd:teste3 edipo$ mkdir umask242dir

dd:teste3 edipo$ ls -ltra
-r---w-r--   1 edipo  wheel    0 16 Set 09:54 umask242file
dr-x-wxr-x   2 edipo  wheel   68 16 Set 09:54 umask242dir


Espero muito ter ajudado, eu busquei uma maneira fácil de fazer isso porque na hora de fazer uma prova, como a LPI por exemplo, é bem mais simples de fazer de cabeça do que ficar fazendo calculo com bits.

UPDATE

Enquanto estava fazendo um exercício notei que para calcular o inverso você deve fazer assim.
Você quer as permissões dos arquivos criados como rw-r----- (640) por padrão.
Para saber o qual umask utilizar é simples, primeiro, seguindo a lógica do post, sempre calcule como seria a permissão para o diretório que contem os arquivos, aqui vem o segredo, adicione a permissão de execução somente para os grupos que já possuem permissão de leitura ou escrita, nesse caso temos:
arquivo - rw-r-----
pasta - rwxr-x---
Sendo assim a permissão da pasta que contem o arquivo com o umask setado seria 750, então temos:
777 - 750 = 027
Está ai o valor do umask que você tem que utilizar.

Pode parecer complicado no início mas praticando vai ver que é bem mais fácil calcular do que usando bits.











Defina grupo de extensões no Chrome e o deixe mais rápido

Não sei vocês mas sou do tipo que adora usar extensões em navegador, enriquece em muito a experiência de uso, seja no Firefox, Chrome, Safari ou Opera. 
-->
Agora que no Google chrome consigo usar duas contas do Gmail separadas por perfis me vi imbuído a utiliza-lo mais apesar do alto uso de memória e processamento que ele faz no Mac, aliás esse é um problema que aflige todo usuário do Chrome e até agora o Google não deu a mínima para isso.
Para você ter idéia o Netflix só fica usável no Chrome, mesmo usando html 5, quando eu desativo diversas extensões, tenho um macbook white mid 2009. Fora que em alguns momentos abrir várias abas se torna um suicídio.
Como é muito chato ter que ficar desativando e ativando as extensões pesquisei e encontrei a excelente SimpleExtManager, como ela você pode desativar/ativar de uma só vez todas as extensões ou mesmo criar grupos de extensões.

Abaixo os grupos configurados, inicialmente eu desativo todas as extensões e quando eu estou estudando inglês ou vendo algo no Netflix, somente as extensões dentro do grupo ficam ativadas:



Baixe a extensão:

kernel_tasks com mais de 100% de uso da CPU no Mac Os Mavericks

De uns dias pra cá percebi algo chato no Mavericks, 100% de cpu ou mais de uso no Mavericks, o pior é que isso estava tornando impossível o uso do Mac, até pensei que fosse o spootlight indexando, porque além do ssd tenho outro disco no macbook.
-->
Depois de pesquisar cheguei a uma thread do fórum na Apple com outros usuários com o mesmo problema e eis que alguém cita que isso estava ocorrendo por causa do phone de ouvido plugado.
Resolvi testar, despluguei o phone, reiniciei e ficou tudo normal, pelo que notei o problema só aparece se você inicia o mac com o phone plugado.
Agora é esperar uma atualização da Apple que resolva isso pois antes da última atualização liberada esse problema não ocorria.
Fica a dica.
Fonte:
https://discussions.apple.com/thread/5497235?start=0&tstart=0

Mac Os - Como trocar o storage engine de InnoDB para MyISAM

Tive que ralar um pouco para saber exatamente como trocar o storage engine do mysql de InnoDB para MyISAM. As alteração foram feitas no Mac OS Mavericks.
-->

Abaixo os passos:

Abra um terminal e digite:

sudo vi /usr/local/mysql/my.cnf

abaixo da palavra  [mysqld] coloque a seguinte linha, aperte antes i para entrar no modo de edição do vim:

default-storage-engine=myisam

Depois aperte a tecla ESC, digite :wq e aperte enter, arquivo salvo, vá até o painel de controle do Mac OS, pare o Mysql e inicie novamente, agora o engine padrão é o MyISAM.

Para confirmar digite no terminal:

mysql -u root -p

Digite sua senha de root do mysql, dentro do prompt dele digite:

mysql> show engines;

Vai aparecer assim:

mysql> show engines;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    6
Current database: *** NONE ***

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MyISAM             | DEFAULT | MyISAM storage engine                                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| InnoDB             | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0,01 sec)



Veja que agora o MyISAm esta como default, antes da modificação estava assim:


mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0,03 sec)



Esper ter ajudado.



Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.