Skip to content

Instantly share code, notes, and snippets.

View netojoaobatista's full-sized avatar
💭
GitHub is not Orkut.

João Batista Neto netojoaobatista

💭
GitHub is not Orkut.
View GitHub Profile
@netojoaobatista
netojoaobatista / post-mortem.md
Created July 17, 2018 14:12 — forked from joewiz/post-mortem.md
Recovery from nginx "Too many open files" error on Amazon AWS Linux

On Tue Oct 27, 2015, history.state.gov began buckling under load, intermittently issuing 500 errors. Nginx's error log was sprinkled with the following errors:

2015/10/27 21:48:36 [crit] 2475#0: accept4() failed (24: Too many open files) 2015/10/27 21:48:36 [alert] 2475#0: *7163915 socket() failed (24: Too many open files) while connecting to upstream...

An article at http://www.cyberciti.biz/faq/linux-unix-nginx-too-many-open-files/ provided directions that mostly worked. Below are the steps we followed. The steps that diverged from the article's directions are marked with an *.

    • Instead of using su to run ulimit on the nginx account, use ps aux | grep nginx to locate nginx's process IDs. Then query each process's file handle limits using cat /proc/pid/limits (where pid is the process id retrieved from ps). (Note: sudo may be necessary on your system for the cat command here, depending on your system.)
  1. Added fs.file-max = 70000 to /etc/sysctl.conf
  2. Added `nginx soft nofile 1
Number.prototype.$toFixed = Number.prototype.toFixed;
Number.prototype.toFixed = function(x) {
return (Math.floor(this * Math.pow(10, x)) / Math.pow(10, x)).$toFixed(x);
};
print((22.315).toFixed(2)); //22.31
print((49.995).toFixed(2)); //49.99
@netojoaobatista
netojoaobatista / gitcowsay.sh
Last active January 4, 2021 18:58
Random commit messages
git config --global alias.cowsay '!git commit -m "`fortune | cowsay -f tux`"'
@netojoaobatista
netojoaobatista / Fibonacci.php
Last active August 29, 2015 14:15
$n primeiros elementos da sequência de Fibonacci utilizando a fórmula de Binet
<?php
foreach (call_user_func(function($n) {
for ($x = 1; $x <= $n; ++$x)
yield call_user_func(function($x) {return (1/sqrt(5)) *
(pow((1+sqrt(5))/2,$x) - pow((1-sqrt(5))/2,$x));},
$x);
}, 10) as $n) {
var_dump($n);
}
@netojoaobatista
netojoaobatista / cielo.sh
Last active November 4, 2020 12:30
Instalação dos certificados Cielo em servidores Linux
#!/bin/bash
if [ $EUID != 0 ]; then
echo 'Você precisa ser root para instalar certificados.'
exit $?
fi
# Diretório onde os certificados serão instalados
cert_path=`openssl version -d|sed 's/.*\"\(.*\)\"/\1/g'`/certs
# Path para o certificado da Cielo
// A interface Sample exige que todas as classes que a implementem
// também derivem a classe GLib.Object
public interface Sample : GLib.Object {
// Método doSomething da interface Sample deve ser implementado
// nas classes que implementem a interface Sample.
public abstract void doSomething();
// Método doSomeOtherthing da interface Sample pode ser implementado
// pelas classes que implementam a interface Sample, mas também
// oferece uma implementação padrão.
@netojoaobatista
netojoaobatista / ensaio-sobre-a-amnesia.md
Last active August 29, 2015 14:10
Ensaio sobre a amnésia

Ensaio sobre a amnésia

Num determinado dia de um determinado mês, um ser malévolo de outra galáxia, utilizando-se de uma arma especial, apagou a memória de todos os indivíduos do planeta Terra. Ainda, todas as pessoas tiveram suas roupas modificadas e passaram a utilizar apenas um chinelo, uma calça e uma camisa branca. Feito isso, esse ser malévolo disse a todos:

A partir de agora, ninguém sabe quem é, o que faz, nem o que tem. Ninguém é opressor ou oprimido. Ninguém é maioria ou minoria. Durante o período de um ano, todos os indivíduos do planeta precisarão definir juntos, as regras que irão reger a sociedade. Ao final desse ano, irei reverter a amnésia coletiva e todos passarão a estar sujeitos às regras que definiram.

Lembrem-se: Vocês não sabem se fazem parte da maioria ou da minoria, se são opressores ou oprimidos, se tem muito ou se não tem nada. Ao definir as regras, tomem o cuidado de ser justos, pois a injustiça poderá recair sobre você.

Sabendo que qualquer um tem exatamente a mesma proba

@netojoaobatista
netojoaobatista / dica.md
Last active February 25, 2019 14:08
Dica para não programadores aprenderem a pensar em programação

Por estar envolvido diretamente com várias comunidades de desenvolvedores, de diversas linguagens, vejo, com frequência, uma série de dificuldades de entendimento por parte dos mais novos (leia-se iniciantes em programação). Essa dificuldade de entendimento, normalmente, está relacionada com uma confusão em relação ao objetivo real do desenvolvimento de software.

Programar, ao contrário do que os mais novos pensam, não se trata de escrever códigos. De fato, trata-se de percepção com o objetivo puro e simples de se resolver problemas. O código é apenas uma, entre as várias atribuições do programador e, acreditem, não é a mais importante.

Digo que não é a mais importante, pois o código é apenas a aplicação de uma linguagem. Porém, quando se percebe que uma linguagem é apenas uma ferramenta, dentre várias ferramentas que podem ser utilizadas, compreende-se que o código naquela linguagem é equivalente ao serrote utilizado pelo marceneiro.

Alguém aqui definiria um marceneiro como um cara que sabe usar um serrot

@netojoaobatista
netojoaobatista / collision.php
Created December 9, 2013 15:18
MD5 collision
<?php
function d2m($d)
{
$m = '';
foreach (str_split($d, 2) as $h) {
$m .= chr(base_convert($h, 16, 10));
}
return $m;
@netojoaobatista
netojoaobatista / 1st-case.php
Last active December 29, 2015 17:39
Comparação entre strings com aspas e apóstrofos no PHP
<?php
$a = 'Neto';
echo $a;