- Discovery Channel - MithBusters para hackers!?

Um amigo me enviou um link interessante sobre um novo programa produzido pelo excelente canal “Discovery Channel”, sendo uma espécie de “Mithbusters” relacionado à assuntos nerds, robóticas, hacking, entre outros. Creio que será bem divertido, irá estrear dia 15 de outubro na discovery americana, mais informações nos links abaixo!

Fontes: aqui e aqui!
OBS: Agora e aguardar para que a Discovery brasil passe em breve o programa! ;)

- A Sensação do poder

Segue uma dica de leitura referente a um artigo bem interessante, mais precisamente um texto extraido do livro “Sonhos do Robô” na qual foi escrito por Isaac Asimov, ainda não tive a oportunidade de ler toda sua obra citada, porém e possível ter uma idéia da visão do autor sobre vários aspectos, em especial quando se tratado ao poder, abaixo segue um trecho do texto.

“Em meu conto “A Sensação de Poder”, publicado em 1957, lancei
mão de computadores de bolso, cerca de dez anos antes de tais
computadores se tornarem realidade. Cheguei mesmo a
considerar a possibilidade de eles contribuírem para
que as pessoas acabassem perdendo a capacidade
de fazer operações aritméticas à maneira antiga.”
(Introdução - Isaac Asimov)

Abaixo segue link para o capitulo “A Sensação do Poder”
Fonte: http://sobral.tripod.com/poder/poder.html
Slide: http://www.scribd.com/doc/4091776/A-Sensacao-de-Poder-Isaac-Asimov

- Piadas nerd

Estava navegando outro dia, lendo as noticias e fui pulando de site em site, quando me deparei com as imagens abaixo, super nerd e divertidas na qual o irmão enfurecido da um jeito na irmã dele! :P

A real vida de um sysadmin!

Executando um drag-drop

Está abaixo e um clássico, para aqueles que não são nerd com certeza vão ficar sem entender…
a placa diz “Fim da Guerra“.
** Fim da Guerra **

Está foto abaixo eu tirei em um mercado durante uma compra!! :P

Brincadeira, isto foi um teste durante desenvolvimento da API de acesso a este display! ;)

- getch() no Linux

Se você já precisou algum dia trabalhar diretamente com leituras de teclas a partir da STDIN sem a interação do <ENTER> conforme maioria das funções estilo gets(), fgets(). e estava a procura de algo no estilo getch() e percebeu que não existe implementação idêntica no Linux. pode ficar tranquilo, abaixo segue uma implementação que fiz para leitura de teclas pressionadas sem a intereção do <ENTER>.


/*
* Source: getch.c
* Autor: Jorge Pereira
* Data:  Tue Jul 29 09:35:42 BRT 2008
* Desc:  Implementacao da funcao getch() no Linux,
* podendo ser feito leitura de um unico byte por vez.
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <stdint.h>

#ifdef getch
#undef getch
#endif
typedef unsigned int keybd_t;

keybd_t getch (void)
{
struct termio old_tty;
struct termio new_tty;;
keybd_t	key = 0;;

if (ioctl(STDIN_FILENO, TCGETA, &old_tty) < 0)
{
fprintf(stderr,"Port ioctl(TCGETA) it's failed, exiting...\n");
exit(EXIT_FAILURE);
}

new_tty = old_tty;
new_tty.c_lflag &= ~(ICANON | ECHO);
new_tty.c_cc[4]  = 01;

if (ioctl(STDIN_FILENO, TCSETA, &new_tty) < 0)
{
fprintf(stderr,"Port ioctl(TCSETA) it's failed, exiting...\n");
exit(EXIT_FAILURE);
}

if(read(STDIN_FILENO, &key, sizeof(key)) < 0)
{
fprintf(stderr,"Problems in read()\n");
exit(EXIT_FAILURE);
}

if (ioctl(STDIN_FILENO, TCSETA, &old_tty) < 0)
{
fprintf(stderr,"Port ioctl(TCSETA) it's failed, exiting...\n");
exit(EXIT_FAILURE);
}

return key;
}

#if defined(RUN_MAIN)
int
main (void)
{
keybd_t key;

printf ("(*) Teste para funcao getch(), pressione  para sair!\n");

while ((key = getch()) != 0x1b)
{
char ch = (key >= 'a' && key <= 'z') ||
(key >= 'A' && key <= 'Z') ||
(key >= '0' && key <= '9') ? key: ' ';

printf (" -> key char(%c) hex(0x%08x) dec(%d)\n", ch, key, key);
}

printf ("(*) Saindo...\n");

return EXIT_SUCCESS;
}
#endif
/* getch.c - end */

Adicionei um bloco ifdef com um main(), para que seja possível executar e testar a função. Abaixo segue exemplo de compilação.

[jorge@jiraya codigos]$ gcc -W -Wall -DRUN_MAIN -o getch getch.c
[jorge@jiraya codigos]$ ./getch
(*) Teste para funcao getch(), pressione <ESC> para sair!
-> key char(a) hex(0×00000061) dec(97)
-> key char(b) hex(0×00000062) dec(98)
-> key char(c) hex(0×00000063) dec(99)
-> key char(d) hex(0×00000064) dec(100)
(*) Saindo…
[jorge@jiraya codigos]$

Caso queira adicionar o ao seu projeto, basta remover o bloco #ifdef e utilizar normalmente! ;)

- Acessando quantidade de espaço de uma partição

Esses dias estive desenvolvendo uma feature de um sistema na qual existe uma regra de negócio para os arquivos a ser salvos em um determinado dispositivo, precisando saber se existe espaço entre outras verificações. conversando com um amigo ele disse que precisou fazer isto outro dia e não tinha encontrado muita coisa sobre o assunto, como estava com o código na mão resolvi mostrar um simples exemplo com o mesmo comportamento do comando df encontrado em qualquer Unix.


/*
* Source: statfs.c
* Autor: Jorge Pereira
* Data: Tue Jul 29 09:35:42 BRT 2008
* Desc: Exemplo acessando a quantidade de espaço de uma partição no Linux.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <stdint.h>
#include <sys/vfs.h>

inline long _tok(long b, long bs)
{
return ( b * (long long) bs + 1024 / 2 ) / 1024;
}

int main(int argc, char *argv[])
{
struct statfs s;

if (argc < 2)
{
printf ("Usage: %s </dev/dispositivo>\n", argv[0]);
exit (1);
}

if (statfs(argv[1], &s) != 0)
{
printf ("Problemas ao tentar abrir (%s), msg='%s'\n", argv[1], strerror(errno));
exit (1);
}

printf(" + SYSTEMA ARQUIVOS: (%s) \n", argv[1]);
printf(" +-- CAPACIDADE:     (%lu)\n", _tok(s.f_blocks, s.f_bsize));
printf(" +-- OCUPADO:        (%lu)\n", _tok(s.f_blocks-s.f_bfree, s.f_bsize));
printf(" +-- LIVRE:          (%lu)\n", _tok(s.f_bavail, s.f_bsize));

return EXIT_SUCCESS;
}

Basta compilar, e executar o exemplo conforme abaixo.

[jorge@jiraya c]$ gcc -o statfs statfs.c
[jorge@jiraya c]$ pwd
/home/codes/c
[jorge@jiraya c]$ ./statfs $PWD
+ SYSTEMA ARQUIVOS: (/home/codigos/c)
+– CAPACIDADE: (48444420)
+– OCUPADO: (13660960)
+– LIVRE: (32341984)
[jorge@jiraya c]$ df $PWD
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 48444420 13660960 32341984 30% /home
[jorge@jiraya c]$

- Desabilitando serviços desnecessários no GNOME

Bem,

Para aquelas pessoas que utilizam o Linux Ubuntu 8.04 com o GNOME em um computador um pouco modesto, e procuram deixar o mais enxuto possível para liberar recurso no sistema. Segue uma dica para desabilitar serviços desnecessários que as vezes são executados sem a sua real necessidade, obviamente que cada caso e um caso.

No meu caso, o meu Desktop não tem bluetooth, não utilizo esquema de indexação do track, nem esquemas de hibernar o meu Desktop. Desta forma para quer ter esses serviços rodando no meu GNOME? abaixo segue a lista dos serviços inicializados por padrão através do XDG.

[root@jiraya ~]# cd /etc/xdg/autostart/
[root@jiraya autostart]# ls -la
total 76
drwxr-xr-x 2 root root 4096 2008-07-06 20:30 .
drwxr-xr-x 6 root root 4096 2008-07-06 20:27 ..
-rw-r–r– 1 root root 2676 2008-03-28 07:07 bluetooth-applet.desktop
-rw-r–r– 1 root root 289 2008-04-21 12:23 evolution-alarm-notify.desktop
-rw-r–r– 1 root root 5040 2008-04-15 11:42 gnome-at-session.desktop
-rw-r–r– 1 root root 6079 2008-04-10 14:12 gnome-power-manager.desktop
-rw-r–r– 1 root root 7214 2008-04-15 05:39 gnome-volume-manager.desktop
-rw-r–r– 1 root root 293 2008-04-08 22:06 jockey-gtk.desktop
-rw-r–r– 1 root root 374 2008-04-18 17:27 nm-applet.desktop
-rw-r–r– 1 root root 219 2008-04-06 22:24 pulseaudio-module-xsmp.desktop
-rw-r–r– 1 root root 5002 2008-04-21 12:44 redhat-print-applet.desktop
-rw-r–r– 1 root root 2204 2008-04-02 17:11 tracker-applet.desktop
-rw-r–r– 1 root root 1791 2008-04-02 17:11 trackerd.desktop
-rw-r–r– 1 root root 236 2008-04-04 18:34 update-notifier.desktop
-rw-r–r– 1 root root 2783 2008-02-13 07:51 user-dirs-update-gtk.desktop
[root@jiraya autostart]#

No meu caso estarei desabilitando os serviços abaixos, movendo os arquivos para um diretório chamado “old” em um nivél acima.

[root@jiraya autostart]# mkdir ../old
[root@jiraya autostart]# mv bluetooth-applet.desktop evolution-alarm-notify.desktop gnome-power-manager.desktop tracker-applet.desktop trackerd.desktop ../old
[root@jiraya autostart]#

Feito isto, na próxima inicialização do seu GNOME não será executado tais serviços em background. liberando alguns kb de memória no seu Linux. Lembrando que este procedimento e interessante quando você que remover definitivivamente tais processos ao invés de recorrer o uso da ferramente gnome-session-properties, caso queira retomar os serviços basta movelos de “/etc/xdg/old” para o diretório “/etc/xdg/autostart”

- 2º ESOL - CEFET/PE - RESENHA

Conforme o POST do dia 05/07/2008, aconteceu em Recife a segunda edição do ESOL nas dependências do CEFET/PE. o evento teve duração de três dias e foi muito legal. muita gente envolvida resultou num evento super bacana! infelizmente por estar em semana de RELEASE na empresa que trabalho, não tive como comparecer assiduamente ao evento, e sem falar da correria e um principio de gripe que me deixou com a garganta super debilitada, fui ao evento ministrar a palestra sobre “Colaborando com o GNOME”. fiquei surpreso com a quantidade de pessoas e também um interesse visivel por alguns que estavam presentes, tentei passar as coisas legais e uma mensagem sobre a comunidade GNOME-BR. agora e esperar que breve alguns estejam presentes na lista do GNOME-BR e também colaborando com o projeto.

- Vamos acabar com as notas

Navegando encontrei um artigo muito interessante escrito por Stephen Kanitz, um administrador graduado em Harvard, na qual ele fala sobre a forma que são feitas as avaliações em instituições de ensino, artigo interessante que faz você refletir tanto para aqueles que ensinam ou são alunos. vale a pena da uma lida e refletir sobre essas ideias bastante inovadoras, abaixo segue um trecho.

“Imaginem um sistema geral de
auto-avaliação em que os alunos
não mais estudariam para as provas,
mas estudariam para ser úteis na vida”

Link do artigo aqui.

- Hackers Are People Too

Segue um documentário que conforme o trailer, parece ser bem interessante! sendo algo mais “realista” em relação ao fato que “Hackers também são gente”. agora e só aguardar para conferir! abaixo link referente ao trailer do documentário!!


- 2º Encontro de Software Livre do CEFET/PE

O 2º Encontro de Software Livre do CEFET/PE acontecerá nos dias 1, 2 e 3 de julho. Começando às 14h na tarde do dia 1 e terminando no início da noite do dia 3. Será um evento sem fins lucrativos, organizado pelos próprios alunos e que contará com o apoio do núcleo de eventos da instituição.

A pré-inscrição para o evento será feita pela internet e no local, mas a inscrição só será efetivada com a doação, no dia da abertura, de 1 kg de alimento não-perecível.

Assim como participei da primeira edição do evento, estarei novamente participando no evento representando a comunidade GNOME Brasil, com o tema “Colaborando com o GNOME”. tema este que irá abordar os primeiros passos e funcionamento colaborativo referente ao projeto GNOME, apresentação marcada para o dia 03/07/2008 às 15:00.

- Debugando com o GDB

Bem,

Acredito que todos que trabalham com desenvolvimento utilizando o Linux, já precisaram depurar algum trecho de código, e todos sabem que para quem não tem muito costume ele não e muito “amigável”. então segue abaixo link com tutorial e alguns arquivos de configuração contendo atalhos entre outras funções que com certeza irá ajudar muito na hora de depurar.

Abaixo segue alguns exemplos de configuração do GDB, lembrando que deverá ser salvo em ~/.gdbinit, caso queira ter como configuração padrão. do contrário basta utilizar o gdb passando o parâmetro -command,

Ex: gdb -command=gdbinit.txt

Excelentes tutoriais sobre GDB

- The Big Bang Theory

Bem, qualquer pessoa que me conhece sabe o quanto sou aficionado em seriados, alguns deles que acompanhei são “Lost”, “Prison Break”, “Futurama”, “Dexter”, “The 4400″ entre outras que talvez esteja esquecendo de mencionar. outro dia estava conversando com um amigo quando ele mencionou sobre o seriado chamado “The Big Band Theory”, achei o título muito chamativo e fui ver no google algo sobre o seriado, e encontrei um link do “Series Online”. então fica registrado a dica para caso você queira assistir um seriado muito engraçado e repleto de piadas “nerds” com um bando de nerd reunido, este com certeza será um seriado que irá valer a pena assistir. abaixo segue um resumo sobre o seriado!

A nova comédia do criador de “Two and a Half Men”, “THE BIG BANG THEORY”, mostra a história de dois melhores amigos inteligentíssimos que podem lhe dizer o que você quiser saber sobre física quântica — mas quando se trata de lidar com a vida diária na Terra, eles estão perdidos no universo.

The Big Bang Theory
Simon Helber, Jim Parsons, Johnny Galecki, Kaley Cuoco
e Kunal Nayyar

Leonard (Johnny Galecki, “Hope & Faith”, “Roseanne”) e Sheldon (Jim Parsons, “Judging Amy”) são físicos brilhantes que entendem como o universo funciona. Mas nada dessa inteligência ajuda os dois a interagir com as pessoas, principalmente as mulheres. Tudo isso começa a mudar quando uma jovem bela e liberal chamada Penny (Kaley Cuoco, “Charmed”, “8 Simple Rules”) se muda para o apartamento ao lado.

Sheldon, o colega de quarto de Leonard, contenta-se a passar as noites jogando com seus amigos socialmente disfuncionais, os cientistas Wolowitz (Simon Helberg, “Studio 60 on the Sunset Strip”, “Joey”) e Koothrappali (Kunal Nayyar). Mas Leonard vê em Penny todo um novo universo de possibilidades… incluindo o amor.

- A Criação do Mundo Segundo o Root

Estava esses dias organizando os arquivos no HD, quando encontrei um backup bem antigo. resolvi extrair e verificar seu conteúdo, encontrei várias coisas legais e importantes que até o momento eu as tinha como “perdido”. e uma das coisas que encontrei foram os textos abaixo falando sobre como foi a criação do mundo segundo o “root”. vale a pena ler e dar boas gargalhadas com este texto super “nerd”.


Keep Reading »

- Palestrante Brasileiro na GUADEC

Pois bem, acordei agora pouco e como um bom nerd fui checar meus e-mails e dar uma olhada nos meus feeds, quando me deparo com um post do Jonh Wendell falando que sua palestra acaba de ser aceita na famosa GUADEC que neste ano será sediada na turquia. você que está lendo este POST, tem noção do que seja? a GUADEC e simplesmente uma das ou talvez a maior conferência do mundo sobre o GNOME. e teremos nada mais nada menos que um Brasileiro, mais precisamente vizinho aqui de Maceió

- II ESLPE - resenha

Conforme publiquei no penultimo post sobre o evento ESLPE 2008, so tenho a dizer que a organização está de parabéns! pois o evento sem sombra de dúvidas foi muito bom, a infra-estrutura foi muito boa, grandes nomes estavam patrocinando ou apoiando o evento como a revista nacional Linux Magazine , SERPRO, IBM, INDT, RedHat entre outras renomeadas empresas. e sem contar com a vasta quantidade de palestrantes e hack-labs ocorrendo em paralelo, ou seja! com certeza tinha algum tema de seu interesse ocorrendo durante cada hora do evento. compareci no evento representando a comunidade GNOME-BR falando sobre o tema “Contribuindo com o GNOME”, e também falando sobre “Desenvolvendo aplicações no Linux”. abaixo segue algumas fotos e links para os materiais utilizados na apresentação.

Palestra: Desenvolvendo aplicações no Linux Palestra: Desenvolvendo aplicações no Linux Palestra: Desenvolvendo aplicações no Linux Palestra: Desenvolvendo aplicações no Linux