03/24/2009, 8:54 pm
Sem muito tempo, como de praxe, vai um pequeno, mas memorável post.
Hoje foi lançado do kernel 2.6.29, e junto com as features, veio o Tuz:

Tuz
O Tuz é um Diabo da tazmânia, desfarçado de pinguim… Bonitinho não? … ele será exibido no boot, no lugar do Tux… mas ele é temporário… só para este Release… Seja bem-vindo
03/14/2009, 3:44 am
Menu de seleção de opções para fazer em uma sexta que você está de folga:
-
1: Ir a praia
-
2: Fazer uma trilha de bicicleta
-
3: Ver TV
-
4: Ler: "Programação para redes Unix"
-
Digite sua Opção:
-
4
-
Opção 4: você é um nerd.
-
-
- Eu n ã o s o u N E R D…
Os sockets possuem algumas opções e ajustes que podem ser feitos, como por exemplo, o tamanho do buffer de envio e recebimento de pacotes, se o pacote pode ser enviado para broadcast (este somente para sockets de datagrama (ex: UDP)), o TTL do pacote, etc.
Um dos meios de ajustar estes valores é utilizando as chamadas do sistema getsockopt(2) e setsockopt(2)
int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen);
-
int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen);
Os argumentos, são:
int s: Descritor do soquete aberto
int level: Nivel do protocolo que deseja alterar a opção (ip, tcp, udp…)
int optname: Opção que deseja alterar
void *optval: Um ponteiro para a variável ao qual o valor deve ser gravado em getsockopt() ou lido em setsockopt().
socklen_t optlen: Tamanho da variável optval
Os valores para level, optname e optval estão descritos nas sessões “Socket Options” de ip(7),tcp(7),udp(7),socket(7) e unix(7).
O código abaixo, trás dois exemplos de opções:
- Aumentar o tamanho do buffer de recebimento
- Liberar o envio de pacotes UDP para o endereço de broadcast da rede:
sockopt.c Continue reading ‘(get|set)sockopt’ »
03/07/2009, 3:47 pm
Processamento de imagens, quem diria que eu teria que fazer isto, mas é a academia!, cadeira de Processamento Digital de Imagens.
Em meu grande portifólio de linguagens de programação, C e Python, escolhi a segunda pensando: Ah vai ser barbadinha!
- E não é que foi mesmo?
Foram apresentadas seis técnicas:
* Acesso a cores (adicão de brilho)
* Conversão para tons cinzas
* Negativa
* Limiarização
* Adição
* Subtração
As quais devíamos implementar. Para isto utilizei o módulo de imagem que possui várias funções, desde ler uma imagem à setar propriedades e editar os valores RGB de cada píxel.
O Legal, é que mesmo sem nunca ter trabalhado com imagem (ao menos em nivel de manipulação de pixel), consegui resolver os problemas muito rapidamente, ao ponto de ser o único a terminar os execícios em sala… e ter tempo de dar umas risadas com a/da galera “Java”, o que foi mais legal
…
A imagem abaixo mostra o resultado da aplicação das ténicas nas fotos do Tux e do Beastie…

imagens modificadas
E o código fonte está aqui.
Python! Python! Python!