Arquivo da categoria: Software engineering

Pharo 6.0 released!

Pharo 6.0 released!

Dear World,

The time has come for Pharo 6.0!

Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.

This is our most significant release yet. Here are some highlights:

  • haro is now provided in 64-bit version in Linux and OSX and brings even better performance and stability (beware, 64bits version is a new technology and a small amount of tests is still failing)
  • A new code changes management system named Epicea for easier reviewing and recovering of your code easily
  • Integrated support for Git through an easy-to-use tool for repositories and commits management named Iceberg (as a preview for Pharo 6, it will be the default in Pharo 7)
  • The unified foreign function interface (UnifiedFFI) for interfacing with the outside world is significantly improved
  • The PharoVM is now part of OpenSmalltalk initiative
  • Introduction of object immutability, alternative bytecode sets and block closures independent of outer context
  • Pharo can now be bootstrapped from source code managed by Git
  • Pharo modularity is improved
  • Pharo is faster
  • The Dark Theme was improved and set as default color theme of Pharo
These are just the more prominent highlights, but the details are just as important. We have closed 1474 issues in Pharo 6.0 (a more complete changelog can be found at https://github.com/pharo-project/pharo-changelogs/blob/master/Pharo60ChangeLogs.md).

While the technical improvements are significant (starting the transition to 64bits is a remarkable achievement), still the most impressive fact is that the new code that got in the main Pharo 6.0 image was contributed by more than 80 people.

Pharo is more than code. It is an exciting project involving energetic people. We thank all the contributors of this release:

Alberto Bacchelli, Alejandro Infante, Alexandre Bergel, Aliaksei Syrel, Alistair Grant, Andrei Chis, Ben Coman, Bernardo Contreras, Bernhard Pieber, Boris Spasojevic, Christophe Demarey, Clement Bera, Cyril Ferlicot, Dale Henrichs, Damien Cassou, Damien Pollet, Dave Lewis, Denis Kudriashov, Dirk Roeleveld, Eliot Miranda, Esteban Lorenzano, Esteban Maringolo, Evan Donahue, Federico Balaguer, Franck Warlouzet, Glenn Cavarle, Guillermo Polito, Gustavo Santos, Henrik Johansen, Henrik Nergaard, Hilaire Fernandes, Holger Hans, Jan Kurs, Jan van de Sandt, Johan Fabry, Juraj Kubelka, K. K. Subramaniam, Ken Causey, Kris Gybels, Lionel Akue, Luc Fabresse, Lucas Godoy, Marcus Denker, Mariano Martinez Peck, Marion Noirbent, Martin Dias, Max Leske, Maxime Roelandt, Merwan Ouddane, Matteo Bellotto, Miguel Campusano, Milton Mamani, Myroslava Romaniuk, Nicolai Hess, Nicolas Cellier, Nicolas Passerini, Norbert Hartl, Offray Luna, Pablo Tesone, Paul De Bruicker, Pavel Krivanek, Peter Uhnak, Philippe Back, Roger Stebler, Ronie Salgado, Sean DeNigris, Serge Stinckwich, Skip Lentz, Sophie Kaleba, Stefan Reichhart, Stephan Eggermont, Stephane Ducasse, Sven Van Caekenberghe, Thibault Arloing, Thibault Arloing, Thibault Raffaillac, Thierry Goubier, Thomas Heniart, Tommaso Dal Sasso, Torsten Bergmann, Tudor Girba, Udo Schneider, Valentin Ryckewaert, Vincent Blondeau, Werner Kassens, Yuriy Tymchuk

(If you contributed with Pharo 6.0 development in any way and we missed your name, please send us a mail and we will add you).

Enjoy!

The Pharo Team

Try Pharo: http://pharo.org/download

Learn Pharo: http://pharo.org/documentation

Live Twitter Analysis and Visualization

Kanban: Do início ao fim!

quadro-kanban-710x434

Excertos (Ver link abaixo):

No final de 1940, a Toyota encontrou um novo processo de engenharia que poderia ser empregado em seus negócios. Sabe onde? Por incrível e mais improvável que possa parecer, dentro de um supermercado.

Minha mãe sempre diz: Uma imagem vale mais que mil palavras. Não é que ela está certa! Estudos científicos comprovam que o cérebro processa uma informação visual 60 mil vezes mais rápido do que em texto. Sem falar que à retina está ligada a 40% de todas as nossas fibras nervosas. Fantástico!

Um ótimo exemplo de WIP pode ser encontrado no palácio imperial do centro de Tóquio, no Japão. Lá o Kanban é utilizado como uma forma de sinalizar a necessidade de puxar mais trabalho.

Como assim? Usando Kanban em um parque? Sim, é necessário controlar o número de pessoas que estão dentro do parque, pois muitas o visitam e é preciso o mínimo de organização para que todos possam aproveitar da melhor maneira o passeio. Ao entrar no parque você recebe um cartão (kanban) e ao sair deve devolver o mesmo cartão, dessa forma se consegue saber a quantidade de pessoas que estão dentro do parque.

Kanban: Do início ao fim!

Conteúdo do artigo:

Intro

Voltando à história do Kanban (breve história)…

Kanban e desenvolvimento de software

Mas, como o Kanban funciona hoje?

– Um quadro Kanban simples

Princípios fundamentais

– Visualizar o fluxo de trabalho (workflow)

– Limitar a quantidade de trabalho em andamento (WIP)

– Gerenciar e medir o fluxo

– Tornar as políticas do processo explícitas

– Usar modelos para reconhecer oportunidades de melhoria

Classificação de itens e hierarquia

– Épicos (Epics)

– Estória de usuário (User Story)

– Tarefas (Tasks)

Evidenciando um quadro Kanban

– Buffer

– Priorização de itens

– Limite WIP

– Raias

Benefícios do Kanban

SmallBDD announcement

cucumber

SmallBDD.png

SmallBDD é um nascente framework implementado em Smalltalk inspirado no Cucumber.

Smalltalk é uma linguagem onde a expressividade de uma DSL interna dispensa a complicação associada ao desenvolvimento de DSL externas envolvendo o uso de parsers.

Para executar os cenários descritos acima o desenvolvedor implementa as definições (step definitions no jargão do Cucumber) como abaixo:

SmallBDD2SmallBDD3

O projeto está publicado no Smalltalkhub.

Nota: Estou me baseando principalmente na edição de 2012 do The Cucumber Book.

hwcuc_xlargecover

Meu retorno ao BDD (Veja outros posts meus sobre o BDD), cujo valor para equipes interagindo com usuários do negócio me parece inegável, vem também de ver algum valor para organizar o trabalho mesmo quando temos que simular os interesses de usuários abstratos, na Internet por exemplo.

O Akita escreveu um artigo interessante e crítico sobre BDD. Na época fiquei um pouco influenciado em uma espécie de  Cargo Cult. Afinal era o Akita e o DHH! Mas acho que o artigo do Akita está datado e um tanto equivocado. Para criticar ele mostra códigos da step definitions, que são ilegíveis para o negócio realmente. Mas no livro citado acima a parte em que o negócio deve participar da redação é bem mais legível e este é um dos objetivos principais: legibilidade, clareza e simplicidade.

Dentro deste meu novo convencimento resolvi implementar BDD na minha linguagem preferida.

Links relacionados:

  • Writing Maintainable Automated Acceptance Tests, Dale H. Emery
    • Test automation is software development . This principle implies that much of what we know about writing software also applies to test automation. And some of the things we know may not be apparent to people with little or no experience writing software.
    • Much of the cost of software development is maintenance—changing the software after it is written. This single fact accounts for much of the difference between successful and unsuccessful test automation efforts. I’ve talked to people in many organizations that attempted test automation only to abandon the effort within a few months. When I ask what led them to abandon test automation, the most common answer is that the tests quickly became brittle and too costly to maintain. The slightest change in the implementation of the system—for example, renaming a button—breaks swarms of tests, and fixing the tests is too time consuming.
    • But some organizations succeed with test automation. Don’t they experience maintenance costs, too? Of course they do. An important difference is that where unsuccessful organizations are surprised by the maintenance costs, successful organizations expect them. The difference between success and failure is not the maintenance costs per se, but whether the organization expects them. Successful organizations understand that test automation is software development, that it involves significant maintenance costs, and that they can and must make deliberate, vigilant effort to keep maintenance costs low.

O que fazer com monopólios e algoritmos

monopolio

Com a chegada da maturidade da Internet mundial e suas empresas, temos visto uma crescente onda de manipulações de mercado. Empresas que antes estavam sujeitas a competição no mundo real, encontraram um paraíso virtual na grande rede mundial. O que mais encontramos nesse paraíso das empresas são mercados em situação de monopólio absoluto ou mercados em situação de quase monopólio, quando apenas duas ou no máximo três empresas reinam com o mundo a seus pés. E agora, pra “piorar”, entrou no jogo do capitalismo global um atacante de peso no time das empresas: o algoritmo. E agora? O que devemos fazer?

http://meupinguim.com/que-fazer-monopolios-algoritmos/

Link relacionado:

RenoirSt – A DSL enabling programmatic cascading style sheet generation

renoirst-a-dsl-enabling-programmatic-cascading-style-sheet-generation-1-638

Related:

 

Elegant Pharo Code

1mc27f4wegs4vzkezbw-tug

Beautiful & Powerful One-liners, Expressions and Snippets

Writing computer software remains difficult and hard. Most computer code is hard to read and quite intimidating. This does not have to be the case.

Simple things should be simple, complex things should be possible — Alan Kay

Our software development environments should be designed in such a way that they make it easy to read and to write code for day to day tasks, for those problems that are solved.

Studying a list of example tasks — one-liners, expressions and snippets — is an excellent way to check out candidate programming languages. Here is a list with solutions implemented in Pharo — an immersive, live environment including a pure, object-oriented programming language focused on simplicity and immediate feedback.

Elegant Pharo Code