Vida de Programador

Sad, but true
Ilustrações que definem bem a vida de um programador… Se você não teve nenhuma dessas experiencias, creio que você não é programador! =)

Quando você envia algo para o ambiente de produção:

Quando você resolve um problema sem precisar recorrer ao google:

Quando você fecha sua IDE sem salvar o código (ou quando ela trava):
Quando você tenta corrigir um BUG as 3 da manhã:
Quando uma expressão regular retorna exatamente o que você espera:
Quando meu chefe fala que o código que eu escrevi nunca será usado:
Quando eu mostro a meu chefe que corrigi um bug:
Quando eu envio um código sem testar e funciona exatamente como esperado:
Quando o pessoal do comercial mostra a equipe de desenvolvimento/infra o que eles venderam:
Primeira vez que você aplica um CSS a uma página:
Quando o sysadmin lhe dá acesso root:
Quando você roda um script pela primeira vez depois de horas trabalhando nele:
Quando você vai sair de férias e todos no escritório estão tentando corrigir error no sistema:
Quando seu chefe procura alguem para corrigir um bug crítico:
Quando você recebe pagamento extra por terminar um projeto antes do deadline:
Quando alguma coisa funciona na sexta e não funciona mais quando você chega na segunda:
Quando voc~e desenvolve sem nenhuma documentação
Quando seu chefe fala para você “testes são para pessoas que não sabem programar”
Quando você roda um script para atualizar o banco de dados e descobre que apagou todo o banco:
Fonte (em espanhol)

Baixando adobe creative stuite cs2 de graça (original)

photoshop cs2
Direto do site da adobe, com versões pra osx e windows:

http://www.adobe.com/downloads/cs2_downloads/index.html

Como desvincular sua conta do msn com o skype

Skype-vs-MSN

Simples e rápido, basta acessar o teu perfil do skype na WEB através deste link:
https://secure.skype.com/portal/profile

Após logar, logo do cara, vc verá teu nome e mais abaixo, a frase “DETALHES DA CONTA”,  clique na opção perfil.

Vc será direcionado para a página “DADOS DA CONTA”, repare na opção, conta microsoft, estará o teu e-mail vinculado. Basta selecionar a opção “DESVINCULAR”.

Limitar uso de memória de um usuário ou grupo sem programas adicionais

The Limit

Uma forma simples e nativa de controlar o uso de Memoria RAM por usuário ou grupo é usando  o arquivo /etc/security/limits.conf

Note que esse arquivo é um canivete suiço, da pra limitar quantidade de logins, uso de cpu, memoria, processos simultâneos etc. porém aqui vamos abordar especificamente o uso da memoria ram.

Para aplicar o limite, basta inserir uma linha ao final deste arquivo na sintaxe abaixo:

Limitando um único usuário em 1Gb de ram:

usuario      hard    as              1024000

Para limitar um grupo:

@grupo      hard    as              1024000

Observações: Para grupo, o “@” faz parte da sintaxe e deve ser mantido. O limite de memória é em KB, para saber o valor exato, da pra jogar na busca do google “1 GB in Kb”

O melhor de tudo é que não precisa reiniciar e nem restartar nenhum serviço.

Para testar se está funcionando segue um fonte em C que pode ser sado para simular o uso de memória ram

/*
 * xmalloc.c
 *
 * Just allocate a chunk of memory
 * and make sure it gets written, so that
 * the demand-paging mechanism of Linux actually
 * has to find physical pages or swap for it
 *
 * Vangelis Koukis <[email protected]>
 * July 2007
 */ 
  
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h> 

int main(int argc, char *argv[])
{
	char *p;
	long i;
	size_t n; 

	/* I'm too bored to do proper cmdline parsing */
	if (argc != 2 || atol(argv[1]) <= 0 ) {
		fprintf(stderr, "I'm bored... Give me the size of the memory chunk in KB\n");
		return 1;
	}
	n = 1024 * atol(argv[1]);

	if (! (p = malloc(n))) {
		perror("malloc failed");
		return 2;
	} 

 	/* Temp, just want to check malloc */
	printf("Malloc was successful\n");
	return 0; 

	/* Touch all of the buffer, to make sure it gets allocated */
	for (i = 0; i < n; i++)
		p[i] = 'A';


	printf("Allocated and touched buffer, sleeping for 60 sec...\n");
	sleep(60);
	printf("Done!\n"); 

	return 0;
}

Quando for limitar um usuário, temos que ter em mente que o próprio bash consome uma porção da memoria ram, então é normal que setando em 1Gb o programa retorne “erro ao alocar memoria” testando com, por exemplo, 990Mb;

 

Instalando ffmpeg no centos

O repositório padrão do yum não vem com ffmpeg, então temos que instalar os repositórios rpmforge (para as dependências) e o repositório do dag que contém o ffmpeg.

OBS: Testado no centos 6.3, teoricamente deve funcionar em qualquer versão da série 6.x (vi também algumas pessoas na internet fazendo o mesmo procedimento no centos 5.7 e funcionando)

rpm -Uhv http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

echo "[dag]" > /etc/yum.repos.d/dag.repo
echo "name=Dag RPM Repository for Red Hat Enterprise Linux" >> /etc/yum.repos.d/dag.repo
echo "baseurl=http://apt.sw.be/redhat/el\$releasever/en/\$basearch/dag" >> /etc/yum.repos.d/dag.repo
echo "gpgcheck=1" >> /etc/yum.repos.d/dag.repo
echo "enabled=1" >> /etc/yum.repos.d/dag.repo

yum install ffpmeg -y

Ferramenta para detecção de problemas em rede wifi

Um verdadeiro canivete-suíço para redes wifi, contendo gráficos, informações das redes entre outras coisas úteis:

Link Para Download:
http://www.metageek.net/products/inssider/

inSSIDer em execução

Certificado SSL gratuito

Pra quem quer contratar um certificado SSL e não quer gastar grana.
https://www.startssl.com/

OBS: O certificado gratuito (level1) não permite o uso em sites de ecommerce, para este tipo de site eles possuem o level2 que é US$ 59,90 a cada dois anos, porém o certificado é emitido para *.dominio (wildcard) que é um preço que ta valendo a pena. =)

Enviar email em html usando a função mail

Pra quem sempre se perde na hora de configurar os cabeçalhos:

function EnviaMail($from, $to, $assunto, $mensagem, $reply = ""){
	if($reply == "") $reply = $from;
	$mail_headers = implode("\n", array("From: $from", "Reply-To: $reply", "Subject: $assunto","Return-Path:  $from","MIME-Version: 1.0","X-Priority: 3","Content-Type: text/html; charset=ISO-8859-1"));
	mail ( $to,$assunto,$mensagem,$mail_headers );
}

Exemplo de uso:

$assunto = "teste de email";
$mensagem = "email em <b>html</b>";	
EnviaMail('[email protected]', '[email protected]', $asunto, $mensagem);