Concrete Logo
Hamburger button

Workshop Scala – 16/04/2012

  • Blog
  • 9 de Maio de 2012
Share

Introdução

Em 2012 estamos com uma programação de Workshops e Tech Talks repleta de coisas interessantes. Fizemos no dia 16/04 um Workshop sobre Scala, no escritório de SP. A idéia era dar uma visão inicial para pessoas que ainda não conhecem a linguagem, e também mostrar para desenvolvedores Java como começar a usar Scala em seus projetos Java atuais.

Estamos disponibilizando abaixo o conteúdo na íntegra do material do Workshop. A interação dos participantes foi bem interessante e trouxe muitas idéias para evoluir o material e trazer mais casos práticos para discussão.

Pré-requisitos

Projeto Java inicial

Vamos começar com o projeto Java de exemplo do Alexandre Saudate Este é um projeto Java web comum, com o seguinte pom.xml: Introduzindo repositórios Scala, configurando Java 6 e adicionando Scala 2.9.1 ao projeto: Adicionando suporte a Scala no Eclipse: Depois de configurar o projeto para Scala, vamos criar 2 source folders: src/main/scala e src/test/scala.

Classes, Objects, Traits, Application, vals e vars

  • Classes são praticamente idênticas a classes Java. Herança funciona da mesma forma, e classes Scala podem estender classes Java
  • Objetos podem ser vistos como instâncias Singleton de uma classe definida implicitamente. Eles garantidamente são únicos.
  • Traits são semelhantes a Interfaces em Java, especificando a assinatura dos métodos suportados. Entretanto, Traits permitem implementação parcial, como as classes Java abstratas. Entretando, não podemos ter Traits com construtores aceitando parâmetros.
  • App é uma Trait que permite a execução de qualquer objeto Scala com a passagem de parâmetros de linha de comando. Ela já define o método main. Útil quando não precisamos manipular os parâmetros de linha de comando.
  • Val é uma variável imutável, o equivalente a final
  • Var é uma variável convencional, pode ser modificada livremente

Exemplo Classe

Exemplo Object

Exemplo App

Exemplo Trait

Modificadores

  • – Por padrão as classes, objetos, atributos e métodos são públicos.
  • – Modificador private funciona da mesma forma que em Java
  • – Protected é diferente, permite especificar em quais pacotes as subclasses conseguem acessar os atributos e métodos
  • – Para ter o equivalente a static, usamos Objects em vez de classes

Hierarquia de classes

  • – scala.AnyRef é o equivalente ao java.lang.Object
  • – scala.Any inclui o que em Java seria java.lang.Object e os tipos primitivos

Operadores

Exemplo definindo novos operadores

Estruturas de dados

Arrays

Lists

Tuples

Sets

Maps

Casos práticos

Scala herdando de Java

Veiculo (Java):

Motocicleta(Scala) herdando de Veiculo(Java):

Java herdando de Scala

Herança múltipla – Traits

Getters e setters

Muitos frameworks Java dependem da presença de getters and setters para correto funcionamento. Exemplo de classe Java típica:
A classe Scala “equivalente” seria:
Esta classe viraria na JVM o equivalente a:
Se utilizarmos a anotação @BeanProperty, teremos o resultado a seguir:

Entidades Hibernate com Scala

Empacotando Java e Scala na mesma aplicação

Suporte de IDEs

As principais:

Ferramentas de build

  • SBT: complexo e não é a opção mais simples de integrar com código Java legado
  • Maven: funciona bem e é fácil começar a usar Scala em projetos Java existentes
  • Ant: também funciona bem e é fácil começar a usar Scala em projetos Java existentes

Tópicos a adicionar:

  • – Testes unitários
  • – BDD
  • – Programação funcional
  • – Passagem de funções como parâmetro
  • – Outros formatos de build – SBT e talvez algum outro
  • – Mostrar mais coisas de ecossistema Scala, frameworks
  • – Pattern matching
  • – Mais alguma sugestão??
Introduzindo repositórios Scala, configurando Java 6 e adicionando Scala 2.9.1 ao projeto: Adicionando suporte a Scala no Eclipse: Depois de configurar o projeto para Scala, vamos criar 2 source folders: src/main/scala e src/test/scala.

\n

Classes, Objects, Traits, Application, vals e vars

\n\n

\n

Exemplo Classe

\n

\n

Exemplo Object

\n

\n

Exemplo App

\n

\n

Exemplo Trait

\n

\n

Modificadores

\n\n

Hierarquia de classes

\n\n

\n

Operadores

\n

Exemplo definindo novos operadores
\n

\n

Estruturas de dados

\n

Arrays

\n

\n

Lists

\n

\n

Tuples

\n

\n

Sets

\n

\n

Maps

\n

\n

Casos práticos

\n

Scala herdando de Java

\n

Veiculo (Java):
\n
\nMotocicleta(Scala) herdando de Veiculo(Java):
\n

\n

Java herdando de Scala

\n

\n

Herança múltipla – Traits

\n

\n

Getters e setters

\n

Muitos frameworks Java dependem da presença de getters and setters para correto funcionamento. Exemplo de classe Java típica:
\nA classe Scala “equivalente” seria:
\nEsta classe viraria na JVM o equivalente a:
\nSe utilizarmos a anotação @BeanProperty, teremos o resultado a seguir:

\n

Entidades Hibernate com Scala

\n

\n

Empacotando Java e Scala na mesma aplicação

\n

\n

Suporte de IDEs

\n

As principais:

\n\n

Ferramentas de build

\n\n

Tópicos a adicionar:

\n\n","protected":false},"excerpt":{"rendered":"

Introdução Em 2012 estamos com uma programação de Workshops e Tech Talks repleta de coisas interessantes. Fizemos no dia 16/04 um Workshop sobre Scala, no escritório de SP. A idéia […]

\n","protected":false},"author":1,"featured_media":5589,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[17],"tags":[202,203,68,204,190],"language":[],"custom_author":{"avatar":null,"name":null,"description":null},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts/1990"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/types/post"}],"author":[{"embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"replies":[{"embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/comments?post=1990"}],"version-history":[{"count":0,"href":"https://www.concrete.com.br/wp-json/wp/v2/posts/1990/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/media/5589"}],"wp:attachment":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/media?parent=1990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/categories?post=1990"},{"taxonomy":"post_tag","embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/tags?post=1990"},{"taxonomy":"language","embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/language?post=1990"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]},"_embedded":{"author":[{"id":1,"name":"concrete","url":"","description":"","link":"https://www.concrete.com.br/author/concrete/","slug":"concrete","avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]}}],"wp:featuredmedia":[{"id":5589,"date":"2013-03-16T11:14:44","slug":"scala_logo","type":"attachment","link":"https://www.concrete.com.br/scala_logo/","title":{"rendered":"scala_logo"},"author":1,"caption":{"rendered":""},"alt_text":"","media_type":"image","mime_type":"image/png","media_details":{"width":320,"height":93,"file":"2012/05/scala_logo.png","sizes":{"thumbnail":{"file":"scala_logo-150x93.png","width":150,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-150x93.png"},"medium":{"file":"scala_logo-300x87.png","width":300,"height":87,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-300x87.png"},"autor-post":{"file":"scala_logo-140x93.png","width":140,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-140x93.png"},"thumb-relacionado":{"file":"scala_logo-250x93.png","width":250,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-250x93.png"},"box-grande":{"file":"scala_logo-264x93.png","width":264,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-264x93.png"},"box-pequeno":{"file":"scala_logo-263x93.png","width":263,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-263x93.png"},"box-pequeno-2":{"file":"scala_logo-264x93.png","width":264,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-264x93.png"},"full":{"file":"scala_logo.png","width":320,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo.png"}},"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[]}},"source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo.png","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/media/5589"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/media"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/types/attachment"}],"author":[{"embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"replies":[{"embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/comments?post=5589"}],"wp:term":[{"taxonomy":"language","embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/language?post=5589"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}}],"wp:term":[[{"id":17,"link":"https://www.concrete.com.br/category/engenharia-de-software/","name":"Desenvolvimento Web","slug":"engenharia-de-software","taxonomy":"category","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/17"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=17"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}}],[{"id":202,"link":"https://www.concrete.com.br/tag/concrete-solutions/","name":"concrete solutions","slug":"concrete-solutions","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/202"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=202"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}},{"id":203,"link":"https://www.concrete.com.br/tag/eclipse/","name":"eclipse","slug":"eclipse","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/203"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=203"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}},{"id":68,"link":"https://www.concrete.com.br/tag/java/","name":"java","slug":"java","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/68"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=68"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}},{"id":204,"link":"https://www.concrete.com.br/tag/scala/","name":"scala","slug":"scala","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/204"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=204"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}},{"id":190,"link":"https://www.concrete.com.br/tag/workshop/","name":"workshop","slug":"workshop","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/190"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=190"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}}],[]]},"embedded":{"author":[{"id":1,"name":"concrete","url":"","description":"","link":"https://www.concrete.com.br/author/concrete/","slug":"concrete","avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]}}],"wp:featuredmedia":[{"id":5589,"date":"2013-03-16T11:14:44","slug":"scala_logo","type":"attachment","link":"https://www.concrete.com.br/scala_logo/","title":{"rendered":"scala_logo"},"author":1,"caption":{"rendered":""},"alt_text":"","media_type":"image","mime_type":"image/png","media_details":{"width":320,"height":93,"file":"2012/05/scala_logo.png","sizes":{"thumbnail":{"file":"scala_logo-150x93.png","width":150,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-150x93.png"},"medium":{"file":"scala_logo-300x87.png","width":300,"height":87,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-300x87.png"},"autor-post":{"file":"scala_logo-140x93.png","width":140,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-140x93.png"},"thumb-relacionado":{"file":"scala_logo-250x93.png","width":250,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-250x93.png"},"box-grande":{"file":"scala_logo-264x93.png","width":264,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-264x93.png"},"box-pequeno":{"file":"scala_logo-263x93.png","width":263,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-263x93.png"},"box-pequeno-2":{"file":"scala_logo-264x93.png","width":264,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo-264x93.png"},"full":{"file":"scala_logo.png","width":320,"height":93,"mime_type":"image/png","source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo.png"}},"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[]}},"source_url":"https://static.concrete.com.br/uploads/2012/05/scala_logo.png","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/media/5589"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/media"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/types/attachment"}],"author":[{"embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"replies":[{"embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/comments?post=5589"}],"wp:term":[{"taxonomy":"language","embeddable":true,"href":"https://www.concrete.com.br/wp-json/wp/v2/language?post=5589"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}}],"wp:term":[[{"id":17,"link":"https://www.concrete.com.br/category/engenharia-de-software/","name":"Desenvolvimento Web","slug":"engenharia-de-software","taxonomy":"category","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/17"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=17"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}}],[{"id":202,"link":"https://www.concrete.com.br/tag/concrete-solutions/","name":"concrete solutions","slug":"concrete-solutions","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/202"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=202"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}},{"id":203,"link":"https://www.concrete.com.br/tag/eclipse/","name":"eclipse","slug":"eclipse","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/203"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=203"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}},{"id":68,"link":"https://www.concrete.com.br/tag/java/","name":"java","slug":"java","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/68"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=68"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}},{"id":204,"link":"https://www.concrete.com.br/tag/scala/","name":"scala","slug":"scala","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/204"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=204"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}},{"id":190,"link":"https://www.concrete.com.br/tag/workshop/","name":"workshop","slug":"workshop","taxonomy":"post_tag","_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/190"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=190"}],"curies":[{"name":"wp","href":"https://api.w.org/{rel}","templated":true}]}}],[]]},"parsedDate":"9 de Maio de 2012","getAuthor":"concrete","getAuthorDescription":"

","getPostDescription":"\nIntrodução\n\nEm 2012 estamos com uma programação de Workshops e Tech Talks repleta de coisas interessantes. Fizemos no dia 16/04 um Workshop sobre Scala, no escritório de SP. A idéia era dar uma visão...","getPostCategories":{"slug":["engenharia-de-software"],"id":[17],"name":["Desenvolvimento Web"]},"getPostTags":{"slug":["concrete-solutions","eclipse","java","scala","workshop"],"id":[202,203,68,204,190],"name":["concrete solutions","eclipse","java","scala","workshop"]},"getPostLanguage":"pt"},"postTerm":17,"relatedPosts":[{"date":"2012-04-04T17:27:31","custom_author":{"name":null,"description":null,"avatar":null},"getAuthor":"concrete","_embedded":{"author":[{"avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]},"name":"concrete","link":"https://www.concrete.com.br/author/concrete/","description":"","id":1,"url":"","slug":"concrete"}],"wp:term":[[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=7"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/7"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}]},"link":"https://www.concrete.com.br/category/empreendedorismo-negocios/","name":"Empreendedorismo e Negócios","id":7,"taxonomy":"category","slug":"empreendedorismo-negocios"}],[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=6"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/6"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/ash-maurya/","name":"Ash Maurya","id":6,"taxonomy":"post_tag","slug":"ash-maurya"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=178"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/178"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/bizagility-2/","name":"bizagility","id":178,"taxonomy":"post_tag","slug":"bizagility-2"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=54"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/54"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/lean-startup/","name":"Lean Startup","id":54,"taxonomy":"post_tag","slug":"lean-startup"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=11"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/11"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/leanstartup/","name":"leanstartup","id":11,"taxonomy":"post_tag","slug":"leanstartup"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=190"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/190"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/workshop/","name":"workshop","id":190,"taxonomy":"post_tag","slug":"workshop"}]]},"link":"https://www.concrete.com.br/2012/04/04/biz-agility-workshop-ash-maurya/","title":{"rendered":"Biz Agility – workshop Ash Maurya em SP"},"embedded":{"author":[{"avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]},"name":"concrete","link":"https://www.concrete.com.br/author/concrete/","description":"","id":1,"url":"","slug":"concrete"}],"wp:term":[[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=7"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/7"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}]},"link":"https://www.concrete.com.br/category/empreendedorismo-negocios/","name":"Empreendedorismo e Negócios","id":7,"taxonomy":"category","slug":"empreendedorismo-negocios"}],[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=6"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/6"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/ash-maurya/","name":"Ash Maurya","id":6,"taxonomy":"post_tag","slug":"ash-maurya"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=178"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/178"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/bizagility-2/","name":"bizagility","id":178,"taxonomy":"post_tag","slug":"bizagility-2"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=54"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/54"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/lean-startup/","name":"Lean Startup","id":54,"taxonomy":"post_tag","slug":"lean-startup"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=11"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/11"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/leanstartup/","name":"leanstartup","id":11,"taxonomy":"post_tag","slug":"leanstartup"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=190"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/190"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/workshop/","name":"workshop","id":190,"taxonomy":"post_tag","slug":"workshop"}]]},"parsedDate":"4 de Abril de 2012","getAuthorDescription":"

","getPostDescription":"","getPostCategories":{"slug":["empreendedorismo-negocios"],"id":[7],"name":["Empreendedorismo e Negócios"]},"getPostTags":{"slug":["ash-maurya","bizagility-2","lean-startup","leanstartup","workshop"],"id":[6,178,54,11,190],"name":["Ash Maurya","bizagility","Lean Startup","leanstartup","workshop"]},"getPostLanguage":"pt"},{"date":"2012-05-24T15:37:28","custom_author":{"name":null,"description":null,"avatar":null},"getAuthor":"concrete","_embedded":{"replies":[[{"author_name":"lucabastos","date":"2012-05-24T18:56:00","parent":0,"author_url":"http://twitter.com/lucabastos","author_avatar_urls":{"24":"https://secure.gravatar.com/avatar/?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments/757"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments"}],"up":[{"post_type":"post","href":"https://www.concrete.com.br/wp-json/wp/v2/posts/2005","embeddable":true}]},"author":0,"link":"https://www.concrete.com.br/2012/05/24/machine-learning-no-java-ce-community-conference/#comment-757","id":757,"type":"comment","content":{"rendered":"

@Andrei
\nBelas dicas!

\n

O Mahout já andei brincando mas só com o bê-a-bá. Preciso retomar.

\n

Do R gosto e já brinquei um pouquinho. Realmente é poderoso e sai gráfico bem facinho. Também tenho medo do desempenho se for para responder on line. Estou lendo o Machine Learning for hackers que justamente usa o R.

\n

Python… só li o Collective Intelligence e um tiquinho do Machine Learning in Action que também usa Python… manjo pouco da cobra… desse scikits-learn eu nunca tinha ouvido falar…

\n

E do Borges… li uns dois livros… este poema sé conheci esta semana em um tweet e um amigo argentino… vi, gostei, achei que o mundo do Borges cego tinha a ver com o mundo de dados que a gente tenta ver alguma coisa…

\n"}},{"author_name":"Andrei Formiga","date":"2012-05-24T17:21:00","parent":0,"author_url":"http://twitter.com/andreiformiga","author_avatar_urls":{"24":"https://secure.gravatar.com/avatar/?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments/756"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments"}],"up":[{"post_type":"post","href":"https://www.concrete.com.br/wp-json/wp/v2/posts/2005","embeddable":true}]},"author":0,"link":"https://www.concrete.com.br/2012/05/24/machine-learning-no-java-ce-community-conference/#comment-756","id":756,"type":"comment","content":{"rendered":"

Uma vez eu fiz um gerador de texto usando cadeias de Markov, e relacionei com a Biblioteca de Babel de Borges. A apresentação ficou legal, bem clara e passa o essencial sobre o assunto. Só acho que vale olhar para outras ferramentas também, a Weka tem muita coisa boa mas também tem suas idiossincrasias. Em R tem muita coisa já feita também, em Java tem o Mahout da Apache, e em Python tem o scikits-learn.

\n

Para uma primeira olhada exploratória nos dados eu gosto de R, porque é interativo e tem muitas formas de visualização e tratamento de dados. Mas depois, se o sistema precisar de desempenho, tem escolhas melhores.

\n"}}]],"author":[{"avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]},"name":"concrete","link":"https://www.concrete.com.br/author/concrete/","description":"","id":1,"url":"","slug":"concrete"}],"wp:term":[[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=17"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/17"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}]},"link":"https://www.concrete.com.br/category/engenharia-de-software/","name":"Desenvolvimento Web","id":17,"taxonomy":"category","slug":"engenharia-de-software"}],[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=144"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/144"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/aprendizado-de-maquina/","name":"aprendizado de máquina","id":144,"taxonomy":"post_tag","slug":"aprendizado-de-maquina"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=68"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/68"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/java/","name":"java","id":68,"taxonomy":"post_tag","slug":"java"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=145"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/145"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/machine-learning/","name":"machine learning","id":145,"taxonomy":"post_tag","slug":"machine-learning"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=207"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/207"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/weka/","name":"weka","id":207,"taxonomy":"post_tag","slug":"weka"}],[]]},"link":"https://www.concrete.com.br/2012/05/24/machine-learning-no-java-ce-community-conference/","title":{"rendered":"Machine Learning no Java CE Community Conference"},"embedded":{"replies":[[{"author_name":"lucabastos","date":"2012-05-24T18:56:00","parent":0,"author_url":"http://twitter.com/lucabastos","author_avatar_urls":{"24":"https://secure.gravatar.com/avatar/?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments/757"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments"}],"up":[{"post_type":"post","href":"https://www.concrete.com.br/wp-json/wp/v2/posts/2005","embeddable":true}]},"author":0,"link":"https://www.concrete.com.br/2012/05/24/machine-learning-no-java-ce-community-conference/#comment-757","id":757,"type":"comment","content":{"rendered":"

@Andrei
\nBelas dicas!

\n

O Mahout já andei brincando mas só com o bê-a-bá. Preciso retomar.

\n

Do R gosto e já brinquei um pouquinho. Realmente é poderoso e sai gráfico bem facinho. Também tenho medo do desempenho se for para responder on line. Estou lendo o Machine Learning for hackers que justamente usa o R.

\n

Python… só li o Collective Intelligence e um tiquinho do Machine Learning in Action que também usa Python… manjo pouco da cobra… desse scikits-learn eu nunca tinha ouvido falar…

\n

E do Borges… li uns dois livros… este poema sé conheci esta semana em um tweet e um amigo argentino… vi, gostei, achei que o mundo do Borges cego tinha a ver com o mundo de dados que a gente tenta ver alguma coisa…

\n"}},{"author_name":"Andrei Formiga","date":"2012-05-24T17:21:00","parent":0,"author_url":"http://twitter.com/andreiformiga","author_avatar_urls":{"24":"https://secure.gravatar.com/avatar/?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments/756"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments"}],"up":[{"post_type":"post","href":"https://www.concrete.com.br/wp-json/wp/v2/posts/2005","embeddable":true}]},"author":0,"link":"https://www.concrete.com.br/2012/05/24/machine-learning-no-java-ce-community-conference/#comment-756","id":756,"type":"comment","content":{"rendered":"

Uma vez eu fiz um gerador de texto usando cadeias de Markov, e relacionei com a Biblioteca de Babel de Borges. A apresentação ficou legal, bem clara e passa o essencial sobre o assunto. Só acho que vale olhar para outras ferramentas também, a Weka tem muita coisa boa mas também tem suas idiossincrasias. Em R tem muita coisa já feita também, em Java tem o Mahout da Apache, e em Python tem o scikits-learn.

\n

Para uma primeira olhada exploratória nos dados eu gosto de R, porque é interativo e tem muitas formas de visualização e tratamento de dados. Mas depois, se o sistema precisar de desempenho, tem escolhas melhores.

\n"}}]],"author":[{"avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]},"name":"concrete","link":"https://www.concrete.com.br/author/concrete/","description":"","id":1,"url":"","slug":"concrete"}],"wp:term":[[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=17"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/17"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}]},"link":"https://www.concrete.com.br/category/engenharia-de-software/","name":"Desenvolvimento Web","id":17,"taxonomy":"category","slug":"engenharia-de-software"}],[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=144"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/144"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/aprendizado-de-maquina/","name":"aprendizado de máquina","id":144,"taxonomy":"post_tag","slug":"aprendizado-de-maquina"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=68"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/68"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/java/","name":"java","id":68,"taxonomy":"post_tag","slug":"java"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=145"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/145"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/machine-learning/","name":"machine learning","id":145,"taxonomy":"post_tag","slug":"machine-learning"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=207"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/207"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/weka/","name":"weka","id":207,"taxonomy":"post_tag","slug":"weka"}],[]]},"parsedDate":"24 de Maio de 2012","getAuthorDescription":"

","getPostDescription":"","getPostCategories":{"slug":["engenharia-de-software"],"id":[17],"name":["Desenvolvimento Web"]},"getPostTags":{"slug":["aprendizado-de-maquina","java","machine-learning","weka"],"id":[144,68,145,207],"name":["aprendizado de máquina","java","machine learning","weka"]},"getPostLanguage":"pt"},{"date":"2012-01-17T15:31:56","custom_author":{"name":null,"description":null,"avatar":null},"getAuthor":"concrete","_embedded":{"author":[{"avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]},"name":"concrete","link":"https://www.concrete.com.br/author/concrete/","description":"","id":1,"url":"","slug":"concrete"}],"wp:term":[[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=17"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/17"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}]},"link":"https://www.concrete.com.br/category/engenharia-de-software/","name":"Desenvolvimento Web","id":17,"taxonomy":"category","slug":"engenharia-de-software"}],[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=150"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/150"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/barry-schwartz/","name":"Barry Schwartz","id":150,"taxonomy":"post_tag","slug":"barry-schwartz"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=151"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/151"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/collective-intelligence/","name":"collective intelligence","id":151,"taxonomy":"post_tag","slug":"collective-intelligence"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=152"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/152"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/cosine-similarity/","name":"cosine similarity","id":152,"taxonomy":"post_tag","slug":"cosine-similarity"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=153"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/153"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/euclidian-distance/","name":"euclidian distance","id":153,"taxonomy":"post_tag","slug":"euclidian-distance"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=154"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/154"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/k-nearest-neighbor/","name":"k-Nearest Neighbor","id":154,"taxonomy":"post_tag","slug":"k-nearest-neighbor"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=145"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/145"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/machine-learning/","name":"machine learning","id":145,"taxonomy":"post_tag","slug":"machine-learning"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=155"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/155"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/netflix-prize/","name":"Netflix prize","id":155,"taxonomy":"post_tag","slug":"netflix-prize"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=156"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/156"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/paradoxo-das-escolhas/","name":"paradoxo das escolhas","id":156,"taxonomy":"post_tag","slug":"paradoxo-das-escolhas"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=157"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/157"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/pearsons-correlation-coefficient/","name":"Pearson's correlation coefficient","id":157,"taxonomy":"post_tag","slug":"pearsons-correlation-coefficient"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=139"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/139"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/quiz-2/","name":"quiz","id":139,"taxonomy":"post_tag","slug":"quiz-2"}]]},"link":"https://www.concrete.com.br/2012/01/17/sistemas-de-recomendacoes/","title":{"rendered":"Sistemas de recomendações"},"embedded":{"author":[{"avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]},"name":"concrete","link":"https://www.concrete.com.br/author/concrete/","description":"","id":1,"url":"","slug":"concrete"}],"wp:term":[[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=17"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/17"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}]},"link":"https://www.concrete.com.br/category/engenharia-de-software/","name":"Desenvolvimento Web","id":17,"taxonomy":"category","slug":"engenharia-de-software"}],[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=150"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/150"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/barry-schwartz/","name":"Barry Schwartz","id":150,"taxonomy":"post_tag","slug":"barry-schwartz"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=151"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/151"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/collective-intelligence/","name":"collective intelligence","id":151,"taxonomy":"post_tag","slug":"collective-intelligence"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=152"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/152"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/cosine-similarity/","name":"cosine similarity","id":152,"taxonomy":"post_tag","slug":"cosine-similarity"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=153"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/153"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/euclidian-distance/","name":"euclidian distance","id":153,"taxonomy":"post_tag","slug":"euclidian-distance"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=154"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/154"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/k-nearest-neighbor/","name":"k-Nearest Neighbor","id":154,"taxonomy":"post_tag","slug":"k-nearest-neighbor"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=145"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/145"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/machine-learning/","name":"machine learning","id":145,"taxonomy":"post_tag","slug":"machine-learning"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=155"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/155"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/netflix-prize/","name":"Netflix prize","id":155,"taxonomy":"post_tag","slug":"netflix-prize"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=156"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/156"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/paradoxo-das-escolhas/","name":"paradoxo das escolhas","id":156,"taxonomy":"post_tag","slug":"paradoxo-das-escolhas"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=157"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/157"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/pearsons-correlation-coefficient/","name":"Pearson's correlation coefficient","id":157,"taxonomy":"post_tag","slug":"pearsons-correlation-coefficient"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=139"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/139"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/quiz-2/","name":"quiz","id":139,"taxonomy":"post_tag","slug":"quiz-2"}]]},"parsedDate":"17 de Janeiro de 2012","getAuthorDescription":"

","getPostDescription":"","getPostCategories":{"slug":["engenharia-de-software"],"id":[17],"name":["Desenvolvimento Web"]},"getPostTags":{"slug":["barry-schwartz","collective-intelligence","cosine-similarity","euclidian-distance","k-nearest-neighbor","machine-learning","netflix-prize","paradoxo-das-escolhas","pearsons-correlation-coefficient","quiz-2"],"id":[150,151,152,153,154,145,155,156,157,139],"name":["Barry Schwartz","collective intelligence","cosine similarity","euclidian distance","k-Nearest Neighbor","machine learning","Netflix prize","paradoxo das escolhas","Pearson's correlation coefficient","quiz"]},"getPostLanguage":"pt"},{"date":"2012-10-29T18:27:15","custom_author":{"name":null,"description":null,"avatar":null},"getAuthor":"concrete","_embedded":{"replies":[[{"author_name":"Thiago Ghisi","date":"2012-10-29T23:34:00","parent":0,"author_url":"http://twitter.com/thiagoghisi","author_avatar_urls":{"24":"https://secure.gravatar.com/avatar/?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments/1253"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments"}],"up":[{"post_type":"post","href":"https://www.concrete.com.br/wp-json/wp/v2/posts/3830","embeddable":true}]},"author":0,"link":"https://www.concrete.com.br/2012/10/29/luca-bastos-no-twbr-awayday/#comment-1253","id":1253,"type":"comment","content":{"rendered":"

Inoxidável Luca,

\n

Sua participação no AwayDay foi sensacional, sua apresentação foi um verdadeiro show!

\n

Já faz mais de uma semana, mas ainda hoje vi uma galera relembrando e rindo das suas piadinhas e citando as suas lições aprendidas passadas pra gente lá em Bento Gonçalves.

\n

Foi uma prazer conhecer você.

\n

Grande Abraço!

\n

Ghisi.

\n"}}]],"author":[{"avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]},"name":"concrete","link":"https://www.concrete.com.br/author/concrete/","description":"","id":1,"url":"","slug":"concrete"}],"wp:term":[[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=17"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/17"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}]},"link":"https://www.concrete.com.br/category/engenharia-de-software/","name":"Desenvolvimento Web","id":17,"taxonomy":"category","slug":"engenharia-de-software"}],[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=298"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/298"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/luca-bastos/","name":"Luca Bastos","id":298,"taxonomy":"post_tag","slug":"luca-bastos"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=316"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/316"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/twbrawayday-2/","name":"TWBRAWayDay","id":316,"taxonomy":"post_tag","slug":"twbrawayday-2"}]]},"link":"https://www.concrete.com.br/2012/10/29/luca-bastos-no-twbr-awayday/","title":{"rendered":"Luca Bastos no TWBR AwayDay"},"embedded":{"replies":[[{"author_name":"Thiago Ghisi","date":"2012-10-29T23:34:00","parent":0,"author_url":"http://twitter.com/thiagoghisi","author_avatar_urls":{"24":"https://secure.gravatar.com/avatar/?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments/1253"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/comments"}],"up":[{"post_type":"post","href":"https://www.concrete.com.br/wp-json/wp/v2/posts/3830","embeddable":true}]},"author":0,"link":"https://www.concrete.com.br/2012/10/29/luca-bastos-no-twbr-awayday/#comment-1253","id":1253,"type":"comment","content":{"rendered":"

Inoxidável Luca,

\n

Sua participação no AwayDay foi sensacional, sua apresentação foi um verdadeiro show!

\n

Já faz mais de uma semana, mas ainda hoje vi uma galera relembrando e rindo das suas piadinhas e citando as suas lições aprendidas passadas pra gente lá em Bento Gonçalves.

\n

Foi uma prazer conhecer você.

\n

Grande Abraço!

\n

Ghisi.

\n"}}]],"author":[{"avatar_urls":{"24":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=24&d=mm&r=g","48":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=48&d=mm&r=g","96":"https://secure.gravatar.com/avatar/50fdb5e1fd0223a4aa65b6deb3461969?s=96&d=mm&r=g"},"_links":{"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users/1"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/users"}]},"name":"concrete","link":"https://www.concrete.com.br/author/concrete/","description":"","id":1,"url":"","slug":"concrete"}],"wp:term":[[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?categories=17"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/category"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories/17"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/categories"}]},"link":"https://www.concrete.com.br/category/engenharia-de-software/","name":"Desenvolvimento Web","id":17,"taxonomy":"category","slug":"engenharia-de-software"}],[{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=298"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/298"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/luca-bastos/","name":"Luca Bastos","id":298,"taxonomy":"post_tag","slug":"luca-bastos"},{"_links":{"wp:post_type":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/posts?tags=316"}],"curies":[{"templated":true,"name":"wp","href":"https://api.w.org/{rel}"}],"about":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/taxonomies/post_tag"}],"self":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags/316"}],"collection":[{"href":"https://www.concrete.com.br/wp-json/wp/v2/tags"}]},"link":"https://www.concrete.com.br/tag/twbrawayday-2/","name":"TWBRAWayDay","id":316,"taxonomy":"post_tag","slug":"twbrawayday-2"}]]},"parsedDate":"29 de Outubro de 2012","getAuthorDescription":"

","getPostDescription":"","getPostCategories":{"slug":["engenharia-de-software"],"id":[17],"name":["Desenvolvimento Web"]},"getPostTags":{"slug":["luca-bastos","twbrawayday-2"],"id":[298,316],"name":["Luca Bastos","TWBRAWayDay"]},"getPostLanguage":"pt"}],"relatedPostsFrom":5,"relatedPostSize":4},"posts":{"pageNumber":0,"pageSize":4,"offset":0,"pagination":9,"app":{"ssrLocation":"/2012/05/09/workshop-scala-16042012/","title":"Concrete Workshop Scala – 16/04/2012","currentLang":{"intro":{"title":"Nós
Movemos
O Mundo.","subtitle":"Nós desenvolvemos produtos digitais com inovação, agilidade e excelentes práticas, para que o mercado brasileiro e latino-americano acompanhe a velocidade do mercado digital mundial. Acreditamos que as transformações que mantêm o mundo em constante movimento passam por nossas mãos - e gostamos disso."},"jobs":{"more":"Mais informações","apply":"Quero me candidatar","other":"Outras vagas","moreInformation":"Mais informações"},"posts":{"loadmore":"Carregar mais posts"},"search":{"placeholder":"Faça sua busca..."},"shared":{"begin":"Início","blog":"Blog","jobs":"Vagas","contact":"Contato","back":"Voltar","share":"Compartilhar","press":"Comunicação
e imprensa","commercial":"Comercial","hr":"Recursos
Humanos"}},"language":"pt"}}}