Mudanças entre as edições de "Garoa Gophers"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
 
(28 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
 
[[Arquivo:Garoa-gopher.png|160px|right]]
 
[[Arquivo:Garoa-gopher.png|160px|right]]
   
'''Garoa Gophers''' é o [[grupo de estudos]] da linguagem de programção '''Go''' no Garoa Hacker Clube.
+
'''Garoa Gophers''' é o [[grupo de estudos]] da linguagem de programação '''Go''' no Garoa Hacker Clube.
   
 
== Formato ==
 
== Formato ==
   
Encontros periódicos às 3as-feiras, 19:30, na [[sede]] do Garoa Hacker Clube, a partir de 4/ago/2015. No primeiro encontro o grupo escolherá a frequência dos encontros: semanal ou quinzenal.
+
Encontros semanais às 3as-feiras, 19:30, na [[sede]] do Garoa Hacker Clube, a partir de 4/ago/2015.
   
 
== Temas ==
 
== Temas ==
Linha 14: Linha 14:
   
 
* Experimentar as diferentes formas de rodar um programa, gerando um binário da forma convencional ou usando <code>gorun</code> como se fosse uma linguagem de scripting. Vamos experimentar também outras ferramentas de linha de comando, tipo <code>gofmt</code> etc.
 
* Experimentar as diferentes formas de rodar um programa, gerando um binário da forma convencional ou usando <code>gorun</code> como se fosse uma linguagem de scripting. Vamos experimentar também outras ferramentas de linha de comando, tipo <code>gofmt</code> etc.
  +
** Fizemos experimentos e melhorias nos exemplos de download de imagens: https://github.com/garoago/flags
  +
** Aprendemos que é necessário setar <code>$GOBIN</code> para compilar individualmente cada programa quando existem vários programas com <code>package main</code> no mesmo diretório (isso não é recomendado em código "profissional", mas para experimentos rápidos é útil poder ter vários programas no mesmo package)
   
 
* Discutir as referências existentes para estudar, e definir um plano para os próximos encontros.
 
* Discutir as referências existentes para estudar, e definir um plano para os próximos encontros.
  +
** Resolvemos fazer encontros semanais enquanto estamos começando, e depois rediscutir a periodicidade se for o caso.
   
 
=== 2º encontro: A Tour of Go ===
 
=== 2º encontro: A Tour of Go ===
   
* Assistir e discutir o vídeo de Russ Cox, [https://www.youtube.com/watch?v=ytEkHepK08c A Tour of Go] (34 min.)
+
* <strike>Assistir e discutir o vídeo de Russ Cox, [https://www.youtube.com/watch?v=ytEkHepK08c A Tour of Go] (34 min.)</strike>
  +
* <strike>Estudar os tipos básicos da linguagem, com foco em como cada tipo é alocado em memória e associado a variáveis: como valores, ou como referências. Ver [https://groups.google.com/d/msg/golang-nuts/xQUsmdo6oSs/RJ8SF4NsbowJ essa discussão]. Qual a melhor explicação correta e clara para essas questões?</strike>
  +
* <strike>Implementar checagem de erro robusta em uma nova versão do programa de download de imagens.</strike>
  +
  +
Não fizemos nada do que planejamos, mas fizemos algo mais legal: começamos a desenvolver o [https://github.com/garoago/runefinder runefinder] na base do rodízio (cada um 10 minutos no teclado, como se fosse um coding dojo).
  +
  +
=== 3º encontro: Continuação do runefinder ===
  +
  +
Repositório de código: [https://github.com/garoago/runefinder2 runefinder2]
  +
  +
* [https://github.com/andrewsmedina Andrews Medina] mostrou como usar o <code>[https://labix.org/gocheck gocheck]</code>
  +
* criamos alguns tipos próprios, com métodos: <code>RuneSlice</code> e <code>RuneSet</code>
  +
* implementamos a busca com várias palavras
  +
  +
=== 4º encontro: Estudo de caso - Tsuru ===
  +
  +
[https://github.com/andrewsmedina Andrews Medina] vai falar sobre o projeto [https://tsuru.io/ Tsuru], um PaaS Open Source, extensível, escrito em Go, criado pelo time do Andrews na Globo.com e usado em grandes operações além da própria Globo.com.
  +
  +
=== 5º encontro: Como aprender Go ou qualquer outra linguagem ===
  +
  +
Vamos experimentar a [https://speakerdeck.com/ramalho/como-aprender-qualquer-linguagem-de-programacao-em-4-slides metodologia do prof. Gerald Sussman] do MIT, junto com [https://blog.golang.org/examples Testable Examples] para estudar Go, fazendo a ponte entre o [https://tour.golang.org/welcome/1 Tutorial] de alto nível, as idéias de [https://golang.org/doc/effective_go.html Effective Go] e as minúcias da [https://golang.org/ref/spec Language Specification].
  +
  +
;Repositório
  +
: https://github.com/garoago/nanolab
  +
;Quando
  +
: Terça-feira, 29/set/2015, 19:30
  +
  +
=== 6º encontro: Runefinder na rede ===
  +
  +
* salvar índice invertido como uma slice de mapas (nosso tipo <code>RuneSet</code>), para simplificar o código da função <code>findRunes</code> que é usada mais vezes que a <code>buildIndex</code> (feito por LR, em casa)
  +
* salvar índice invertido e mapa de nomes em um arquivo gob para evitar ler o UnicodeData.txt toda vez -- se bem que está bem rapidinho da forma atual (feito por LR, em casa)
  +
* refatorar para uma biblioteca e então...
  +
* implementar interface telnet
  +
* implementar interface Web
  +
  +
;Repositório
  +
: https://github.com/garoago/runefinder2
  +
;Quando
  +
: Terça-feira, 6 de outubro, 19:30
   
 
== Pré-requisitos ==
 
== Pré-requisitos ==
   
Saber programar em alguma linguagem e ter vontade de aprender Go com autonomia e o apoio de um grupo.
+
* Saber programar em alguma linguagem.
  +
  +
* Ter vontade de aprender Go com autonomia e o apoio de um grupo.
  +
  +
* Se quiser colocar a mão na massa, trazer notebook com o compilador Go instalado e seu editor favorito configurado. Veja [[Golang/Ambiente de trabalho]].
  +
   
 
== Como participar ==
 
== Como participar ==
   
Basta aparecer. Não precisa se inscrever. Mas venha com o compilador Go instalado e seu editor favorito configurado! Veja [[Golang/Ambiente de trabalho]].
+
Basta aparecer na [[sede]] do Garoa. Não precisa se inscrever.
  +
   
 
== Referências ==
 
== Referências ==

Edição atual tal como às 13h28min de 4 de outubro de 2015

Garoa-gopher.png

Garoa Gophers é o grupo de estudos da linguagem de programação Go no Garoa Hacker Clube.

Formato

Encontros semanais às 3as-feiras, 19:30, na sede do Garoa Hacker Clube, a partir de 4/ago/2015.

Temas

A serem decididos pelos participantes...

1º encontro: Hello World

  • Experimentar as diferentes formas de rodar um programa, gerando um binário da forma convencional ou usando gorun como se fosse uma linguagem de scripting. Vamos experimentar também outras ferramentas de linha de comando, tipo gofmt etc.
    • Fizemos experimentos e melhorias nos exemplos de download de imagens: https://github.com/garoago/flags
    • Aprendemos que é necessário setar $GOBIN para compilar individualmente cada programa quando existem vários programas com package main no mesmo diretório (isso não é recomendado em código "profissional", mas para experimentos rápidos é útil poder ter vários programas no mesmo package)
  • Discutir as referências existentes para estudar, e definir um plano para os próximos encontros.
    • Resolvemos fazer encontros semanais enquanto estamos começando, e depois rediscutir a periodicidade se for o caso.

2º encontro: A Tour of Go

  • Assistir e discutir o vídeo de Russ Cox, A Tour of Go (34 min.)
  • Estudar os tipos básicos da linguagem, com foco em como cada tipo é alocado em memória e associado a variáveis: como valores, ou como referências. Ver essa discussão. Qual a melhor explicação correta e clara para essas questões?
  • Implementar checagem de erro robusta em uma nova versão do programa de download de imagens.

Não fizemos nada do que planejamos, mas fizemos algo mais legal: começamos a desenvolver o runefinder na base do rodízio (cada um 10 minutos no teclado, como se fosse um coding dojo).

3º encontro: Continuação do runefinder

Repositório de código: runefinder2

  • Andrews Medina mostrou como usar o gocheck
  • criamos alguns tipos próprios, com métodos: RuneSlice e RuneSet
  • implementamos a busca com várias palavras

4º encontro: Estudo de caso - Tsuru

Andrews Medina vai falar sobre o projeto Tsuru, um PaaS Open Source, extensível, escrito em Go, criado pelo time do Andrews na Globo.com e usado em grandes operações além da própria Globo.com.

5º encontro: Como aprender Go ou qualquer outra linguagem

Vamos experimentar a metodologia do prof. Gerald Sussman do MIT, junto com Testable Examples para estudar Go, fazendo a ponte entre o Tutorial de alto nível, as idéias de Effective Go e as minúcias da Language Specification.

Repositório
https://github.com/garoago/nanolab
Quando
Terça-feira, 29/set/2015, 19:30

6º encontro: Runefinder na rede

  • salvar índice invertido como uma slice de mapas (nosso tipo RuneSet), para simplificar o código da função findRunes que é usada mais vezes que a buildIndex (feito por LR, em casa)
  • salvar índice invertido e mapa de nomes em um arquivo gob para evitar ler o UnicodeData.txt toda vez -- se bem que está bem rapidinho da forma atual (feito por LR, em casa)
  • refatorar para uma biblioteca e então...
  • implementar interface telnet
  • implementar interface Web
Repositório
https://github.com/garoago/runefinder2
Quando
Terça-feira, 6 de outubro, 19:30

Pré-requisitos

  • Saber programar em alguma linguagem.
  • Ter vontade de aprender Go com autonomia e o apoio de um grupo.
  • Se quiser colocar a mão na massa, trazer notebook com o compilador Go instalado e seu editor favorito configurado. Veja Golang/Ambiente de trabalho.


Como participar

Basta aparecer na sede do Garoa. Não precisa se inscrever.


Referências