C


O que é um programa de computador? Antes de aprendermos a programar em uma linguagem que não seja algum tipo de script (.php, .bat ou shell script por exemplo), vamos discutir o que um programa de computador realmente faz. Em uma frase, um programa de computador é:

“Uma seqüência de instruções binárias para o processados executar e enviar resultado para o Kernel do Sistema Operacional, que irá então tratar o resultado como deve.”

(more…)

Ok, o mundo está de ponta cabeça, a Microsoft finalmente conseguiu fazer passar o seu OOXML como standard…apenas um porém…o ODF já era um standard para a mesma coisa…vamos ver no que vai dar. Vi lá no Terra.

Quando eu comecei a programar em C, eu sempre tive a curiosidade de por que eu não poderia fazer isso:

char buff[];
scanf(”%s”,&buff);

para pegar uma string de qualquer tamanho do teclado. Obviamente isso não funciona em C, já que em C você precisa manipular a memória na forma mais básica possível, depois que aprendi a utilizar malloc() e realloc(), isso ficou simples.
A idéia é bem simples:
1)Inicializar uma pequena string vazia
2)entrar em um loop que vai fazer (até encontrar ‘\n’):
1.pegar um caractere por vez e armazenar em uma variável temporária
2.contar o tamanho (atualizado) da string digitada
3.se o tamanho for maior que o incial:
1.reallocar a memória com 2 a mais(um para o caractere, um para o final)
4.Colocar o caractere recebido, no final da string
Claro que tudo isso tem que ser feito com muito cuidado para não estourar a memória e tudo isso que já sabemos.
Vamos ao código então, ele é bem simples, e adaptar em uma função para o seu programa em C fica praticamente patético (apenas coloque um return *buff; no final ;)).
(more…)

Se alguém gosta de Threads e/ou MPI, vai ficar interessado nesse repositório que criei. Ainda não tem nada sobre MPI, mas temos dois programas simples que demonstram a utilização de threads. Um, o helloWorld, é um programa básico que cria 10 threads falando hello world e espera todas elas terminarem para terminar o programa, já o real é um exemplo de um pequeno pedaço de uma aplicação um pouco mais interessante, onde duas threads são criadas para alimentar um vetor com uma fórmula randômica, depois uma thread é criada para somar os dois vetores, enquanto uma terceira thread serve para mostrar uma percentagem bem simples na tela. Vale a pena dar uma olhada, o código não é complexo.

Aqui vai o endereço: http://svn.geekvault.org/parallel

Aplicações para rede são muito mais simples do que a maioria das pessoas acredita. Elas se baseiam em uma arquitetura cliente/servidor, mais do que explorada, ou seja, todos os grandes problemas das aplicações mais comuns já foram explorados e estudados. O grande problema dessas aplicações é o “debug”, já que em 99% dos casos os servidores irão rodar em máquinas externas, fica extremamente complicado a depuração de um código cliente/servidor, mas com muita calma, conseguimos também “debugar”, talvez em uma forma um pouco mais primitiva, mas conseguimos.

(more…)

Threads são coisas fantásticas, você pode executar mais de uma coisa ao mesmo tempo com elas :O

Obviamente, caso você não tenha mais de um processador, não é exatamente ao mesmo tempo que as coisas são executadas, mas sim aos poucos. O assunto de threads é muito complexo, e não vou de forma alguma explicar aqui todos os seus problemas, suas diferenças com fork, ou como resolver coisas do tipo Race Condition, vou apenas mostrar uma introdução básica às mesmas, e mostrar como criar uma simples thread, e a diferença básica entre ela e o fork.

(more…)

Que Linux é muito bom, e podemos fazer coisas maravilhosas com ele todos nós sabemos, porém quem nunca teve o problema de fazer um programa em C simples, que tinha um “atraso” para mostrar as coisas na tela?
Vamos mostrar aqui por que isso acontece, quando acontece, e como evitar isso.
(more…)

O combinado foi fazer o grafo, para poder resolver algumas coisas, como o problema do menor caminho, resolvido via Dijkstra. Bom, resolvido está!
Para ver como funciona o Dijkstra, vejam nessa página da Wikipedia.
(more…)

Ola a todos, como havia prometido, subversion.
O primeiro programa que temos no subversion é uma representação de um grafo em C.
(more…)

“In Unix, everything is a file.”

And this is true also for networks. Of course you won’t learn socket programing just with this example, but it shows how to create a socket, connect, send and recieve data, and close it, is that simple.
I’ll be making a nice tutorial on network programing lather, for now, the code:
(more…)

« Previous PageNext Page »