Archive

Archive for the ‘Programação’ Category

Scrum, NoSQL e um pouco de TDD…

Um pequeno update sobre o que andei lendo ultimamente…

Essential Scrum: A Practical Guide to the Most Popular Agile Process

Nesse final de semana (finalmente?) terminei de ler o Essential Scrum: A Practical Guide to the Most Popular Agile Process. Comecei a ler esse livro (bem aos poucos), logo depois de começarmos a – tentar – implantar o scrum como metodologia ágil na Estante Virtual. Como ninguém da equipe de T.I. tinha profundos conhecimentos sobre scrum/agile, resolvi que “estudar” um pouco por conta própria seria bem útil… e até agora tenho curtido bastante trabalhar dessa forma. Apesar de já termos “errado” bastante, é bem legal ver como estamos aparando as aresta e a cada sprint vamos acertando o processo pra nossa equipe. Voltando sobre o livro: foi o primeiro livro (e/ou material razoavelmente longo) que li sobre o assunto então acho que não posso fazer uma análise comparativa com outros, mas posso dizer que gostei bastante do conteúdo.

O livro é razoavelmente grande, com ~500 páginas contém muito mais do que é necessário para uma tentativa inicial de implantação do Scrum, por isso acho que alguns dos tópicos abordados não serão tão relevantes para quem está começando, mas com certeza deve ser útil para quem já está usando o processo a mais tempo e está em um nível de refinamento/adoção maior que a gente. O material é muito bem escrito e o conteúdo bem claro, as ilustrações também ajudam bastante e são muito boas. Acredito que devo voltar para ele em alguns meses, após nosso processo interno ter amadurecido mais um pouco e reler algumas partes. No mais, só posso fazer recomendações positivas a esse livro, seja para alguém que queira um bom/sólido material inicial para aprender sobre o Scrum ou para quem já tem alguma experiência e talvez encontre algumas dicas/sugestões de como abordar problemas que sua equipe está tendo no processo.

Test Driven Development: By Example

No meio do Essential Scrum, comecei a ler também o Test Driven Development: By Example, principalmente por entender/acreditar que: (a) testes são bons, (b) preciso melhorar *minha* cultura de testes. Sobre o livro, estou agora no capítulo 26, mas não se engane em achar que isso significa que já me tornei o mestre jedi dos testes. Até o capítulo 24, o livro é basicamente 2 exemplos grandes de como realizar TDD e apesar desses exemplos serem interessantes, acho que acaba ficando meio chato/repetitivo/entediante algumas horas e devo confessar que algumas horas rolou uma leitura diagonal (apenas dando uma maior atenção no final dos capítulo onde rola um “key points” e verificando se eu entendo ou acho que entendo o que está sendo resumido ali). A partir do cap. 25 começa o que eu acho que deve ser a parte mais interessante do livro Patterns for Test-Driven Development, pois acho que é justamento o que sinto mais falta que é ter uma ideia melhor de como proceder em alguns casos.

NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence

Por fim, comecei hoje a ler o NoSQL Distilled, que parece ser de fato um “brief guide” e uma boa introdução/visão geral do assunto. Estou ainda no capítulo 6, mas estou gostando do conteúdo abordado e  da forma que a bordagem é feita, principalmente por não querer sair chutando tudo que existe de bancos relacionais hoje e substituir tudo por “NoSQL’s”, mas sim apresentar como um é uma alternativa pro outro e em quais casos você pode extrair maior vantagem deles. Para ser sincero, é por enquanto um livro que me chama a atenção em todos os capítulos que ainda não li, o que me leva a crer que ele será terminado antes do TDD: By Example ;)

PS: Para quem não sabe, eu utilizo o serviço do Safari Books Online (link não patrocinado, pode clicar sem medo ;) para minhas “leituras técnicas” e é um serviço que eu não tenho como não recomendar. O acervo é uber-gigante, tanto que minhas “listas de leitura” dentro dele são gigantes, mesmo separadas por assuntos. Tem app pra iOS e pra Android também, eu uso o do iOS e gosto bastante. Para quem não quiser pegar de cara o plano ilimitado, sugiro experimentar com o 5-slot bookshelf… apesar de achar difícil conseguir se manter em só 5 livros depois de um tempinho usando =P

Codeforces Round #121 (Div. 2)

Segundo da sala, 35o da Div2 no Codeforces de hoje… não fui mal, mas poderia ter ido melhor (tipo top20) se não tivesse tomado um challenge idiota na minha solução do A, por ter interpretado “inteiros positivos” como “não negativos” (vivendo e aprendendo a não cometer essas bobeiras…)

E por causa desse challenge eu acabei me desconcentrando e não passe o E também, que não parece ser muito difícil… apesar de não ter fechado a solução ainda.

Ou seja, dava para fechar a prova se eu não tivesse dado mole…

80 problemas no UVA Online Judge :)

Quarta (21/03) eu voltei a fazer alguns problemas no UVA OJ (depois de quase 2 anos sem fazer nada lá! =P) e hoje, após passar meu 29o problema em 5 dias, cheguei aos 80 problemas resolvidos :D Além disso, segundo o site estou rankeado em 5932… não lembro muito bem onde eu estava na 4a antes de começar a submeter mas acho que era papo de 9k+ ou 8k+.

Ok, que foram problemas mais “simples”… mas é que resolvi seguir o livro Competitive Programming 2 como “roteiro” para treino.

Cada capítulo do livro tem uma lista com uma cacetada de problemas do UVA OJ – que são relacionados ao conteúdo do capítulo – e alguns desses estão marcados com uma estrela (ou um asterisco =P), que são os problemas que os autores do livro acham mais interessante e/ou que utilizam o conteúdo dado no capítulo de forma mais interessante. Pois bem, hoje eu terminei de passar os últimos dois problemas (556 – Amazing978 – Lemmings Battle!) que faltavam para fechar o set de exercícios do primeiro capítulo que é sobre problemas ad-hoc. Achei que foi uma boa maneira de “esquentar” pra começar…

A partir de amanhã começo com os exercícios do capítulo 2, que é sobre a utilização de estruturas de dados “básicas” e suas implementações padrões nas linguagens utilizadas (eg. STL). E a ideia é essa… ir lendo o livro e fazendo os exercícios selecionados e quando quiser variar um pouco, pego a lista completa de algum capítulo que já passei para treinar de novo alguma coisa já vista.

BTW… eu tenho utilizado o uHunt para me ajudar a manter o registro do que eu já fiz e do que falta pra fazer, site muito bom mesmo ;)

Curso de Programação em Linguagem C para a OBI 2012 na UFRJ

Nessa semana que passou (27 de fev. a 02 de março de 2012), tivemos o curso “Programação em Linguagem C para a OBI” na UFRJ.

O objetivo do curso foi principalmente dar uma base mínima de conhecimentos de programação em C para que os calouros, interessados, pudessem participar da 1a fase da OBI que será no final de Março. Além dos calouros tivemos outros alunos, já veteranos da UFRJ, com objetivos variados, como algumas que queriam apenas aprender C e outras que queriam descobrir o que afinal era esse negócio de OBI/Maratona de Programação.

Como não tínhamos muita noção do tipo de procura por esse tipo de curso atualmente (visto que ele já não era dado a alguns anos na UFRJ) acabamos por não limitar o número de vagas… e fico muito feliz em dizer que foi um grande sucesso, 40+ alunos inscritos! Na verdade… talvez um sucesso maior do que as condições que tínhamos para atender e então precisamos trocar para um laboratório maior e utilizamos o LEP2 do CCMN (aqui um obrigado a secretaria do curso e aos alunos do LCI por disponibilizarem os laboratórios para a gente :). No último dia de aula, que foi uma revisão do teste aplicado na quinta e a prova do curso propriamente, a folha de presença mostrava 33 presentes… ou seja, além de muitos inscritos conseguimos manter na maioria a vontade de continuar indo as aulas! :D

Alguns já tinham alguma base, outros ainda não. Destes, alguns conseguiram pegar bastante coisa, outro estão no caminho… cada um no seu ritmo. Importante dizer também que esse curso nunca teve como objetivo substituir – por exemplo – uma matéria como Comp.1 que utiliza um semestre inteiro para ensinar – de fato – C para os calouros da Ciência da Computação. Esperamos que mesmo quem não tenha conseguido pegar muita coisa, tenha gostado da ideia de “resolver problemas” com o computador e após (ou durante) as aulas de Comp 1 continue estudando/treinando para competições tipo OBI/Maratona.

Algo que preciso dizer é que essa vida de professor/instrutor não é mole não =P

Éramos três instrutores oficialmente (Lucas, Igor e eu) e mais alguns eventuais colaboradores para tirar dúvidas e ajudar na organização das coisas: Bola (presente em todos os dias!), Cabessa, Roberto e Taísa. Mesmo assim, na 2a e na 3a eu cheguei em casa morto de cansaço. Na 4a e na 5a ja estávamos entrando no ritmo… mas na 6a foi super puxado novamente, ficamos até as 22:15 na UFRJ fazendo a correção das questões das provas! Definitivamente, devo dizer que entendo um pouco mais o lado dos professores depois dessa.

OT

Agora a parte um pouco off-topic desse post…

Ir para o Fundão, apesar do trânsito bem mais pesado após o carnaval, não tinha sido nenhuma dor de cabeça maior… até na sexta-feira. Na bendita 6a, me lembrei de uma das coisas que mais odeio no Rio de Janeiro de modo geral: a total falta de capacidade de transporte no Rio. E não digo apenas no péssimo serviço como metrôs, ônibus, barcas (que ainda ganham aumento)… mas em como falta qualquer tipo de redundância e capacidade de escoamento do trânsito por outras vias em casos de acidente. Basicamente o que aconteceu foi um acidente na Av. Francisco Bicalho que causou reflexos na Linha Amarela a ponto de engarrafar *toda* ela até a praça do pedágio!

Além disso, situações como essas trazem cenas tristes de ver como um carro que para fugir do engarrafamento (ele estava logo na minha frente), resolveu entrar atrás de uma ambulância que estava passando com a sirene ligada… até que eu não ficaria muito chateado com um novo acidente, dessa vez envolvendo esse filho da puta (e que não machucasse nenhuma outra pessoa).

Categorias:Programação, UFRJ Tags:

Perl no Google Code-In

novembro 14, 2011 Deixe um comentário

Copiado descaradamente do post do Breno na lista da Rio.PM:

O Google Code-In (GCI) é um programa do Google para estudantes entre
13 e 17 anos que não estão na universidade. Os estudantes tem a
oportunidade de ganhar até 500 dólares e a chance de uma viagem para
visitar a sede do Google.

Esse ano, mais uma vez, a Perl Foundation foi aceita pelo GCI \o/

A comunidade mundial de Perl mais uma vez mostrou sua força e submeteu
uma série de atividades de alta qualidade, bem como uma extensa lista
de mentores voluntários, liderados por Florian Ragwitz e Mark Keating.

Mais ainda não é tarde para adicionar ainda mais idéias de tarefas ou
se voluntariar como mentor, basta adicionar à lista:

http://wiki.enlightenedperl.org/gci2011/gci2011/ideas
http://wiki.enlightenedperl.org/gci2011/gci2011/mentors

Mas agora o que precisamos são de estudantes!!

Se vocês conhecem algum estudante de 13 a 17 anos com interesse em
programação, espalhe a notícia! Listas, murais em colégio, contatos,
amigos, vale tudo para ajudar a Perl Foundation a encontrar estudantes
para o programa. Os alunos começam suas atividades dia 21 de novembro.

Mais informações:

http://www.perlfoundation.org/Google%20Code-in

Flyers:

http://www.perlfoundation.org/attachment/press_releases/GCi-2011-basic-home-small-office-printer.pdf
http://www.perlfoundation.org/attachment/press_releases/GCi-2011-basic.pdf

É comum ouvir que seria bacana atrair “sangue novo” para a comunidade
Perl. Se você gostaria de fazer mais do que apenas falar, essa é a sua
oportunidade.

Categorias:Programação Tags:,

Mais um pouco de Lisp

Hoje resolvi pegar de novo o Land of Lisp e estudar mais um pouco de Lisp.

Sério… o “overhead” para se começar a estudar Lisp novamente – depois de um tempo com o livro encostado – é grande… um slow start meio tenso… Mas consegui cobrir os capítulos 8 e 9 e finalizar a parte II do livro, assim chegando +- ao meio dele (tanto em termos de conteúdo quanto de páginas).

Estou um pouco menos empolgado com Lisp, primeiro porque não tenho ainda tanta segurança em utilizar a linguagem (e provavelmente em pensar “funcionalmente”) e porque não consigo pensar em algum projeto em que eu implementaria em Lisp e não em Perl ou em C/C++ (talvez eu não tenha sido iluminado ainda :P). Mas continuo lendo, pela simples curiosidade de ver o que mais Lisp tem a oferecer :)

Uma coisa que da uma levantada na sua moral em relação a dominar linguagem ou não é quando um código dá erro no interpretador (na maior parte das vezes foi porque copiei o código de forma errada do livro :P) e você consegue resolver lendo a mensagem do interpretador, olhando algumas informações de debug e etc. Quando isso acontece e você consegue resolver, parece ser uma daqueles momentos onde você esta se entendendo melhor com a linguagem… e consegui fazer isso 2 ou 3 vezes hoje :P

Categorias:Programação

97 Things Every Programmer Should Know

97 Things Every Programmer Should KnowO livro 97 Things Every Programmer Should Know é uma coleção de 97 “mini-textos”, cada um em seu próprio capítulo, sobre diversas coisas relacionadas a programação e engenharia de software no geral. Cada capítulo tem um autor diferente, e temos 4 autores que escreveram 3 capítulos cada e um bocado que escreveram 2 capítulos cada. O livro tem ~250 páginas e com 97 capítulos, é fácil perceber que cada capítulo é bem compacto, o que achei legal pois eu podia pegar e ler uns 3~5 capítulos e depois voltar a fazer o que eu estava fazendo antes (se bem que algumas vezes eu me empolgava e lia até 20 em uma “sessão” só :P).

O livro aborda realmente muitos tópicos, e geralmente tem mais de um capítulo sobre cada tópico. Inclusive, existem situações onde dois capítulos sobre o mesmo tópico defendem posições diferentes (contraditórias mesmo), ou seja, o livro não está preocupado em ser consistente entre todos os capítulos mas sim em apresentar os pontos de vista dos diversos autores que contribuíram para o texto.

Muito provavelmente você vai gostar mais dos textos que apresentam visões que você compartilha, mas é bem interessante ver outros pontos de vista.

Se você não quiser comprar o livro, o livro está disponível aqui (inclusive com contribuições que não entraram nas 97 escolhidas). Só não sei se esta versão online tem alguma diferença com a versão do livro finalizado/editado que foi lançado.

Bem, pare encerrar escolhi 14 dos capítulos que mais gostei para listar aqui:

Classificação: Recomendado

Categorias:Livros, Programação
%d blogueiros gostam disto: