Como eliminar o erro Mysql Gone Away How do I fix the error “Mysql Server has gone away”?

Standard

The MySQL server has gone away (error 2006) has two main causes and solutions:

  • Server timed out and closed the connection. To fix, check that wait_timeout mysql variable in your my.cnf configuration file is large enough.
  • Server dropped an incorrect or too large packet. If mysqld gets a packet that is too large or incorrect, it assumes that something has gone wrong with the client and closes the connection. To fix, you can increase the maximal packet size limit max_allowed_packet in my.cnf file, eg. set max_allowed_packet = 128M, then restart your MySQL server: sudo /etc/init.d/mysql restart

 

Source: https://matomo.org/faq/troubleshooting/faq_183/

mount error(): Host is down

Standard

Hi, if you try mount samba (CIFS) on console:

sudo mount -a

mount: mount error(): Host is down (or similar error)
Dont worry :), enter in FSTAB and fix to version 1:

//IP/sharefolder /mnt/destination cifs username=windowslogin,password=passthislogin,iocharset=utf8,vers=1.0,sec=ntlm  0  0

vers=1.0 has added after error.

Change /etc/fstab (this trick) run:
sudo mount -a
ORRRRR
mount -a (like a root)

How to Solve unexpectedly Error 500 (Timeout) PHP + FastCGI + IIS 7 (Windows 7/8/10/2008/2012 server)

Standard

I could found some links that could help you. The problem is the activityTimeout of your cgi module.

For my, works in summary this.

Open the dos console “cmd” and go to c:\windows\system32\inetsrv\ then, execute this command, changing the path of your php-cgiappcmd set config -section:system.webServer/fastCgi "-[fullPath='C:\php\php-cgi.exe'].activityTimeout:3600"

How to convert MDB (Access Database) to Mysql/MariaDB using MDB tools (linux tricks)

PC Pixel Art
Standard

Depois de instalar o mdbtools no Linux é necessário criar um shellscript, vamos lá:

 

#!/bin/bash

TABLES=$(mdb-tables -1 $1)

MUSER="rootdoMysql"
MPASS="senhadeRootdoMysql"
MDB="$2"

MYSQL=$(which mysql)

for t in $TABLES
do
    $MYSQL -u $MUSER -p$MPASS $MDB -e "DROP TABLE IF EXISTS $t"
done

mdb-schema $1 mysql | $MYSQL -u $MUSER -p$MPASS $MDB

for t in $TABLES
do
    mdb-export -D '%Y-%m-%d %H:%M:%S' -I mysql $1 $t | $MYSQL -u $MUSER -p$MPASS $MDB
done

Para rodar o script…:

./mdbconvert.sh meuBancoACCESS.mdb NomeDaBaseDoMysql

Vai restaurar tudo!

OBS só funciona se CRIAR o BANCO DE DADOS ANTES, então:

 

mysql -u root -p

Coloca a senha do mysql

CREATE DATABASE NomeDaBaseDoMysql;

 

Resolvido 🙂

Portas de Email do Cpanel (Cpanel Mail Ports)

Standard

As portas que o CPANEL usa para emails são:

cPanel Webmail, 2095
cPanel Webmail (SSL), 2096
IMAP, 143
IMAP (SSL), 993
POP, 110
POP (SSL), 995
SMTP, 25 (587 no BRASIL, sendo necessário muda-la no CPANEL)
SMTP (SSL), 465

Ressaltando que NO BRASIL, por padrão a porta do cpanel deve ser setada como 587 em SMTP, isso significa que a porta de SMTP SEM SSL será 587.

Meu jogo foi para capa da Google, YEAH! 2018 Lindo lindo :).

Standard

Bom, é com motivo de muita alegria que o game no qual fiz parte do desenvolvimento foi parar na capa da Google.
SIMMMMMM, está lá estampadasso.

O jogo que desenvolvi (fiz parte do core de desenvolvimento) é o Magic Master -> https://play.google.com/store/apps/details?id=air.com.mopixgames.magicmaster&hl=en

Mas como cheguei lá e como é o resultado disto?
Você pode estar se perguntando:

Como faço para meu jogo ir para capa da Google Play?

Antes de mais nada quero agradecer a Deus por ter feito parte desse  projeto chamado Magic Master.
Eu não comecei a desenvolver ele do zero, muito pelo contrário, eu entrei no projeto quando o mesmo estava em andamento e teve uma baixa no core de desenvolvimento, me levando a ser o main dev do game. A empresa na qual presto serviço até a data deste post é a MOPIX (Mopix Games) de Belo Horizonte (MG). (http://www.mopix.com.br/)

O jogo é um tower defense que foi desenvolvido por 3 anos. É um jogo que tem um design diferenciado (Raoni Dorim é o artista) + uma equipe forte de animação e etc. O jogo foi para o CoreLabs (aceleradora de nível mundial) e recebeu bastante investimento.

Vamos aos pontos do que é estar na capa do Google? Ok, vamos lá!

1 – Downloads

Parece que não é tão importante estar na capa do Google, mas é, é sim, é MUITO :).
Os downloads do game que eram algo em torno de (no máximo) 50/100 por dia passaram para 2000 ao dia. É um ganho de 1000%, isso atrai mais players e consequentemente coloca mais in-app purchases em crescimento.

ATUALIZADO O POST!!!
Neste exato momento (horas após a publicação deste post) estamos em 4000 downloads / dia e subindo! YEAHH!

2 – Portifólio

Não é simples chegar lá, a jornada é forte, mas a compensação de ser destaque ali denota o quão refinado é o processo para chegar até ali. Em Minas Gerais apenas 2 empresas conseguiram tal feito, a Mopix e outra empresa. Sem dúvidas é uma coroação que recebi sem precedentes (e jamais esperei por isso mesmo sendo formado em gamedev).

3 – O processo (como chegar lá)

Bom, estar ali é extremamente sofrido, parece que não, mas é!
Para estar ali o seu game precisa de:

  • Feedback de touch (em tudo que tem button effect),
  • Pause funcionando redondamente (e não só o pause, como o pause sob HOME/Back/Lock buttons do android [botões físicos do android]),
  • No Retorno ao game pós HOME button, Back button, Lock Button o jogo deve exibir o menu de pause (hard hein???),
  • Design de certa forma atraente,
  • Gameplay de certa forma atraente,
  • Adequar seu código ao sdk da Google mais recente possível (mínimo hoje é o 26, que corresponde ao android 8),
  • Se ele realmente precisa de sleep, deve usar Dozen da Google na API level 26,
  • Não deixe bugs no game, parece claro isso, mas lá é obrigação, bugs são requests para ontem,
  • O feedback de touch é bastante estressante de se lidar :(,
  • O sdk 26 exige muito mais dos programadores, principalmente por causa das permissions (que se dividem em permissões perigosas e permissões normais). <— cuidado!

Não é uma tarefa simples e fácil, se observar a documentação da Google é extremamente pesado.
Adequando todo seu game aos pontos acima você pode entrar em contato com o representante BR ou da América Latina da Googleplay solicitando a feature do seu jogo.

Não vou detalhar tanto os procedimentos e etc porque um post seria pequeno demais para isto.

Obrigado a todos envolvidos.

Unity 5.6+ and 2017.1.1f1+ Build Problemas (Android): AAPT failed or Android SDK paths problems (JDK Included)

Standard

Hello Guys, chegou a hora de dar algumas dicas de como sanar esse problema chato que está rolando na Unity nos últimos tempos. Deixo claro que vou postar alguns links para salvação do clan, ok? Então vamos lá:

1 – Problemas com SDK da Google na Unity 5.6+ ou 2017+ (JDK mais novo também apresenta problemas)

Recentemente tentei subir minha engine para as versões mais recentes e na hora de buildar para a Google tive diversos problemas. Visando deixar claro cada problema e solução resolvi dissecar através de links por problemas para que você fique bastante em paz na hora de compilar o bicho. No caso de SDK temos diversos problemas que vão desde a Google Tools que não está 100% compatível com a Unity, isto foi oficialmente divulgado, como no link abaixo:

https://unity3d.com/pt/unity/whats-new/unity-5.6.1#section-fixes

A solução que a Unity manda utilizar-se é uma bem conhecida (eu fiz um how to recente sobre: http://www.littleoak.com.br/2018/01/03/how-to-install-support-to-android-sdk-unity-2017-java-development-kit-jdk-dica-simples-e-funcional-jdk-1-9-problems/)

No mesmo link acima eu ensino como lidar com o JDK mais recente (1.9) que também apresenta alguma incompatibilidade misteriosa com a Google.
Outro link bom (e bem WINDOWS no assunto) trata do mesmo assunto, pode ser visto em:

http://devlog.markhlavac.com/2017/06/30/installing-android-sdk-for-unity3d-using-sdk-tools-and-cli/

Isso sana erros como

unable to list target platform

Acima matamos o problema de SDK da Google (e JDK da Oracle).

2 – Problemas na Hora de Buildar para Android

A mensagem mais comum e genérica que você pode receber na hora de buildar para android é:

Unity build problem – AAPT failed ALGUMACOISA ALGUMA COISA ALGUMA COISA

OUUUU

“There is a problem parsing the package”

 

Bom, existem vários caminhos que podem apresentar este problema (VÁRIOS MESMO), mas normalmente a solução que vou deixar vale para quase todos (senão todos) MESMO. Parse é o que mais recebe correção no tweak abaixo, no caso do AAPT pode ser o JDK cagado, nesse caso siga o passo que já falei no link -> http://www.littleoak.com.br/2018/01/03/how-to-install-support-to-android-sdk-unity-2017-java-development-kit-jdk-dica-simples-e-funcional-jdk-1-9-problems/

Na tela de Build Settings precisamos clicar em player settings que fica lá embaixo na tela:


Clicando em PLAYER SETTINGS temos de ajustar várias coisas, não vou entrar nos detalhes, mas há 1 ponto que deve ser BASTANTE observado, OTHER SETTINGS, nele temos o “range” de qual Android mínimo deve rodar o game e qual a API para qual o android foi projetado, se você colocar um range aceitável vai dar certo. Se o mínimo for alto seu Android não vai rodar, se a API for alta demais provavelmente sua Unity não vai compilar corretamente, então fiz assim:


No MINIMUM API LEVEL coloquei o 4.1 e no TARGET deixei o 7.1 (que é level 25, a que temos garantido na TOOLS e NO SDK DA GOOGLE 🙂

Abração guys, vamos que vamos.

Unity 5+ Cuidado ao Comparar Pontos Flutuantes :(

Standard

Spoilers: comparar 2 pontos flutuantes diretamente com ==, >, <, etc. não é legal!

Por questões de hardware, o computador sempre carrega algum erro em operações de ponto flutuante (que é mais notado quanto mais vc vai fazendo operações em cima do valor de ponto flutuante). Isso é chamado de erro de mantissa, que vocês podem procurar mais em livros de calculo numérico, ou em links como esse:
http://producao.virtual.ufpb.br/…/livro.chunked/ch03s07.html

Por isso é uma boa prática de programação quando comparar valores de ponto flutuante usar um patamar de erro (ou threshold) que a gente chama normalmente de epsilon. Esse valor vai ser a precisão que você quer na operação, e vai variar de acordo com a necessidade do seu código. Por isso que eu e mais alguns sugerimos usar:
|A-B| > epsilon, ou A-B > epsilon

Pode parecer óbvio que A > B funcionaria, mas para alguns casos não, e daria errado. Esse link que o Fernand Rossa divulgou fala de um jeito mais resumido:
https://msdn.microsoft.com/en-us/library/c151dt3s.aspx
Mas vcs podem ver um exemplo nesse link, também da documentação do C#, do porque pode dar errado:
https://msdn.microsoft.com/…/library/ya2zha7s(v=vs.110).aspx

É um problema muito importante para computação que necessita de precisão muito grande de resultados, como problemas de engenharia. Mas geralmente na área de jogos ele acaba não sendo tão relevante, e por isso muita gente acaba não sabendo disso.

Informativo de Leonardo Pereira: https://www.facebook.com/ltorpereira?hc_ref=ARS69EpNMLAV9EGZCS35pTwcmLiYwNg2Xou5_U06NEfek6oEchdWO94nHbQYJffYMzc
No post: https://www.facebook.com/groups/unity3dbr/permalink/1780010805351473/
No fórum da Unity Brasil: https://www.facebook.com/groups/unity3dbr/?hc_ref=ARS69EpNMLAV9EGZCS35pTwcmLiYwNg2Xou5_U06NEfek6oEchdWO94nHbQYJffYMzc

Moirai, um exemplo de jogo que mostra o quão podre é a comunidade que consome jogos (não generalizando)

Standard

Quando falamos de jogos Indie estamos falando de uma parte da indústria que se vira nos 30, sim, estamos falando de Studios com pequeno porte que normalmente possuem pessoas que trabalham durante o dia e desenvolvem seus games durante a noite (ou em uma fração de tempo maior durante o dia, depende de cada caso/studio).
Nesse cenário podemos destacar o esforço e o empenho de várias grandes produções e de produtos muito bem polidos.
Uma das coisas que me chama mais a atenção é o quão podre é uma fração da comunidade que “consome” jogos.
Se observamos com parcimônia uma grande fatia dos que consomem games são pessoas “normais”, àquelas que acreditamos serem players ou desenvolvedores que estão apreciando um determinado produto, mas há outra parte da comunidade que causa muito estrago ao ser humano por trás de uma produção de jogo: A fatia que consome pirataria e a que usa de cracking para obter algum benefício com isto (sabe-se lá qual benefício se tem em ser imbecil).

1 – Pirataria é crime, crime pesado!

Por muito tempo consumi pirataria, ao ponto que tudo que posso estou aplicando licenciamento sobre. Se você consome pirataria, por que diabos se sentiria bem se eu usasse um “serial” e te desse um salário fake? É assim que fazemos com o desenvolvedor de software por trás de uma solução que usamos quando utilizamos de pirataria!
Pirataria é roubo, é crime, se usou você é ladrão!

2 – Cracking e os usuários deste meio (ou os que comem fezes e as introduz na cabeça)!

Estes me espantam mais que os pirateiros, pois a maior parte que consome pirataria REALMENTE não tem condições de pagar por um Photoshop da vida e acaba pirateando (costuma-se pagar caro com isso, cracking com exploit/trojan em esteganografia é punk!), estes são vermes que usam de meios para obterem vantagens sobre os outros, ou pior, para ganhar alguma notoriedade em uma comunidade semelhante a um esgoto (causar danos a outrem sem motivos e ganhar destaque por isso? ISIS, é você?).
Há inúmeros exemplos antigos e novos de pessoas com bastante tênia na cabeça, sim, cito alguns:

– hacking no Counter Strike,
– hacking no PUBG (aimbot, fastmove ou hackspeed e etc),
– ddos (esse é o que vou falar), flood e etc. <— é aqui que esse artigo se baseia.

De forma dolorosa temos pessoas que possuem mentalidade medíocre no mundo (alô ISIS, é você?). Não ganham nada com isto, literalmente nada (apenas a famosa notoriedade entre lammers) e causam danos muita das vezes irreversíveis à comunidade mais séria que consome jogos.
Houve há um tempo atrás um determinado ataque contra um servidor de um jogo chamado Moirai (o caso é mais detalhado no link http://meiobit.com/368427/moirai-o-interessante-jogo-indie-destruido-por-hackers/), onde a base de dados recebia um flood intenso, parecia ser algo como um sql injection ou mesmo um ddos em cima do banco de dados, o que tornou o jogo inviável de manter (desde monitoramento a patching), o que fez com que os mantenedores do jogo desistissem do projeto. Uma perda séria (mesmo parecendo que não), pois o jogo tinha um contexto de Experimento Social, algo que enriqueceria a comunidade consumidora de jogos de alguma forma, e para lamento temos a resposta dos próprios desenvolvedores do produto:

“Desde o lançamento no Steam o nosso banco de dados recebeu diversos ataques. Trabalhamos duro (e as vezes com o suporte de membros da comunidade) para atualizar nosso sistema para um estado mais gerenciável e minimizar a probabilidade de ataques. Contudo, recentemente nosso banco de dados esteve sob seguidos ataques que arruinaram a experiência para alguns jogadores, resultando em termos que tirá-lo do ar. É importante que saibam que nenhum dado de emails foi comprometido nesse ataque. No entanto, essa vulnerabilidade significa que estamos sujeitos a futuros ataques. Não somos um estúdio grande e não temos recursos para prevenir corretamente esses ataques, então removeremos o jogo da loja”

Me pergunto o que houve com às pessoas deste século:

1 – Passaram a consumir fezes?
2 – Passaram a introduzir fezes na cabeça?
3 – As duas alternativas acima estão corretas?

Dicas de Otimização da Unity (Optimize Apps powered by Unity) para mobile part 1

Standard

Bom, não vou delongar o texto aqui e tampouco encher linguiça com blá blá blá, como dev quer mesmo a parte de código ou de qualquer coisa adicional já irei postando logo abaixo. Antes que você se apresse esse é um pequeno post que coloca em prática algumas coisas que tenho aprendido em cima de Unity (e é bem passageiro, e o foco é 100% em mobile ( e games que deveriam rodar em pcs MUITO velhos ), logo podemos chamar esse post de part 1 🙂  :

1 – Tu quer mesmo usar NavMesh?

Pense e repense antes de usar, Waypoints podem ser uma alternativa muito mais leve dependendo do que você tem planejado,

Por mais que você deixe as coisas otmizadassas no navmesh o uso deles (bake e bla bla bla não colam, é pesadinho o danado!) pesa em plataformas mobile, então repense sem que for usar!

2 – Quer resolução de 10000k em um smartphone? SAI FORA!

Uma das coisas mais estranhas que o mundo mobile tem é isto, se você reduz a resolução do que você quer exibir controlando o canvas o resultado é um ganho de performance do tamanho do planeta terra (SIM, ISSO PROCEDE)!

3 – “Tudo em uma scene gigante”! SAI FORA!

Uma das coisas mais simples de se fazer para se ter ganho é ter várias scenes para uma scene gigante, é bem melhor deixar o player tendo em vista um “LOADING” que deixa tudo muito leve depois a não ter nada e muitíssimos objetos na ram escassa do device comendo tudo do device!

4 – Um bonus …

Um link muito interessante é o que vou postar abaixo, veja o link com carinho, valerá a pena :).
https://forum.unity.com/threads/unity-5-android-performance-tips.437695/

 

 

FTP pure-ftp com ou sem TLS não exibe pastas (principalmente com TLS)

Standard

A dica é simples e fácil.
O problema do serviço de ftp não listar pastas dá-se às portas passivas que provavelmente estão bloqueadas no firewall.

Se você usa o CSF na parte de configuração localize TCP_IN = , na informação de portas informe 30000:50000, fazendo isto você está dizendo que as portas passivas estão liberadas.

Abraços =).

RoundCube está mostrando atualizando (updating) o tempo todo e não carrega os emails de uma conta

Standard

round cube logo

Bom, há uma infinidade de coisas que podem estar ocasionando isto, porém as mais prováveis são as que restringem-se a usar muitos recursos de um servidor WHM/Cpanel.
A saída é bem simples. No caso que cito a solução apliquei em um servidor que possuía uma conta de email com MUUUUUUUUUUUUUUUITAS mensagens e ocorria o loop infinito na hora que a pessoa logava-se no webmail Roundcube e tentava ver sua caixa de entrada. Ressalto que o roundcube usa e abusa do Ajax e isso demanda muito tempo de execução, CPU e ram, neste caso a saída é simples, edite o php.ini do WHM (não é o apache do servidor web dos home users /home/login/) ajustando-o para se adequar a alta demanda:

/usr/local/cpanel/3rdparty/etc/php.ini

Assim que abrir o mesmo com qualquer editor localize:

max_execution_time = 90
memory_limit = 128M

Aumente esses valores significativamente, principalmente o de ram, deixe pelo menos 5x maior do que está ali e o problema deverá estar sanado.
Se mesmo assim não sanar apele para 10x, ou seja:

max_execution_time = 900
memory_limit = 1280M

Como resolver as Páginas brancas do WordPress no Cpanel

Standard

Postei recentemente como sanar um problema de páginas brancas no WordPress.

Se seu WordPress está mostrando uma página branca na página inicial do seu WordPress é aqui mesmo que seu problema acaba ;).

Para acessar o artigo clique no Link abaixo:

http://webking.com.br/blog/wordpress-dando-pagina-branca-blank-pages-in-wordpress-cpanel-whm/