Profile

Cover photo
Yuri Albuquerque
Works at Fundação Paulo Feitoza
Attends Universidade Federal do Amazonas
Lives in Manaus
383 followers|116,014 views
AboutPostsPhotosYouTube

Stream

Yuri Albuquerque

Shared publicly  - 
 
Google Code Jam is back! For the 13th year, we're calling all programmers to put their skills to the test in multiple online rounds of intense, algorithmic puzzles. And for the second time, we're looking for those who want to code in a distributed environment, too.
1
Add a comment...

Yuri Albuquerque

commented on a video on YouTube.
Shared publicly  - 
 
I really liked your video and your arguments. But there's one thing that is not clear to me:

You claim that, since you can't represent the square root of 2 as a ratio between two other numbers, ergo the square root of 2 doesn't exist.

Where does this claim come from? Why should we assume that it is possible to represent every existing number as a ratio between two other numbers?

Yuri Albuquerque

commented on a video on YouTube.
Shared publicly  - 
 
How are people taking Berta seriously? It's obvious that it is a caricature character, designed to make people angry about feminists.

Yuri Albuquerque

Shared publicly  - 
 
Você vai votar na primeira opção?
 ·  Translate
1 vote  -  votes visible to Public
Não
100%
Sim
0%
1
Add a comment...

Yuri Albuquerque

commented on a video on YouTube.
Shared publicly  - 
 
Essa desgraçada NÃO ENTENDE que não existe merda nenhuma de união civil? Não existe significa não existe, sua anta. Para de insistir num direito inexistente.
 ·  Translate

Yuri Albuquerque

Shared publicly  - 
2
1
Júlia Farias's profile photo
 
Yuri postando nossas intimidades pra todo mundo ver.
 ·  Translate
Add a comment...
Have him in circles
383 people
Agnelo Prux Junior's profile photo
MAYKA CARVALHO's profile photo
松田浩和's profile photo
Erick de Araújo Mattos's profile photo
Andreia Almeida's profile photo
Deejay Gu Timbó's profile photo
Camila Sales's profile photo
geraldobarbalhogospel geraldobarbalhogospel's profile photo
Daisy Bentes's profile photo

Yuri Albuquerque

Shared publicly  - 
 
Esse jogo até que é bacana. 
 ·  Translate
1
Add a comment...

Yuri Albuquerque

commented on a video on YouTube.
Shared publicly  - 
 
Nossa, que nojo desses jurados.
 ·  Translate

Yuri Albuquerque

commented on a video on YouTube.
Shared publicly  - 
 
HAHAHAHAHAHAHAHAHAHAHAHA

O governo tá DE NOVO tentando fazer uma lei da regularização da imprensa, e como isso prejudicaria o monopólio da Globo ela tá assustadinha e inventando história.

E o pior? O povo acredita!

Todo país civilizado tem lei de regularização da imprensa. Menos o Brasil por causa do monopólio da Globo, que sempre dá um jeito de escrotizar qualquer proposta do tipo alegando ser censura.

E a culpa ainda é do Estado malvadão, né?
 ·  Translate

Yuri Albuquerque

Shared publicly  - 
 
Falando um pouco mais sobre Rust, agora vou explicar como Rust consegue implementar segurança de memória sem precisar de mecanismos de runtime como um garbage collector (dessa forma sendo potencialmente tão rápido quanto C ou C++).

Rust tem três tipos de ponteiros: owned pointers (também chamados "boxes"), borrowed pointers ("references") e raw pointers (iguais aos ponteiros do C. Só podem ser usados dentro de blocos unsafe).

A linguagem em si formaliza o conceito de "ownership", então um objeto é propriedade da variável que o contém. Quando ocorre passagem de parâmetro, atribuição ou retorno de função, o objeto é copiado (com shallow copy) para a outra variável.

O ponto de diferença é que para objetos com algum conceito de ownership (como owned pointers, ou structs e enums que contenham owned pointers) a propriedade do objeto vai ser movida para a próxima variável após uma shallow copy.

Por exemplo:
    let x = ~1; //(~ é o símbolo que marca que aquela variável é um owned pointer, mais ou menos como o * em C)
    let y = x; /* o objeto de x foi movido para y */
    println!(x) /* erro de compilação. O objeto que "x" estava apontando foi movido para "y" */

Como você tem certeza absoluta de qual é a variável dona daquele objeto, assim que a variável sair de escopo, o destrutor do objeto será chamado!

Obviamente, nem sempre você vai querer mover o objeto. Você pode apenas querer tomá-lo emprestado numa função. E aí entram as references, ou borrowed pointers (indicados por &).

Uma reference tem a garantia em tempo de compilação de que a variável do tipo reference vai ter um lifetime menor do que a variável que está sendo apontada. Como assim?

    let y: ∫
    
    {
        let x = ~1;
        y = &(*x); // erro de compilação. O lifetime de "y" segue depois do de x
    }

Dessa forma, você pode emprestar variáveis sem medo de apontar para um null pointer ou um dangling pointer! De fato, null pointers só existem para raw pointers. Para ter um valor "opcional" (que pode ter algum valor ou valor nenhum), você usa o enum Option<T>.

Falando nisso, enums em Rust na verdade são algebraic data types, similares aos union types do Ceylon e do Kotlin.
 ·  Translate
2
Add a comment...

Yuri Albuquerque

Shared publicly  - 
 
O +Diego Coronel falou em promises com tipagem segura em Ceylon, o que me inspirou a falar um pouco sobre tasks em Rust.

Rust implementa concorrência com tasks, que são threads de usuário (em contrapartida com threads de kernel). O runtime da linguagem cria um pequeno conjunto de threads de kernel onde essas tasks vão rodar. Isso permite que várias tasks sejam disparadas com pouco overhead.

Apenas tendo tasks, contudo, não é o bastante para ter concorrência segura. Cada task de Rust é totalmente isolada, e só podem se comunicar entre si usando mensagens.

A maneira como Rust lida com mensagens é única devido ao seu sistema de tipos: como há um conceito de "owned pointers", além de ser possível passar uma variável numa mensagem por cópia, também é possível mover a variável de uma task para a outra. Como a variável é movida, a task que a continha originalmente não tem mais acesso a ela.

Dessa forma, é muito mais fácil lidar com concorrência sem se preocupar com os problemas comuns, já que acesso simultâneo a recursos se torna impossível, devido ao isolamento.

Criar uma biblioteca de actor model, similar ao que Erlang ou Scala fazem, também se torna mais fácil.

Caso seja necessário compartilhar dados imutáveis, contudo, existe a struct Arc (atomically reference counted) que permite isso com um nível de abstração simples.

Case realmente seja necessário compartilhar dados mutáveis, existe a RWArc, que é protegida por locks seguros (evitando problemas de nested mutexes).

Acho que seria interessante numa próxima vez falar um pouco sobre o sistema de ponteiros de Rust, que permite programas com segurança de memória sem precisar recorrer a um garbage collector.
 ·  Translate
The Rust Tasks and Communication Guide. 1 Introduction. 1.1 A note about the libraries. 2 Basics. 2.1 Communication; 2.2 Backgrounding computations: Futures; 2.3 Sharing immutable data without copy: Arc. 3 Handling task failure. 3.1 Creating a task with a bi-directional communication path ...
3
Júlia Farias's profile photo
 
sou analfabeta nisso...
 ·  Translate
Add a comment...
People
Have him in circles
383 people
Agnelo Prux Junior's profile photo
MAYKA CARVALHO's profile photo
松田浩和's profile photo
Erick de Araújo Mattos's profile photo
Andreia Almeida's profile photo
Deejay Gu Timbó's profile photo
Camila Sales's profile photo
geraldobarbalhogospel geraldobarbalhogospel's profile photo
Daisy Bentes's profile photo
Work
Occupation
Desenvolvedor
Employment
  • Fundação Paulo Feitoza
    Desenvolvedor Pleno, 2013 - present
    Desenvolvimento de apps Android.
  • Tap4 Mobile
    Analista Jr, 2012 - 2013
  • IATECAM
    Desenvolvedor, 2011 - 2012
  • Start
    Programador Web, 2009 - 2011
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Manaus
Story
Tagline
Todas as coisas criadas estão sujeitas à decadência. Atinja a liberação se esforçando com diligência.
Introduction
Nasci em 9 de novembro de 1989, dia da queda do Muro de Berlim. Talvez isso tenha influenciado minhas tendências libertárias.
Isso ou o fato de eu ter estudado em uma escola batista e em uma escola de ensino tradicional.
Da 3ª a 8ª série minhas lembranças são como brumas distantes, eu não gostava dessa época e por isso lembro pouco.
Do 1º ao 3º ano do Ensino Médio foi uma das melhores épocas da minha vida. Fui para uma escola de período integral, conheci meus melhores amigos, aprendi a programar...
Depois, fui para a faculdade de jornalismo. Não gostei. Fui para engenharia da computação e cá estou.
Bragging rights
Sobrevivi à Fundação Nokia
Education
  • Universidade Federal do Amazonas
    Sistemas de Informação, 2012 - present
  • IBA - Instituto Batista do Amazonas
  • Pequeno Príncipe
  • Lato Sensu
  • Fundação Nokia de Ensino
Basic Information
Gender
Agênero
Looking for
Friends, Networking
Relationship
Married
Apps with Google+ Sign-in
  • ∞ Loop
  • Horizon Chase - World Tour
  • Lara Croft GO