fbpx

18 dez
Governo regulamenta uso do blockchain

O governo federal regulamentou o uso de blockchain no Brasil para o Comércio Exterior, de acordo com o Decreto 10.550, assinado pelo presidente Jair Bolsonaro e o Ministro da Economia, Paulo Guedes, em 24/11.

A partir de agora, a tecnologia pode ser usada na administração, fiscalização, controle e tributação das atividades aduaneiras. A nova lei alterou o Decreto 6.759/2009 que regulamenta todas as operações no comércio exterior. No que se refere à tecnologia blockchain, as mudanças aconteceram no parágrafo 562.

“A Secretaria Especial da Receita Federal do Brasil do Ministério da Economia poderá dispor:

— em relação à fatura comercial sobre formas de assinatura mecânica ou eletrônica, permitida a confirmação de autoria e autenticidade do documento, inclusive na hipótese de utilização de blockchain;

— e dispensa de assinatura ou de elementos referidos no art. 557 — que trata sobre todas as informações necessárias do importador, com nome e endereço;

— e a inclusão de novos elementos, a serem definidos em legislação específica”.

Blockchain no Governo

O interesse na tecnologia Blockchain no Brasil como uma ferramenta de gestão pode ser medido pelas ações debate promovidas por diferentes esferas de governo. O Serpro (Serviço Federal de Processamento de Dados) desenvolveu uma plataforma de blockchain para a Receita Federal do Brasil (RFB), a ‘bCONNECT’.

O governo federal possui ainda várias frentes que estudam e discutem a tecnologia blockchain. O Programa Centelha, por exemplo, é um projeto que financia novas soluções em Internet das Coisas (IoT), entre outros. A própria Dataprev vai fornecer blockchain como serviço para o Ministério Público Federal.

 

Publicado por: Convergência Digital

28 out
QTrends Engenharia de Dados – Data mesh, streaming e dados como produtos

Depois de duas edições com um foco na discussão em torno do tema monólitos e microsserviços (“A ascensão e queda dos microservices” e “A vez dos monólitos modulares”), a QTrends de agosto tem como tema os pipelines de streaming de dados, sistemas ETL modernos e data mesh (também chamado de malha de dados). Em nosso último relatório de tendências de Arquitetura e Design, publicado em abril de 2020, data mesh foi classificada como uma tecnologia inovadora, enquanto arquiteturas baseadas em eventos e streaming foram classificadas como tecnologias com maior adoção (early majority).

Em função da combinação do potencial de disrupção de como os dados são tratados e gerenciados, por exemplo com times de produtos tendo a posse e expondo dados por mecanismos self-service, e da evolução de abordagens das preparações de dados (data-wrangling) baseadas em stream, nós acreditamos que um real entendimento de padrões, anti-padrões e tecnologias emergentes relacionadas a esses assuntos são de extrema relevância para profissionais que trabalham com arquitetura de sistemas.

Um panorama

Do pooling ao streaming: a evolução da LaunchDarkly

Dawn Parzych, Developer Advocate na LauchDarkly, descreveu em um artigo recém publicado como a empresa evoluiu o sistema de gestão de feature flags utilizado por clientes de um arquitetura baseada em pooling para uma nova arquitetura baseada em streaming.

Para quem utiliza essa solução, os benefícios incluem um aumento na velocidade das mudanças de configurações e também um consumo menor na bateria de dispositivos móveis. Segundo a publicação, “com a nova abordagem, clientes conseguem ver rapidamente as atualizações quando uma feature flag é alterada e com um consumo de banda significativamente menor” e “conseguimos prolongar o tempo de uso das baterias de dispositivos móveis, uma que vez que não é mais necessário o consumo de tanta energia para a realização de poolings.”.

Tudo que você sempre quis saber sobre Apache Kafka mas não teve coragem de perguntar!

Em uma apresentação realizada na Big Data Conference Vilnius, Ricardo Ferreira explicou o que é o Apache Kafka e como essa solução se encaixa nos conceitos de sistemas distribuídos e processamento de stream. Ricardo também apresentou alguns casos de uso e padrões de design relacionados ao uso do Kafka.

Um dos pontos principais da palestra foi o fato de que o Apache Kafka pode ser encarado como uma plataforma de streaming distribuído. Ricardo disse que profissionais dificilmente entenderão o Kafka se pensarem na ferramenta como “só uma mensageria” e que “mensageria não tem persistência e, assim como bando de dados, possuem limites de escalabilidade”.

Você pode encontrar outras duas apresentações sobre Apache Kafka realizadas pelo Ricardo Ferreira, dessa vez em português, aqui no InfoQ Brasil.

Registro de schemas do Amazon EventBridge disponível na AWS

Recentemente a Amazon anunciou a disponibilidade da funcionalidade de registro de schemas no serviço Amazon EventBridge. A proposta do registro de schemas do Amazon EventBridge é que de profissionais do desenvolvimento possam armazenar a estrutura – ou o schema – de eventos em um ponto central compartilhado e mapear essas estruturas em código Java, Python e Typescript. Com isso, fica possível a utilização desses eventos como objetos no código-fonte.

O anúncio dessa nova funcionalidade coloca o Amazon EventBridge como um grande competidor frente a outras soluções oferecidas por outras plataformas na nuvem. A Microsoft oferece o EventGrid que já está disponível desde o início de 2018 e já recebeu diversas atualizações, incluindo a construção de filtros avançadosregras para retentativas e suporte para o CloudEvents. Por outro lado, o serviço da Microsoft não contém a funcionalidade de registro de schemas.

Indo além, o mesmo é válido para o EveryBridge da Triggermesh. Esse integrador de eventos (event bus) é capaz de consumir eventos de diferentes fontes, fazendo com que profissionais do desenvolvimento possam utilizá-lo para a criação de funções servless que poderão ser executadas na maioria das plataformas na nuvem, bem como em soluções on-premise.

Melhorando o Apache Spark com GPUs e a biblioteca RAPIDS

Durante a conferência Spark AI Summit Europe em 2019, os desenvolvedores da NVIDIA Thomas Graves e Miguel Martinez apresentaram a palestra “Acelerando o Apache Spark em diversas ordens de magnitude com GPUs e a biblioteca RAPIDS”. Recentemente o InfoQ conversou com Jim Scott, Head of Developers Relations na NVIDIA, para entender melhor sobre como acelerar o Apache Spark com GPUs e a biblioteca RAPIDS.

A RAPIDS é um conjunto de bibliotecas e APIs open-source para a execução em GPUs de pipelines de data science e analytics de ponta a ponta, possibilitando um significativo aumento na velocidade de processamento, especialmente em grandes conjuntos de dados. Construída em cima da NVIDIA CUDA, a RAPIDS disponibiliza o paralelismo e todo o poder da velocidade da memória da GPU através de uma interface Python amigável e uma API que integra uma variedade de algoritmos de machine learning para a aceleração de pipelines de ponta a ponta.

Estudo de caso

Data Mesh, domínios orientados a dados e a construção de plataforma de dados por Zhamak Dehghani

Em um popular podcast produzido pelo InfoQ, o conceito de “data mesh” foi apresentado por Zhamak Dehghani, que é Principal Consultant e Porfolio Director na ThoughtWorks. A discussão incluiu as motivações para se tornar uma empresa guiada por dados (data-driven), os desafios para se adaptar plataformas legadas e rotinas ETL, e como fazer o design e implementar a próxima geração de plataforma de dados utilizando ideias do DDD e product thinking, além de alguns princípios modernos de plataformas, como processos e soluções self-service.

O começo da conversa foi marcado por Zhamak dizendo que se tornar uma empresa data-driven ainda é um dos principais objetivos estratégicos de muitas empresas. Ser capaz de rodar experimentos rapidamente e analisar os dados resultados desses experimentos de forma eficiente pode trazer uma grande vantagem competitiva para diversos negócios.

Há uma série de “modelos falhos de arquitetura” dentro das plataformas corporativas de dados existentes. Elas são centralizadas e construídas com monólitos. A construção dos pipelines de dados possui, geralmente, um grande acoplamento, o que significa que uma eventual alteração em um dado implicará em uma cascata de modificações ao longo de todo o pipeline. Além disso, a posse, o domínio dessas plataformas de dados é cheia de silos e hiper especializada.

A próxima geração de plataforma corporativas de dados necessitam de uma mudança de paradigma em direção à ubiquidade dos dados com um data mesh distribuído. Zhamak acredita que, ao invés dos dados navegarem de um domínio para um data lake ou uma plataforma central, cada domínio precisa armazenar e servir seus dados de uma forma facilmente consumível, em um estilo self-service.

Além disso, times responsáveis pelos dados de domínios precisam aplicar o product thinking aos conjuntos de dados providos por eles, também precisam considerar esses dados como seus produtos e quem consome essas informações, tais como profissionais da ciência de dados, do aprendizado de máquina e da engenharia de dados, como clientes.

O podcast completo, bem como sua transcrição, pode ser encontrado no InfoQ.

E por aqui?

Fazer uma comparação direta com o estágio de adoção de determinadas tecnologias e práticas no Brasil com regiões como a América do Norte e a Europa não é algo tão simples de ser feito. Nosso mercado, um tanto quanto conservador, faz com que assuntos como data mesh ainda nem ecoem por aqui, ao passo que streaming de dados já é algo que conseguimos escutar no contexto de algumas grandes empresas.

Isso, porém, não significa que não tenham coisas muito interessantes acontecendo por esses lados do planeta. Se você der uma olhada no tópico de Streaming dentro do InfoQ Brasil verá diversas palestras com conteúdos e cases bastante relevantes, como a apresentação feita pelo Eiti Kimura da Wavy onde ele apresenta os desafios de se processar um volume de mais de 100 milhões de transações por dia.

 

13 out
Evento online tem maratona de programação e prêmio de até R$ 5 mil

Hackathon OLX ocorre entre dias 16 e 25 de outubro; participantes concorrem a um Summer Job na OLX e a prêmios de até R$ 5 mil

O Hackathon OLX é uma maratona digital para jovens universitários que vai acontecer virtualmente entre dos dias 16 e 25 de outubro. A iniciativa é fruto de uma parceria entre a OLX e o Hacktudo, festival de cultura digital, e se destina a jovens interessados em criar projetos a cerca do tema “Economia Colaborativa em Tempos de Pandemia”. As inscrições são gratuitas e devem ser realizadas até a próxima segunda-feira (28) pelo Sympla.

Podem participar do hackathon alunos universitários de cursos superiores de graduação em qualquer área do conhecimento e estudantes de cursos técnicos. Vale ressaltar que as inscrições só serão válidas para alunos com matrícula vigente. O evento ainda vai contar com prêmios em dinheiro para os três grupos finalistas, além de oferecer seminários online e sessões de mentoria para os participantes, que também vão concorrer a um Summer Job na OLX.

Abertura da Hackathon do festival Hacktudo 2019 — Foto: Divulgação/Hacktudo

Abertura da Hackathon do festival Hacktudo 2019 — Foto: Divulgação/Hacktudo

Além disso, a participação no Hackathon OLX está limitada aos 30 primeiros times que se cadastrarem na maratona. As inscrições devem ser realizadas por grupos de três a quatro estudantes, e um dos integrantes da equipe deve ficar responsável pelo envio dos comprovantes de matrícula e documentos necessários de cada membro do grupo. Valem boletos bancários ou faturas de cartão de crédito que constem os débitos de pagamento do curso e carteirinhas de identificação ou declaração da instituição.

O concurso seguirá um cronograma definido. Durante a abertura do evento, no dia 16 de outubro, será anunciado um desafio para os participantes, que terão 36 horas para idealizar e desenvolver uma solução inovadora e criativa a partir de um projeto original e aplicável. Após esse período, as dez equipes que mais se destacarem seguirão para a próxima etapa, um pitching no dia 24 de outubro. Então, no dia 25, serão revelados os três melhores projetos. O hackathon também vai contar com sessões de mentoria e outras dinâmicas virtuais e o time vencedor ainda leva para casa R$ 5 mil.

Para inscrever seu time no Hackathon OLX, basta acessar o site

O que é o Hacktudo?

O Hackathon OLX é apenas uma das atividades previstas para o Hacktudo, festival de cultura digital que acontece online e gratuitamente entre os dias 16 e 25 de outubro. O evento ainda vai apresentar conferências com profissionais de grandes empresas de tecnologia e uma exposição virtual do artista Jota Azevedo sobre lixo eletrônico. A programação também inclui atividades exclusivas para as mulheres e para o público infanto-juvenil. Para saber todos os detalhes e se inscrever nos laboratórios, basta acessar: www.hacktudo.com.br

28 set
Banco Nacional de Empregos: Vagas em TI disparam 63% na pandemia

O desemprego segue em alta no Brasil, com 13 milhões de desocupados, ou 13,6% da população ativa do país. Mas não para todos. Para os profissionais ligados a áreas de tecnologia da informação, o ritmo é de aquecimento no mercado de trabalho, com alta de 63% segundo levantamento do Banco Nacional de Empregos, um portal de currículos com 135 mil empresas cadastradas.

Segundo esse levantamento, enquanto no ano passado, de janeiro a setembro, foram abertas 8.049 vagas, no mesmo período em 2020 a procura chegou a 12.682 postos – daí a alta de 63%.

Também de acordo com essa pesquisa, os estados de São Paulo (5.793), Santa Catariana (1.378), Paraná (1.105), Rio Grande do Sul (1.020) e Rio de Janeiro (858) são os que oferecem mais vagas no setor. Comparado com o ano passado, o aumento das vagas de TI em São Paulo foi de 138%.

“Com a maior opção por serviços delivery, internet e e-commerce, áreas diretamente ligadas à tecnologia tornaram-se necessárias dentro das empresas para que o atendimento continuasse acontecendo, o que consequentemente responde esse aumento de vagas na área de tecnologia”, aponta a pesquisa do BNE.

Publicado por Convergência Digital 

16 set
Unity IPO aims to fuel growth across gaming and beyond

A look at its core offerings and revenue streams

Image Credits: Nigel Sussman

Unity Software Inc. is set to list on the New York Stock Exchange this month, following its S-1 filing two weeks ago. The 16-year-old tech company is universally known within the gaming industry and largely unknown outside of it. But Unity has been expanding beyond gaming, pouring hundreds of millions of dollars into a massive bet to be an underlying platform for humanity’s future in a world where interactive 3D media stretches from our entertainment experiences and consumer applications to office and manufacturing workflows.

Much of the press about Unity’s  S-1 filing mischaracterizes the business. Unity is easily misunderstood because most people who aren’t (game) developers don’t know what a game engine actually does, because Unity has numerous revenue streams, and because Unity and the competitor it is most compared to — Epic Games — only partially overlap in their businesses.

Last year, I wrote an in-depth guide to Unity’s founding and rise in popularity, interviewing more than 20 top executives in San Francisco and Copenhagen, plus many other professionals in the industry. In this two-part guide to get up to speed on the company, I’ll explain Unity’s business, where it is positioned in the market, what its R&D is focused on and how game engines are eating the world as they gain adoption across other industries.

In part two, I’ll analyze Unity’s financials, explain how the company has positioned itself in the S-1 to earn a higher valuation and outline both the bear and bull cases for its future.

For those in the gaming industry who are familiar with Unity, the S-1 might surprise you in a few regards. The Asset Store is a much smaller business that you might think, Unity is more of an enterprise software company than a self-service platform for indie devs and advertising solutions appear to make up the largest segment of Unity’s revenue.

What is a game engine?

Unity’s origin is as a game engine, software that is similar to Adobe Photoshop, but used instead for editing games and creating interactive 3D content. Users import digital assets (often from Autodesk’s Maya) and add logic to guide each asset’s behavior, character interactions, physics, lighting and countless other factors that create fully interactive games. Creators then export the final product to one or more of the 20 platforms Unity supports, such as Apple iOS and Google Android, Xbox and Playstation, Oculus Quest and Microsoft HoloLens, etc.

In this regard, Unity is more comparable to Adobe and Autodesk than to game studios or publishers like Electronic Arts and Zynga.

What are Unity’s lines of business?

Since John Riccitiello took over as CEO from co-founder David Helgason in 2014, Unity has expanded beyond its game engine and has organized activities into two divisions: Create Solutions (i.e., tools for content creation) and Operate Solutions (i.e., tools for managing and monetizing content). There are seven noteworthy revenue streams overall:

Create Solutions (29% of H1 2020 revenue)

  • The Unity platform: The core game engine, which operates on a freemium subscription model. Individuals, small teams and students use it for free, whereas more established game studios and enterprises in other industries pay (via the Unity Plus, Unity Pro and Unity Enterprise premium tiers).
  • Engine extensions: A growing portfolio of tools and extensions of the core engine purpose-built for specific industries and use cases. These include MARS for VR development, Reflect for architecture and construction use with BIM assets, Pixyz for importing CAD data, Cinemachine for virtual production of films and ArtEngine for automated art creation.
  • Professional services: Hands-on, specialized consulting for enterprise customers using Unity’s engine and other products. Unity expanded its consulting capacity further in April with a $55 million acquisition of Finger Food Studios, a 200-person team in Vancouver that builds interactive media projects for corporate clients using Unity.

Aside from these three product categories, Unity is reporting another group of content creation offerings separately in the S-1 as “Strategic Partnerships & Other” (which accounts for further 9% of revenue):

  • Strategic Partnerships: Major tech companies pay Unity via a mix of structures (flat-fee, revenue-share and royalties) for Unity to create and maintain integrations with their software and/or hardware. Since Unity is the most popular platform to build games with, ensuring Unity integrates well with Oculus or with the Play Store is very important to Facebook and Google, respectively, for example.
  • Unity Asset Store: Unity’s marketplace for artists and developers to buy and sell digital assets like a spooky forest or the physics to guide characters’ joint movements for use in their content so they don’t each have to design and code1 every single thing from scratch. It is commonly used, though larger game studios often use Asset Store assets just for initial prototyping of game ideas.

Operate Solutions (62% of H1 2020 revenue)

  • Advertising: Via the 2014 acquisition of Applifier, Unity launched an in-game advertising network for mobile games. This expanded substantially with the Unified Auction, a simultaneous auction that helps games get the highest bid from among potential advertisers. Unity is now one of the world’s largest mobile ad networks, serving 23 billion ads per month. Unity also has a dynamic monetization tool that makes real-time assessments of whether it is optimal to serve an ad, prompt an in-app purchase or do nothing to maximize each player’s lifetime value. While the Unity IAP feature enables developers to manage in-app purchases (IAP), Unity does not take a cut of IAP revenue at this time.
  • Live Services: A portfolio of cloud-based solutions for game developers to better manage and optimize their user acquisition, player matchmaking, server hosting and identification of bugs. This portfolio has primarily been assembled through acquisitions like Multiplay (cloud game server hosting and matchmaking), Vivox (cloud-hosted system for voice and text chat between players in games), and deltaDNA (player segmentation for campaigns to improve engagement, monetization and retention). There is also Unity Simulate for training AI models in virtual recreations of the real world (or testing games for bugs). Live Services products have usage-based pricing, with an initial amount of usage free.

Unity versus Unreal, versus others

Unity is compared most frequently to Epic Games, the company behind the other leading game engine, Unreal. Below is a quick overview of the products and services that differentiate each company. The cost of switching game engines is meaningful in that developers are typically specialized in one or the other and can take months to gain high proficiency in another, but some teams do vary the engine they use for different projects. Moving an existing game (or other project) over to a new game engine is a major undertaking that requires extensive rebuilding.

Epic Games

Epic has three main businesses: game development, the Epic Games Store, and the Unreal Engine. Epic’s core is in developing its own games and the vast majority of Epic’s $4.2 billion in 2019 revenue came from that (principally, from Fortnite). The Epic Games Store is a consumer-facing marketplace for gamers to purchase and download games; game developers pay Epic a 12.5% cut of their sales.

In those two areas of business, Unity and Epic don’t compete. While much of the press about Unity’s IPO frames Epic’s current conflict with Apple as an opportunity for Unity, it is largely irrelevant. A court order prevented Apple from blocking iOS apps made with Unreal in retaliation for Epic trying to skirt Apple’s 30% cut of in-app purchases in Fortnite. Unity doesn’t have any of its own apps in the App Store and doesn’t have a consumer-facing store for games. It’s already the default choice of game engine for anyone building a game for iOS or Android, and it’s not feasible to switch the engine of an existing game, so Epic’s conflict does not create much of a new market opening.

Let’s compare the Unity and Unreal engines:

Origins: Unreal was Epic’s proprietary engine for the 1998 game Unreal and was licensed to other PC and console studios and became its own business as a result of its popularity. Unity launched as an engine for indie developers building Mac games, an underserved niche, and expanded to other emerging market segments considered irrelevant by the core gaming industry: small indie studios, mobile developers, AR & VR games. Unity exploded in global popularity as the main engine for mobile games.

Programming Language: Based in the C++ programming language, Unreal requires more extensive programming than Unity (which requires programming in C#) but enables more customization, which in turn enables higher performance.

Core Markets: Unreal is much more popular among PC and console game developers; it is oriented toward bigger, high-performance projects by professionals. That said, it is establishing itself firmly in AR and VR and proved with Fortnite it can take a console and PC game cross-platform to mobile. Unity dominates in mobile games — now the largest (and fastest growing) segment of the gaming industry — where it has over 50% market share and where Unreal is not a common alternative. Unity has kept the largest market share in AR and VR content, at over 60%.

Ease of Authoring: Neither engine is easy for a complete novice, but both are fairly straightforward to navigate if you have basic coding abilities and put the time into experimenting and watching tutorials. Unity has prioritized ease of use since its early days, with a mission of democratizing game development that was so concentrated among large studios with large budgets, and ease of authoring remains a key R&D focus. This is why Unity is the common choice in educational environments and by individuals and small teams creating casual mobile games. Unity lets you see but not edit the engine’s source code unless you pay for an enterprise subscription; this protects developers from catastrophic mistakes but limits customization. Unreal isn’t dramatically more complex but, as a generalization, it requires more lines of code and technical skill. It is open source code so can be completely customized. Unreal has a visual scripting tool called Blueprint to conduct some development without needing to code; it’s respected and often used by designers though not a no-code solution to developing a complex, high-performance game (no one offers that). Unity recently rolled out its own visual scripting solution for free called Bolt.

Pricing: While Unity’s engine operates on a freemium subscription model (then has a portfolio of other product offerings), Unreal operates on a revenue-share, taking 5% of a game’s revenue. Both have separately negotiated pricing for companies outside of gaming that aren’t publicly disclosed.

Proprietary engines

Many large gaming companies, especially in the PC and console categories, continue to use their own proprietary game engines built in-house. It is a large, ongoing investment to maintain a proprietary engine, which is why a growing number of these companies are switching to Unreal or Unity so they can focus more resources on content creation and tap into the large talent pools that already have mastery in each one.

Other Engines

Other game engines to note are Cocos2D (an open source framework by Chukong Technologies that has a particular following among mobile developers in China, Japan, and South Korea), CryEngine by Crytek (popular for first-person shooters with high visual fidelity), and Amazon’s Lumberyard (which was built off CryEngine and doesn’t seem to have widespread adoption, or command much respect, among the many developers and executives I’ve spoken to).

For amateur game developers without programming skills, YoYo Games’ GameMaker Studio and Scirra’s Construct are both commonly used to build simple 2D games (Construct is used for HTML5 games in particular); users typically move on to Unity or Unreal as they gain more skill.

There remain a long list of niche game engines in the market since every studio needs to use one and those who build their own often license it if their games aren’t commercial successes or they see an underserved niche among studios creating similar games. That said, it’s become very tough to compete with the robust offerings of the industry standards — Unity and Unreal — and tough to recruit developers to work with a niche engine.

UGC Platforms

User-generated content platforms for creating and playing games like Roblox (or new entrants like Manticore’s Core and Facebook Horizon) don’t compete with Unity — at least for the foreseeable future — because they are dramatically simplified platforms for creating games within a closed ecosystem with dramatically more limited monetization opportunity. The only game developers these will pull away from Unity are hobbyists on Unity’s free tier.

I’ve written extensively on how UGC-based game platforms are central to the next paradigm of social media, anchored within gaming-centric virtual worlds. But based on the overall gaming market growth and the diversity of game types, these platforms can continue to soar in popularity without being a competitive threat to the traditional studios who pay Unity for its engine, ad network, or cloud products.

What’s at the forefront of Unity’s technical innovation?

DOTS

For the last three years, Unity has been creating its “data oriented technology stack,” or DOTS, and gradually rolling it out in modules across the engine.

Unity’s engine centers on programming in C# code which is easier to learn and more time-saving than C++ since it is a slightly higher level programming language. Simplification comes with the trade off of less ability to customize instruction by directly interacting with memory. C++, which is the standard for Unreal, enables that level of customization to achieve better performance but requires writing a lot more code and having more technical skill.

DOTS is an effort to not just resolve that discrepancy but achieve dramatically faster performance. Many of the most popular programming languages in use today are “object-oriented,” a paradigm that groups characteristics of an object together so, for example, an object of the type “human” has weight and height attached. This is easier for the way humans think and solve problems. Unity takes advantage of the ability to add annotations to C# code and claims a proprietary breakthrough in understanding how to recompile object-oriented code into “data-oriented” code, which is optimized for how computers work (in this example, say all heights together and all weights together). This is orders of magnitude faster in processing the request at the lowest level languages that provide 1s-and-0s instructions to the processor.

This level of efficiency should, on one hand, allow highly-complex games and simulations with cutting-edge graphics to run quickly on GPU-enabled devices, while, on the other hand, allowing simpler games to be so small in file size they can run within messenger apps on the lowest quality smartphones and even on the screens of smart fridges.

Unity is bringing DOTS to different components of its engine one step at a time and users can opt whether or not to use DOTS for each component of their project. The company’s Megacity demo (below) shows DOTS enabling a sci-fi city with hundreds of thousands of assets rendered in real-time, from the blades spinning on the air conditioners in every apartment building to flying car traffic responding to the player’s movements.

Graphics

The forefront of graphics technology is in enabling ray tracing (a lighting effect mimicking the real-life behavior of light reflecting off different surfaces) at a fast enough rendering speed so games and other interactive content can be photorealistic (i.e. you can’t tell it’s not the real world). It’s already possible to achieve this in certain contexts but takes substantial processing power to render. Its initial use is for content that is not rendered in real-time, like films. Here are videos by both Unity and Unreal demonstrating ray tracing used to make a digital version of a BMW look nearly identical to video of a real car:

To support ray-tracing and other cutting-edge graphics, Unity released its High Definition Render Pipeline in 2018. It gives developers more powerful graphics rendering for GPU devices to achieve high visual fidelity in console and PC games plus non-gaming uses like industrial simulations. (By comparison, its Universal Render Pipeline optimizes content for lower-end hardware like mobile phones.)

Next-gen authoring

Unity’s Research Labs team is focused on the next generation of authoring tools, particularly in an era of AR or VR headsets being widely adopted. One component of this is the vision for a future where nontechnical people could develop 3D content with Unity solely through hand gestures and voice commands. In 2016, Unity released an early concept video for this project (something I demo-ed at Unity headquarters in SF last year):

Game engines are eating the world

The term “game engine” limits the scope of what Unity and Unreal are already used for. They are interactive 3D engines used for practically any type of digital content you can imagine. The core engine is used for virtual production of films to autonomous vehicle training simulations to car configurators on auto websites to interactive renderings of buildings.

Both of these engines have long been used outside gaming by people repurposing them and over the last five years Unity and Unreal have made expanding use of their engines in other industries a top priority. They are primarily focused on large- and mid-size companies in 1) architecture, engineering, and construction, 2) automotive and heavy manufacturing, and 3) cinematic video.

In films and TV commercials, game engines are used for virtual production. The settings, whether animated or scanned from real-world environments, are set up as virtual environments (like those of a video game) where virtual characters interact and the camera view can be changed instantaneously. Human actors are captured through sets that are surrounded by the virtual environment on screens. The director and VFX team can change the surroundings, the time of day, etc. in real-time to find the perfect shot.

There are a vast scope of commercial uses for Unity since assets can be imported from CAD, BIM, and other formats and since Unity gives you the ability to build a whole world and simulate changes in real-time. There are four main use cases for Unity’s engine beyond entertainment experiences:

  1. Design & Planning: have teams work on interactive 3D models of their product simultaneously (in VR, AR, or on screens) from offices around the world and attach metadata to every component about its materials, pricing, etc. The Hong Kong International airport used Unity to create a digital twin of the terminals connected to Internet of Things (IoT) data, informing them of passenger flow, maintenance issues, and more in real-time.
  2. Training, Sales & Marketing: use interactive 3D content so staff or customers can engage with: a) photorealistic renderings of industrial products; b) VR trainings for risky construction situations; c) online car configurators that render custom designs in real-time; or d) an architect’s plan for new office space with every asset within the project filled with metadata and responsive to interaction, changes in lighting, etc.
  3. Simulation: generate training data for machine learning algorithms using virtual recreations of real-world environments (like for autonomous vehicles in San Francisco) and running thousands of instances in each batch. Unity Simulation customers include Google’s DeepMind and Unity teamed up with LG to create a simulation module specific to autonomous vehicles.
  4. Human Machine Interfaces (interactive screens): create interactive displays for in-vehicle infotainment systems and AR heads up displays, as showcased by Unity’s 2018 collaboration with electric car startup Byton.

Unity’s ambitions beyond gaming ultimately touch every facet of life. In his 2015 internal memo in favor of acquiring Unity, Facebook CEO Mark Zuckerberg wrote “VR / AR will be the next major computing platform after mobile.” Unity is currently in a powerful position as the key platform for developing VR / AR content and distributing it across different operating systems and devices. Zuckerberg saw Unity as the natural platform off which to build “key platform services” in the mixed reality ecosystem like an “avatar / content marketplace and app distribution store”.

If Unity maintains its position as the leading platform for building all types of mixed reality applications into the era when mixed reality is our main digital medium, it stands to be one of the most important technology companies in the world. It would be the engine everyone across industries turns to for creating applications, with dramatically larger TAM and monetization potential for the core engine than is currently the case. It could expand up the stack, per Zuckerberg’s argument, into consumer-facing functions that exist across apps, like identify, app distribution, and payments. Its advertising product is already in position to extend into augmented reality ads within apps built with Unity. This could make it the largest ad network in the AR era.

This grand vision is still far away though. First, the company’s expansion beyond gaming is still early in gaining traction and customers generally need a lot of consulting support. You’ll notice other coverage of Unity over the last few years all tends to mention the same case studies of use outside gaming; there just aren’t that many than have been rolled out by large companies. Unity is still in the stage of gaining name recognition and educating these markets about what its engine can do. There are promising proof points of its value but market penetration is small.

Second, the era of AR as “the next major computing platform after mobile” seems easily a decade away, during which time existing and yet-to-be-founded tech giants will also advance their positions in different parts of the AR tech, authoring, and services stack. Apple, Facebook, Google, and Microsoft are collaborators with Unity right now but any of them could decide to compete with their own AR-focused engine (and if any of them acquire Unity, the others will almost certainly do so because of the loss of Unity’s neutral position between them).

 

Published by Techcrunch

27 ago
5 bibliotecas python interessantes

Você já pensou que a visualização de dados pode estar na linha de comando?

Como uma das linguagens de programação mais populares, python tem um grande número de bibliotecas excelentes que facilitam o desenvolvimento como Pandas, Numpy, Matplotlib, SciPy, etc.

No entanto, neste artigo, vou apresentar a vocês algumas bibliotecas que são mais interessantes do que muito úteis. Acredito que essas bibliotecas podem mostrar outro aspecto do Python e o prosperar da comunidade.

1. Bashplotlib

Honestamente, quando vejo esta biblioteca pela primeira vez, questionei por que as pessoas podem precisar disso? Bashplotlib é uma biblioteca Python que nos permite traçar dados em um ambiente stdout de linha de comando.

Logo percebi que provavelmente será útil quando você não tiver nenhuma GUI disponível. Bem, este cenário pode não ser tão frequente, mas não impede minha curiosidade e sentir que é uma biblioteca Python muito interessante.

Bashplotlib pode ser facilmente instalado com .pip

pip install bashplotlib

Vamos ver alguns exemplos. No código abaixo, eu importei para gerar algumas matrizes aleatórias, bem como o , é claro.numpybashplotlib

import numpy as np
from bashplotlib.histogram import plot_hist
arr = np.random.normal(size=1000, loc=0, scale=1)

plot_hist é uma função a partir disso é para plotar dados 1D em um histograma, assim como faz em Matplotlib. Então, eu uso Numpy gerou uma matriz aleatória com 1.000 números que normalmente são distribuídos. Depois disso, podemos facilmente traçar esses dados da seguinte forma:bashplotlibplt.hist

plot_hist(arr, bincount=50)

A saída é assim

Não é interessante? 🙂

Além disso, você pode traçar seus dados em um gráfico de dispersão de arquivos de texto

2. PrettyTable

O Bashplotlib que acabei de introduzir é para traçar dados no ambiente de linha de comando, enquanto PrettyTable é para tabela de saída em um formato bonito.

Da mesma forma, podemos facilmente instalar esta biblioteca usando .pip

pip install prettytable

Em primeiro lugar, vamos importar a liberdade.

from prettytable import PrettyTable

Então, podemos usar para criar um objeto de tabela.PrettyTable

table = PrettyTable()

Uma vez que tenhamos o objeto de tabela, podemos começar a adicionar campos e linhas de dados.

table.field_names = ['Name', 'Age', 'City']
table.add_row(["Alice", 20, "Adelaide"])
table.add_row(["Bob", 20, "Brisbane"])
table.add_row(["Chris", 20, "Cairns"])
table.add_row(["David", 20, "Sydney"])
table.add_row(["Ella", 20, "Melbourne"])

Para exibir a mesa, basta imprimi-la!

print(table)

PrettyTable também suporta refinar os estilos de mesa, em quase todas as perspectivas que você pode pensar. Por exemplo, você pode alinhar corretamente o texto na tabela:
table.align = 'r'
print(table)

Classificar a tabela por uma coluna

table.sortby = "City"
print(table)



Você pode até mesmo obter sequência HTML da tabela

3. FuzzyWuzzy

Esta biblioteca não é apenas muito interessante, mas também muito útil, na minha opinião. Muitas vezes você pode querer implementar um recurso de pesquisa “confuso” para o seu programa. FuzzyWuzzy fornece uma solução fora da caixa e leve para isso.

Instale-o como de costume.pip

pip install fuzzywuzzy

Importar a biblioteca:

from fuzzywuzzy import fuzz

Vamos fazer um teste simples.

fuzz.ratio(“Let’s do a simple test”, “Let us do a simple test”)

Como mostrado o resultado “93” significa que essas duas cordas têm 93% de semelhança, o que é bastante alto.

Quando você tem uma lista de strings, e você quer pesquisar um termo contra todos eles, FuzzyWuzzy vai ajudá-lo a extrair as mais relevantes com suas semelhanças.

from fuzzywuzzy import processchoices = ["Data Visualisation", "Data Visualization", "Customised Behaviours", "Customized Behaviors"]process.extract("data visulisation", choices, limit=2)
process.extract("custom behaviour", choices, limit=2)


No exemplo acima, o parâmetro diz fuzzyWuzzy para extrair os resultados “top n” para você. Caso contrário, você terá uma lista de tuplas com todas essas cordas originais e suas pontuações de semelhança.limit

4. TQDM

Você geralmente desenvolve ferramentas de linha de comando usando Python? Se assim for, esta interessante biblioteca vai ajudá-lo quando sua ferramenta CLI está processando algo demorado, mostrando uma barra de progresso para indicar o quanto foi feito.

Instalação usando, novamente.pip

pip install tqdm

Quando você tiver uma função de uso de loop, basta substituí-la por tqdm.rangetrange

from tqdm import trangefor i in trange(100):
    sleep(0.01)




De forma mais geral, você pode querer fazer um loop de uma lista. Isso também é fácil com tqdm.

from tqdm import tqdm
for e in tqdm([1,2,3,4,5,6,7,8,9]):
    sleep(0.5)  # Suppose we are doing something with the elements



tqdm funciona não apenas para o ambiente de linha de comando, mas também iPython/Jupyter Notebook.


Image for post

5. Colorama

Deseja adicionar algumas cores aos seus aplicativos de linha de comando? Colorama torna muito fácil produzir tudo na sua cor preferida.

Instalar o Colorama precisa de novo.pip

pip install colorama

O Colorama suporta renderizar a cor do texto de saída em “primeiro plano” (a cor do texto), “fundo” (a cor de fundo) e “estilo” (estilo extra da cor). Podemos importar

from colorama import Fore, Back, Style

Em primeiro lugar, vamos mostrar alguns avisos usando a cor amarela.

print(Fore.YELLOW)
print("This is a warning!")
Image for post

Então, vamos tentar mostrar alguns erros usando uma cor de fundo vermelho.

print(Back.RED + Fore.WHITE + "This is an error!")


Image for post

Esse vermelho é muito brilhante. Vamos usar o estilo “dim”.

print(Back.RESET + Style.DIM + "Another error!")

Aqui estamos definindo “RESET” para voltar a alterar a cor de fundo para padrão.

Image for post

O estilo “DIM” torna a fonte meio invisível. Quando quisermos mudar tudo de volta ao normal, basta definir “Estilo” para “RESET_ALL”

print(Style.RESET_ALL)

Image for post

Resumo

Graças a esses desenvolvedores de código aberto que contribuem para a comunidade Python e a prosperam.

Antes de ver a biblioteca Bashplotlib, tenho que dizer que nunca tive essa ideia de traçar dados em um ambiente de linha de comando. Não importa se pode ou não ser útil para você, eu diria que a diversidade das ideias de desenvolvimento e criativos das pessoas nunca terminou.

A vida é curta, use Python!

Publicado por Medium 



18 ago
Accenture está contratando para mais de 500 vagas com home office

A empresa vai contratar profissionais de qualquer lugar do Brasil e oferece kit completo para o home office

Para se preparar para as demandas do mercado pós-pandemia, a Accenture está com 556 vagas abertas para trabalho remoto na área de tecnologia.

A consultoria se antecipa às tendências na área de computação em nuvem, prevendo que as companhias vão investir mais em tecnologias para a transformação digital.

“Quem não fez isso antes, sofreu mais agora. Com a crise, as empresas precisarão de investimentos certeiros para resolver seus problemas e se adaptar. Na migração de seus sistemas para a nuvem, mais do que nunca vão precisar também manter a segurança de informações e a privacidade de dados”, comenta a diretora executiva Flavia Picolo.

Aproveitando os aprendizados com o home office na quarentena, a empresa quer atrair os profissionais da área oferecendo oportunidades para trabalhar de casa.

“O profissional de tecnologia sempre teve uma super demanda, e que agora será ainda maior. Não estamos buscando apenas o especialista em Cloud, mas todos os componentes da área, como desenvolvedores backend e frontend”, diz a diretora.

Além da parte técnica, eles também valorizam pessoas com habilidades comportamentais para se encaixar na cultura da Accenture e na nova forma de trabalho. O destaque é para um perfil empreendedor, criativo e com vontade de inovar.

A flexibilidade da empresa se estende para os benefícios e a recepção dos contratados. Todos poderão personalizar o kit de equipamentos para ter todo o suporte em casa que teriam nos escritórios.

A ideia é que profissionais de qualquer lugar do Brasil possam se candidatar às vagas. Não tem internet boa em casa? Precisa de cadeira, apoio de pé, teclado e mouse? A empresa vai ajudar com isso.

“Além dos equipamentos, não queremos que eles percam o acesso a conhecimento que todos têm na empresa. Os novos contratados terão treinamentos online, certificação em cloud e mentores para acompanhar a carreira. Nada se perde nesse processo, apenas se soma”, explica ela.

Para a diretora, essa também será uma oportunidade para que mais mulheres possam seguir a carreira na área de TI. O trabalho em casa será aliado a horários mais flexíveis, o que facilita o equilíbrio entre o serviço e responsabilidades com a família.

As vagas tem como requisito conhecimento em Java, Angular, Mobile, React, iOS, Cloud ou DevOps. Saiba mais e se inscreve pelo site.

A área de TI, em particular a de programação, é uma das que mais contrata no Brasil mesmo com a crise. Até 2024, a projeção era de ao menos 70 mil novos postos de trabalho por ano, um crescimento ao redor de 10%, segundo a Brasscom, associação de empresas do setor.

As crises sanitária e econômica de 2020 podem mudar em algo as projeções, mas o essencial continua: vai faltar gente capacitada para trabalhar com tecnologia no Brasil. A escassez é mais aguda entre profissionais da chamada “ciência de dados”, dedicada aos softwares para análise de uma quantidade enorme de informações.

Publicado por Exame

03 jul
10 dicas para novos Programadores

Ter dificuldades é um processo comum para todos em fase de aprendizado da programação. Não tem problema se você cometeu erros, o mais importante é aprender com eles para tornar-se um profissional de excelência. Galera de Engenharia de Software, essas dicas são para vocês:

1. Tenha sua razão

Se você quer começar a programar, tem que ter uma razão. Você gosta de escrever código ou quer ter uma carreira mais lucrativa.
Programação não é simples, você vai ficar frustrado muitas vezes. Será essencial manter essa razão em mente para seguir em frente.

2. Construa uma base sólida

Antes de começar, revise alguns conceitos, a maior parte da programação é construída em matemática 1, funções e variáveis.

3. Encontre um grupo

Será útil para apoiá-lo quando começar. Será valioso porque outras pessoas estarão no mesmo lugar que você.

4. Divida os problemas

Uma das partes mais importantes da programação é pegar um grande problema e dividi-lo em partes cada vez menores até que essas partes sejam solucionáveis.

5. Pseudocódigo (pseudocoding)

Muitas vezes é útil escrever em detalhes o que você está tentando fazer em palavras simples antes de tentar escrever código.

6. Abrace o ciclo de aprendizagem

Se você está aprendendo a programar como uma segunda carreira, aprender a aprender será uma grande parte do seu processo.
Há muitos altos e baixos envolvidos, o que é muito natural! Se prepare para aquela montanha-russa antes de começar.

7. Comece com recursos gratuitos

Há um milhão de recursos para aprender a codificar. Alguns são gratuitos e alguns são pagos. Certifique-se de escrever código, e depois disso, você poderia pensar em recursos pagos.

8. Encontre o seu nicho

Há muitos mundos dentro da programação, encontrar um mundo que você ama e focar nisso, em vez de tentar aprender 8 linguagens de programação, todos os editores e ferramentas de desenvolvimento, etc.

9. Seja bom em reconhecimento de padrões

Reconhecer padrões no código é uma das habilidades mais importantes que você pode ter.

10. Faça bons hábitos cedo

Será mais fácil escrever código limpo no futuro se você adquirir o hábito cedo. Maus hábitos podem ser difíceis de quebrar. Um hábito pode influenciar no seu código.

Aprenda no Youtube

Umas das formas prazerosas e acessíveis de aprender coisas novas é pelo Youtube, então aí vai algumas dicas de canais para programadores:
– Rocketseat
– WP Masters
– Rodrigo Branas
– Código Fonte TV
– RB Tech
– Danki Code
– Filipe Deschamps
– Lucas Montano
– CFB Cursos
– DEV Media
– Vinícius Thiego
– Cursos em Vídeo

25 jun
Dicionário da Programação

Aprender termos básicos são essências para a evolução nos estudos e na profissão de programador. Confira alguns termos nesse dicionário da programação que nós do iCEV preparamos para você.

Algorithm
Um algoritmo é uma fórmula ou conjunto de etapas para resolver um problema específico.
API
A interface de programação de aplicatívos é uma maneira de os apps emprestarem funcionalidades e dados uns para os outros.
Array
São usados para armazenar vários valores em uma única variável.
Boolean
Uma expressão que resulta em um valor VERDADEIRO ou FALSO.
Breakpoint
A localização no código de programação que, quando alcançada, dispara uma parada temporária no programa.
Bug
Um “bug” é u m erro ou defeito de software ou hardware que causa mau funcionamento de um programa.
Class
Uma classe é uma descrição que abstrai um conjunto de objetos com características similares.
Caia
Chamar uma rotina em uma linguagem de programação. Chamar uma rotina consiste em especificar o nome da rotina e, opcionalmente, os parâmetros.
Character
No software de computador, qualquer símbolo que exija um byte de armazenamento.
Data Structure
Na programação, o termo estrutura de dados refere-se a um esquema para organizar informações relacionadas.
Data Type
Classificação de um tipo específico de informação. É fácil para os humanos distinguir entre diferentes tipos de dados.
Decode
Decodificação refere-se à reversão do processo de um método de codificação.

Encapsulamento
Empacotamento de dados e métodos em um único componente.
Exception (Exceção)
Um erro que ocorre durante a execução de um programa.
Exponenciação
A potenciação ou exponenciação é a operação de elevar um número ou expressão a uma dada potência.
Feature (Característica)
Uma propriedade notável de um dispositivo ou aplicativo de software.
Float
Um número com um ponto decimal.
Function (Função)
Um bloco de código reutilizável parametrizado que executa uma tarefa.
Gamification
Gamificação significa usar técnicas de design de jogos digitais em contextos que não são de jogos, como educação, negócios ou social.
Garbage Collection
Coletor de lixo é um processo usado para a automação do gerenciamento de memória.
Geek
Abreviação de nerd de computador, um indivíduo apaixonado por computadores, com exclusão de outros interesses humanos normais.
Hacker
Um termo de gíria para um entusiasta de computadores, ou seja, uma pessoa que gosta de aprender linguagens de programação e sistemas de computador e pode frequentemente ser considerado ] um especialista no (s) assunto (s).
Hard Disk
Um disco magnético no qual você pode armazenar dados do computador. O termo hard é usado para diferencia-lo de um disco flexível ou flexível.
Hardware
Refere-se a objetos nos quais você pode realmente tocar, como discos, unidades de disco, telas, teclados, impressoras, placas e chips. Por outro lado, o software é intocável.
I/O – input/output
Abreviação de entrada/saída. O termo E/S é usado para descrever qualquer programa, operação ou dispositivo que transfira dados para ou de um computador e para ou de um dispositivo periférico.
loT
loT é a abreviação de Internet das Coisas. Refere-se à crescente rede de objetos físicos que apresentam um endereço IP para Internet.
Java
Java é uma linguagem de programação de alto nível e uso geral desenvolvida pela Sun Microsystems.
Javascript
JavaScript é uma linguagem de script desenvolvida pela Netscape para permitir que autores da Web projetem sites e sistemas interativos.
Json
Abreviagao deJavaScript Object Notation,JSON 6 um formato leve de intercâmbio de dados que é fácil para humanos lerem e escreverem e para máquinas analisarem e gerarem.
KB – kilobyte
Abreviação de kilobyte. Quando usado para descrever o armazenamento de dados, o KB geralmente representa 1 .024 bytes.
Kbps – kilobits per second
Abreviação de kilobits por segundo, uma medida da velocidade de transferência de dados. Modems.por exemplo, são medidos em Kbps.
Kernel
O kernel é o módulo central de um sistema operacional (SO). É a parte do sistema operacional que carrega primeiro e permanece na memória principal.
Label
Um rótulo! Há muitas aplicações para esse termo na área de TI.
LAMP
Shortfor Linux, Apache, MYSQL and PHP, uma plataforma/pilha open-source para desenvolvimento web.
Latency – Latência
Na rede, a quantidade de tempo que um pacote leva para viajar da origem ao destino.

28 maio
Transforme suas ideias em Projetos Colaborativos e Ágeis com o Modelo CEK

Quando necessitamos planejar algo que visa a um objetivo ou produto específico, chamamos isso de Projeto. Podemos ter projetos mais simplistas, como a reforma de um cômodo de nossa casa, ou até mesmo projetos complexos, como o desenvolvimento de um sistema para mapeamento por meio de Geolocalização de celulares de identificação de possíveis casos de COVID-19.

O Gerenciamento de Projeto tem como objetivo o planejamento das ações, a sua execução e o controle de diversas atividades para alcançar os objetivos especificados de maneira sistematizada e organizada.

 

O que é o Modelo CEK?

Existem métodos e ferramentas que são utilizadas nas atividades de Gerenciamento de Projetos, alguns em todo o ciclo, outros em alguma fase. Partindo deste pressuposto, o Modelo CEK foi concebido a partir da integração das ferramentas Canvas, Estrutura Analítica do Projeto e Kanban, daí a origem do nome do Modelo. Desta forma, o projeto é norteado desde a sua concepção, a fase de levantamento de requisitos, até a sua plena execução de forma controlável e efetiva.

O Modelo CEK foi inicialmente abordado em um livro de autoria do professor Luciano Aguiar, em conjunto com os pesquisadores Fernando Escobar (PMI – DF), Washington Almeida (Unb – Brasília), Aíslan Rafael (IFPI – Picos) e Pedro César, publicado no Encontro Regional de Computação do Ceará, Maranhão e Piauí no ano de 2019.

O modelo pode transformar ideias em projetos colaborativos, ágeis, controláveis e efetivos.

 

Qual o propósito desse modelo?

O propósito desse modelo é agregar as melhores características dessas três ferramentas e percorrer todo o ciclo de vida de um projeto, não se esgotando a sua utilização apenas na Engenharia de Software.

Uma das áreas de estudo da Engenharia de Software é a Engenharia de Requisitos, e esse é um dos principais problemas da área: a má utilização de técnica já reconhecidas para o levantamento, descoberta e validação das necessidades dos usuários e cliente do produto de software que será entregue pelo projeto.

Como resposta a este cenário, fundamentado na abordagem por projetos aplicada à engenharia de software, em um método híbrido que combina elementos das abordagens tradicional e ágil, o Modelo CEK.

Trata-se da proposição da integração de diferentes ferramentas de gestão, de forma a mitigar os problemas relacionados ao desenvolvimento de software, em especial às falhas no levantamento de requisitos e definição de objetivos, à comunicação ineficiente entre equipe e clientes, com foco na ideação, planejamento e monitoramento da execução, reduzindo desperdícios, transformando ideias em projetos colaborativos, ágeis, controláveis e efetivos.

 

O que é cada ferramenta?*

Para entender melhor o modelo CEK é necessário conhecer cada uma das ferramentas.

Diagrama de integração das ferramentas. – Modelo CEK (Canvas + EAP + Kanban)

 

Nesse modelo, a fase inicial do projeto é o levantamento de requisitos da solução, se fosse aplicado à Engenharia de Software, mas no contexto mais amplo de projetos e com a utilização do Canvas de Projeto, essa fase é nomeada de ideação, ou seja, fase de brainstorming de ideias.

 

Canvas de Projeto

A história dos Canvas (isso mesmo, existem vários) surgiu no vale do silício americano com o Canvas de Modelo de Negócio, ou Business Model Canvas – BBMC. O Canvas de Projeto, que é utilizado no nosso modelo, já é uma adaptação do BMC proposta pelos professores Wankes e Helber.

 

 

O objetivo desse Canvas é envolver os stakeholders para o engajamento na formulação do projeto. Assim, com esse envolvimento das pessoas, a taxa de sucesso dos projetos tende a crescer. E como funciona? São feitas sessões guiadas por um facilitador para fechar o escopo inicial do projeto, preenchendo cada um dos blocos apresentados na figura acima.

 

EAP

Seguindo nas fases do modelo, agora a Estrutura Analítica do Projeto (EAP) ou em inglês WBS, que vem do PMBOK, Corpo de Conhecimento de Gerenciamento de Projetos.

A EAP é uma decomposição hierárquica de todo o escopo do projeto (trabalho total) que precisa ser executado pelo time do projeto a fim de produzir as entregas necessárias e satisfazer às necessidades das partes interessadas – cada nível descendente da EAP representa uma definição mais detalhada do nível mais alto correspondente e, ao final, de todo o trabalho do projeto.

Com a EAP busca-se a divisão dos pacotes de trabalho em uma análise bottom-up, sendo que ao final dessa etapa teremos todos os itens do backlog que serão monitorados com o uso do quadro Kanban.

 

Kanban

O Kanban teve origem na década de 40 do século passado no Japão, implementado em processos de manufatura e depois na indústria automobilística, em especial na empresa Toyota. É um método visual de gerenciamento de fluxo de trabalho para gerenciar as atividades de maneira eficaz.

A representação visual dos itens de trabalho em um quadro Kanban permite que os membros da equipe saibam o estado atual de cada item de trabalho a qualquer momento

O quadro Kanban apresenta de forma gráfica as atividades e em que estágio cada uma delas está no momento. No modelo CEK servirá para o controle dos entregáveis e aferição de desempenho das entregas.

Os itens ainda não iniciados, que compõem o backlog do projeto, são dispostos na coluna “a fazer”, conforme priorizados e com seu trabalho iniciado são movidos para a coluna ”fazendo”, uma vez concluídos, são movidos para a coluna “feito”.   A sistemática, quando aplicada, garante um sistema puxado e de fluxo contínuo, e ainda identifica visualmente as fases que estão com problema.

 

Como funciona o Modelo CEK?

O Modelo CEK adota a sistemática do Quadro Kanban, com os Pacotes de Trabalho da EAP, ainda não priorizados, sendo dispostos na coluna “a fazer” (compondo o backlog do projeto);  os Pacotes de Trabalho já priorizados e que tiveram seu trabalho iniciado (limitados a um Pacote de Trabalho por equipe ou responsável – em atenção ao limite do Work In Progress) são movidos para a coluna “fazendo”,  até que sejam concluídos e pontuados como “feito” – à medida que os cartões são movidos para a coluna “feito”, novos espaços são liberados para o “fazendo”, em um sistema puxado e de fluxo contínuo.

O fundamento da adoção do Kanban, que complementa a abordagem proposta pelo Modelo CEK – de transformar ideias em projetos colaborativos, ágeis, controláveis e efetivos – é justamente controlar a execução do projeto por meio do acompanhamento da execução dos pacotes de trabalho, definidos de forma colaborativa na EAP, derivados da concepção idealizada, também de forma colaborativa no Canvas.

 

Em que o modelo pode ajudar?

A junção das ferramentas busca a redução de desperdícios, a melhoria na comunicação, a agilidade do fluxo contínuo e puxado, e a efetividades dos projetos de software.

Ele propõe a integração dessas três ferramentas ao longo do ciclo de vida de um projeto, visando de forma assertiva a melhoria no controle e por consequência na efetividade do produto criado.

Nesse contexto, o modelo ajuda na construção de um modelo adaptável à realidade das organizações e que sua utilização possa trazer transformação de ideias em projetos colaborativos, ágeis, controláveis e efetivos, que são características de cada uma das ferramentas integrantes do modelo: o Canvas de Projeto, a EAP e o Kanban.

Maiores detalhes do Modelo CEK podem ser encontrados no endereço: http://www.modelocek.com.br

 

 

Autores: Luciano Aguiar, Washington Almeida e Fernando Escobar

 

08 maio
A ascensão do universo dos games. E sua potência no século 21

Mercado ultrapassou a indústria de cinema e de música em termos financeiros, se tornando a forma de entretenimento mais lucrativa do mundo

“PAC-MAN”, CONHECIDO NO BRASIL COMO “COME-COME”, FOI UM DOS JOGOS MAIS POPULARES DE TODOS OS TEMPOS

Em 2018, os games se tornaram mais lucrativos do que a indústria de Hollywood e a indústria musical combinadas, movimentando US$ 137 bilhões globalmente. A NewZoo, principal empresa de pesquisa da indústria dos games, projeta uma movimentação de US$ 152 bilhões até o final de 2019, um aumento de 9,6% em relação ao ano anterior.

UNIVERSO EM EXPANSÃO


Dominando a cultura pop, os games foram além do mero entretenimento e, além de serem um negócio lucrativo, influenciaram o desenvolvimento de aplicativos de uso cotidiano e se tornaram ferramenta de ensino em escolas.

O QUE é o universo dos games?

A indústria dos videogames, ou o universo dos games, é composta por três partes: as empresas que fabricam as tecnologias que suportam os jogos; os estúdios que desenvolvem os títulos; e a comunidade que consome os games.

Um game pode ser jogado em diversas plataformas. As tecnologias que suportam os jogos podem ser divididas em três categorias:

– Mobile: celulares, tablets e outros dispositivos móveis

– Consoles: equipamentos fabricados especificamente para o suporte de games. Atualmente, três empresas são as principais no mercado de consoles: a Sony, com o PlayStation; a Microsoft, com o Xbox; e a Nintendo, com o Switch.

– PCs: computadores de uso pessoal também podem ser usados para jogar os mais diversos tipos de jogos

Um estudo da empresa de consultoria Limelight publicado em março de 2019 demonstrou que as plataformas mobile são as mais populares entre os jogadores, com os celulares sendo os dispositivos preferidos para o ato de jogar. A pesquisa foi feita a partir de entrevista com 4.500 pessoas de nove países.

Os consoles são divididos por gerações. Em 2019, eles estão na oitava geração, com uma nona chegando a partir de 2020. O PlayStation 4 é o console mais popular da oitava geração, tendo vendido 91,6 milhões de unidades entre novembro de 2013 e dezembro de 2018.

Os jogos de videogame podem ser divididos em gêneros, com propostas, atmosferas e mecânicas individuais.  Em 2018, a empresa de pesquisa de mercado TechNavio fez um estudo detalhado do estado atual do mercado de games no mundo, a partir de dados vindos das desenvolvedoras, do varejo, dos governos e de publicações que estudam os games.

A pesquisa demonstrou que os jogos de ação são os mais populares entre os gamers, seguidos dos jogos de esporte e dos jogos no estilo battle royale, no qual todos os jogadores precisam ser derrotados, garantindo a vitória de apenas um indivíduo. Outros gêneros e subgêneros populares no mundo dos games são:

– FPS: sigla para first person shooter, o atirador em primeira pessoa. Nesses jogos, o jogador assume o papel e o ponto de vista de um personagem munido de armas, atrás de um objetivo. A franquia “Call of Duty” se encaixa na definição, colocando os jogadores em um ambiente de guerra. É um subgênero dos jogos de ação.

– Survival horror: nesse gênero, o jogador precisa sobreviver aos ataques de monstros, psicopatas e criaturas sobrenaturais, podendo ou não combatê-los. A franquia “Resident Evil” faz parte desse subgênero, trazendo para o jogador o desafio de sobreviver a um mundo tomado por zumbis.

– Jogos de ritmo: nesses títulos, o jogador precisa demonstrar coordenação motora para cumprir algum desafio. A franquia “Just Dance” pode ser definida dentro desse gênero, desafiando os jogadores a realizarem a coreografia de diversas músicas populares.

– RPG: sigla para role-playing game, ou jogo de interpretação de papéis. Nesse gênero, surgido nos jogos de tabuleiro, o jogador assume a identidade de um personagem, tomando decisões que influenciam no desenrolar da história apresentada. A franquia “The Witcher” se encaixa dentro do universo dos RPGs.

 

O mundo dos esportes digitais

Os eSports, disputas dentro do universo dos mais diversos jogos, têm ganhado força e se profissionalizado no mundo todo.

O site Twitch é a principal plataforma de streaming de disputas de jogos online. Segundo a ISPO, empresa de pesquisa do mercado esportivo, o jogo mais popular no serviço em 2019 é “Fortnite”, título presente nos computadores, consoles e plataformas mobile.

Além de “Fornite”, os jogos “League of Legends”, “Rainbow Six Siege”, “Dota 2”, “Overwatch” e “Counter-Strike: Global Offensive” são populares entre os competidores de esportes digitais.

De acordo com relatório divulgado pela empresa de consultoria NewZoo, o mercado de eSports deve movimentar US$ 1,1 bilhão ao redor do mundo em 2019, com projeção para movimentar US$ 1,8 bilhão no ano de 2022.

No Brasil, os eSports também ganharam seu espaço. A Confederação Brasileira de eSports lista 13 equipes como os principais times do país em 2019. Dentre os selecionados está o braço de esportes digitais do Clube de Regatas do Flamengo, inaugurado em 2017.

Os modelos de negócios dos games

A movimentação de tantos bilhões de dólares dentro do universo dos games acontece de diversas maneiras.

A principal delas é a compra dos jogos pelos jogadores, que pagam um valor para terem determinado título em uma mídia física ou em uma cópia digital obtida através de download.

Outro modelo popular é o chamado “freemium”, junção das palavras “free” (gratuito) e “ premium”. Usado principalmente em jogos mobile. Nesse cenário, o jogador consegue obter o game gratuitamente, mas precisa pagar por itens que trarão facilidades nas partidas e aprimoramentos para os personagens.

Os pacotes de DLC (“downloadable content”, ou conteúdo baixável) também se tornaram populares. Nesse modelo, o jogador paga o valor do jogo, mas também paga por conteúdos extras, como novos visuais para os personagens e novos desafios.

A publicidade nos games também é uma ferramenta usada para gerar lucro às desenvolvedoras. Usada nesse universo desde 1978, as propagandas podem aparecer através de banners que surgem na tela ou por meio do posicionamento de marcas no ambiente virtual do jogo. Em “FIFA”, franquia de simuladores de futebol, as mais diversas marcas pagam para serem inseridas nas placas de publicidade dos estádios virtuais e nas camisas dos jogadores.

QUEM faz parte do universo dos games?

Segundo a edição 2019 da Pesquisa Game Brasil, que tenta traçar o perfil dos gamers brasileiros, 66% dos brasileiros jogam videogames. Desse montante, as mulheres são maioria.

 

PERFIL DE QUEM JOGA

De acordo com a pesquisa, pessoas de 25 a 34 anos compõe a maior parte dos jogadores brasileiros, representando 37,7% do montante total.

A Pesquisa Game Brasil é feita a partir de uma parceria entre a agência de tecnologia Sioux Group, a empresa de pesquisa Blend New Research e a Escola Superior de Propaganda e Marketing (ESPM), levando em conta os jogos de todos os gêneros, independentemente da plataforma. Realizada anualmente, a pesquisa é feita a partir de questionário quantitativo, respondido por cerca de 3.200 pessoas.

Ainda segundo a Pesquisa Game Brasil, 67,2% dos brasileiros que jogam videogame se definiram como jogadores casuais, se envolvendo nas jogatinas até três vezes por semana, em sessões de até três horas. Cerca de 33% dos entrevistados se classificaram como jogadores hardcore, com partidas frequentes e longas.

Nos Estados Unidos, em 2017, a maior fatia do público gamer tinha entre 35 e 44 anos. 62% deles era homem e 38% era mulher.

 

QUANDO o universo dos games ganhou força?

O ato de jogar tem raízes antigas na humanidade. Em 2013, foi encontrado na Turquia o tabuleiro do jogo mais antigo que se tem conhecimento. As peças possuem pelo menos 5.000 anos.

Na terceira década do século 20, em 1938, o historiador holandês Johan Huizinga publicou o livro “Homo ludens”, peça central para os estudos dos jogos. Na obra, o autor propõe que o termo Homo ludens (o homem que joga, em tradução livre) fosse usado na nomenclatura da espécie humana, dada a importância dos jogos para o desenvolvimento das sociedades.

Também em “Homo ludens”, Huizinga apresenta a ideia do “círculo mágico”, um espaço criado a partir de uma série de premissas que fazem com que o ato de jogar seja um mergulho em outro universo, fazendo com que o jogador se distancie de suas aflições e problemas cotidianos.

Para que o “círculo mágico” seja construído, cinco premissas devem ser respeitadas:

1 – Jogar deve ser uma atividade livre, com a participação voluntária daqueles que fazem parte do jogo
2 – O jogo não deve fazer parte da vida real, construindo um universo com leis e costumes próprios
3 – O jogo precisa ter um sentido próprio, ancorado em regras que guiam a atividade para limites de tempo e espaço próprios
4 – A tensão, a incerteza e o acaso são elementos fundamentais de qualquer jogo
5 – Em todo jogo, o jogador precisa lutar por algo ou se tornar a representação de algo

Tão antigos quanto a própria cultura, os jogos atualmente ocupam um lugar de destaque no mundo do entretenimento, com os videogames sendo seus maiores expoentes, em uma crescente ao redor do mundo.

Na segunda metade do século 20, os jogos passaram a se aproveitar das tecnologias eletrônicas recentes à época para a criação de uma nova forma de entretenimento: os videogames.

O primeiro jogo eletrônico que se tem conhecimento é “Bertie the Brain”, desenvolvido em 1950 pelo engenheiro canadense Josef Kates. O título nada mais era do que uma versão em computador do clássico “Jogo da Velha”.

Porém, os anos 1970 marcaram a ascensão da popularidade e do desenvolvimento dos games. Em 1972, os fliperamas americanos passaram a oferecer “Pong” como uma opção eletrônica aos tradicionais pinballs.

Em “Pong”, dois traços, controlados pelos jogadores, precisam bater e rebater uma bolinha (quadrada), em uma versão eletrônica dos jogos de tênis de mesa.

Cinco anos depois, em 1977, os videogames chegaram aos lares americanos, com o lançamento do console Atari 2600. Desde o seu lançamento, mais de 27 milhões de unidades foram vendidas ao redor do mundo.

A partir dos anos 80, o Japão passa a ser uma potência no desenvolvimento de games. É nesta década que se estabelece uma das maiores rivalidades do mercado: a concorrência entre a Sega e a Nintendo, principais empresas da indústria de games japonesa.

A concorrência entre as duas empresas também ocupou lugar na boca dos fãs, que até hoje produzem memes e abrem discussões sobre qual das duas empresas seria melhor. Em 2018, foi anunciada a produção de uma série de TV inspirada pela disputa.

Nas primeiras duas décadas dos videogames, os jogos possuíam gráficos 2D, que traziam um visual chapado, sem qualquer noção de profundidade. Nos anos 90, os jogos 3D ganharam popularidade, com os consoles Sega Saturn e Nintendo 64. Nessa mesma década, a japonesa Sony entrou no mercado de videogames, com o lançamento do primeiro PlayStation, em 1995.

No começo dos anos 2000, a Sega abandonou o mercado de consoles após crises internas e a queda em sua popularidade. Desde então, esse setor é dominado pela Sony, pela Nintendo e pela Microsoft, que lançou, em 2001, a primeira geração do Xbox.

Algumas tendências marcaram a tecnologia dos games nos anos 2000. Em 2006, a Nintendo lançou o Nintendo Wii, console que trazia como diferencial controles sem fio que respondiam de acordo com os movimentos dos jogadores. Três anos depois, a Sony entrou na onda dos controles por movimento com o lançamento do PS Move, um controle similar ao do Wii. Em 2010, a Microsoft lançou o Kinect, uma câmera que capta os movimentos do jogador e transmite-os para os jogos, sem a necessidade de um controle físico. À época, os controles por movimento eram considerados a tecnologia que definiria o futuro dos games.

Desde 2014, a Realidade Virtual tem sido um norte para a indústria dos games, com o desenvolvimento de óculos especiais munidos de uma tela, que fazem com que o jogador fique completamente imerso no universo dos jogos que suportam esse tipo de tecnologia.

Durante todo esse processo, os jogos de computador foram se desenvolvendo de acordo com o avanço das tecnologias de computação pessoal.

ONDE o universo dos games exerce maior influência?

Por muito tempo, os Estados Unidos e o Japão foram os maiores centros de produção e consumo de videogames no mundo.

Com o passar do tempo e a globalização, mais países emergiram dentro da indústria e passaram a ocupar a lista dos maiores mercados de videogames no mundo.

A edição 2019 do estudo da NewZoo demonstrou que os EUA são o maior país consumidor de games no mundo. China, Japão, Coreia do Sul e Alemanha completam as cinco primeiras posições, nessa ordem. O Brasil ocupa a 13ª posição do ranking.

Na Coreia do Sul, o quarto maior mercado mundial, os eSports são extremamente populares. Em 2018, o Ministério da Cultura, Esportes e Turismo do país anunciou a construção de três novas arenas para sediar eventos de esportes digitais. Entre 2014 e 2018, o governo do país investiu US$ 274 bilhões no setor.

Em 2019, 2,3 bilhões de pessoas ao redor do mundo se consideraram jogadoras de videogame, nas mais diversas plataformas. Em números de jogadores, a Ásia é o continente que representa o maior montante: 1,2 bilhão de pessoas que se consideram gamers.

ONDE ESTÃO OS GAMERS

Em termos de produção, a Polônia ganhou destaque nos últimos anos. O país possui cerca de 120 empresas ligadas à indústria dos games, prestando serviços em todos os estágios da produção, do desenvolvimento à distribuição.

A principal empresa no cenário é a CD Projekt, que, em 2015, ganhou o troféu Jogo do Ano do prêmio The Game Awards, o mais importante do mundo, por “The Witcher 3: Wild Hunt”. O título já vendeu mais de 20 milhões de unidades ao redor do mundo.

COMO o universo dos games se relaciona ao extremismo?

Na década de 2010, parte da comunidade gamer se aproximou dos discursos de direita. Dados do Facebook, publicados em janeiro de 2019, demonstraram que 34% dos gamers americanos se identificam como conservadores ou muito conservadores.

O fenômeno ganhou mais força a partir de 2014, com o surgimento do movimento Gamergate. Os membros do Gamergate se alinham com ideias misóginas, nacionalistas, xenófobas e racistas.

O britânico Milo Yiannopoulos, jornalista e ativista de extrema direita, usou o Gamergate como uma ferramenta de divulgação de suas ideias. Em 2014, no início do movimento, Yannopoulos publicou um artigo no site Breitbart onde diz que “bullies feministas estão destruindo a indústria de jogos”.

Em 2017, Steve Bannon, líder da campanha eleitoral do presidente americano Donald Trump, contou ao USA Today que Yiannopoulos soube se comunicar com os membros do movimento.

“Eu logo percebi que Milo conseguia se conectar com esses jovens”, disse Bannon. “Você pode ativar esse exército. Eles saem do Gamergate ou de qualquer coisa assim e logo começam a gostar de política e de Trump”, acrescentou.

Kristin Bezio, professora de estudos de liderança na Universidade de Richmond, acredita que o Gamergate foi um precursor da ascensão da chamada alt-right, a “direita alternativa”.

O termo alt-right inclui um grupo de indivíduos da extrema-direita  que geralmente abraçam ideias nacionalistas, racistas, misóginas e antissemitas, expressadas em ambientes digitais de maneira provocativa.

POR QUE o universo dos games cresceu tanto?

Em 2011, o doutor em psicologia Andy Przybylski, da Universidade de Essex, no Reino Unido, realizou um estudo para entender por que os games se tornaram tão populares.

Os resultados foram publicados na revista Psychological Science. De acordo com Przybylski, os videogames permitem que os jogadores ajam de acordo com uma versão idealizada deles mesmos.

“A atração de se jogar um videogame, e o que os torna divertidos, é a chance que eles dão para as pessoas pensarem em um papel que elas gostariam de ter idealmente, e o fato de terem a chance de ocupar esse lugar”, afirmou.

A popularidade dos games se estendeu para além de seu próprio universo. Um fenômeno recente é a chamada gamificação. É a aplicação de mecânicas de jogos em outros campos, como a administração de empresas, a educação e a avaliação de serviços, como acontece no Uber: o sistema de estrelas do motorista e do passageiro se baseia na ideia de tarefa e recompensa, ideia central para todo jogo.

Nas escolas, os games passaram a ser usados como ferramenta de complementação do estudo. “Minecraft” é um dos jogos mais populares do mundo, permitindo que o jogador construa mundos inteiros usando bloquinhos quadrados. Em 2016, a desenvolvedora Mojang lançou uma versão do game feita especialmente para que estudantes possam pôr em prática conceitos de geografia, física e matemática.

A franquia “Assassin’s Creed” também é popular globalmente. No jogo, direcionado para um público mais velho, o jogador assume o papel de um personagem da Ordem dos Assassinos. Cada título da franquia se passa em um momento histórico diferente, do Egito Antigo à Revolução Industrial em Londres.

A partir de 2018, os jogos da franquia “Assassin’s Creed” passaram a trazer um modo educacional, sem violência, para que os jogadores explorem o momento histórico de cada título, entendendo a conjuntura sociopolítica de cada época.

Kurt Squire, doutor em Aprendizagem Conectada pela Universidade da Califórnia, publicou um artigo em 2005 onde argumenta que o uso de games dentro da sala de aula pode trazer uma motivação extra aos alunos através da fantasia, do poder de escolha, dos desafios, da competição e da curiosidade, elementos intrínsecos a  qualquer jogo.

Games são arte?

Há dentro da indústria um debate acerca da tipificação dos games enquanto uma forma de arte. Em 2012, o museu Smithsonian, um dos mais importantes do mundo, organizou uma exposição para mostrar aos visitantes os videogames enquanto expressão artística.

Em 2006, Renaud Donnedieu de Vabres, ex-Ministro da Cultura da França, afirmou que os videogames eram sim uma forma artística. Por conta disso, Vabres deu às desenvolvedoras francesas uma redução de 20% dos impostos pagos durante o processo de produção dos jogos.

No mesmo ano, Hideo Kojima, considerado um dos melhores desenvolvedores de jogos do mundo, afirmou ao site Eurogamer que não considerava os jogos uma forma de arte.

“Se 100 pessoas passam por uma obra e uma única é cativada por aquela peça, isso é arte. Mas videogames não querem cativar apenas uma pessoa. Um jogo precisa fazer com que as 100 pessoas que jogam se sintam felizes com aquele serviço”, afirmou “Os games são como um serviço. Não são arte. Mas eu acho que é a forma com que esse serviço é oferecido possui elementos artísticos”, acrescentou.

Publicado por: Nexo Jornal 

 

 

10 abr
4 recursos subestimados para aprender Data Science que podem surpreendê-lo

Você está cansado dos MOOCs on-line? Ou simplesmente tem um obstáculo? Esse artigo é para você.

Top Kaggle Kernels

O melhor guia sobre Ensembling / Stacking que eu já li é um dos principais kaggle kernel.

 

Statquest (canal do Youtube) – Sim, um canal do YouTube que realmente vale o seu tempo

Livros didáticos para faculdade

Não é a Khan Academy, mas alguns livros didáticos de 1000 páginas? Sim, você ouviu direito. Na minha opinião, nada se compara à educação universitária se você quiser REALMENTE estudar matemática (neste contexto: cálculo, álgebra linear).

Livro de cálculo

Artigos Online

Por artigos online, quero dizer curto, direto ao ponto. Se você acha difícil ler artigos longos de pesquisa, essa opção pode ser para você. O mesmo com o Kaggle Kernels, você encontrará muitos artigos preguiçosos e plagiados na Internet. Ao pesquisar um tópico, você precisa ter um objetivo específico em mente, porque é muito fácil ficar de fora de qualquer link atraente que você vê na página de Pesquisa do Google.

Artigos como esse me ajudaram muito quando comecei a aprender Machine Learning

Conclusão

Afinal, não os recursos, mas o que você aprendeu é o que importa. Os cientistas de dados estão naturalmente curiosos sobre os dados que estão visualizando. Tente conectar os pontos .

Fonte: Medium 

24 mar
Supercomputador contra o Coronavírus

A Inteligência Artificial - IA, se utilizada para propósitos corretos, pode converter-se numa ferramenta incrível no combate rápido e eficaz de doenças infecciosas, mas não só delas

A CNN noticiou que o computador mais potente do mundo — o Summit, da IBM — acabou de apontar 77 drogas promissoras contra o novo coronavírus.

A notícia é boa sob muitos aspectos. Sobretudo, porque mostra que a Inteligência Artificial – IA, se utilizada para propósitos corretos, pode converter-se numa ferramenta incrível no combate rápido e eficaz de doenças infecciosas, mas não só delas.

Depois, porque é ilustrativa de como se dará, nos próximos anos e décadas, o progresso com o uso da IA. Realmente, a implementação da IA para resolver problemas práticos sustenta-se em três pilares:

1) dados sobre os fatos que se quer trabalhar (no caso, sobre as drogas e sobre as doenças que elas tratam e sua eficácia);

2) capacidade de computação, isto é, de manipulação dos dados por um processador (no caso, o Summit é o computador mais poderoso do mundo);

3) algoritmos fortes, ou seja, programas de instrução ao computador concebidos com precisão e criatividade.

Cada um desses fundamentos está se desenvolvendo de modo rápido e independente. Os dados têm tido um crescimento orgânico exponencial no nosso dia a dia. A vida está se tornando cada vez mais digitalizada, desde a compra de um remédio, a uma conversa com um amigo, a um deslocamento pela cidade, etc,, tudo aquilo que fazemos está de algum modo se convertendo em dados que acabam, de algum modo, caindo na internet.

Face mais brilhante da evolução

A capacidade de computação também não para de crescer. Segundo a Lei de Moore, formulada em 1965 e ainda válida até certo ponto, a cada 18 meses essa capacidade dobra de tamanho (isso para não falar na computação quântica, que se vier a se tornar realidade, irá acelerar de modo dramático esse crescimento). E, finalmente, os algoritmos. Esses são a face mais brilhante dessa evolução.

Os algoritmos estão apoiados sobre conhecimentos matemáticos. Eles são como uma tradução, em termos rigorosos, de um acontecimento do mundo. Nesse aspecto, eles mimetizam a inteligência humana.

Percebemos o mundo pelos sentidos, e com esses “dados” e “experiências anteriores” nossos cérebros criam conhecimento, que é essencialmente previsão. Aqui há muita discussão filosófica sobre se o conhecimento é prévio à experiência, se nasce apenas dela, ou de um mix de formas mentais apriorísticas em contato com o mundo sensível.

 

O que é, afinal, o conhecimento?

Em todo caso, parece certo que a experiência desempenha papel importante, e é fora de dúvida que está no cérebro a capacidade de sintetizar os dados caóticos para construir o conhecimento. Mas muitas perguntas desconcertantes remanescem: como se dá essa síntese? O amontado de impulsos elétricos se transforma em conhecimento de uma forma rígida ou também a forma de sintetizar muda? O que é, afinal, o conhecimento?

Sem querer dar respostas para essas complexas indagações, e nos concentrando apenas no chamado “conhecimento científico”, podemos avançar um pouco, admitindo que esse tipo de pensamento está enraizado na ideia de “causalidade”.

Especialmente para as chamadas ciências empíricas, a ligação de causa e efeito está na base da produção do conhecimento. Se aumento a temperatura de um gás, então o seu volume aumenta; se solto um corpo de certa altura na Terra, ele cai a uma aceleração próxima de 10m/s2, etc. — essas são premissas científicas que foram construídas com base em observação e síntese intelectual.

A casualidade está na natureza?

É problemático dizer que a causalidade está na Natureza, e não em nossa forma de vê-la. Basta pensar nas “descobertas” que nos fizeram ver coisas que antes não víamos.

Ora, se isso acontece o tempo todo, então é razoável supor que há ainda um vasto número de causalidades desconhecidas e que, mesmo sobre o que sabemos, podemos depois construir um conhecimento mais correto, com mais observações e mais trabalho intelectual. Santo Agostinho dizia que o milagre existe e não nega a causalidade, pois ele apenas revela aspectos que não sabemos sobre a causalidade.

A causalidade, quando entra na linguagem, converte-se numa conexão de sentido estabelecida entre duas ou mais informações: dado o fato A, então ocorre (ou deve ocorrer) o fato B. Nosso cérebro aprende esse tipo de ligação ora com a experiência, ora com o ensino orientado. Ele também é capaz de cruzar muitas dessas causalidades e inferir outras, eventualmente nunca “experienciadas”.

Aí estamos no campo do insight, que é a percepção de uma causalidade oculta e surpreendente. Praticamente, é um insight que os cientistas buscam ao apresentar ao Summit o problema da proliferação do COVID19.

Machine Learning

As máquinas, a princípio, eram limitadas quanto a oferecer respostas novas para problemas velhos ou não previamente conhecidos. Isso porque elas já nasciam prontas, não “aprendiam” nada. Arthur Samuel, em 1959, foi um dos primeiros a usar o termo aprendizado de máquina (machine learning) num artigo em que discutia a possibilidade de um computador “aprender” a jogar damas melhor do que o seu programador.

Ou seja, se seria possível que a máquina fizesse uma atividade sem ter sido explicitamente programada para tal. Essa revolução só poderia ocorrer com alterações nos algoritmos, o que acabou ocorrendo nas décadas seguintes.

O ponto central do machine learning é a capacidade de autoaprendizado com base em um conjunto de dados. Em vez de o input exprimir um comando para gerar o output pré-programado, no machine learning o input é o próprio conjunto de dados brutos, que será tratado por um modelo que produzirá o output, segundo relações de inferência estatística e outros métodos de cálculo matemático.

Isso quer dizer que o output não é previamente conhecido sequer do programador, pois depende do conjunto de dados apresentado, do algoritmo utilizado e até das “experiências anteriores” do algoritmo.

De fato, uma característica importante do machine learning é a sua capacidade de aperfeiçoamento com a “experiência”. À medida que o modelo é mais e mais treinado com diferentes conjuntos de dados, os outputs tendem a apresentar mais acurácia. Nas rígidas programações pré-definidas, isso não ocorre, pois, o programa não evolui.

Tecno-otimismo

Os vírus, por outro lado, são criaturas impressionantes, que têm uma habilidade específica para ocupar organismos vivos (seria isso uma forma de inteligência?). Não há consenso sequer sobre se eles são seres vivos ou não, embora não haja dúvida sobre quanto dano eles são capazes de causar.

Com uma notável capacidade de adaptação às mais diferentes condições, seu parco material genético (digamos, seu algoritmo), seu minúsculo tamanho (digamos, seu hardware), os vírus são uma antiga e poderosa força bruta da natureza, capazes de infectar até mesmo bactérias.

Sou tecno-otimista. Acho que Summit versus Corona é o modelo de uma luta que promete ser cada vez mais favorável para nós, humanos. As “máquinas pensantes” podem abrir novos horizontes, com mais qualidade de vida, mais longevidade e mais desenvolvimento humano de um modo geral.

 

17 mar
15 App Ideas to Build and Level Up your Coding Skills

App ideas that are great to improve your coding skills, experiment with new technologies and add to your portfolio!

We all know that it can be hard sometimes to find new application ideas that you could build in order to either improve or learn a new programming language or framework.

Tip: When writing reusable code, turn into Bit components. Then you can easily share and reuse it across all your apps and projects, to easily build better modular software applications faster. It’s open source, give it a try.

In this article we’re going to look into 15 app ideas which are:

  • great to improve your coding skills 💪;
  • great to experiment with new technologies 🆕;
  • great to be added in your portfolio to impress your next employer/client 📁;
  • great to be used as examples in tutorials (articles or videos) 📃;
  • easy to complete and also easily extendable with new features 👌;

And on top of that, each app idea has:

  1. A clear and descriptive objective;
  2. A list of User Stories which should be implemented;
  3. A list of bonus features which are option, but “good-to-have”;option, but “good-to-have”;
  4. All the resources and links to help you find what you need to complete the project

We divided these app ideas into three tiers based on the knowledge and experience required to complete them. The tiers are: BeginnerIntermediate and Advanced.

In this article you’ll find 5 ideas from each tier.

1. Countdown Timer

Tier: 1-Beginner

We all have important events we look forward to in life, birthdays, anniversaries, and holidays to name a few. Wouldn’t it be nice to have an app that counts down the months, days, hours, minutes, and seconds to an event? Countdown Timer is just that app!

The objective of Countdown Timer is to provide a continuously decrementing display of the he months, days, hours, minutes, and seconds to a user entered event.

Constraints

  • Use only builtin language functions for your calculations rather than relying on a library or package like MomentJS. This assumes, of course, that the language of your choice has adequate date and time manipulation functions built in.
  • You may not use any code generators such as the Counting Down To site. You should develop your own original implementation.

User Stories

  • User can see an event input box containing an event name field, an date field, an optional time, and a ‘Start’ button.
  • User can define the event by entering its name, the date it is scheduled to take place, and an optional time of the event. If the time is omitted it is assumed to be at Midnight on the event date in the local time zone.
  • User can see a warning message if the event name is blank.
  • User can see a warning message if the event date or time are incorrectly entered.
  • User can see a warning message if the time until the event data and time that has been entered would overflow the precision of the countdown timer.
  • User can click on the ‘Start’ button to see the countdown timer start displaying the days, hours, minutes, and seconds until the event takes place.
  • User can see the elements in the countdown timer automatically decrement. For example, when the remaining seconds count reaches 0 the remaining minutes count will decrement by 1 and the seconds will start to countdown from 59. This progression must take place from seconds all the way up to the remaining days position in countdown display.
  • Bonus features

    • User can save the event so that it persists across sessions
    • User can see an alert when the event is reached
    • User can specify more than one event.
    • User can see a countdown timers for each event that has been defined.

    Useful links and resources

    Example projects

    Countdown Timer built with React

    Simple Clock/Countdown Timer

    2. FlipImage

    Tier: 1-Beginner

    It’s important for Web Developers to understand the basics of manipulating images since rich web applications rely on images to add value to the user interface and user experience (UI/UX).

    FlipImage explores one aspect of image manipulation — image rotation. This app displays a square pane containing a single image presented in a 2×2 matrix. Using a set of up, down, left, and right arrows adjacent to each of the images the user may flip them vertically or horizontally.

    You must only use native HTML, CSS, and Javascript to implement this app. Image packages and libraries are not allowed.

    User Stories

    • User can see a pane containing a single image repeated in a 2×2 matrix
    • User can flip any one of the images vertically or horizontally using a set of up, down, left, and right arrows next to the image

    Bonus features

    • User can change the default image by entering the URL of a different image in an input field
    • User can display the new image by clicking a ‘Display’ button next to the input field
    • User can see an error message if the new images URL is not found

    Useful links and resources

    Example projects

    Image Effects by bennettfeely

    3. Notes App

    Tier: 1-Beginner

    Create and store your notes for later purpose!

    User Stories

    • User can create a note
    • User can edit a note
    • User can delete a note
    • When closing the browser window the notes will be stored and when the User returns, the data will be retrieved

    Bonus features

    • User can create and edit a note in Markdown format. On save it will convert Markdown to HTML
    • User can see the date when he created the note

    Useful links and resources

    Example projects

    Markdown Notes built with Angular on Codepen

    Markdown Notes built with React

    Markdown Notes built with Angular 7 and bootstrap 4

    4. Recipe

    Tier: 1-Beginner

    You might not have realized this, but recipe’s are nothing more than culinary algorithms. Like programs, recipe’s are a series of imperative steps which, if followed correctly, result in a tasty dish.

    The objective of the Recipe app is to help the user manage recipes in a way that will make them easy to follow.

    Constraints

    • For the initial version of this app the recipe data may be encoded as a JSON file. After implementing the initial version of this app you may expand on this to maintain recipes in a file or database.

    User Stories

    • User can see a list of recipe titles
    • User can click a recipe title to display a recipe card containing the recipe title, meal type (breakfast, lunch, supper, or snack), number of people it serves, its difficulty level (beginner, intermediate, advanced), the list of ingredients (including their amounts), and the preparation steps.
    • User click a new recipe title to replace the current card with a new recipe.

    Bonus features

    • User can see a photo showing what the item looks like after it has been prepared.
    • User can search for a recipe not in the list of recipe titles by entering the meal name into a search box and clicking a ‘Search’ button. Any open source recipe API may be used as the source for recipes (see The MealDB below).
    • User can see a list of recipes matching the search terms
    • User can click the name of the recipe to display its recipe card.
    • User can see a warning message if no matching recipe was found.
    • User can click a ‘Save’ button on the cards for recipes located through the API to save a copy to this apps recipe file or database.

    Useful links and resources

    Example projects

    Recipe Box — a Free Code Camp Project (FCC)

    React Recipe Box

    5. Quiz App

    Tier: 1-Beginner

    Practice and test your knowledge by answering questions in a quiz application.

    As a developer you can create a quiz application for testing coding skills of other developers. (HTML, CSS, JavaScript, Python, PHP, etc…)

    User Stories

    • User can start the quiz by pressing a button
    • User can see a question with 4 possible answers
    • After selecting an answer, display the next question to the User. Do this until the quiz is finished
    • At the end, the User can see the following statistics
    • Time it took to finish the quiz
    • How many correct answers did he get
    • A message showing if he passed or failed the quiz

    Bonus features

    • User can share the result of a quiz on social media
    • Add multiple quizzes to the application. User can select which one to take
    • User can create an account and have all the scores saved in his dashboard. User can complete a quiz multiple times

    Useful links and resources

    Example projects

    Quiz app built with React (wait for it to load as it is hosted on Heroku)

    Quiz app interface

    6. Book Finder App

    Tier: 2-Intermediate

    Create an application that will allow users to search for books by entering a query (Title, Author, etc). Display the resulting books in a list on the page with all the corresponding data.

    User Stories

    • User can enter a search query into an input field
    • User can submit the query. This will call an API that will return an array of books with the corresponding data (Title, Author, Published Date, Picture, etc)
    • User can see the list of books appearing on the page

    Bonus features

    • For each item in the list add a link that will send the User to an external site which has more information about the book
    • Implement a Responsive Design
    • Add loading animations

    Useful links and resources

    You can use the Google Books API

    Example projects

    Book Finder

    7. Card-Memory-Game

    Tier: 2-Intermediate

    Card memory is a game where you have to click on a card to see what image is underneath it and try to find the matching image underneath the other cards.

    User Stories

    • User can see a grid with n x n cards (n is an integer). All the cards are faced down initially (hidden state)
    • User can click a button to start the game. When this button is clicked, a timer will start
    • User can click on any card to unveil the image that is underneath it (change it to visible state). The image will be displayed until the user clicks on a 2nd card

    When the User clicks on the 2nd card:

    • If there is a match, the 2 cards will be eliminated from the game (either hide/remove them or leave them in the visible state)
    • If there isn’t a match, the 2 cards will flip back to their original state (hidden state)
    • When all the matches have been found, the User can see a dialog box showing a Congratulations message with a counter displaying the time it took to finish the game

    Bonus features

    • Use can choose between multiple levels of difficulty (Easy, Medium, Hard). Increased difficulty means: decreasing the time available to complete and/or increasing the number of cards
    • User can see the game statistics (nr. of times he won / he lost, best time for each level)

    Useful links and resources

    Example projects

    Flip — card memory game

    Memory Game

    SMB3 Memory Card Game

    8. Drawing App

    Tier: 2-Intermediate

    Create digital artwork on a canvas on the web to share online and also export as images.

    User Stories

    • User can draw in a canvas using the mouse
    • User can change the color
    • User can change the size of the tool
    • User can press a button to clear the canvas

    Bonus features

    • User can save the artwork as an image (.png.jpg, etc format)
    • User can draw different shapes (rectanglecirclestar, etc)
    • User can share the artwork on social media

    Useful links and resources

    Example projects

    Drawing App by Florin Pop

    Drawing App by t0mm4rx

    9. Simple Online Store

    Tier: 2-Intermediate

    The goal of the Simple Online Store is to give your users the capability of selecting a product to purchase, viewing purchase information, adding it to an online shopping cart, and finally, actually purchasing the products in the shopping cart.

    Constraints

    • Starting out you may implement your product inventory as an array of JavaScript objects if you are developing in JavaScript. For other languages feel free to choose the in memory solution of your choice.

    User Stories

    • User can click on a ‘View Products’ button on the Landing Page to display the Products Page.
    • User can see a card on the Products Page for each Product showing the product thumbnail, name, price, a short description, and a ‘Select’ button.
    • User can see a Product Details page displayed when the ‘Select’ button is clicked showing the same information from the product card, but also a unique product id, a long description, ‘Add to Cart’ button, and a ‘See More Products’ button.
    • User can see a confirmation message when the product is added to the shopping cart.
    • User can click on the ‘See More Products’ page to return to the Products Page.
    • User can see a ‘Shopping Cart’ button on both the Landing Page or the Products Page. Hint: a top bar might be a good common location for this button.
    • User can click on the ‘Shopping Cart’ button to display the Shopping Cart page containing the product id, name, price, and quantity ordered input box for each product previously added to the Shopping Cart.
    • User can see a total purchase amount on the Shopping Card that is calculated as the sum of the quantities multiplied by the unit price for each product ordered.
    • User can adjust the quantity ordered for any product to adjust the total purchase amount.
    • User can click a ‘Place Order’ button on the Shopping Cart Page to complete the order. User will see a confirmation number when the order has been placed.
    • [ ) User can click a ‘Cancel Order’ button on the Shopping Cart Page to cancel the order. User will see the product quantities and the total purchase amount reset to zero.
    • User can click a ‘See More Products’ button on the Shopping Cart Page to return to the Products Page. If the order hasn’t been placed yet this will not clear the products that have already been added to the Products Page.

    Bonus features

    • User can see an error message if the quantity ordered exceeds the “on hand” quantity of the product.
    • User can specify a bill to and ship to address when the order is placed from the Shopping Cart Page
    • User can see shipping charges added to the total purchase amount
    • User can see sales taxes added to the total purchase amount
    • Developer will implement the product inventory in an external file or a database.

    Useful links and resources

    There are plenty of eCommerce Site Pages out there. You can use Dribbble and Behance for inspiration.

    Example projects

    eCommerce Animations

    10. To-Do App

    Tier: 2-Intermediate

    The classic To-Do application where a user can write down all the things he wants to accomplish.

    User Stories

    • User can see an input field where he can type in a to-do item
    • By pressing enter (or a button), the User can submit the to-do item and can see that being added to a list of to-do’s
    • User can mark a to-do as completed
    • User can remove a to-do item by pressing on a button (or on the to-do item itself)

    Bonus features

    • User can edit a to-do
    • User can see a list with all the completed to-do’s
    • User can see a list with all the active to-do’s
    • User can see the date when he created the to-do
    • When closing the browser window the to-do’s will be stored and when the User returns, the data will be retrieved

    Useful links and resources

    Example projects

    Todo App built with React

    To Do List on Codepen

    11. Calorie Counter

    Tier: 3-Advanced

    Getting and staying healthy requires a combination of mental balance, exercise, and nutrition. The goal of the Calorie Counter app is to help the user address nutritional needs by counting calories for various foods.

    This app provides the number of calories based on the result of a user search for a type of food. The U.S. Department of Agriculture MyPyramid Food Raw Data will be searched to determine the calorie values.

    Calorie Counter also provides you, the developer, with experience in transforming raw data into a format that will make it easier to search. In this case, the MyPyramid Food Raw Data file, which is an MS Excel spreadsheet, must be downloaded and transformed into a JSON file that will be easier to load and search at runtime (hint: take a look at the CSV file format).

    User Stories

    • Developer will create a JSON file containing the food items to be searched. This will be loaded when the app is started.
    • User can see an panel containing a food description input text box, a ‘Search’ button, and a ‘Clear’ button.
    • User can enter search terms into the food description input text box.
    • User can click on the ‘Search’ button to search for the matching food.
    • User can see and warning message if no search terms were entered.
    • User can see a warning message if no matches were found.
    • User can see a list of the matching food items, portion sizes, and calories in a scrollable results panel that is limited to 25 entries.
    • User can click on the ‘Clear’ button to clear the search terms and results list.

    Bonus features

    • User can see the count of the number of matching food items adjacent to the results list.
    • User can use a wildcard character in search terms.
    • User can see more than 25 entries from a search by clicking a Down icon button to add more matching food items to the search results list.
    • Developer will implement load the MyPyramid data into a database or a data structure other than an array for faster searching.

    Useful links and resources

    MyPyramid Food Raw Data

    Example projects

    Food Calculator

    12. Chat App

    Tier: 3-Advanced

    Real-time chat interface where multiple users can interact with each other by sending messages.

    As a MVP(Minimum Viable Product) you can focus on building the Chat interface. Real-time functionality can be added later (the bonus features).

    User Stories

    • User is prompted to enter a username when he visits the chat app. The username will be stored in the application
    • User can see an input field where he can type a new message
    • By pressing the enter key or by clicking on the send button the text will be displayed in the chat box alongside his username (e.g. John Doe: Hello World!)

    Bonus features

    • The messages will be visible to all the Users that are in the chat app (using WebSockets)
    • When a new User joins the chat, a message is displayed to all the existing Users
    • Messages are saved in a database
    • User can send images, videos and links which will be displayed properly
    • User can select and send an emoji
    • Users can chat in private
    • Users can join channels on specific topics

    Useful links and resources

    Example projects

    Chatty2

    13. GitHub Timeline

    Tier: 3-Advanced

    API’s and graphical representation of information are hallmarks of modern web applications. GitHub Timeline combines the two to create a visual history of a users GitHub activity.

    The goal of GitHub Timeline is accept a GitHub user name and produce a timeline containing each repo and annotated with the repo names, the date they were created, and their descriptions. The timeline should be one that could be shared with a prospective employer. It should be easy to read and make effective use of color and typography.

    Only public GitHub repos should be displayed.

    User Stories

    • User can enter a GitHub user name
    • User can click a ‘Generate’ button to create and display the named users repo timeline
    • User can see a warning message if the GitHub user name is not a valid GitHub user name.

    Bonus features

    • User can see a summary of the number of repos tallied by the year they were created

    Useful links and resources

    GitHub offers two API’s you may use to access repo data. You may also choose to use an NPM package to access the GitHub API.

    Documentation for the GitHub API can be found at:

    Sample code showing how to use the GitHub API’s are:

    You can use this CURL command to see the JSON returned by the V3 REST API for your repos:

    curl -u "user-id" https://api.github.com/users/user-id/repos

    Example projects

    CSS Timeline

    Building a Vertical Timeline With CSS and a Touch of JavaScript

    14. Shuffle Card Deck

    Tier: 3-Advanced

    As a Web Developer you’ll be asked to come up with innovative applications that solve real world problems for real people. But something you’ll quickly learn is that no matter how many wonderful features you pack into an app users won’t use it if it isn’t performant. In other words, there is a direct link between how an app performs and whether users perceive it as usable.

    The objective of the Shuffle Card Deck app is to find the fastest technique for shuffling a deck of cards you can use in game apps you create. But, more important it will provide you with experience at measuring and evaluating app performance.

    Your task is to implement the performance evaluation algorithm, the Xorshift pseudorandom number generator, as well as the WELL512a.c algorithm if you choose to attempt the bonus feature.

    User Stories

    • User can see a panel containing a text box the user can enter the number of rounds into, three output text boxes to contain the starting time, ending time, and total time of the test, and two buttons — ‘JS Random’, ‘Xorshift’.
    • User can enter a number from 1 to 10,000 to specify the number of times (or rounds) the selected random number is to be executed.
    • User can click one of the three buttons to start the evaluation of the selected random number algorithm. The random number algorithm will be executed for the number of rounds entered by the user above.
    • User can see a warning message if number of rounds has not been entered, if it is not within the range 1 to 10,000, or if it is not a valid integer.
    • User can see a tabular output area where the results of each algorithm are displayed — algorithm name, time started, time ended, and total time.
    • User can see a warning dialog with a ‘Cancel’ and a ‘OK’ button if the number of rounds is changed before all three tests have been run.
    • User can click the ‘Cancel’ button in the warning dialog to dismiss the dialog with no changes.
    • User can click the ‘OK’ button in the warning dialog to clear the output area and close the warning dialog.

    Bonus features

    • User can see a third algorithm button — ‘WELL512a.c’.
    • Developer should review the output and determine why the fastest algorithm is faster than the slowest algorithm.

    Useful links and resources

    15. Survey App

    Tier: 3-Advanced

    Surveys are a valuable part of any developers toolbox. They are useful for getting feedback from your users on a variety of topics including application satisfaction, requirements, upcoming needs, issues, priorities, and just plain aggravations to name a few.

    The Survey app gives you the opportunity to learn by developing a full-featured app that you can add to your toolbox. It provides the ability to define a survey, allow users to respond within a predefined timeframe, and tabulate and present results.

    Users of this app are divided into two distinct roles, each having different requirements:

    • Survey Coordinators define and conduct surveys. This is an administrative function not available to normal users.
    • Survey Respondents Complete surveys and view results. They have no administrative privileges within the app.

    Commercial survey tools include distribution functionality that mass emails surveys to Survey Respondents. For simplicity, this app assumes that surveys open for responses will be accessed from the app’s web page.

    User Stories — General

    • Survey Coordinators and Survey Respondents can define, conduct, and view surveys and survey results from a common website
    • Survey Coordinators can login to the app to access administrative functions, like defining a survey.

    Defining a Survey

    • Survey Coordinator can define a survey containing 1–10 multiple choice questions.
    • Survey Coordinator can define 1–5 mutually exclusive selections to each question.
    • Survey Coordinator can enter a title for the survey.
    • Survey Coordinator can click a ‘Cancel’ button to return to the home page without saving the survey.
    • Survey Coordinator can click a ‘Save’ button save a survey.

    Conducting a Survey

    • Survey Coordinator can open a survey by selecting a survey from a list of previously defined surveys
    • Survey Coordinators can close a survey by selecting it from a list of open surveys
    • Survey Respondent can complete a survey by selecting it from a list of open surveys
    • Survey Respondent can select responses to survey questions by clicking on a checkbox
    • Survey Respondents can see that a previously selected response will automatically be unchecked if a different response is clicked.
    • Survey Respondents can click a ‘Cancel’ button to return to the home page without submitting the survey.
    • Survey Respondents can click a ‘Submit’ button submit their responses to the survey.
    • Survey Respondents can see an error message if ‘Submit’ is clicked, but not all questions have been responded to.

    Viewing Survey Results

    • Survey Coordinators and Survey Respondents can select the survey to display from a list of closed surveys
    • Survey Coordinators and Survey Respondents can view survey results as in tabular format showing the number of responses for each of the possible selections to the questions.

    Bonus features

    • Survey Respondents can create a unique account in the app
    • Survey Respondents can login to the app
    • Survey Respondents cannot complete the same survey more than once
    • Survey Coordinators and Survey Respondents can view graphical representations of survey results (e.g. pie, bar, column, etc. charts)

    Useful links and resources

    Libraries for building surveys:

    Some commercial survey services include:

    Example projects

    Javascript Questionnaire

    Conclusion

    Now you have a basis of 15 applications that you can play with. We created a GitHub repository where you can find even more ideas if you are interested and you are welcomed to contribute, share and give it a star!

 

By Wired

12 mar
Vamos perder a batalha da inteligência artificial, diz CEO da Microsoft

Baixa qualificação em exatas deve ser o maior agravante para o desenvolvimento da tecnologia no Brasil, diz Tânia Cosentino

Tânia Cosentino, da Microsoft Brasil: falta de mão de obra especializada no país preocupa executivos (Alan Teixeira/Divulgação)

O Brasil está fadado a fracassar na disputa pelo posto de liderança em inteligência artificial. De acordo com Tânia Cosentino, CEO da Microsoft Brasil, isso deve ocorrer em função da baixo interesse dos brasileiros por matemática.

“No índice de pessoas graduadas [no Brasil], somente 15% são da área de exatas, enquanto a China está beirando os 40%. Vamos perder a batalha da inteligência artificial”, afirmou a executiva, durante evento do BTG Pactual (controlador de EXAME). Ela também chama a atenção para a pequena participação feminina no segmento. “Desses 15%, somente 15% são mulheres.”

A baixa qualificação da mão de obra brasileira em tecnologia é uma das principais preocupações dos executivos da área. “Hoje, skills  [qualificação] é o tema central”, afirmou o CEO da IBM Brasil. Segundo ele, o número de vagas com carência de mão de obra qualificada no Brasil deve chegar a 500 mil nos próximos cinco anos.

Para Cosentino, a demanda por esse tipo de profissional vai aumentar de forma que não vai dar tempo para as pessoas se especializarem. “Ao contrário da terceira revolução industrial, que demorou 30 anos, isso vai acontecer em menos de 10 anos. Vir para a nossa área é emprego garantido”, disse.

“Dos empregos de 2030, 65% ainda não existem hoje. Desses, quase 100% vai estar relacionado à tecnologia”, afirmou Rodrigo Galvão, CEO da Oracle Brasil.

Fonte: Exame

06 mar
Você sabe o que é Flutter? Vamos te explicar

O Flutter é um UI Toolkit , que fornece uma série de componentes visuais e funcionais para o desenvolvimento de aplicativos híbridos

Se você anda procurando um framework para construir aplicativos para dispositivos móveis que funcione tanto no Android como no iOs, você deve dar um pouco de atenção ao Flutter.

O Flutter é um UI Toolkit , ou seja, um kit de ferramentas de interface do usuário, que fornece uma série de componentes visuais e funcionais para o desenvolvimento de aplicativos híbridos (que rodam em qualquer sistema operacional).

No finzinho de 2018 o Google anunciou a primeira Release do Flutter através do blog Google Developers. Mas ele já vinha sendo utilizado por desenvolvedores do mundo inteiro desde o início de 2018. O framework promete desenvolvimento rápido e pouco verboso (você vai escrever menos). Além disso, segundo o que consta no próprio site do Flutter, ele promete ter a performance de aplicativos nativos.

Características do Flutter

O Google afirma que o Flutter não pode substituir completamente o modelo tradicional de construção de aplicativos para iOS ou Android. Mas que na verdade é um engine que pode ser adicionado a apps existentes, ou então ser usado na construção de aplicativos inteiros.

As características do Flutter, segundo o próprio Google, são:

– O Flutter possibilita que você faça aplicativos bonitos. O framework dá ao desenvolvedor a liberdade de modificar cada pixel da tela. O objetivo é dar liberdade aos designers para usem sua criatividade sem que percam parte de seu trabalho por causa de limitações técnicas. Além disso, é possível usar o Material Design do Google, com uma gama de Widgets já disponíveis. Para iOS, se você preferir, pode usar o Cupertino sem nenhuma dificuldade. É claro que deixar um app bonito depende muito da criatividade do designer, mas o Flutter fornece ferramentas que podem ajudar.

– O Flutter é rápido. Ele é alimentado pelo mesmo mecanismo que acelera o Chrome e o Android: o Skia 2D. Esse mecanismo foca na aceleração de hardware, é mantido pelo Google, mas é open source e é usado por diversos outros softwares como Firefox e Firefox OS. A promessa do Google é de que a arquitetura do Flutter foi projetada para suportar gráficos jank-free na velocidade do dispositivo. Além disso, os aplicativos feitos com Flutter, são escritos na linguagem de programação Dart. Os apps escritos nessa linguagem podem ser compilados para nativos do Android ou do iOS com processadores ARM de 32 ou 64 bits. Isso é o que torna o Flutter rápido.

– O Fluter é produtivo. O Flutter permite que você execute o aplicativo em um smartphone ou emulador enquanto programa. Toda vez que você salvar um arquivo no projeto, o aplicativo vai atualizar automaticamente no dispositivo, de maneira incrivelmente rápida. É o que os desenvolvedores chamam de stateful hot reload. Segundo o Google, essa funcionalidade a forma com a qual os desenvolvedores constroem aplicativos, tornando o processo mais produtivo.

– E por fim, é livre, é aberto. O Flutter é um projeto open source com a licensa BSD-style, incluindo contribuições de centenas de desenvolvedores no mundo inteiro. O projeto está disponível no GitHub, assim como as instruções de como contribuir.

Por que usar o Flutter?

Bom, se você procura por agilidade no desenvolvimento, e UIs bonitas, o Flutter é uma boa opção, além de ter uma performance muito boa quando comparado a concorrentes, como o Ionic por exemplo.

O Flutter te dá liberdade em muita coisa, da arquitetura e organização do projeto até a interface do usuário. Ele deixa você trabalhar do jeito que achar melhor, e ainda dá suporte a todas as funcionalidades nativas do Android ou do iOS.

A comunidade do Flutter está crescendo a cada dia, e já é possível encontrar templates prontos, issues resolvidas no GitHub ou em outros fóruns. Além da linguagem (Dart) ser relativamente fácil, se você é acostumado com JavaScript, vai conseguir caminhar em pouco tempo.

Showcase do Flutter

Para ter uma ideia de o quanto e como o flutter é usado, é só dar uma olhada na página de showcase deles (imagem acima). Além de tantos outros apps incríveis que são desenvolvidos e lançados pelo mundo a fora e não estão na lista.

Fonte: Clube dos Geeks06

Está com dúvidas?
Estamos aqui pra ajudar! Envia um e-mail ou chama no whatsapp: (86) 3133-7070
Entrar em contato!
© 2017 iCEV Instituto de Ensino Superior
Esse domínio pertence ao Grupo Educacional Superior CEV
CNPJ: 12.175.436/0001-09