Folhas de um Diário

Segue abaixo a transcrição de uma folha de papel que foi encontrada em Los Angeles – EUA:

Merda! Preciso colocar pra fora o que está acontecendo na minha vida, mas não tenho ninguém para conversar, pelo menos ninguém que eu confie a não ser eles, mas eu não posso deixar que eles saibam o que está acontecendo. Vou usar essa folha de papel mesmo.

Ontem e hoje foram dias difíceis e estranhos, tenho sorte de ainda estar vivo. Não fosse por causa deles eu já não teria motivos para estar vivo, mas eles precisam de mim, não posso abandoná-los. Droga! tudo está dando errado! Nunca tive ninguém que pudesse chamar de família e muito menos de grande amigo. Sempre foi eu contra o mundo.

Não podia ter perdido meu emprego na boate. Merda! Eu precisava daquele dinheiro! Maldito seja aquele vagabundo que foi lá arrumar confusão. Pelo menos aquele mauricinho filho de um puta teve o que merecia!

Ontem de noite fui ao encontro que aquela francesinha propôs. Não gosto de encontrar pessoas que não conheço, ainda mais para fazer os tipos de planos fizemos. Se eu soubesse que o dia ia acabar como acabou eu não teria ido nesse encontro. Droga! Eu não queria ter disparado aquela maldita arma! Tenho que me controlar, eu não posso ser pego e foi preciso atirar. Se pelo menos tivéssemos bolado um plano melhor. Ou melhor, se tivéssemos feito um plano. Aquela ação parecia mais uma comédia que algo sério.

Ainda não acredito que assaltamos aquele posto. Merda cara! Quase foi tudo por água abaixo! Não consigo entender por que não fizemos um plano melhor! Por que que nós não entramos na loja antes para ver como ela era? Por que eu não usei uma máscara? Merda, quase me fodi por causa disso. Mas pelo menos o china jogou os computadores pra fora e eles não tem imagens nossas. Isso vai dificultar de nos reconhecerem.

Que merda aquele cara do carro tava pensando? roubar batatas fritas?! Que porra é essa?! tenho que abrir o olho com ele, ele pode nos foder com alguma gracinha dessas. Odeio carros!

Quase não dormi de noite, não consegui parar de pensar no grito do cachorro quando eu disparei. Eu não queria ter feito aquilo. Não queria ter ido naquele lugar também. Merda eles estavam maltratando aqueles animais! Vou tentar me aproximar mais daquele tal de Snake. Hoje de manhã ele nos ofereceu um trabalho. Parece ser arriscado, ainda não sei se eu vou aceitar, nós quatro vamos nos encontrar com ele hoje a noite e dar a resposta se vamos ou não fazer o trabalho. O trabalho é arriscado mas eu preciso daquele dinheiro.

Eles precisam de mim! Seja forte!

Mudança de ares

Olá webmundo,

Atenção, esse post pode é mimimi, então não venha reclamar que eu não avisei. Aproveito que tu já leu até aqui e aviso que esses posts irão aparecer mais aqui, estou entrando numa fase de expor algumas coisas. Também pretendo escrever coisas mais técnicas aqui, mas isso fica pra depois.
Para quem não recorda (ou me conhece a pouco tempo), a quase 6 anos atrás (13/10/2006) eu fiz uma mudança drástica na minha vida.
Eu morava em Caçapava do Sul e tinha um emprego com carteira assinada em uma empresa que eu adora trabalhar, meus amigos todos moravam lá, minha família mora lá, mas ainda assim eu sentia que precisava mudar, sentia que queria conhecer novos lugares.
Sem saber muito para onde eu estava indo, e sem conhecer ninguém, me mudei para Alegrete para fazer uma graduação em Ciência da Computação em uma universidade nova (UNIPAMPA). Agora, 6 anos depois, eu vejo que essa mudança de ares foi ótima para eu sair da minha zona de conforto. Se eu estivesse em caçapava acredito que eu não teria evoluido muito como pessoa.
Agora está na hora de outra mudança dessas. Já pedi o desligamento como professor substituto aqui na universidade, estou colocando a casa para alugar, vou sair para visitar alguns amigos pelo Brasil, e quem sabe tirar um tempo em alguma cidade desconhecida :) (aceito sugestões :) ).O interessante é que eu sinto eu estou com um vontade gigante de voltar a fazer as coisas que me davam prazer, mesmo ainda estando no mesmo emprego pelos próximos dias e com as mesmas atribuições de alguns dias atrás. APenas para conhecimento essas coisas incluem conversar com os amigos (desculpem, apesar de afastado, meu pensamento estava com vocês, mas eu estava muito focado no trabalho para me dar de conta desse afastamento), voltar a construir armas medievais (hoje voltei a atirar de arco e flecha http://www.youtube.com/watch?v=aB1YnLg-a4A ), e programar por prazer. Alguns amigos disseram que eu tenho coragem de fazer uma mudança dessas (largar tudo e não ter um plano bem definido). Creio que aqui não chega a ser coragem (insanidade?!), mas sim uma necessidade. Essa mudança está sendo alavancada não só pela minha necessidade de mudança interior, mas também pelo entorno. Só sei que eu preciso me reencontrar, preciso redescobrir o Wagner.
Antes de me despedir, gostaria de reforçar que o que me motivou a ir embora daqui não é nenhum fator externo (como o transporte público de péssima qualidade), mas apenas a necessidade de mudar de ares.
Bom, tenho uma aula agora (a última em sala de aula), então até logo e obrigado pelos peixes.
Wiglot (Wagner fica para o cobradores :) )

=-=-=-=-=
Powered by Blogilo

Passando o chapéu: Suporte o KDE Randa Sprint 2012

Post replicado de http://blog.filipesaraiva.info/?p=873

O KDE está buscando recursos financeiros para viabilizar o KDE Randa Sprint 2012, reunião de desenvolvedores que objetiva avançar em alguns importantes projetos-chave para o futuro do KDE.

Click here to lend your support to: KDE Randa Meetings and make a donation at www.pledgie.com !

Se o KDE é importante para você, e se estiver ao seu alcance, considere fazer uma doação para viabilizar esta reunião! =)

O texto abaixo é uma tradução do texto no dot KDE onde é apresentado a proposta, a importância, e quais principais objetivos os devs que irão ao KDE Randa Sprint 2012 almejam atingir.

Suporte o KDE Randa Sprint 2012: Inspirador e Intenso
por Carl Simon, traduzido por KDE Brasil

Os encontros KDE Randa Sprint são um pequeno encontro de contribuidores do KDE na vila de Randa, Suíça. Em seu quarto ano, o Randa sprint incluirá projetos chaves do KDE e importantes desenvolvedores, todos colaborando simultaneamente sob o mesmo teto, isolados do barulho e distração. Estamos pedindo um auxílio financeiro para dar suporte ao encontro.

“Os sprints em Randa são especiais. Envolvidos por uma paisagem montanhosa, uma intensa colaboração acontece, com todo mundo reunido em um único lugar. Encontrar-se lá significa trabalho feito e sem fuga de planejamento, apenas discutindo e programando.” disse o duas vezes participante de Randa e hacker de Acessibilidade no KDE, Frederik Gladhorn.

Estratégia, planejamento e coordenação. photo by Kévin Ottens

Randa 2012 acontecerá de 21 à 27 de Setembro de 2012. Os participantes do encontro tem metas ambiciosas que irão beneficiar usuários e desenvolvedores do KDE.

  • O time de Acessibilidade no KDE e especialistas em Acessibilidade do GNOME vão facilitar o uso de aplicações acessíveis, particularmente para pessoas com deficiência visual. Cegos e pessoas com baixa visão foram convidadas para providenciar orientação e assistências durante os testes.
  • Desenvolvedores do KDE-Edu estarão trabalhando nas aplicações educacionais existentes e em novas, especialmente para dispositivos móveis.
  • O  times de Multimidia do KDE e do Amarok irão discutir o futuro do Amarok, particularmente em dispositívos móveis. Além disso, eles irão trabalhar com o Framework de Multimidia Phonon do Qt5, o qual é a fundação das aplicações de som do KDE.
  • Planejamento para o futuro dos Plasma Workspaces, particularmente como eles se relacionarão com o KDE Frameworks 5, baseado no Qt 5. Esse trabalho é crítico para definir uma direção comum e necessário para mudança a um ambiente de desenvolvimento atualizado com perturbação mínima para os usuários. O time também fará um intenso trabalho de escrita de código.

Mão na massa! photo by Anne-Marie Mahfouf

Todas as reuniões prévias em Randa foram focadas e produtivas, gerando resultados excepcionais; organizadores e participantes esperam o mesmo e até mais para esse ano. As reuniões em Randa produziram significantes avanços no passado, tais como:

  • Aplicações do KDE e ambiente Plasma rodando em CPUs ARM,
  • Um framework de autorização segura,
  • Projeto do KDE Frameworks como um substituto para kdelibs e KDE Platform, melhorando o relacionamento com o upstream e simplicando dramaticamente o desenvolvimento.
  • Documentação de usuário completa e eliminação de bugs no Amarok.
  • O time de Multimidia do KDE otimizou as aplicações e o framework de desenvolvimento para melhorar a performance e simplificar o seu uso.

Esse ano, 35 desenvolvedores de todo mundo (sendo que 3 deles são aqui do Brasil), irão para o encontro em Randa. Em sete dias inspiradores cheios de trabalho, eles irão realizar mais do que eles mesmos imaginam, guiados pelo compromisso de apoiar o software livre para todas as pessoas.

Enquanto os participantes são voluntários não remunerados, existem grandes despesas, tais como acomodações, comida e transporte. Se você não vai comparecer, você ainda pode apoiar o encontro em Randa através de uma doação. Como já aconteceu antes, o encontro em Randa irá beneficiar todos que usam o software do KDE.

A arrecadação de fundos tem como meta 10.000€. Por favor, doe o que você puder  para ajudar a tornar possível KDE Randa Sprint 2012

Removendo o uso de ponteiro de ponteiro de funções

O uso de ponteiros de ponteiros é uma forma de armazenar estrutura bidimensionais (uma matriz por exemplo) ou quando se deseja atualizar o valor de um ponteiro.
O primeiro caso, é uma ótima forma de representar estruturas bidimensionais, mas o segundo caso deve ser evitado.
Por que evitar o segundo caso? Você terá que se preocupar com acesso ao conteudo usando o operador *, isso deixará seu código menos legível, uma vez que você poderá ter que usar parenteses para indicar a precedência do operador * sobre o operador ->, um código eu seria algo como ptr->k = ptr->k+10 passa a ser (*ptr)->k = (*ptr)->k+10.
Essa falta de legibilidade trás também uma complexidade e pode trazer também confusão, uma vez que você passa a trabalhar com um apontardor para um apontador de onde está a sua estrutura.
Essa forma de acesso indireto é mais lenta que o acesso direto, uma vez que será necessário primeiro descobrir o endereço onde está o ponteiro, depois com esse endereço acessar a estrutura no endereço indicado pelo ponteiro.
Uma forma bastente utilizada do ponteiro de ponteiro é o seguinte
{    …
  MeuTipo * ptr = NULL;
  criaTipo(&ptr)
    …
}
e a função que recebe o endereço do ponteiro:
void criaTipo(MeuTipo ** pdp){    …
  (*pdp) =  (MeuTipo*) malloc ….;
    … inicializa dados em pdp usando (*pdp)
}
O que esse trecho de código faz é uma inicialização de um ponteiro, mas você pode considerar que ptr não apontava para NULL mas para o início de sua lista ligada ou para a raiz de sua árvore enraizada e a função criaTipo irá incluir um novo elemento na sua árvore ou lista (o que pode mudar o apontador).
Temos 3 pontos básicos: Primeiro a chamada da função criaTipo que recebe como parâmetro o endereço do ponteiro ptr (operador &). Veja que ele possui um valor nulo, mas ainda assim possui um endereço válido, uma vez que um ponteiro é uma variável (que armazena endereços de memória) e esse ponteiro está em algum lugar da memória.
Segundo ponto é a inicialização de um espaço de memória (o malloc) que será armazenado no ponteiro que teve seu endereço passado como parâmetro (nessa caso o endereço para o qual ptr apontava é substituido pelo endereço alocado).
O terceiro ponto que é a inicialização dos valores da estrutura (pode ser apontar prox para null) que deve ser feito usando o acesso ao conteudo do ponteiro de ponteiro (*pdp).
Podemos modificar o código para que não seja mais necessário passar o ponteiro de ponteiro (e com isso tornar mais legível o código). Primeiro vamos mudar a função criaTipo trocando o parâmetro de ponteiro de ponteiro para um ponteiro simples e mudando o seu retorno também.
MeuTipo * criaTipo(MeuTipo * pdp) {
    ….
Com essa alteração, é esperado o seguinte comportamento:
Se houve a necessidade de alterer o valor para o qual o ponteiro original apontava, esse novo valor deve ser retornado, se não houve mudança, então o valor anterior (pdp) deve ser retornado.
Para o caso de alocação de memória como o caso anterior:
MeuTipo * criaTipo(MeuTipo * pdp) {
  pdp = (MeuTipo*) malloc ….
    … Inicializa dados em pdp
  return pdp;
}
Veja que agora não será mais necessário usar o operado * e nem (* ). e agora existe um return que retorna o endereço criado.
o código completo do exemplo anterior fica:
{    …
  MeuTipo * ptr = NULL;
  ptr = criaTipo(ptr)
    …
}
e a função que recebe o endereço do ponteiro:
MeuTipo* criaTipo(MeuTipo * p){    …
  p = (MeuTipo*) malloc ….
    … Inicializa dados em p
  return p;
}
Para exemplificar, uma inserção ordenada em uma lista ligada poderia ser algo como
Lista* criaTipo(Lista * ptr, int valor){
  se (ptr == NULL){     //lista vazia
    ptr = (MeuTipo*) malloc ….
    … Inicializa valor em ptr
    return ptr;
  }
  senão{     //Lista não vazia
    Lista * lTmp = malloc …
    … Inicializa valor em lTmp
    se (lTmp->n < ptr->n){   //insere no começo da lista
lTmp->prox = ptr
return lTmp;
    }senão {
      …
      Trata outros casos de inserção em uma lista
    }
  }
  return ptr;
}
Veja que podem ser retornados: um novo valor caso a lista esteja vazia (ptr = (MeuTipo*) malloc), uma novo valor caso a lista não esteja vazia mas o valor deve ser inserido no começo da lista (return lTmp;), ou pode ser retornado o mesmo valor de ptr (return ptr;).
Se ficarem com dúvidas, deixe um comentário

Preâmbulo de uma linguagem de programação

Estava aqui conversando com o Julio Lopes sobre Rogue likes e linguagens de programação, quando ele me falou de sua vontade de criar um linguagem, então ele diz:

“Abertura da página da futura linguagem um texto assim…

três linguagens para programadores reais à frente de seus clusters,
sete para lordes programadores em suas salas históricas,
nove para programadores mortais fadados ao esquecimento,
Uma para o escuro processador
em seu cinzento trono,
nas trilhas da placa-mãe onde os circuitos se comunicam,
Uma para todas traduzir,
Uma para todas compilar,
Uma para todas processar e na escuridão dominá-las,
nas trilhas da placa-mãe onde os circuitos se comunicam.”

:D

P.S. Sim, estou de volta :)

Proposta do GSoC aceita! Valeu KDE

Dear Wagner,

Congratulations! Your proposal “Rocs support to others Data structure, scripts include and new file format support.” as submitted to “KDE” has been accepted for Google Summer of Code 2010….

Recebi esse e-mail da equipe do GSoC segunda e fiquei muito feliz com a aprovação. Mas antes de comemorar, tem algumas pessoas me perguntando o que é GSoC e como eu consegui isso. De lambuja vou falar do meu projeto :)

Primeiro o GSoC (Google Summer of Code) é um projeto onde estudantes trabalham no verão (do hemisfério norte) em projetos de software livre e são remunerados por isso.

Para participar, o estudante deve escrever um projeto no qual descreve o que ele desenvolverá (ou organizar também, um aplicativo não é só código :) ) para uma determinada entidade, que no meu caso foi o KDE. Esse projeto é enviado para o apreciação dos participantes da entidade onde eles votam nas proposta indicando se a mesma deve ser aceita ou não. Ao final um certo número de projetos são aceitos pela entidade e enviados para o Google. O mesmo efetua uma analise sobre esses projetos selecionados e comunica os indicados.

O GSoC é visto por muitos como uma forma de aumentar a rede de contatos e se preparar para o mercado de trabalho, uma vez que o projeto deve ser cumprido e existem prazos a cumprir. Alguns que participaram de edições anteriores passam a agir como mentores. Mentores são pessoas da entidade que auxiliam os alunos a cumprir a tarefa, mas não escrevem nada apenas tiram dúvidas.

Segundo, para mim conseguir a aprovação eu digo que foi em grande parte pelos prévio contato com o projeto, uma vez que eu pude conversar e propor melhorias que melhorariam o projeto e, com isso, consegui captar o que o projeto precisava antes mesmo de pensar em GSoC (que eu nem tinha idéia de participar a poucos meses), e assim escrever uma proposta que tivesse mais chace de ser aprovada

um pouco de história agora:

Nos idos do ano de 2009 do nosso senhor, vim a conhecer algo que veio a acelerar o meu labor como desenvolvedor. Eu acredito, hoje, que o que vim a encontrar naquele tempo seja o Graal dos frameworks para aplicações, poís minha capacidade de desevoldedor aumentou por demais no tempo transcorrido até hoje.

Após consultar o oráculo para mais saber sobre tal frameworke, vim a ser indicado a ler manuscritos, hoje destruidos pela ação do seu dono, onde era explicado sobre como operar tal ferramenta. Então, vejo algo totalmente inesperado e até aquele momento para mim impossível a não a Hercules e seu panteão, mas ví, uma aplicação onde era possível de se criar grafos e interagir com os mesmos usando de scripts, tudo isso em tempo de execução!

Busquei pelos reinos sobre a pessoa que criou aquilo tendo a encontrado reunindo um rebanho juntamente com outros pastores vivendo tranquilamente. Mas me mantive a distância, apenas ouvido seus sermões de conhecimento supreendentes e regozijei-me com suas colocações. Por volta do primeiro mês do inverno, decidi tentar um contato com ele, para saber se ele deseja ajuda com o seu filho, tendo como resposta uma afirmativa. Passei a assistir o crescimento de tal filho, mas mantendo uma certa distânia e apenas indicando ao pai os erros cometidos pelo seu filho. E foi assim até o inicio do verão, quando eu estava preparando algums scripts, ouvi uma resposta após indicar mais uma das peripécias do filho que me fez agir: “Pare de relatar bugs se pode corrigir”. Com isso passei a ajudar diretamente na criação do filho aplicando as devidas correções quando necessário.

Esse ano, como já estava contribuindo com o Rocs, começei a propor algumas possiveis melhorias e implementei algumas, como por exemplo o suporte a plugins de ferramentas, onde é possível rodar algoritmos em C++, por exemplo, sem conhcer quase nada sobre a API do Rocs ou do KDE e o suporte a formatos de arquivos.

Como eu já vinha contribuindo para o projeto, isso aumentou em muito as minhas chances de ser aceito.

Sobre o projeto, eu demorei demais escrevendo, assim fiquem com o resumo, depois explico melhor http://www.socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/kde/t127230762382

Pre-Akademy Warmup

Estou em Salvador (Uhu!)

Noticia Ruim, Desde ontem chove MUITO! Muito mesmo aqui, Teve um pessoal de Delo Horizonte que não pode pousar aqui e teve que ir até Recife.

Com isso, Encontrei o pessoal de KDE-MG no aeroporto: (desculpem a qualidade das fotos)

Daí tinha que sair de Salvador, que em algumas partes estava alagada, e ir para a Praia do Forte, cerca de 50 KM. Tivemos que apelar para o Tomaz neh, morador da Cidade :)

Lotamos uma Kombi, nós Cinco, mais o Pessoal do Piauí e os demais do KDE-MG. Aqui uma screenshot:

Depois de muitos clipes de Gagas e ‘criança-rappers-que-quer-pega-mulher-mais-velha’ (aff ) Chegamos no albergue onde acontecerá o Akademy-BR. Após os banhos tomados e removido os Windows de alguns computadores (mhua mhua mhua) saimos para a primeira atividade do Akademy-BR, que foi pelos participantes do evento considerada o Jantar de abertura. Nele foi definido que deve ser feito um jantar de encerramento :)

Mais uma fotitus.

Fiquem de olho que terá mais posts sobre o evento aqui e no kde-rs

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.