As desvantages de não ser invisível

Um problema de se cercar de pessoas maravilhosas e ter os comportamentos delas como um “meta” de como eu quero ser (ou que eu gostaria de ter sido)  é que isso nos coloca numa situação onde ficamos apenas olhando pra cima, tentando, algumas vezes, ser como outra pessoa.

Essa posição de ficar olhando pra cima faz com que pareça que estamos abaixo de tudo que estamos vendo.

Uma coisa que eu admiro, são pessoas que tem um gosto musical próprio. Uma mixagem de músicas que amigos, rádios, filmes selecionadas com muito rigor para entrar dentro de suas vidas. Admiro como essas pessoas tratam a relação de escutar uma música, como conseguem notar uma música de uma trilha sonora de um filme e tempo depois associar aquela música ao filme. “Ah, essa música tem nesse filme, na cena tal quando acontece isso e aqui”

Por vezes me pego desejando que tivesse havido mais dor na minha vida, para que eu tivesse saído do estágio “ir com a maré” mas cedo. Mas, acho que isso é só resquício do romantismo que pregava que amor tem que ser sofrido. Não acho isso válido. Não mais.

“We could be heroes, just for one day”

Medo

Ontem eu tive medo. Medo do futuro, medo por o que pode acontecer a pessoas que tem pensamentos diferentes, medo do mundo não mudar.

Ontem houveram prisões de pessoas que poderiam (talvez, quem sabe) cometer crimes. Não existiam crimes passíveis de prisões, apenas suposições de que ativistas poderiam promover algum tipo de crime, se não hoje, amanhã, nas palavras de um delegado.

A ação dessas prisões foi condenada por diversos órgãos nacionais e internacionais e não entrarei nos detalhes dele.

Ontem eu perdi um pouco da fé de que os seres humanos poderiam viver sob menos opressão, que poderiam aprender a viver como um grupo que sabe respeitar as diferenças de pesamento e de agir. Foi momentâneo essa perda de fé, mas isso me incomodou. Senti falta de um calor humano ao meu lado onde eu pudesse expressar minha fraqueza. Queria chorar, queria colo, queria um abraço aconchegante.

Sinto falta de ser conseguir ser fraco.

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 :)

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.