Latest news

Summer internships da Xpand IT: a minha primeira experiência profissional

No dia 10 de julho iniciei a minha primeira experiência profissional nos Summer internships da Xpand IT na área de Business Intelligence.

A Xpand IT foi-me sugerida por um amigo que já tinha participado na edição dos summer internships do ano anterior, tendo partilhado comigo que foi uma ótima experiência, mesmo do ponto de vista cultural. Portanto, as minhas expectativas eram bastante elevadas, mas posso dizer que foram facilmente atingidas.

O meu projeto tecnológico

Começando pelas questões técnicas, estive integrado na área de Business Intelligence durante 2 meses. Resumidamente, BI é uma área que tira partido de diversas tecnologias e metodologias para:

  • Recolher dados em bruto
  • Modelá-los e prepará-los para serem analisados
  • apresentar os dados no apoio à decisão de processos chave de negócio das empresas

Para chegar aqui, utilizámos a plataforma Pentaho Data Integration que de uma forma completamente user-friendly permite criar e manter processos de BI.

Para percebermos o quão simples pode ser a sua utilização: o processo de carregamento de dados de uma base de dados é tão simples como fazer dragging de um “step” para o interface, chamado “table input” e depois preencher alguns parâmetros.

O projeto que desenvolvi com o Henrique Pereira e a Inês Alves foi o de criar um plugin (“step”) na plataforma para criptografar e descriptografar dados de acordo com o novo Regulamento Geral de Proteção de Dados.

O novo “step” oferece agora vários algoritmos de criptografia diferentes como AES, Twofish and Serpent para além de permitir que os utilizadores criem as suas próprias funções personalizadas.

Desenvolvemos o “step” em Java e utilizámos inclusivamente metodologias Agile durante todo o processo. Ao longo do desenvolvimento, tive o acompanhamento e o mentoring do Carlos Moreira e do Daniel Salgueiral que garantiram que tudo corria bem.

João Cardoso

Em termos da experiência que pude viver, tenho de dizer que houve momentos de muita diversão tanto nos escritórios de Braga como de Lisboa.

Aqui em Lisboa fui logo bem-recebido desde o início por todas as pessoas que me fizeram sentir como parte da “família”. Ao longo do internship, trabalhámos com afinco, mas o ambiente de trabalho foi sempre descontraído, tanto que tive espaço para conhecer novas pessoas e inclusivamente fazer algumas amizades com os Xpanders.

Entre os lanches divertidos, os jogos acesos na mesa de matraquilhos e o bom ambiente entre todos, não houve dias monótonos nos Summer internships da Xpand IT.

João Cardoso

Uma vez que a parte final do meu projeto de estágio foi em Braga, acabei por também ter a oportunidade de estar alguns dias nesta bonita cidade – que os nossos amigos do Norte se apressaram a afirmar que é a mais antiga de Portugal e ao mesmo tempo a que tem a população mais jovem da Europa.

Em Braga fui “vítima” da incrível hospitalidade das pessoas de lá. Jogámos bubble football, uma experiência que recomendo a toda a gente e também fizemos uma visita a Viana do Castelo para conhecer o Daniel Salgueiral e escritório fantástico perto da praia.

Porque deves inscrever-te nos Summer internships da Xpand IT em 2020

No geral, os summer internships foram uma ótima experiência e se estás a decidir se vale a pena ou não fazer um estágio, só te posso recomendar que tenhas essa experiência na Xpand IT uma vez que vais:

  • poder criar um projeto do início ao fim utilizando metodologias que são aplicadas no mundo real
  • aprender novas tecnologias, como, por exemplo, Pentaho
  • compreender como utilizar diferentes ferramentas para lidar com diferentes problemas estejas na área de BI ou noutra área tecnológica
  • conhecer novas pessoas que partilham contigo do mesmo mindset

Para terminar, quero agradecer a todas as pessoas com quem tive o prazer de partilhar esta aventura, em especial às equipas de BI e Data Science com quem estive no meu dia-a-dia.

summer internships da Xpand IT
summer internships da Xpand IT
João CardosoSummer internships da Xpand IT: a minha primeira experiência profissional
read more

Sete conselhos que um júnior developer deve saber

À medida que crescemos, cada um de nós tem de decidir o que quer fazer da sua vida. “Que área profissional queremos seguir?” Se estás a ler este artigo, então provavelmente devemos ter escolhido caminhos semelhantes e este conteúdo é para ti que és um júnior developer.

Ser um software developer dá-nos a sensação de que muitas vezes podemos mudar as pessoas ou as organizações com as nossas ideias, do dia para a noite, e isso é fantástico! No entanto, quando iniciamos esta journey, ficamos extasiados com a grandeza da área tecnológica.

Paul Robinson, principal engineer na CircleCI, tem uma perspetiva interessante sobre o código, tendo partilhado num blog post:  

Just another day writing tomorrow’s legacy code. Coding for a living is learning for a living

Paul Robinson

Esta citação ilustra bem como as coisas podem mudar rapidamente no mundo tecnológico e como devemos estar realmente preparados para os múltiplos desafios que todos os dias surgem ao nível da melhoria constante da tecnologia, metodologias e necessidades das sociedades.

Chegados aqui, partilho, sete conselhos e boas práticas a ti que provavelmente és um júnior developer e estás a começar a dar os primeiros passos. Espero que consigas ter a melhor experiência possível enquanto developer, ao longo deste caminho que se inicia agora e poder ajudar com as minhas tips a concretizar esse objetivo.

Pratica os teus skills para te tornares expert

Esta é a razão pela qual o teu professor de matemática te deu tantos trabalhos de casa: a matemática tem tudo a ver com praticar. O mesmo se aplica ao software development: estás sempre em constante aprendizagem. Quanto mais praticares, mais vais aprender e melhores resultados terás. Mais importante ainda: com o tempo, estarás também mais preparado para desafios maiores e mais complexos.

A melhor forma de praticar é desafiares-te a fazer coisas diferentes e em que tens potencial para melhorar, saindo da tua zona de conforto. Cria um conjunto de mini projectos, talvez um “atalho” para te ajudar a melhorar o processo nas tuas tarefas diárias. Isto pode ajudar-te de muitas maneiras: a seres criativo, a encontrares as tuas próprias soluções, a explorares novas tecnologias e, acima de tudo, a arriscares, sem temeres possíveis erros, no caminho.

Abraça os teus erros

Não penses que estás perdido só porque falhaste no teu último compromisso. É habitual termos medo de ver o nosso código repleto de sublinhados a vermelho, concordas? Ou até pior: “E se alguém repara?” Não é o fim do mundo, acredita!

Errar é comum e devemos aceitá-lo para poderes crescer enquanto júnior developer.

Enfrentares os teus erros pode ser desafiante, mas dá-te o conhecimento necessário para não os cometeres novamente.

It’s hard enough to find an error in your code when you’re looking for it; it’s even harder when you’ve assumed your code is error-free

Steve McConnel

Para prevenir bugs, o meu conselho mais importante para ti é que definas, planeies e estrutures guidelines para o projeto que vais desenvolver.  Desta forma, vais conseguir minimizar os erros. Aqui é também importante aprenderes a utilizar ferramentas de debug, essenciais para detetares erros e perceberes como chegaste lá. Estas ferramentas ajudam-te não só a ir a fundo à origem do problema como também a planeares como resolver o bug que encontraste.

júnior developer
Rami Malek as Elliot Alderson in Mr. Robot. Gif via noluyo.tv

Diz sim aos testes

É de senso comum que quando algo está a ser criado tem de passar por várias fases: uma das mais importantes, neste caso, é testar o produto. No desenvolvimento de software, deves testar em todos os momentos do projeto. Não deixes para o fim.

Existe uma metodologia de desenvolvimento em que os testes são a base de tudo. Talvez já estejas familiarizado com a metodologia TDD (Test Driven Development) em que a primeira fase de todas é escrever test cases e só então depois criar o código capaz de passar nos test cases criados.

Naturalmente não tens de usar TDD, mas deves testar sempre, independentemente da metodologia que escolheres.

Existem várias técnicas que podes aplicar durante o processo:

  • Testes unitários, ao nível de código, ajudam-te a prevenir possíveis bugs
  • Testes de integração para garantir que a feature que estás a criar funciona corretamente com todas as outras na aplicação
  • Testes de regressão permitem-te garantir estabilidade na app quando os requisitos se alteram

Vantagens de testar

Olha para o projeto atual em que estás envolvido e criar alguns testes unitários para compreenderes como podem ser úteis.  Entre as várias vantagens, estas são algumas das que destaco, quando aplicares técnicas de teste durante um projeto:

  • consegues otimizar a qualidade do software
  • Reduzes a probabilidade de cenários inesperados
  • Certificas que estás a responder às especificações do projeto
  • Garantes a satisfação dos teus stakeholders

Dá forma ao teu código

Sam Morgan, head of product na Makers, diz algo que deves ter sempre em mente quando escreves código:

Your code has two users: the computer, and every other person who has to work with what you wrote

Sam Morgan

Isto significa que provavelmente não serás o único na equipa a trabalhar com o código que estás a criar. Mantém-no “limpo” e acessível para o próximo developer.

Vê o teu código como um conjunto de gavetas da tua secretária: mantém-nas limpas e organizadas. Partilho algumas das boas práticas para te ajudarem na manutenção e evolução do teu código:

  • Organiza o teu código o mais separadamente possível
  • Identifica, com clareza, todas as funcionalidades que vais desenvolver e cria packages para cada uma. Assim, vais melhorar a escalabilidade e a manutenção de cada uma, reduzindo possíveis impactos em outras partes da aplicacação, em que não fizeres alteações
  • Evita rescrever o mesmo código repetidamente. Compila aquelas funções que respondem a diversos propósitos, criando a tua ferramenta de utilitários que te permitirá usar em diferentes pontos do projeto.

Para além disto que estamos a falar, deves documentar objetivamente o código que escreves ao longo do projeto. É uma forma também de protegeres o teu trabalho.

No futuro, será mais fácil olhares para o mesmo e teres uma ideia clara do que fizeste para trás. Criar diagramas que te permitam ter uma visão técnica geral da tua solução é recomendável, bem como mantê-la atualizada ao longo do projeto. Documenta os passos que deste para resolver os requisitos do projeto e regista todas as alterações que fizeste. Isto vai ajudar-te a ti e a outros a ter uma ideia clara sobre a solução, simplificando o processo de manutenção.

Compreende o que estás a fazer e porque estás a fazer

Se alguém te disser para pores sal no teu café, presumo que não o irás fazer. Porquê? Porque sabes que o café não saberá tão bem e é daquelas coisas que precisas para te manteres “forte”.

Compreender o quadro geral de um projeto vai não só ajudar-te a construir uma solução mais robusta como também a compreenderes melhor como integrar todas as partes da aplicação.

Assim, tem tudo que ver com fazer uma análise do projeto apropriada, fazendo as questões necessárias para começar. Estas são algumas das questões que, eventualmente, te vão ajudar a perceber o propósito do projeto e o quão valioso serás nele:

  1. Qual é o desempenho atual da aplicação? O que está a funcionar mal?
  2. O que é preciso alterar funcionalmente para corrigir os problemas?
  3. Como é que as alterações vão afetar cenários reais do dia-a-dia?
  4. Existem outros exemplos semelhantes a este?

Do ponto de vista técnico, deves saber identificar como é que a tua solução funciona da forma como funciona. Às vezes, terás de dar o máximo para chegares lá, mas colherás frutos mais à frente. Tenta compreender como o teu código funciona como um todo, sem ficares preso ao fascínio de teres conseguido finalizá-lo com sucesso. Na verdade, não é um truque de magia. Portanto, consegues encontrar respostas mais rápidas quando algo não corre bem. Por outras palavras: dá-te a capacidade de entenderes a razão de uma tecnologia específica ser mais indicada para um objetivo do que outra ao mesmo tempo que consegues trabalhar em antecipação e prevenção.

Foca-te numa tarefa de cada vez

Sempre que estiveres numa reunião de projeto, isso significa que mais tarefas irão aparecer para adicionares ao teu backlog. Não entres em pânico, ninguém está à espera que sejas malabarista. Só precisas de ter em mente que deves focar numa tarefa de cada vez!

É quase certo que o teu project manager irá organizar tarefas por prioridade, mas mesmo em cada tarefa deves organizar os teus pensamentos e planear como fazê-lo. Podes dividir cada uma em tarefas menores, para orientares melhor o desenvolvimento. Desta forma, vais seguir um workflow passo a passo, definindo como iniciar e terminar, com sucesso.

Se és um júnior developer, mantém a mente aberta a mudanças

Sempre que estiveres numa reunião de projeto, isso significa que mais tarefas irão aparecer para adicionares ao teu backlog. Não entres em pânico, ninguém está à espera que sejas malabarista. Só precisas de ter em mente que deves focar numa tarefa de cada vez!

Tal como já partilhei no início do artigo, as tecnologias alteram-se constantemente. O que sabemos hoje pode já não ser verdade a curto-prazo. A tecnologia que utilizas agora vai, provavelmente, ser substituída por outra nova tendência, uma tecnologia disruptiva que vem mudar a forma como trabalhamos.

No entanto, para os júniores como tu, estas alterações podem ser mais “dolorosas”. Porque ainda agora estás a iniciar esta jornada e não apenas tu como também os teus managers terão de perceber aquilo que melhor se adequa ao teu perfil, para poderes trabalhar o teu potencial.

Não tenhas medo de mudar de uma tecnologia para outra ou até mesmo de uma unidade de negócio para outra. Isso significa que terás a possibilidade de aprender muitas coisas diferentes e saberes aquilo que verdadeiramente mais te apaixona. Continua com o bom trabalho, abraça a mudança e encara isso como o próximo passo para fazeres evoluir os teus skills.

Conclusão

Se chegaste até aqui no artigo, é porque provavelmente (espero) foi útil para ti. Ser um software developer é um desafio por inteiro. Confia em mim, as tuas dúvidas e medos, por esta altura, não são só tuas. Aposto que quase todas as pessoas na nossa área profissional sentem ou sentiram a dada altura o mesmo que tu. Mas vais ter de começar por algum lado. Confia em ti e nas tuas capacidades, não tenhas medo de explorar e mantém esse espírito aberto de querer sempre aprender.

Luís SimõesSete conselhos que um júnior developer deve saber
read more

Power Platform World Tour: A nossa experiência

Na última semana de agosto, a Xpand IT rumou mais uma vez a Londres onde nos dias 28 e 29 teve lugar a primeira paragem europeia na Power Platform World Tour de 2019. Partimos de Lisboa com algumas expetativas que tínhamos a esperança que fossem cumpridas: fomos com vontade de conhecer ainda melhor esta plataforma que está a experienciar um crescimento muito interessante e ainda perceber um pouco melhor o que nos reserva o seu futuro.

Para aqueles que não estão totalmente familiarizados com a Power Platform, interessa esclarecer que esta é uma plataforma que agrega 3 produtos Microsoft que, juntos, dão vida a uma plataforma que promete dinamizar e promover a Transformação Digital das empresas. As PowerApps, o Flow e o PowerBI são as ferramentas que permitem a digitalização e automatização de processos internos e têm um potencial enorme para transformar a forma como as empresas gerem os seus processos e tomam as suas decisões. Com estas ferramentas, as empresas conseguirão tomar decisões informadas com agilidade e com processos baseados em tecnologia, com todas as vantagens que daí advêm.

O Evento

Mas voltando a Londres… foram dois dias recheados de conteúdo interessante, onde foi possível encontrar a crescente e entusiasta comunidade da Power Platform, explorar os desafios que diferentes indústrias estão a responder com as PowerApps e, não menos importante, receber uma dose de inspiração com as soluções apresentadas e a forma como várias empresas estão já a tirar partido destas tecnologias. Com o The Shard como pano de fundo, o evento foi um encontro da comunidade e uma partilha genuína de experiências… De facto, uma das mensagens mais poderosas da Microsoft é a simplicidade de utilização desta plataforma. Quando dizem que todos nós podemos construir uma app com as PowerApps e o Flow, é mesmo verdade. Com esta solução, tanto developers como utilizadores de negócio têm as ferramentas certas e estão capacitados para obter melhores resultados na sua empresa ao construírem apps. Esta não é uma ferramenta que, de um momento para o outro, possa ser utilizada para resolver todo e qualquer problema. Mas é, sem dúvida, possível endereçar alguns dos desafios que as empresas enfrentam hoje em dia através de um conjunto de tecnologias extremamente poderosas.

Um dos momentos altos do evento foi a possibilidade de ouvir em primeira mão o que a Microsoft tem a dizer sobre a evolução de todos estes produtos e aquilo que o futuro reserva, especialmente no que toca a melhorias e novas funcionalidades que estarão disponíveis para todos os utilizadores já a partir do próximo dia 1 de outubro. O AI Builder é um exemplo de uma das novas funcionalidades com que podemos contar com esta plataforma: com capacidades como classificação binária, deteção de objetos e processamento de formulários passa a ser mais fácil incluir os serviços cognitivos da Microsoft nas business applications, oferecendo-lhes uma camada de inteligência que até então não estava ao alcance das aplicações que eram criadas através das PowerApps. É todo um conjunto de novas funcionalidades – mais de 400 nos últimos 6 meses segundo foi partilhado – que permitirão o aparecimento de um número crescente de Citizen Developers.

Outro dos pontos mais relevantes do evento esteve relacionado com a forma como este tipo de iniciativas terá de ser gerido nas empresas em parceria com o departamento de IT. É certo que existem muitas vantagens em colocar o poder de criação de uma aplicação nas mãos de qualquer utilizador – aliás, hoje em dia estes mesmos utilizadores já usam o Excel e o Access para resolver muitas questões – mas tem de se garantir que o tema de Enterprise Management é devidamente endereçado. E, mais do que tudo, tem de se olhar para estas iniciativas de uma forma programática: a sua adopção terá de ser promovida continuamente para que não sejam consideradas apenas como um projectos one-shot.

Confirmámos também as nossas suspeitas acerca do crescimento sem precedentes da plataforma: crescimento de 700% de apps em produção só no último ano e mais de 2 milhões e meio de developers activos mensalmente na Power Platform. Estes são números surpreendentes que nos mostram que o mercado de low-code está a crescer: a Gartner e a Forrester nomearam as Microsoft PowerApps como líderes de mercado. É caso para dizer que o futuro parece ser risonho para as PowerApps e restante Power Platform.

Em conclusão

Em resumo, podem esperar mais novidades acerca das PowerApps muito em breve. O evento foi uma oportunidade excelente de vermos inovação em movimento no espaço interno das empresas e aprendermos com as múltiplas experiências da comunidade. Voltámos a Lisboa com a certeza que a proposta de valor das PowerApps para cenários de empowerment interno é muito interessante e que nesse sentido, podem complementar a nossa própria oferta de mobile development, tanto no que toca ao desenvolvimento multiplataforma (Xamarin) como no desenvolvimento puramente nativo.

Em termos estratégicos, a nossa visão para Customer Facing apps não passa por ferramentas de low-code. No entanto, vemos um potencial interessante quando nos focamos em cenários internos e de Employee Empowerment. Mais novidades em breve!

Filipa MorenoPower Platform World Tour: A nossa experiência
read more

Iniciativas 2º semestre: onde vamos estar?

O 2º semestre começa em setembro e nós, apesar de ainda estarmos em julho, já estamos a preparar a nossa presença em alguns eventos de referência. Como é hábito, a Xpand IT faz questão de participar em eventos organizados por outras empresas de referência, porque demonstrar o nosso expertise é um dos nossos grandes objetivos ao longo do ano. Para além disso, queremos sempre estar onde está a inovação. Por isso é importante para nós compreender as novas tendências, discutir novas tecnologias com os nossos pares e descobrir novas abordagens.

DSPA Insights: 19 e 20 de setembro

O primeiro evento no qual estaremos presentes será o DSPA Insights 2019. Este é um evento organizado pela Associação Portuguesa de Data Science, cujo foco principal é debater o que de melhor se faz nas áreas de data science e de inteligência artificial, tanto a nível nacional como a nível internacional. Esta será a segunda edição desta conferência, que se irá realizar no campus da Nova SBE, nos dias 19 e 20 de setembro.

Porque este ano lançámos a nova unidade de Data Science, faz sentido para a Xpand IT marcar presença neste evento, abordar diferentes formas de encarar diferente projetos que tem vindo a desenvolver e apresentar alguns pontos de vista em relação a esta nova área de atuação, através de uma apresentação com o título: Operationalize Dara Science Solutions – How to tackle Enterprise Challenges.

IDC Directions 2019: 17 de outubro

A segunda conferência externa na qual iremos participar será organizada pela IDC e é, hoje em dia, um evento de referência na área das tecnologias de informação em Portugal. O IDC Directions 2019 decorrerá no dia 17 de outubro, no Centro de Congressos do Estoril – à semelhança das edições dos anos anteriores – e, para 2019, o mote é: Multiplied Innovation: Scaling a Technology Revolution.

São esperados mais de 1400 participantes, e cerca de 30 oradores de várias empresas de referência em Portugal, entre os quais Serge Findling, Vice President of Research, Digital Transformation da IDC; Heath Salwner, Start with Why Igniter (Simon Sinek Disciple).

Como habitual, a Xpand IT estará presente enquanto Silver Expositor, e terá um stand no piso superior, no qual garantirá dinâmicas sempre voltadas para as áreas tecnológicas em que atua.

Web Summit 2019: 4 a 7 de novembro

A Web Summit é já uma conferência de referência mundial, na qual as maiores tecnológicas se juntam para inspirar, apresentar inovações, e fomentar negócio. Este é um evento que se caracteriza por juntar alguns dos melhores oradores do mundo, provenientes de várias áreas, mas também grandes investidores e empresários, que procuram apostar em novas tecnologias ou em start-ups promissoras.

A Xpand IT estará, mais uma vez, presente nesta conferência, este ano com um espaço maior, mais interativo, e com a promessa de novas dinâmicas. Visitem-nos no stand, conheçam os nossos projetos, e levem convosco os nossos brindes!

Ana PaneiroIniciativas 2º semestre: onde vamos estar?
read more

O Tableau 2019.3 está lançado, vamos ver as novidades!

O Tableau é um software que ajuda as pessoas a ver e entender os dados, transformando a forma como é utilizado para ajudar a resolver os seus problemas. Torna a análise de dados rápida e simples, esteticamente mais apelativa e útil, para que seja possível que os dados tenham verdadeiro impacto.

Este é o objetivo de Tableau: transformar dados em valor nos negócios, para que possa revelar um impacto positivo nos mesmos.

Existe agora uma nova versão a ser lançado, o Tableau 2019.3 Beta, e, ao instalar esta versão, podemos ver novas e interessantes capacidades. Ao utilizar esta nova versão conseguimos melhorar os nossos objetivos. Em baixo, distingui as características mais interessantes:

  • Explain Data – uma nova característica que nos ajuda a entender o “porquê” de existirem valores inesperados nos dados;
  • Tableau Catalog – uma nova característica no Add-on Data Management que nos ajuda a garantir que estamos a utilizar os dados certos, no momento certo.

Explain Data

O Explain Data existe para nos fornecer explicações, através do método estatístico Bayesian, para valores inesperados nos dados. Com esta nova função é possível identificar causas e ver novas relações entre os dados, e encontra-se disponível em todos os workbooks existentes, tanto para Creators como para Explorers. Não é necessário preparar os dados ou efetuar qualquer instalação.

É muito simples: selecione uma marca e aprenda mais sobre ela.

A figura abaixo apresenta uma possível explicação dos dados, extraída de uma marca selecionada.

Neste exemplo, estamos a analisar uma visualização sobre determinados produtos e o seu lucro médio. Podemos verificar que o produto Copiers apresenta um lucro muito superior aos restantes produtos. Com o Explain Data, percebemos que isto acontece porque existe um valor muito elevado nos registos deste produto que fazem aumentar estas medidas. Esta característica também apresenta algumas visualizações sobre relacionadas com esta explicação, como a primeira tabela que apresenta o registo onde se verifica um valor superior.

O painel apresentado nesta nova feature apresenta os seguintes componentes:

  1. Selecionar a Informação Marcada – indica que marca está a ser descrita e analisada;
  2. Medir a Seleção – mostra as medidas disponíveis para selecionar a que está a ser utilizada para a explicação;
  3. Resumo do intervalo esperado – descreve se o valor é inesperado ou não, tendo em conta as outras Marcas na visualização;
  4. Lista de Explicação – exibe uma lista das possíveis explicações para o valor alterado na Marca Selecionada. A seleção de uma explicação na lista irá mostrar mais detalhes no painel Explicação, à direita;
  5. Painel Explicação – mostra a explicação selecionada com uma combinação de texto e visualizações.

Tableau Catalog

Esta nova característica pretende ajudar as organizações a melhorar a forma como gerem os seus dados, porque, atualmente, é muito difícil para os utilizadores perceber se estão a utilizar os dados certos, no momento certo. Esta é uma nova feature que estará disponível no Tableau Server e no Tableau Online.

Com o Tableau Catalog é fácil ter uma visualização completa de todos os dados que estão a ser utilizados no Tableau, e como estão contactados com o analytics. Os detentores dos dados conseguem automaticamente identificar informação nos dados, incluindo permissões, métricas e lineares, como mostrado na figura abaixo.

Neste exemplo, podemos ver que com esta característica é como se olhássemos para um catálogo de dados, sobre uma base de dados. Podemos ver avisos, que aparecem caso existam erros na qualidade dos dados (a), tais como campos ausentes, e podemos também ver lineares sobre os dados (b), tais como que tabelas estão relacionadas, e em que workbooks e sheets estão esses dados a ser utilizados.

O Tableau Catalog permite, ainda, construir uma relação de confiança nos dados utilizados por toda a empresa, já que cria um painel de com detalhes dos dados (como podemos ver na figura abaixo):

  • Avisos sobre a qualidade dos dados, que permite aos utilizadores perceberem quando existe um problema com os dados presentes num dashboard – como um campo ausente ou uma interrupção de manutenção;
  • Definições e metadados adicionais podem ser utilizados, permitindo aos utilizadores um melhor entendimento dos dados em si.

Estes detalhes dos dados estão incluídos nos dashboards, permitindo, por sua vez, aos utilizadores e viewers entenderem a fonte e a linearidade dos dados dentro de uma visualização.

Em conclusão, com estas novas features, o Tableau pretende:

  • Eliminar conteúdo duplicado, perdas de tempo e a prevenção de análises efetuadas com base em dados errados (através do Tableau Catalog). Com os avisos sobre a qualidade dos dados, o utilizador consegue controlar a existência de erros nos valores e resolver o possível problema. Uma das maiores mudanças é a possibilidade de ver todas as fontes de dados que estão a ser utilizadas, o que evita a publicação duplicada dos dados;
  • Garantir explicações rápidas para valores inesperados nos dados através do Explain Data. Esta característica oferece maior detalhe sobre os dados, especialmente sobre os outliers, e permite a exploração de outros cenários que podem ser futuramente investigados ou analisados, reduzindo tempo de análise – especialmente quando existe um data set com um enorme volume de dados.

Com estas novas features, o Tableau evolui, tornando-se mais forte no mercado, trazendo características únicas, quando comparado com os seus competidores. Isto é, sem dúvida, uma vantagem porque, hoje em dia, existem inúmeras soluções que se encontram a evoluir, tornando-se necessário fazer efetivamente a diferença.

Para mais informação e mais detalhes sobre as novas características do Tableau 2019.3, aceda ao link.

Carina MartinsO Tableau 2019.3 está lançado, vamos ver as novidades!
read more

Single Page Applications

Atualmente, as aplicações web estão a tomar conta das velhas aplicações de ambiente de trabalho e trazem consigo vantagens, tais como a dissociação de qualquer dispositivo e a conveniência de utilização. A procura de aplicações web ricas, complexas, mas de fácil utilização, cresce todos os dias. Em par com esta procura e também a ganhar cada vez mais popularidade nas tendências de desenvolvimento web estão as aplicações de página única.

Uma aplicação de página única (sigla em inglês: SPA) é uma aplicação que interage com o utilizador ao reescrever a página atual de forma dinâmica em vez de carregar uma página completamente nova a partir de um servidor. Tal resulta numa experiência mais confortável para o utilizador e que não é constantemente interrompida pela sucessiva navegação entre páginas.

Contexto – aplicações tradicionais de várias páginas

As aplicações de várias páginas (sigla em inglês: MPA) são as aplicações web “tradicionais” que recarregam e apresentam uma página completamente nova como o resultado de uma interação entre o utilizador e a app. Todas as interações do utilizador – tais como clicar num link ou trocar um URL – e todas as trocas de dados de e para o servidor formam um novo pedido para uma nova página a ser apresentada. Este processo demora tempo e pode ter efeitos pouco positivos na experiência de utilização, se pretender uma aplicação interativa e de rápida resposta.

Este comportamento predefinido das MPA pode ser resolvido ao tirar partido do AJAX, que permite que apenas uma parte da página seja atualizada. No entanto, temos de ter em atenção a complexidade adicionada por esta solução ao processo de desenvolvimento.
Uma MPA costuma utilizar JavaScript (JS) em front end para adicionar interatividade à aplicação, mas não depende de JS para apresentar o conteúdo da página. Tal torna uma MPA numa arquitetura que é adequada ao suporte de navegadores legados que costumam oferecer uma funcionalidade de JS mais limitada.

A grande vantagem de uma MPA assenta na otimização de motores de busca (sigla em inglês: SEO). Quando um pedido é feito ao servidor para apresentar uma nova página, a resposta é o conteúdo final para essa página. As ferramentas dos motores de busca conseguem ver exatamente o que o utilizador vê, por isso, a aplicação vai ter um bom desempenho no motor de busca. Esta é uma das grandes razões para alguns dos grandes websites, como a Amazon e o The New York Times, ainda utilizarem esta arquitetura.

Por outro lado, as aplicações desenvolvidas com esta arquitetura tendem a ser maiores e mais lentas, ao carregar constantemente páginas a partir do servidor, o que afeta a experiência de utilização de forma negativa. De uma perspetiva de desenvolvimento, o processo tende a ser mais complexo e pode resultar numa dissociação entre back end e front end.

O crescimento das aplicações de página única

Como o nome indica, uma SPA só tem uma única página. O Código necessário para apresentar a aplicação é encontrado em apenas um carregamento. Após este carregamento inicial, não é acionada qualquer atualização da página, não existem novos ficheiros HTML a serem transferidos do server. Em vez disso, a aplicação reapresenta partes da página enquanto resultado de qualquer navegação no navegador. Toda a comunicação que se segue entre a aplicação e o servidor tem apenas o objetivo de encontrar e publicar dados de e no servidor, e acontece tudo nos bastidores utilizando API bem definidos dos serviços de back end.

As SPA assentam fortemente em JS para conseguirem ouvir os eventos e reapresentar partes da página. Acontece tudo através de JS. Este tipo de arquitetura é dependente de JS e não há volta a dar. Por causa disto, as SPA privilegiam navegadores modernos que oferecem um suporte de JS mais vasto e atualizado.

O comportamento de uma SPA torna uma aplicação muito rápida e de rápida resposta, oferecendo ao utilizador uma experiência interativa semelhante utilizando um dispositivo móvel ou um computador. Da perspetiva do desenvolvimento, conseguimos dissociar o back end e o front end. O back end já não é responsável por apresentar a visão, e a comunicação entre os dois módulos abrange apenas as trocas de dados. O processo de deploy também é muito mais simplificado.

O problema com as SPA prende-se no desafio colocado ao desenvolver a aplicação SEO-friendly. Dado que a maioria do conteúdo da página é carregado assincronamente, as ferramentas dos motores de busca não têm maneira de saber que mais dados vão ser adicionados à página. Não existe uma única solução predefinida para resolver este obstáculo, mas existem algumas ferramentas que podem ser utilizadas para criar uma SPA que seja SEO-friendly. Também é provável que as estruturas de SPA vão evoluir com o tempo para que seja mais fácil para as ferramentas dos motores de busca encontrarem e organizarem o conteúdo da aplicação.

As aplicações de página única são o futuro da web?

Este tipo de aplicações existe há anos, mas só agora está a tornar-se mais comum do mundo dos programadores. Isto deve-se principalmente à aparência e à crescente popularidade das estruturas e bibliotecas web que permitem desenvolver SPA fora do comum de forma rápida e eficiente, tais como Angular e React. Se compararmos a evolução de tendências nestes termos, é possível ver que a popularidade das SPA, Angular e React, evoluíram proporcionalmente ao longo do tempo.

As SPA têm vindo a tornar-se cada vez mais populares, e parece que não vão desaparecer tão cedo. As vantagens técnicas e funcionais das SPA serem SEO-friendly não podem ser ignoradas, e espera-se que este tipo de aplicações se torne disponível mais frequentemente, especialmente com a evolução das tecnologias envolvidas e, com sorte, a resolução de alguns dos obstáculos das SPA. No entanto, precisamos de reconhecer que, de momento, uma SPA pode não ser a solução certa para todos os projetos.

Algumas características das MPA tornam este método mais adequado para aplicações que tenham muito conteúdo em categorias diferentes e onde o desempenho de um motor de busca seja muito importante, tal como em lojas online ou marketplaces. As SPA são adequadas para plataformas dinâmicas, possivelmente com uma componente móvel onde uma interface complexa e uma experiência de utilização satisfatória e reativa sejam fatores essenciais a ser considerados, tais como em redes sociais ou comunidades fechadas. Existe uma Terceira possibilidade para quem gosta das SPA e das suas características, mas não consegue encaixar a sua aplicação uma só página: considerando uma aplicação híbrida, pode tirar o melhor dos dois métodos.

Nenhuma arquitetura é certa ou errada. Só precisa de saber as suas necessidades e escolher a melhor solução para si e para a sua aplicação.

Patrícia PereiraSingle Page Applications
read more

Apache Spark: como criar um processamento distribuído eficiente?

No dia 30 de maio a XTech Community promoveu uma sessão hands-on para explicar à comunidade como criar um processamento distribuído eficiente com Spark, demonstrando as suas vantagens em relação a Hadoop MapReduce.

Mas antes de mais, o que é Spark? É uma framework de processamento paralelo e distribuído, que nos últimos anos tem sido um dos projetos mais ativos na área de Big Data, tanto na utilização como contribuição pela comunidade open source.

As Funcionalidades de Apache Spark

Como principais vantagens em relação ao Hadoop MapReduce foram apresentadas a facilidade da escrita de jobs compostos por múltiplos passos, através da API de Spark baseada em programação funcional bem como a capacidade de guardar os dados intermédios em memória.

Apache Spark

As funcionalidades oferecidas pelo Apache Spark foram introduzidas através das suas bibliotecas embutidas, implementadas por cima do Spark Core Engine, e pela possibilidade de usar bibliotecas externas disponíveis no repositório de Spark Packages.

Apache Spark

Conceitos de Spark Core

Após à introdução, o foco da apresentação passou para os conceitos importantes de Spark Core, tendo-se explicado:

  • em que consiste o programa Driver escrito pelos developers,
  • a abstração de RDD que permite paralelizar a execução de operações sobre datasets distribuídos
  • os tipos de operações aplicáveis sobre os RDDs: actions e

Através de um exemplo de word count em Spark, demonstrou-se a facilidade da escrita de um primeiro job e quais os componentes envolvidos.

Apache Spark

Foi também apresentado o resultado da execução do word count na Spark UI –  interface web disponibilizada para monitorizar a execução de aplicações Spark, que permitiu explicar o significado das unidades de execução física em quais uma aplicação de Spark se divide: Job, Stage e Task.

Apache Spark

Particionamento

O seguinte tópico abordado no meetup Spark Intro and Beyond foi o particionamento do Apache Spark. O número de partições de um RDD depende diretamente do particionamento dos dados na origem e de algumas possíveis parametrizações.

É importante perceber como funciona o particionamento uma vez que o número de partições de um RDD determina o paralelismo da execução das operações distribuídas e o seu controlo permite escrever aplicações mais eficientes, utilizando da melhor forma maneira os recursos do cluster.

Apache Spark

Abordámos quatro técnicas para aumentar o paralelismo da execução:

  • Através do 2º parâmetro da função sc.textFile(“hdfs://…”, 120)
  • Aumentando o número de partições do tópico de Kafka lido
  • Através do 2º parâmetro das wide transformations, e.g rdd.reduceByKey(_ + _, 100)
  • Através da função rdd.repartition(120)

Redução do Shuffle Data

Por fim, mostrámos 3 técnicas que minimizam a quantidade de dados que são enviados entre dois Stages de um Job, que se designa por shuffle data, e permite aumentar a desempenho da aplicação.

Shuffles em Spark são muito pesados porque os dados são enviados em rede entre os Executors de Spark que residem em diferentes nós do cluster, e escritos para e lidos de disco pelos Executors do mesmo nó.

As técnicas apresentadas para reduzir shuffle data foram:

  • Uso de operações com pré-agregação, e.g reduceByKey vs groupByKey
  • Aplicar operações sobre RDDs previamente particionados e cached
  • Broadcast Joins

Conclusões

No final, para além de serem esclarecidas algumas dúvidas sobre a apresentação, foram também discutidos vários pontos relevantes como:

  • Data locality e a integração do Spark em clusters Hadoop
  • Cenários nos quais faz sentido aplicar processamento em Spark
  • Possíveis razões de um Spark job ter um elevado tempo de execução e como diagnosticar através da Spark UI

Mais informações sobre o meetup Spark Intro and Beyond.

Andriy Zabolotnyy

Big Data expert, Xpand IT

Andriy ZabolotnyyApache Spark: como criar um processamento distribuído eficiente?
read more

Novo mercado estratégico: chegámos à Suécia!

A Xpand IT é uma empresa portuguesa, com capital português, e a dimensão nacional que já atingiu é, de facto, extraordinária. Terminou o ano de 2018 com um crescimento de 45% e uma faturação a rondar os 15 milhões de euros, o que levou à distinção alcançada no ano de 2019 no Ranking do Financial Times (FT1000: Europe’s Fastest Growing Companies). A Xpand IT foi uma das três tecnológicas portuguesas a estar presente neste importante Ranking.

No entanto, na Xpand IT queremos crescer sempre mais. Queremos partilhar o nosso expertise pelos quatro cantos do mundo e levar um pouco da nossa cultura a todos os nossos clientes. E a verdade é que a participação internacional da Xpand IT tem também crescido substancialmente, tendo fechado o ano anterior com um total de 46,5% das suas receitas provenientes de clientes internacionais.

Este crescimento tem sido sustentado por dois fortes eixos de atuação: a exploração de mercados estratégicos, como por exemplo, Alemanha e Reino Unido (onde já temos uma subsidiária e escritório) mas também pela forte alavancagem a nível de produto que se tem registado. O Xray e o Xporter, ambos bastante associados ao ecossistema Atlassian, são utilizados por mais de 5000 clientes, em mais de 90 países! Para este ano estão previstos lançamentos de novos produtos, em áreas como Inteligência Artificial (Digital Xperience) ou Business Intelligence.

Este ano, a estratégia de internacionalização da Xpand IT passa por apostar em novos mercados estratégicos na Europa: os países nórdicos. A Suécia será o primeiro país a estar sob foco, mas o objetivo é alargar as iniciativas aos restantes: Noruega, Dinamarca e Finlândia.

Esta aposta prende-se com o facto de já existirem diversas iniciativas comerciais neste mercado, e pelo incentivo de alguns dos nossos parceiros, como a Microsoft, Hitachi Vantara ou Cloudera, que já se encontram bem estabelecidos em países como a Suécia. Para além disso, o facto de as barreiras culturais e diferença horária não serem significativas, faz com que esta seja uma das nossas apostas para o ano de 2019.

Para Paulo Lopes, CEO & Senior Partner da Xpand IT: “Temos um enorme orgulho no crescimento que a empresa tem alcançado nos últimos anos e a nossa expectativa é que este sucesso se continue a verificar. O processo de internacionalização da Xpand IT já conta com alguns anos, sendo estamos a entrar numa 2ª fase, onde iremos apostar mais fortemente novos mercados onde sabemos que a nossa expertise tecnológica, aliada a uma equipa e cultura únicas, podem realmente fazer a diferença. Acreditamos que a Suécia é a aposta certa para a entrada no mercado dos países nórdicos. Em breve iremos dar mais novidades sobre esta aposta!…”

Ana LamelasNovo mercado estratégico: chegámos à Suécia!
read more

Zwoox – Simplifica a ingestão de dados

O Zwoox é uma ferramenta de ingestão de dados, desenvolvida pela Xpand IT, e que facilita a importação e estruturação de dados para um cluster Hadoop.

Esta é uma ferramenta altamente escalável dado que se encontra totalmente integrada no Cloudera Enterprise Data Hub e tira total proveito de várias tecnologias Hadoop, como Spark, Hbase e Kafka. Com o Zwoox a necessidade de codificar data pipelines “à mão” é eliminada, qualquer que seja a fonte de dados.

Uma das maiores vantagens do Zwoox é o facto de acelerar a ingestão de dados, oferecendo inúmeras opções no que à importação de dados diz respeito permitindo inclusive replicar RDBMS DML em near real-time para estruturas de dados Hadoop.

Apesar de existirem várias ferramentas que permitem a importação de dados para clusters Hadoop, só com o Zwoox é possível efetuar esta importação de forma acessível, eficiente e altamente escalável, persistindo os dados em HDFS (com tabelas Hive) ou Kudu.

Algumas das possibilidades que o Zwoox oferece:

  • Automação de particionamento em HDFS;
  • Tradução de data types;
  • Carregamento total ou por deltas;
  • Tabelas de audit (com full history) sem impactos na performance;
  • Derivação de novas colunas de funções pré-definidas ou código “pluggable”;
  • Integração operacional com o Cloudera Manager.

Esta ferramenta encontra-se disponível no Cloudera Solutions Center e estará brevemente no site da Xpand IT. Por enquanto, pode também consultar o documento informativo sobre o produto.

Se precisa de saber mais sobre o Zwoox ou sobre ingestão de dados, contacte-nos.

Ana LamelasZwoox – Simplifica a ingestão de dados
read more

Tecnologia biométrica de reconhecimento

Hoje, mais do que nunca, é fundamental que os utilizadores se sintam seguros ao utilizar um serviço, uma aplicação móvel ou a efetuar a inscrição num website. A prioridade para estes utilizadores é saber que os seus dados estarão, de facto, protegidos. Desta forma, a tecnologia biométrica de reconhecimento desempenha um papel fundamental, já que é uma das formas mais seguras e eficazes de autenticar o acesso dos utilizadores aos seus dispositivos móveis, às suas contas pessoais de e-mail ou mesmo às suas contas bancárias online.

A biometria tem-se tornado, então, uma das formas mais rápidas, seguras e eficazes de oferecer proteção aos indivíduos, não só por ser um dos requisitos de autenticação de cada pessoa enquanto cidadão de um país – ou não fosse a impressão digital um dos dados recolhidos e armazenados para efeitos de documentação legal – como por ser a maneira mais casual (e fiável) de proteger os nossos telemóveis. As vantagens de utilização de tecnologia biométrica de reconhecimento são, então, a eficácia, a precisão, a conveniência e a escalabilidade.

Nas TI, a biometria encontra-se maioritariamente ligada à verificação da identidade de alguém, através das suas características físicas ou comportamentais – impressão digital, reconhecimento facial, reconhecimento de voz ou mesmo a identificação da retina/ íris. Refere-se, então, a tecnologias que medem e analisam as características do corpo humano como forma de permitir ou negar acessos.

Mas como funciona esta identificação no backend? É utilizado um software que identifica pontos específicos dos dados apresentados, que são como pontos de partida. Estes pontos de partida são processados e transportados até uma base de dados que, por sua vez, utiliza um algoritmo que converte as informações num valor numérico. É este valor que irá ser comparado com a entrada biométrica registada do utilizador que o scanner detetou, e a sua autenticação é aprovada ou negada, consoante exista correspondência ou não.

O processo de identificação pode ser efetuado de duas formas: comparação de um-valor-para- muitos ou de um-valor-para-um. O processo de identificação de um-valor-para-muitos acontece quando uma amostra de um utilizador é submetida num sistema e comparada com amostras de outros indivíduos; já o processo de autenticação de um-valor-para-um funciona com apenas um utilizador, comparando os dados fornecidos com os dados anteriormente submetidos – como acontece  nos nossos dispositivos móveis.

Existem inúmeros tipos de leitura biométrica, sendo que estes são os mais comuns:

  1. Impressão digital (uma das tecnologias biométricas de identificação mais utilizadas e mais económicas, já que apresenta um grau de precisão bastante considerável. Na verificação de uma impressão são analisados vários pontos do dedo, como terminações e arcos únicos). Exemplos: aplicações Médis, MBWay ou Revolut;
  2. Reconhecimento facial (através de uma imagem facial do utilizador, constituída por vários pontos de identificação da face, é possível definir distâncias entre olhos e nariz, por exemplo, a estrutura óssea e os contornos de cada componente do rosto. Esta forma de leitura pode apresentar falhas consoante o utilizador tenha óculos de sol ou barba). Exemplo: Face ID da Apple;
  3. Reconhecimento de voz (a identificação é feita através de uma análise aos padrões de voz de cada indivíduo, juntando uma combinação entre fatores físicos e comportamentais. No entanto, não é das formas de reconhecimento mais fiáveis). Exemplos: Siri, da Apple, ou Alexa, da Amazon;
  4. Identificação pela íris/ pela retina (menos utilizada, a identificação pela íris/ retina acontece com o armazenamento dos contornos e padrões geométricos existentes – no caso da íris – e com a identificação de um indivíduo através de vasos sanguíneos no fundo dos olhos – no caso da retina. A garantia de fiabilidade é muito elevada, mas o custo é muito alto, o que faz com que não seja utilizada de forma massiva). Leia este artigo sobre identificação de identidade no setor da banca;
  5. Estilo de escrita (biometria comportamental baseada no tipo de escrita) (por fim, outra forma de autenticar um utilizador, é através da sua escrita – por exemplo, uma assinatura – já que a pressão no papel, a velocidade de escrita ou os movimentos exercidos no ar são muito difíceis de imitar. Esta é uma forma de autenticação mais antiga, utilizada fundamentalmente pela banca). Veja o artigo sobre a Read API, Microsoft Azure.
Ana LamelasTecnologia biométrica de reconhecimento
read more