Páginas

Mostrando postagens com marcador desenvolvimento de software. Mostrar todas as postagens
Mostrando postagens com marcador desenvolvimento de software. Mostrar todas as postagens

26 de ago. de 2016

Conheça 3 cursos grátis para começar a explorar machine learning - IDG Now!

Conheça 3 cursos grátis para começar a explorar machine learning - IDG Now!



A inteligência artificial assumiu status de vetor das grandes transformações previstas para a próxima década. A lista de tecnologias emergentes divulgada recentemente pelo Gartner reforça que os algoritmos de aprendizado de máquina terão papel fundamental no sucesso das organizações digitais. 
“Estamos mergulhando em uma nova era da informação e da computação. É um novo mundo com habilidade de compreender o ambiente e as pessoas, provendo conclusões realmente significativas... uma forma diferente de usar tecnologia”, pronunciou Steve Ballmer, pouco depois de deixar o comando da Microsoft. 
É importante aproveitar que essa onde ainda encontra-se em estágio de formação para encontrar a melhor maneira de surfa-la. Pensando nisso, separamos três cursos online e gratuitos sobre machine learning para ajudá-lo a seguir nessa jornada.
A ideia aqui é aprender fazendo. O plano de aula ensina o processo de investigação de dados através do aprendizado de máquina. Pelo programa, é possível utilizar e avaliar os algoritmos, identificar casos de uso do conceito e entender como resolver problemas do mundo real.
A Aprendizagem Automática é a ciência que faz com que os computadores exerçam seu papel de forma natural sem que pareçam explicitamente programados para tal. Na última década, essa disciplina ajudou no desenvolvimento de carros autônomos e compreensão do genoma humano. Atualmente, está tão difundida, que você provavelmente a utiliza várias vezes ao dia sem que perceba. 
Este curso mostrará técnicas mais eficazes de aprendizagem automática, colocá-las em prática e ver como adequar essas técnicas para suas necessidades. O mais importante é que você não aprenderá apenas na teoria e sim terá o conhecimento prático necessário para aplicar o que aprender de forma rápida e exitosa e solucionar os problemas em seus projetos.
A ideia é ensinar princípios fundamentais de aprendizado de máquinas e a importância dos algoritmos dentro desse conceito. Esse curso dará noções básicas para compreender e pensar aplicações para o conceito usando análises preditivas. O programa contempla desde temas abrangentes até exemplos práticos de uso de machine learning em indústrias específicas, como o setor de saúde, por exemplo.

25 de ago. de 2016

11 ferramentas abertas para machine learning que vão facilitar sua vida - IDG Now!

11 ferramentas abertas para machine learning que vão facilitar sua vida - IDG Now!



Filtros de spam, reconhecimento facial, motores de recomendação. Quando se tem um grande volume de dados capazes de alimentar sistemas preditivos ou reconhecer padrões, usar esse recurso em projetos de aprendizado de máquinas (machine learning) pode ser um ótimo caminho a seguir. 

Essa ciência, no qual os computadores são treinados a aprender, analisar e agir sobre registros ganha cada vez mais relevância no mercado, especialmente dentro do mundo acadêmico e em círculos de programadores de alta performance.
O aumento da popularidade vem à reboque não só do barateamento de hardware, mas da proliferação de software livre que exploram recursos direcionados ao machine learning. A seguir, apresentamos 11 ferramentas capazes de fornecer funcionalidades tanto para aplicativos individuais quanto para estruturas inteiras. Confira. 


Scikit-learn  

Python se transformou em uma ótima linguagem de programação com recursos de matemática, ciências e estatística devido a sua facilidade de adoção e amplitude de bibliotecas disponíveis, que permite que seja usado para criação de praticamente qualquer aplicação. Os níveis de aprendizagem do Schikit possibilitam construir soluções sobre pacotes existentes em Python – como NumPy, SciPy e matplotlib. 
As bibliotecas resultados podem ser usadas para aplicações interativas em uma “bancada de trabalho” ou serem incorporadas em outros softwares, com reutilização. O kit está disponível por meio de uma licença BSD, totalmente aberta e reutilizável. 
Projeto: scikit-learn 
GitHub: https://github.com/scikit-learn/scikit-learn


Shogun 
Entre as mais antigas e veneráveis bibliotecas de aprendizado de máquina está o Shogun, que nasceu em 1999 escrito em C++, mas que já não se limita apenas a trabalhar em C++ . Graças à biblioteca SWIG, a ferramenta pode ser usada de forma transparente em linguagens e ambientes como Java, Python, C#, Ruby, R, Lua, Octave e Matlab. 
O Shogun tem um concorrente também em C++, a biblioteca baseada em machine learning, Mlpack, que ganhou espaço a partir de 2011 e que traz vantagens de ser mais rápida e fácil de trabalhar (pois carrega um conjunto mais integral de APIs) frente a seus competidores.
Projeto: Shogun 
GitHub: https://github.com/shogun-toolbox/shogun


Accord Framework/AForge.net 
O Accord, um framework para aprendizado de máquinas e processamento de sinais em .Net é uma extensão de um projeto prévio com o mesmo intuito, o AForge.net. A propósito, “signal processing” se refere a uma gama de algoritmos de aprendizado de máquinas para imagens e áudio que pode ser aplicado para questões como reconhecimento facial, por exemplo. 
GitHub: https://github.com/accord-net/framework/

Mahout 
Trata-se de um framework alinhado ao Hadoop, mas muitos dos algoritmos sob o seu guarda-chuva pode também rodar fora disso. É bastante útil para aplicações stand-alone e, eventualmente, pode ser migrado dentro e para projetos em Hadoop. 
Projeto: Mahout 


MLlib 
Própria biblioteca de aprendizado de máquina do Apache para Spark e Hadoop, o MLlib possui uma gama de algoritmos comuns e tipos de dados úteis destinados a funcionar em grande velocidade e escala. Como seria de esperar com qualquer projeto Hadoop, Java é a linguagem primária para trabalhar na ferramenta, mas os usuários podem se conectar a Python MLlib através da biblioteca NumPy (também usado em Scikit), e os usuários Scala podem escrever códigos contra o MLlib. Se a criação de um cluster Hadoop é impraticável, o MLlib pode ser implantado em cima do Spark sem Hadoop - e no EC2 ou no Mesos. 
Outro projeto é o MLbase, construído em cima de MLlib para torná-lo mais simples na obtenção de obter resultados. Ao invés de escrever o código, os usuários fazem consultas por meio de uma linguagem declarativa à la SQL. 
Projeto: MLlib

H2O
Algoritmos de H2O do 0xdata são voltados para processos de negócios – de previsões de fraude ou de tendência, por exemplo. O H2O pode interagir de forma independente com lojas HDFS, em cima de YARN, MapReduce ou diretamente em uma instância do Amazon EC2. Especialistas em Hadoop podem usar Java para interagir com a ferramenta, mas a estrutura também fornece ligações para Python, R e Scala, proporcionando integração cruzada com todas as bibliotecas disponíveis nessas plataformas também. 
Projeto: H20 
GitHub: https://github.com/0xdata/h2o 


Cloudera Oryx 
Outro projeto de aprendizagem máquina projetado para Hadoop, o Oryx vem como uma espécie de cortesia dos criadores da distribuição Cloudera Hadoop. O nome no rótulo não é o único detalhe que define a ferramenta, que enfatiza na análise de dados em tempo real por meio do projeto Spark e é projetado para permitir que modelos de aprendizado de máquina possam ser implantados em transmissões de informações “ao vivo”, como filtros de spam ou mecanismos de recomendação. Uma nova versão do projeto encontra-se em obras. 
Projeto: Cloudera Oryx 
GitHub: https://github.com/cloudera/oryx 

GoLearn  
A linguagem Go, do Google, está no ar faz cerca de cinco anos. Apesar da vida ainda curta, já desfruta uma utilização ampla e tem uma evolução constante em suas bibliotecas. O GoLearn foi criado com a ambição de ser uma biblioteca que reúne tudo de aprendizado de máquinas na plataforma da gigante de buscas. A ideia geral é que seja uma maneira simples de tratar o carregamento e manipulação dos dados na biblioteca. 
Projeto: GoLearn 
GitHub: https://github.com/sjwhitworth/golearn 


Weka  
Produto da Universidade neozelandesa de Waikato, o Weka reúne um conjunto de algoritmos de aprendizado de máquina Java projetados especificamente para mineração de dados. Esta coleção com licenciamento GNU GPLv3 tem um sistema de pacotes para estender sua funcionalidade. Weka vem com um livro para explicar tanto o software e quanto as técnicas utilizadas, que pode ser um bom ponto de partida aos que querem se aventurar nessa ferramenta. Apesar de não ser voltado especificamente, pode ser usado com Hadoop graças a um conjunto de wrappers produzidos para as versões mais recentes do Weka. Note-se que ainda não suporta Spark, só o MapReduc. 
Projeto: Weka 

CUDA-Convnet  
Quase todo mundo sabe como GPUs (sigla para unidade de processamento gráfico) podem mastigar certos problemas de maneira mais veloz do que CPUs. Mas os aplicativos não levam automaticamente a vantagem da aceleração GPU. Aliás, eles têm que ser escritos com formas específicas para que isso ocorra. O CUDA-Convnet é uma biblioteca de aprendizado de máquina para aplicações de rede neural escrito em C++ para explorar a tecnologia CUDA de processamento de GPU da Nvidia (placas de, pelo menos, a geração Fermi são obrigatórios). Para aqueles que usam Python em vez de C++, as redes neurais resultantes podem ser salvos como objetos Python em conserva e, assim, acessado a partir de Python. Note que a versão original do projeto não está mais sendo desenvolvida, mas desde que foi reformulado em um sucessor, CUDA-Convnet2 (com suporte para múltiplas GPUs). 
Projeto: CUDA-Convnet 


ConvNetJS 
Como o nome indica, ConvNetJS fornece bibliotecas de aprendizado de máquina de rede neural para uso em JavaScript o que facilita o uso do navegador como uma bancada de dados. Uma versão NPM também está disponível para aqueles que utilizam Node.js e a biblioteca é projetada para fazer uso adequado de assincronia de JavaScript - por exemplo, operações de treinamento podem executar retornos de chamadas, 
Projeto: ConvNetJS 
GitHub: https://github.com/karpathy/convnetjs
  

23 de ago. de 2016

Uso de API’s no mercado de serviços financeiros


Embora à primeira vista o uso de API (Application Programming Interface ou “Interface de Programação de Aplicativos”) pareça um assunto muito técnico, a ideia principal deste artigo é apresentá-lo de forma simples e sob a ótica de negócios para mostrar como as empresas podem aumentar seus negócios com sua adoção.

Um aplicativo ou software construído para atender um usuário final  costuma ser projetado para tornar sua utilização simples, rápida, fácil e agradável. Um software não tem olhos, emoções ou intuição, então ele não precisa de uma interface amigável quando se trata de entregar serviços para outro aplicativo. No entanto, da mesma forma como a interface adaptada para seres humanos, o software necessita de uma interface que facilite o consumo de dados e,ou funcionalidade.

Uma API é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços. As API’s são comumente desenvolvidas como interfaces para serem entendidas por computadores, da mesma forma como as interfaces de usuário, são criadas para ser entendidas e utilizadas de forma clara por seres humanos.
apiUma boa maneira de entender as API’s é no contexto de uma tomada comum de parede. As tomadas elétricas encontradas em casas ou empresas são interfaces construídas essencialmente para um serviço: a eletricidade que é consumida por nossos computadores e smartphones,  TVs, geladeiras, secadores de cabelo, entre outros aparelhos eletro-eletrônicos. A energia elétrica é o serviço e cada dispositivo que usa a eletricidade é um consumidor desse serviço.

Embora possuam diferenças dependendo da legislação de cada país, as tomadas elétricas têm alguns padrões abertos que permitem aos plugues elétricos que sejam conectados e consumam a energia oferecida (por exemplo, no Brasil, a maioria das tomadas entrega 110, ou para ser mais preciso, 127 Volts de corrente alternada. Esta especificação define essencialmente uma expectativa relacionada aos dispositivos de consumo. Da mesma forma, uma API especifica como componentes de software devem interagir uns com os outros.

Através da interface padrão, qualquer consumidor pode facilmente utilizar a energia necessária para suprir seus dispositivos que estejam compatíveis e conectados de acordo com a norma vigente. Para o consumidor porém, não importa o que está acontecendo do outro lado da parede, sejam coisas simples como a cor da fiação embutida ou “detalhes” mais complexos como a forma como a eletricidade é gerada (seja por uma usina eólica, nuclear, hidrelétrica ou solar) ou de onde essas fontes de energia estejam localizadas.

E no sentido contrário, o provedor também não precisa explicar ou apresentar quaisquer detalhes de como os serviços são oferecidos. Como a geração da energia é feita é a parte que interessa apenas ao provedor. Em um mercado fortemente regulamentado como o de Serviços Financeiros, as informações pessoais confidenciais de correntistas serão mantidas “por trás dos muros” garantindo a privacidade dos dados, o sigilo bancário e a segurança das transações.

Normalmente são criadas páginas web ou portais direcionados aos desenvolvedores, nos quais as normas e padrões da API estarão descritos e disponibilizados por meio de documentação oficial funcional e técnica à qualquer empresa ou desenvolvedor interessado em utilizar os produtos e serviços oferecidos pela instituição financeira.

Através da API, produtos e serviços como empréstimos, seguros, comércio eletrônico, pagamentos, informações de clientes, histórico de transações, autenticação e transferências bancárias, entre outros, poderão ser entregues a partir de uma ampla gama de dispositivos compatíveis.  Um comerciante que hoje oferece os seus produtos e serviços através de sua página web ou até mesmo em sua loja física, passa a oferecer um serviço de valor agregado, de forma segura aos seus clientes, acelerando a conversão e evitando desistência.

Neste novo modelo de negócios, um banco pode expandir seu raio de ação e aumentar sua receita. Por outro lado, a exposição de sua marca será menor ou inexistente, uma vez que o aplicativo pode ou não indicar quem está por trás do serviço oferecido. É parte da decisão estratégica de negócios da instituição decidir por sua utilização, dependendo da expectativa de resultados. Inovação, aumento de receita, expansão, custos e segurança são fatores críticos que devem ser considerados para a tomada de decisão pela utilização de API’s.

Ainda no tópico de segurança, as APIs são comumente desenvolvidas em três modelos: privado (interno), público (externo) ou restrito (associado). E, mais uma vez, isso depende da estratégia da empresa. Se os dados a serem expostos são muito sensíveis, as melhores opções poderiam ser uma API privada ou restrita. Apesar de mais rentáveis, este tipo de API não é de fácil manutenção e, ou atualização, uma vez que elas não têm o apoio da comunidade de desenvolvedores da maneira que as API’s públicas.

O uso de API’s Abertas promove um ecossistema centrado no cliente e inovação aberta. Atualmente, mais de 15 mil API’s (nos mais variados segmentos de mercado como serviços financeiros, governo, telecom, mobile, transporte, educação, ciência e outros) estão disponíveis no site Programmable Web. Além de informação, orientação e referências, o portal também funciona não apenas como um diretório para empresas à procura de API’s, mas também para os desenvolvedores e provedores poderem disponibilizar suas API’s.

Open Bank Project, por exemplo, é uma API de código aberto e também loja de aplicativos para bancos que permite que as instituições financeiras desenvolvam suas ofertas digitais de forma rápida e segura usando um ecossistema de aplicações e serviços de terceiros.
Um case muito bem sucedido de API’s abertas no setor bancário é o BBVA API Market. Com presença em mais de 35 países e utilizando estratégias digitais abertas e inovadoras, em conjunto com o “mobile first” e Omni-channel, o BBVA já oferece um amplo conjunto de API’s de produtos e serviços através de seu portal.

As vantagens econômicas da utilização de APIs são vastas. Explorar este universo exige experiência e capacidade técnica para implementação e, desta forma, trazer os benefícios esperados para as empresas.

Este artigo foi publicado originalmente em Computerworld.com.

19 de nov. de 2015

GitHub - Livros de Programação


Iniciativa fantástica da comunidade GitHub. Agora não tem mais desculpa. São diversos livros de várias linguagens de programação e sobre desenvolvimento de software.

Aproveitem.

Android

C

CPP

CSharp

Engenharia de Software

Metodologias de Desenvolvimento de Software

Git

Haskell

HTML / CSS

Java

JavaScript

LaTeX

Lua

Php

Python

RegEx

Ruby

Shell

Vim

27 de mar. de 2015

Clipping 11/2015


Arduino Day 2015https://day.arduino.cc/#/
"Excelente oportunidade para conhecer um pouco mais sobre Arduino. Eventos em Campinas também!"


"A evolução das impressoras 3D. Nos dois artigos acima, velocidade e tamanho são abordados"

"API, de Application Programming Interface (Interface de Programação de Aplicativos PT-BR)) é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços."

"Já estamos respirando IPv6. Finalmente"

"Vídeo aula disponibilizada pelo MIT"