Skip to content

Commit

Permalink
feat: migrate articles to hugo posts
Browse files Browse the repository at this point in the history
  • Loading branch information
kauefraga committed May 8, 2024
1 parent bb08bf4 commit a6c1601
Show file tree
Hide file tree
Showing 28 changed files with 193 additions and 355 deletions.
5 changes: 5 additions & 0 deletions archetypes/default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = {{ .Date }}
draft = true
+++
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
+++
title = 'Colocando coelhinhos no computaria e enlouquecendo'
summary = ' '
date = 2024-04-06
author = ['Kauê Fraga Rodrigues']
+++

Publicado originalmente no [Computaria](https://computaria.gitlab.io/blog/2024/04/06/colocando-coelhinhos-no-computaria)

Olá! Me chamo Kauê, tenho 16 anos e é um prazer estar redigindo este texto como o primeiro convidado do Computaria 😊
Expand Down
9 changes: 9 additions & 0 deletions content/posts/desbravando-o-poder-do-markdown.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
+++
title = 'Desbravando o poder do markdown'
summary = ' '
date = 2024
author = ['Kauê Fraga Rodrigues']
draft = true
+++

Abordar diagramas, fluxogramas, tabelas, footnotes e a marcação especial do GitHub e Obsidian.
99 changes: 99 additions & 0 deletions content/posts/eco.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
+++
title = 'Eco: minha implementação em Rust do programa echo'
summary = ' '
date = 2024-02-24
author = ['Kauê Fraga Rodrigues']
+++

Links: [TabNews](https://www.tabnews.com.br/kauefraga/eco-minha-implementacao-em-rust-do-programa-echo), [DevTo](https://dev.to/kauefraga/eco-minha-implementacao-em-rust-do-programa-echo-34jh) e [Twitter/X](https://twitter.com/rkauefraga/status/1761391229986599342).

*Hey, folks!* Hoje quero falar sobre o meu mini-projeto, chamado "eco".

O programa `echo` basicamente pega argumentos (entrada) e imprime eles na tela do seu console (*stdout*). O eco, atualmente, faz isso também. Escolhi esse nome porque eu sempre li o programa `echo` como /ɛko/. Como eu disse, o `echo` pega a entrada e devolve a mesma coisa, similar a uma reverberação, um **eco**.

A iniciativa do projeto surgiu quando pesquisei por projetos para fazer em Rust, quero praticar!

A implementação inicial (v0.1.0) foi bem simples, como esperado. Veja o código do commit [516992e](https://github.com/kauefraga/eco/commit/516992e1dd25c1206feed3d10ccd597acc4fc7a8):

```rust
use std::env;

fn main() {
let mut args: Vec<String> = env::args().collect();

/*
* Read the `remove` docstring.
* This `remove(0)` is the worst case,
* all the arguments are going to be
* shifted to the left, everytime.
*/
args.remove(0);

let mut output = String::new();

for arg in args {
output.push_str(&format!("{arg} "));
}

println!("{}", output.trim());
}
```

1. Pega os argumentos passados;
2. Remove o primeiro argumento, pois ele é o caminho do executável;
3. Inicializa uma string dinâmica, chamada *output*;
4. Itera sobre os argumentos adicionando cada argumento com o formato "argumento-tal " (argumento + espaço) ao final da string *output*;
5. Imprime a string *output*.

Agora na versão 0.1.2, o código está assim:

```rust
use std::collections::VecDeque;
use std::env;
use std::process::exit;

fn main() {
let mut args: VecDeque<String> = env::args().collect();

args.pop_front();

let is_help_needed = (args.len() == 1 && args[0] == "-h")
|| (args.len() == 1 && args[0] == "--help");
if is_help_needed {
println!("Example: eco-rs Bom dia!");
exit(0);
}

let mut output = String::new();

for arg in args {
output.push_str(&format!("{arg} "));
}

println!("{}", output.trim());
}
```

Alterações:

1. Na linha `args.remove(0)` havia possibilidade de otimização e mesmo sem conhecer VecDeque, que deve ser um vetor bidirecional (entrada e saída por ambos os lados), a fiz. Essa estrutura de dados possibilita a saída de um elemento do início sem precisar mover os elementos posteriores para trás, o que é vantajoso aqui.
2. Adicionei um menu de ajuda, que tá bem vazio por sinal.

A distribuição está sendo feito pelo crates.io em [eco-rs](https://crates.io/crates/eco-rs). Infelizmente a crate "eco" já existia. O legal é que ao executar o comando `cargo install eco-rs` o Cargo pega a crate e compila na arquitetura do seu computador. Com isso, eu não preciso compilar para todas as arquiteturas disponíveis e manter as releases no GitHub também (deveria, quem não gosta de só baixar o executável e pronto?).

### Conclusão

tl;dr: o projeto eco é, atualmente, apenas uma implementação em Rust do programa `echo` que pega os argumentos de entrada, junta eles em uma string e imprime a string final na saída do terminal.

Pretendo fazer mais umas funcionalidades como colorir palavras específicas e criar uma sintaxe de marcação para estilizar também.

Se quiser acompanhar o projeto, veja [o repositório eco](https://github.com/kauefraga/eco).

Você pode me achar no:

- GitHub: [kauefraga](https://github.com/kauefraga)
- TabNews: [kauefraga](https://www.tabnews.com.br/kauefraga)
- DevTo: [kauefraga](https://dev.to/kauefraga)
- Twitter/X: [rkauefraga](https://twitter.com/rkauefraga)

Obrigado por ler! ❤
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
Título: Funcionalidades do Rust
+++
title = 'Funcionalidades do Rust'
summary = ' '
date = 2024-02-19
author = ['Kauê Fraga Rodrigues']
+++

Olá! Se você quer saber um pouco mais sobre as **principais** funcionalidades do Rust, então acho que posso ajudar. Bora 👊

Expand Down Expand Up @@ -89,12 +94,11 @@ Inspirado no NPM (node package manager) do NodeJS, o Cargo é a ferramenta ofici
Obrigado por ler! ❤

**Fontes**:

- [Rust is not a faster horse](https://youtu.be/4YU_r70yGjQ)
- [All Rust features explained](https://youtu.be/784JWR4oxOI)

---

- [TabNews](https://www.tabnews.com.br/kauefraga/funcionalidades-do-rust)
- [DevTo](https://dev.to/kauefraga/funcionalidades-do-rust-2bem)

[[Interagindo com devs]]
[[Rust]]
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
# Introdução ao markdown e aos READMEs
+++
title = 'Introdução ao markdown e aos READMEs'
summary = ' '
date = 2024-03-18
author = ['Kauê Fraga Rodrigues']
+++

Olá, tudo certo?

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
Título: Introdução ao Rust
+++
title = 'Introdução ao Rust'
summary = ' '
date = 2024-02-18
author = ['Kauê Fraga Rodrigues']
+++

Olá! Se você quer aprender ou está estudando a linguagem de programação Rust assim como eu, acho que aqui consegui sintetizar bem a linguagem nesse texto introdutório. Bora lá!!

Expand Down Expand Up @@ -32,8 +37,6 @@ De acordo com [esse vídeo](https://youtu.be/4YU_r70yGjQ) (Rust is not a faster
Obrigado por ler! ❤

---

- [TabNews](https://www.tabnews.com.br/kauefraga/introducao-ao-rust)
- [DevTo](https://dev.to/kauefraga/introducao-ao-rust-463o)

[[Interagindo com devs]]
[[Rust]]
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
+++
title = 'Meu primeiro post no dev.to'
summary = ' '
date = 2024-02-18
author = ['Kauê Fraga Rodrigues']
+++

A verdade é que escrevi para o TabNews, copiei e colei no DevTo, mas ninguém precisa saber... 😂

- [Post no TabNews](https://www.tabnews.com.br/kauefraga/aprendendo-rust)
Expand All @@ -20,5 +27,3 @@ Partindo disso, gostaria de saber quais tópicos vocês recomendam para entender
Brincadeiras à parte, pretendo me aprofundar no Ownership/Borrowing e seguir meus estudos pela [documentação principal](https://doc.rust-lang.org/book) e pelo [Rust by examples](https://doc.rust-lang.org/rust-by-example).

Quais funcionalidades, projetos, conceitos da linguagem Rust vocês recomendam para entender a linguagem Rust e se tornar minimamente proficiente?

[[Interagindo com devs]]
Loading

0 comments on commit a6c1601

Please sign in to comment.